X-Git-Url: http://git.code-monkey.de/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fdialogs%2Fsettings.cpp;h=1119b8fafe69e0ba2e091da13f0857d4cf220f6f;hp=d17f5d04c35cd61d02be0fec28da8af89750701f;hb=a42d2514a57051f971e7b239bc3765ebf93669ae;hpb=d2d0056dc4ff51ae814b136ff92c3458dfae27d3 diff --git a/pv/dialogs/settings.cpp b/pv/dialogs/settings.cpp index d17f5d0..1119b8f 100644 --- a/pv/dialogs/settings.cpp +++ b/pv/dialogs/settings.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include #include #include @@ -215,7 +216,7 @@ QWidget *Settings::get_general_settings_form(QWidget *parent) const general_group->setLayout(general_layout); QComboBox *theme_cb = new QComboBox(); - for (pair entry : Themes) + for (const pair& entry : Themes) theme_cb->addItem(entry.first, entry.second); theme_cb->setCurrentIndex( @@ -228,6 +229,26 @@ QWidget *Settings::get_general_settings_form(QWidget *parent) const description_1->setAlignment(Qt::AlignRight); general_layout->addRow(description_1); + QComboBox *style_cb = new QComboBox(); + style_cb->addItem(tr("System Default"), ""); + for (QString& s : QStyleFactory::keys()) + style_cb->addItem(s, s); + + const QString current_style = + settings.value(GlobalSettings::Key_General_Style).toString(); + if (current_style.isEmpty()) + style_cb->setCurrentIndex(0); + else + style_cb->setCurrentIndex(style_cb->findText(current_style, 0)); + + connect(style_cb, SIGNAL(currentIndexChanged(int)), + this, SLOT(on_general_style_changed(int))); + general_layout->addRow(tr("Qt widget style"), style_cb); + + QLabel *description_2 = new QLabel(tr("(Dark themes look best with the Fusion style)")); + description_2->setAlignment(Qt::AlignRight); + general_layout->addRow(description_2); + return form; } @@ -551,6 +572,37 @@ void Settings::on_general_theme_changed_changed(int state) GlobalSettings settings; settings.setValue(GlobalSettings::Key_General_Theme, state); settings.apply_theme(); + + QMessageBox msg(this); + msg.setStandardButtons(QMessageBox::Yes | QMessageBox::No); + msg.setIcon(QMessageBox::Question); + + if (settings.current_theme_is_dark()) { + msg.setText(tr("You selected a dark theme.\n" \ + "Should I set the user-adjustable colors to better suit your choice?\n\n" \ + "Please keep in mind that PulseView may need a restart to display correctly.")); + if (msg.exec() == QMessageBox::Yes) + settings.set_dark_theme_default_colors(); + } else { + msg.setText(tr("You selected a bright theme.\n" \ + "Should I set the user-adjustable colors to better suit your choice?\n\n" \ + "Please keep in mind that PulseView may need a restart to display correctly.")); + if (msg.exec() == QMessageBox::Yes) + settings.set_bright_theme_default_colors(); + } +} + +void Settings::on_general_style_changed(int state) +{ + GlobalSettings settings; + + if (state == 0) + settings.setValue(GlobalSettings::Key_General_Style, ""); + else + settings.setValue(GlobalSettings::Key_General_Style, + QStyleFactory::keys().at(state - 1)); + + settings.apply_theme(); } void Settings::on_view_zoomToFitDuringAcq_changed(int state)