[PaletteEditor] Ensure directory is writeable, don't fall back to alternate palette (#7048)

* [PaletteEditor] Ensure directory is writeable, don't fall back to alternate palette.

Took 17 minutes

* [ThemeManager] Extract system theme dir path resolution to helper, use it in default palette fetching

Took 8 minutes

* [ThemeManager] Expose styling again

Took 3 minutes

* [ThemeManager] Capture app palette before theme is applied for reverting

* [ThemeManager] Simply delete custom palette instead of reverting to default

* [ThemeManager] Generate and apply immediately on change.

* [PaletteEditor] Block grid signals during initial loading.

Took 5 minutes

* Address comments

Took 8 minutes

* Seed accent from scheme on reset and revert

Took 2 minutes

---------

Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
This commit is contained in:
BruebachL 2026-07-27 11:23:41 +02:00 committed by GitHub
parent 3f9dbdb33b
commit cf0b453e75
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 229 additions and 81 deletions

View file

@ -5,7 +5,6 @@
#include <QWidget>
class QPushButton;
class QHBoxLayout;
class QLabel;
class QSlider;
@ -16,12 +15,11 @@ class QSlider;
*
* The panel contains:
* - an accent color picker,
* - an intensity slider,
* - and a generate button.
* - an intensity slider.
*
* When the user clicks the generate button, the panel emits
* generateRequested() with the currently selected accent color
* and intensity value.
* Whenever either value changes the panel emits valueChanged() with
* the current accent colour and intensity, which the parent dialog
* uses to auto-apply the generated palette.
*
* Typically used together with PaletteGenerator::fromAccent()
* to quickly generate color schemes from a chosen accent color.
@ -71,12 +69,12 @@ public:
signals:
/**
* @brief Emitted when the user requests palette generation.
* @brief Emitted whenever the accent colour or intensity changes.
*
* @param accent The selected accent color.
* @param intensity The selected intensity value.
* The parent dialog consumes this to auto-apply the generated palette
* without requiring an explicit Generate click.
*/
void generateRequested(QColor accent, int intensity);
void valueChanged(QColor accent, int intensity);
private:
QHBoxLayout *layout;
@ -88,7 +86,6 @@ private:
QLabel *labelHigh;
QSlider *intensitySlider;
QLabel *intensityPercentageLabel;
QPushButton *generateButton;
};
#endif // COCKATRICE_QUICK_SETUP_PANEL_H
#endif // COCKATRICE_QUICK_SETUP_PANEL_H