diff --git a/YACReader/options_dialog.cpp b/YACReader/options_dialog.cpp index 1df919fa..1acb1a68 100644 --- a/YACReader/options_dialog.cpp +++ b/YACReader/options_dialog.cpp @@ -58,9 +58,6 @@ OptionsDialog::OptionsDialog(QWidget *parent) backgroundColor->setPalette(pal); backgroundColor->setAutoFillBackground(true); - colorDialog = new QColorDialog(Qt::red, this); - connect(colorDialog, &QColorDialog::colorSelected, this, &OptionsDialog::updateColor); - QGroupBox *colorBox = new QGroupBox(tr("Background color")); // backgroundColor->setMinimumWidth(100); colorSelection->addWidget(backgroundColor); @@ -68,7 +65,7 @@ OptionsDialog::OptionsDialog(QWidget *parent) colorSelection->setStretchFactor(backgroundColor, 1); colorSelection->setStretchFactor(selectBackgroundColorButton, 0); // colorSelection->addStretch(); - connect(selectBackgroundColorButton, &QAbstractButton::clicked, colorDialog, &QWidget::show); + connect(selectBackgroundColorButton, &QAbstractButton::clicked, this, &OptionsDialog::showColorDialog); colorBox->setLayout(colorSelection); auto scrollBox = new QGroupBox(tr("Scroll behaviour")); @@ -219,6 +216,12 @@ void OptionsDialog::findFolder() } } +void OptionsDialog::showColorDialog() +{ + auto color = QColorDialog::getColor(currentColor, this); + updateColor(color); +} + void OptionsDialog::saveOptions() { settings->setValue(GO_TO_FLOW_SIZE, QSize(static_cast(slideSize->sliderPosition() / SLIDE_ASPECT_RATIO), slideSize->sliderPosition())); @@ -232,7 +235,7 @@ void OptionsDialog::saveOptions() settings->setValue(PATH, pathEdit->text()); - settings->setValue(BACKGROUND_COLOR, colorDialog->currentColor()); + settings->setValue(BACKGROUND_COLOR, currentColor); // settings->setValue(FIT_TO_WIDTH_RATIO,fitToWidthRatioS->sliderPosition()/100.0); settings->setValue(QUICK_NAVI_MODE, quickNavi->isChecked()); settings->setValue(DISABLE_MOUSE_OVER_GOTO_FLOW, disableShowOnMouseOver->isChecked()); @@ -288,7 +291,7 @@ void OptionsDialog::updateColor(const QColor &color) pal.setColor(backgroundColor->backgroundRole(), color); backgroundColor->setPalette(pal); backgroundColor->setAutoFillBackground(true); - colorDialog->setCurrentColor(color); + currentColor = color; settings->setValue(BACKGROUND_COLOR, color); diff --git a/YACReader/options_dialog.h b/YACReader/options_dialog.h index 92b7177e..c5906630 100644 --- a/YACReader/options_dialog.h +++ b/YACReader/options_dialog.h @@ -10,7 +10,6 @@ class QPushButton; class QSlider; class QPushButton; class QRadioButton; -class QColorDialog; class YACReaderSpinSliderWidget; class OptionsDialog : public YACReaderOptionsDialog @@ -44,18 +43,18 @@ private: QCheckBox *doNotTurnPageOnScroll; QCheckBox *useSingleScrollStepToTurnPage; - QColorDialog *colorDialog; - YACReaderSpinSliderWidget *brightnessS; YACReaderSpinSliderWidget *contrastS; YACReaderSpinSliderWidget *gammaS; + QColor currentColor; public slots: void saveOptions() override; void restoreOptions(QSettings *settings) override; void findFolder(); + void showColorDialog(); void updateColor(const QColor &color); // void fitToWidthRatio(int value); void brightnessChanged(int value);