const QString GlobalSettings::Key_General_Theme = "General_Theme";
const QString GlobalSettings::Key_General_Style = "General_Style";
+const QString GlobalSettings::Key_General_SaveWithSetup = "General_SaveWithSetup";
const QString GlobalSettings::Key_View_ZoomToFitDuringAcq = "View_ZoomToFitDuringAcq";
const QString GlobalSettings::Key_View_ZoomToFitAfterAcq = "View_ZoomToFitAfterAcq";
const QString GlobalSettings::Key_View_TriggerIsZeroTime = "View_TriggerIsZeroTime";
const QString GlobalSettings::Key_View_DefaultLogicHeight = "View_DefaultLogicHeight";
const QString GlobalSettings::Key_View_ShowHoverMarker = "View_ShowHoverMarker";
const QString GlobalSettings::Key_View_SnapDistance = "View_SnapDistance";
+const QString GlobalSettings::Key_View_CursorFillColor = "View_CursorFillColor";
const QString GlobalSettings::Key_Dec_InitialStateConfigurable = "Dec_InitialStateConfigurable";
const QString GlobalSettings::Key_Dec_ExportFormat = "Dec_ExportFormat";
const QString GlobalSettings::Key_Log_BufferSize = "Log_BufferSize";
QPalette GlobalSettings::default_palette_;
GlobalSettings::GlobalSettings() :
- QSettings()
+ QSettings(),
+ is_dark_theme_(false)
{
beginGroup("Settings");
}
+void GlobalSettings::save_internal_defaults()
+{
+ default_style_ = qApp->style()->objectName();
+ if (default_style_.isEmpty())
+ default_style_ = "fusion";
+
+ default_palette_ = QApplication::palette();
+}
+
void GlobalSettings::set_defaults_where_needed()
{
// Use no theme by default
if (!contains(Key_General_Style))
setValue(Key_General_Style, "");
+ // Save setup with .sr files by default
+ if (!contains(Key_General_SaveWithSetup))
+ setValue(Key_General_SaveWithSetup, true);
+
// Enable zoom-to-fit after acquisition by default
if (!contains(Key_View_ZoomToFitAfterAcq))
setValue(Key_View_ZoomToFitAfterAcq, true);
// Enable filling logic signal high areas by default
if (!contains(Key_View_FillSignalHighAreas))
setValue(Key_View_FillSignalHighAreas, true);
- if (!contains(Key_View_FillSignalHighAreaColor))
- setValue(Key_View_FillSignalHighAreaColor,
- QColor(0, 0, 0, 5 * 256 / 100).rgba());
if (!contains(Key_View_DefaultDivHeight))
setValue(Key_View_DefaultDivHeight,
// Notify user of existing stack trace by default
if (!contains(Key_Log_NotifyOfStacktrace))
setValue(Key_Log_NotifyOfStacktrace, true);
+
+ // Default theme is bright, so use its color scheme if undefined
+ if (!contains(Key_View_CursorFillColor))
+ set_bright_theme_default_colors();
}
-void GlobalSettings::save_internal_defaults()
+void GlobalSettings::set_bright_theme_default_colors()
{
- default_style_ = qApp->style()->objectName();
- if (default_style_.isEmpty())
- default_style_ = "fusion";
+ setValue(Key_View_FillSignalHighAreaColor,
+ QColor(0, 0, 0, 5 * 256 / 100).rgba());
- default_palette_ = QApplication::palette();
+ setValue(Key_View_CursorFillColor,
+ QColor(220, 231, 243).rgba());
+}
+
+void GlobalSettings::set_dark_theme_default_colors()
+{
+ setValue(Key_View_FillSignalHighAreaColor,
+ QColor(188, 188, 188, 9 * 256 / 100).rgba());
+
+ setValue(Key_View_CursorFillColor,
+ QColor(60, 60, 60).rgba());
+}
+
+bool GlobalSettings::current_theme_is_dark()
+{
+ return is_dark_theme_;
}
void GlobalSettings::apply_theme()
else
qApp->setStyle(style);
+ is_dark_theme_ = false;
+
if (theme_name.compare("QDarkStyleSheet") == 0) {
QPalette dark_palette;
dark_palette.setColor(QPalette::Window, QColor(53, 53, 53));
dark_palette.setColor(QPalette::Dark, QColor(35, 35, 35));
dark_palette.setColor(QPalette::Highlight, QColor(42, 130, 218));
qApp->setPalette(dark_palette);
+ is_dark_theme_ = true;
} else if (theme_name.compare("DarkStyle") == 0) {
QPalette dark_palette;
dark_palette.setColor(QPalette::Window, QColor(53, 53, 53));
dark_palette.setColor(QPalette::HighlightedText, Qt::white);
dark_palette.setColor(QPalette::Disabled, QPalette::HighlightedText, QColor(127, 127, 127));
qApp->setPalette(dark_palette);
+ is_dark_theme_ = true;
}
QPixmapCache::clear();