]> sigrok.org Git - pulseview.git/blobdiff - pv/dialogs/settings.cpp
Settings: Only show initial pin config UI elements if enabled
[pulseview.git] / pv / dialogs / settings.cpp
index f2f9e2692a753624b2750a5771405a7bce038660..310b80e2147d6835ded84b10589daa4dbb89a6b8 100644 (file)
@@ -101,6 +101,17 @@ void Settings::create_pages()
        viewButton->setTextAlignment(Qt::AlignHCenter);
        viewButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
 
+#ifdef ENABLE_DECODE
+       // Decoder page
+       pages->addWidget(get_decoder_settings_form(pages));
+
+       QListWidgetItem *decoderButton = new QListWidgetItem(page_list);
+       decoderButton->setIcon(QIcon(":/icons/add-decoder.svg"));
+       decoderButton->setText(tr("Decoders"));
+       decoderButton->setTextAlignment(Qt::AlignHCenter);
+       decoderButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+#endif
+
        // About page
        pages->addWidget(get_about_page(pages));
 
@@ -153,6 +164,32 @@ QWidget *Settings::get_view_settings_form(QWidget *parent) const
        return form;
 }
 
+QWidget *Settings::get_decoder_settings_form(QWidget *parent) const
+{
+#ifdef ENABLE_DECODE
+       GlobalSettings settings;
+
+       QWidget *form = new QWidget(parent);
+       QVBoxLayout *form_layout = new QVBoxLayout(form);
+
+       // Decoder settings
+       QGroupBox *decoder_group = new QGroupBox(tr("Decoders"));
+       form_layout->addWidget(decoder_group);
+
+       QFormLayout *decoder_layout = new QFormLayout();
+       decoder_group->setLayout(decoder_layout);
+
+       QCheckBox *initial_state_configurable_cb = new QCheckBox();
+       initial_state_configurable_cb->setChecked(settings.value(GlobalSettings::Key_Dec_InitialStateConfigurable).toBool());
+       connect(initial_state_configurable_cb, SIGNAL(stateChanged(int)), this, SLOT(on_dec_initialStateConfigurable_changed(int)));
+       decoder_layout->addRow(tr("Allow configuration of &initial signal state"), initial_state_configurable_cb);
+
+       return form;
+#else
+       (void)parent;
+#endif
+}
+
 #ifdef ENABLE_DECODE
 static gint sort_pds(gconstpointer a, gconstpointer b)
 {
@@ -366,5 +403,11 @@ void Settings::on_view_showAnalogMinorGrid_changed(int state)
        settings.setValue(GlobalSettings::Key_View_ShowAnalogMinorGrid, state ? true : false);
 }
 
+void Settings::on_dec_initialStateConfigurable_changed(int state)
+{
+       GlobalSettings settings;
+       settings.setValue(GlobalSettings::Key_Dec_InitialStateConfigurable, state ? true : false);
+}
+
 } // namespace dialogs
 } // namespace pv