]> sigrok.org Git - pulseview.git/blobdiff - pv/dialogs/settings.cpp
Implement "fill logic signal high areas" feature
[pulseview.git] / pv / dialogs / settings.cpp
index bc6688c22a40dafb7f9a86c903516b524de44fb3..ad4fd4a5f6c31519175e3877457179bd8c9340d9 100644 (file)
@@ -46,6 +46,7 @@
 #include "pv/devicemanager.hpp"
 #include "pv/globalsettings.hpp"
 #include "pv/logging.hpp"
+#include "pv/widgets/colorbutton.hpp"
 
 #include <libsigrokcxx/libsigrokcxx.hpp>
 
@@ -54,6 +55,7 @@
 #endif
 
 using std::shared_ptr;
+using pv::widgets::ColorButton;
 
 namespace pv {
 namespace dialogs {
@@ -229,6 +231,17 @@ QWidget *Settings::get_view_settings_form(QWidget *parent) const
                SLOT(on_view_showSamplingPoints_changed(int)));
        trace_view_layout->addRow(tr("Show data &sampling points"), cb);
 
+       cb = create_checkbox(GlobalSettings::Key_View_FillSignalHighAreas,
+               SLOT(on_view_fillSignalHighAreas_changed(int)));
+       trace_view_layout->addRow(tr("Fill high areas of logic signals"), cb);
+
+       ColorButton* high_fill_cb = new ColorButton(parent);
+       high_fill_cb->set_color(QColor::fromRgba(
+               settings.value(GlobalSettings::Key_View_FillSignalHighAreaColor).value<uint32_t>()));
+       connect(high_fill_cb, SIGNAL(selected(QColor)),
+               this, SLOT(on_view_fillSignalHighAreaColor_changed(QColor)));
+       trace_view_layout->addRow(tr("Fill high areas of logic signals"), high_fill_cb);
+
        cb = create_checkbox(GlobalSettings::Key_View_ShowAnalogMinorGrid,
                SLOT(on_view_showAnalogMinorGrid_changed(int)));
        trace_view_layout->addRow(tr("Show analog minor grid in addition to div grid"), cb);
@@ -530,6 +543,18 @@ void Settings::on_view_showSamplingPoints_changed(int state)
        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;