Skip to content

Commit a812756

Browse files
committed
Fixed a bug with color picker dialog and color selection button.
1 parent 28c9206 commit a812756

File tree

2 files changed

+20
-15
lines changed

2 files changed

+20
-15
lines changed

src/GUI/Dialog/ColorPickerDialog.cc

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,7 @@ namespace degate
8484
QObject::connect(&button_box, SIGNAL(accepted()), this, SLOT(validate()));
8585

8686
// Color preview
87-
QPalette palette;
88-
palette.setColor(QPalette::Window, to_qt_color(color));
89-
color_preview.setPalette(palette);
87+
update_color(color);
9088
color_preview.setMinimumSize(100, 100);
9189
color_preview.setAutoFillBackground(true);
9290

@@ -106,9 +104,7 @@ namespace degate
106104
color_dialog.setCurrentColor(to_qt_color(color));
107105

108106
// Update preview color
109-
QPalette palette;
110-
palette.setColor(QPalette::Window, to_qt_color(color));
111-
color_preview.setPalette(palette);
107+
update_color(color);
112108
}
113109

114110
void ColorPickerDialog::validate()
@@ -124,9 +120,13 @@ namespace degate
124120
this->color = to_degate_color(color);
125121

126122
// Update preview color
127-
QPalette palette;
128-
palette.setColor(QPalette::Window, color);
129-
color_preview.setPalette(palette);
123+
update_color(this->color);
124+
}
125+
126+
void ColorPickerDialog::update_color(const color_t& color)
127+
{
128+
QString style = "QWidget { background-color: rgba(%1, %2, %3, %4); border: none; }";
129+
color_preview.setStyleSheet(style.arg(MASK_R(color)).arg(MASK_G(color)).arg(MASK_B(color)).arg(MASK_A(color)));
130130
}
131131

132132
color_t ColorPickerDialog::get_color() const
@@ -151,9 +151,8 @@ namespace degate
151151
this->color = color;
152152

153153
// Update color
154-
QPalette palette;
155-
palette.setColor(QPalette::Button, to_qt_color(color));
156-
setPalette(palette);
154+
QString style = "QPushButton { background-color: rgba(%1, %2, %3, %4); border: none; }";
155+
setStyleSheet(style.arg(MASK_R(color)).arg(MASK_G(color)).arg(MASK_B(color)).arg(MASK_A(color)));
157156
}
158157

159158
color_t ColorSelectionButton::get_color() const
@@ -169,8 +168,6 @@ namespace degate
169168
color = color_picker.get_color();
170169

171170
// Update color
172-
QPalette palette;
173-
palette.setColor(QPalette::Button, to_qt_color(color));
174-
setPalette(palette);
171+
set_color(color);
175172
}
176173
}

src/GUI/Dialog/ColorPickerDialog.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,14 @@ namespace degate
8282
*/
8383
void on_color_changed(const QColor& color);
8484

85+
protected:
86+
/**
87+
* Update the Widget background color.
88+
*
89+
* @param color : the new color.
90+
*/
91+
void update_color(const color_t& color);
92+
8593
private:
8694
QVBoxLayout layout;
8795
QDialogButtonBox button_box;

0 commit comments

Comments
 (0)