+
+ 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_general_save_with_setup_changed(int state)
+{
+ GlobalSettings settings;
+ settings.setValue(GlobalSettings::Key_General_SaveWithSetup, state ? true : false);
+}
+
+void Settings::on_view_zoomToFitDuringAcq_changed(int state)
+{
+ GlobalSettings settings;
+ settings.setValue(GlobalSettings::Key_View_ZoomToFitDuringAcq, state ? true : false);
+}
+
+void Settings::on_view_zoomToFitAfterAcq_changed(int state)
+{
+ GlobalSettings settings;
+ settings.setValue(GlobalSettings::Key_View_ZoomToFitAfterAcq, state ? true : false);
+}
+
+void Settings::on_view_triggerIsZero_changed(int state)
+{
+ GlobalSettings settings;
+ settings.setValue(GlobalSettings::Key_View_TriggerIsZeroTime, state ? true : false);
+}
+
+void Settings::on_view_coloredBG_changed(int state)
+{
+ GlobalSettings settings;
+ settings.setValue(GlobalSettings::Key_View_ColoredBG, state ? true : false);
+}
+
+void Settings::on_view_stickyScrolling_changed(int state)
+{
+ GlobalSettings settings;
+ settings.setValue(GlobalSettings::Key_View_StickyScrolling, state ? true : false);
+}
+
+void Settings::on_view_showSamplingPoints_changed(int state)
+{
+ GlobalSettings settings;
+ settings.setValue(GlobalSettings::Key_View_ShowSamplingPoints, state ? true : false);
+}
+
+void Settings::on_view_fillSignalHighAreas_changed(int state)
+{
+ GlobalSettings settings;
+ settings.setValue(GlobalSettings::Key_View_FillSignalHighAreas, state ? true : false);
+}
+
+void Settings::on_view_fillSignalHighAreaColor_changed(QColor color)
+{
+ GlobalSettings settings;
+ settings.setValue(GlobalSettings::Key_View_FillSignalHighAreaColor, color.rgba());
+}
+
+void Settings::on_view_showAnalogMinorGrid_changed(int state)
+{
+ GlobalSettings settings;
+ settings.setValue(GlobalSettings::Key_View_ShowAnalogMinorGrid, state ? true : false);
+}
+
+void Settings::on_view_showHoverMarker_changed(int state)
+{
+ GlobalSettings settings;
+ settings.setValue(GlobalSettings::Key_View_ShowHoverMarker, state ? true : false);
+}
+
+void Settings::on_view_snapDistance_changed(int value)
+{
+ GlobalSettings settings;
+ settings.setValue(GlobalSettings::Key_View_SnapDistance, value);
+}
+
+void Settings::on_view_cursorFillColor_changed(QColor color)
+{
+ GlobalSettings settings;
+ settings.setValue(GlobalSettings::Key_View_CursorFillColor, color.rgba());
+}
+
+void Settings::on_view_conversionThresholdDispMode_changed(int state)
+{
+ GlobalSettings settings;
+ settings.setValue(GlobalSettings::Key_View_ConversionThresholdDispMode, state);
+}
+
+void Settings::on_view_defaultDivHeight_changed(int value)
+{
+ GlobalSettings settings;
+ settings.setValue(GlobalSettings::Key_View_DefaultDivHeight, value);
+}
+
+void Settings::on_view_defaultLogicHeight_changed(int value)
+{
+ GlobalSettings settings;
+ settings.setValue(GlobalSettings::Key_View_DefaultLogicHeight, value);
+}
+
+#ifdef ENABLE_DECODE
+void Settings::on_dec_initialStateConfigurable_changed(int state)
+{
+ GlobalSettings settings;
+ settings.setValue(GlobalSettings::Key_Dec_InitialStateConfigurable, state ? true : false);
+}
+
+void Settings::on_dec_exportFormat_changed(const QString &text)
+{
+ GlobalSettings settings;
+ settings.setValue(GlobalSettings::Key_Dec_ExportFormat, text);
+}
+#endif
+
+void Settings::on_log_logLevel_changed(int value)
+{
+ logging.set_log_level(value);
+}
+
+void Settings::on_log_bufferSize_changed(int value)
+{
+ GlobalSettings settings;
+ settings.setValue(GlobalSettings::Key_Log_BufferSize, value);
+}
+
+void Settings::on_log_saveToFile_clicked(bool checked)
+{
+ (void)checked;
+
+ const QString file_name = QFileDialog::getSaveFileName(
+ this, tr("Save Log"), "", tr("Log Files (*.txt *.log);;All Files (*)"));
+
+ if (file_name.isEmpty())
+ return;
+
+ QFile file(file_name);
+ if (file.open(QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Text)) {
+ QTextStream out_stream(&file);
+ out_stream << log_view_->toPlainText();
+
+ if (out_stream.status() == QTextStream::Ok) {
+ QMessageBox msg(this);
+ msg.setText(tr("Success") + "\n\n" + tr("Log saved to %1.").arg(file_name));
+ msg.setStandardButtons(QMessageBox::Ok);
+ msg.setIcon(QMessageBox::Information);
+ msg.exec();
+
+ return;
+ }
+ }
+
+ QMessageBox msg(this);
+ msg.setText(tr("Error") + "\n\n" + tr("File %1 could not be written to.").arg(file_name));
+ msg.setStandardButtons(QMessageBox::Ok);
+ msg.setIcon(QMessageBox::Warning);
+ msg.exec();
+}
+
+void Settings::on_log_popOut_clicked(bool checked)
+{
+ (void)checked;
+
+ // Create the window as a sub-window so it closes when the main window closes
+ QMainWindow *window = new QMainWindow(nullptr, Qt::SubWindow);
+
+ window->setObjectName(QString::fromUtf8("Log Window"));
+ window->setWindowTitle(tr("%1 Log").arg(PV_TITLE));
+
+ // Use same width/height as the settings dialog
+ window->resize(width(), height());
+
+ window->setCentralWidget(create_log_view());
+ window->show();