Simplify QColorDialog usage

This fixes the color dialog being always available in macos as a YACReader's child window.
This commit is contained in:
Luis Ángel San Martín Rodríguez 2022-10-11 21:23:55 +02:00
parent 5d1e7cf8c4
commit 794c0c47b5
2 changed files with 11 additions and 9 deletions

View File

@ -58,9 +58,6 @@ OptionsDialog::OptionsDialog(QWidget *parent)
backgroundColor->setPalette(pal); backgroundColor->setPalette(pal);
backgroundColor->setAutoFillBackground(true); backgroundColor->setAutoFillBackground(true);
colorDialog = new QColorDialog(Qt::red, this);
connect(colorDialog, &QColorDialog::colorSelected, this, &OptionsDialog::updateColor);
QGroupBox *colorBox = new QGroupBox(tr("Background color")); QGroupBox *colorBox = new QGroupBox(tr("Background color"));
// backgroundColor->setMinimumWidth(100); // backgroundColor->setMinimumWidth(100);
colorSelection->addWidget(backgroundColor); colorSelection->addWidget(backgroundColor);
@ -68,7 +65,7 @@ OptionsDialog::OptionsDialog(QWidget *parent)
colorSelection->setStretchFactor(backgroundColor, 1); colorSelection->setStretchFactor(backgroundColor, 1);
colorSelection->setStretchFactor(selectBackgroundColorButton, 0); colorSelection->setStretchFactor(selectBackgroundColorButton, 0);
// colorSelection->addStretch(); // colorSelection->addStretch();
connect(selectBackgroundColorButton, &QAbstractButton::clicked, colorDialog, &QWidget::show); connect(selectBackgroundColorButton, &QAbstractButton::clicked, this, &OptionsDialog::showColorDialog);
colorBox->setLayout(colorSelection); colorBox->setLayout(colorSelection);
auto scrollBox = new QGroupBox(tr("Scroll behaviour")); 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() void OptionsDialog::saveOptions()
{ {
settings->setValue(GO_TO_FLOW_SIZE, QSize(static_cast<int>(slideSize->sliderPosition() / SLIDE_ASPECT_RATIO), slideSize->sliderPosition())); settings->setValue(GO_TO_FLOW_SIZE, QSize(static_cast<int>(slideSize->sliderPosition() / SLIDE_ASPECT_RATIO), slideSize->sliderPosition()));
@ -232,7 +235,7 @@ void OptionsDialog::saveOptions()
settings->setValue(PATH, pathEdit->text()); 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(FIT_TO_WIDTH_RATIO,fitToWidthRatioS->sliderPosition()/100.0);
settings->setValue(QUICK_NAVI_MODE, quickNavi->isChecked()); settings->setValue(QUICK_NAVI_MODE, quickNavi->isChecked());
settings->setValue(DISABLE_MOUSE_OVER_GOTO_FLOW, disableShowOnMouseOver->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); pal.setColor(backgroundColor->backgroundRole(), color);
backgroundColor->setPalette(pal); backgroundColor->setPalette(pal);
backgroundColor->setAutoFillBackground(true); backgroundColor->setAutoFillBackground(true);
colorDialog->setCurrentColor(color); currentColor = color;
settings->setValue(BACKGROUND_COLOR, color); settings->setValue(BACKGROUND_COLOR, color);

View File

@ -10,7 +10,6 @@ class QPushButton;
class QSlider; class QSlider;
class QPushButton; class QPushButton;
class QRadioButton; class QRadioButton;
class QColorDialog;
class YACReaderSpinSliderWidget; class YACReaderSpinSliderWidget;
class OptionsDialog : public YACReaderOptionsDialog class OptionsDialog : public YACReaderOptionsDialog
@ -44,18 +43,18 @@ private:
QCheckBox *doNotTurnPageOnScroll; QCheckBox *doNotTurnPageOnScroll;
QCheckBox *useSingleScrollStepToTurnPage; QCheckBox *useSingleScrollStepToTurnPage;
QColorDialog *colorDialog;
YACReaderSpinSliderWidget *brightnessS; YACReaderSpinSliderWidget *brightnessS;
YACReaderSpinSliderWidget *contrastS; YACReaderSpinSliderWidget *contrastS;
YACReaderSpinSliderWidget *gammaS; YACReaderSpinSliderWidget *gammaS;
QColor currentColor;
public slots: public slots:
void saveOptions() override; void saveOptions() override;
void restoreOptions(QSettings *settings) override; void restoreOptions(QSettings *settings) override;
void findFolder(); void findFolder();
void showColorDialog();
void updateColor(const QColor &color); void updateColor(const QColor &color);
// void fitToWidthRatio(int value); // void fitToWidthRatio(int value);
void brightnessChanged(int value); void brightnessChanged(int value);