]> sigrok.org Git - pulseview.git/blobdiff - pv/mainwindow.cpp
MainBar: fixup file extension filter in "Import File" dialog
[pulseview.git] / pv / mainwindow.cpp
index 119ce0a791ba22a2aa1d6b1702a387fd6bef9caf..6eabdb6737e0a5b3a8e6641392480c8ea271bff4 100644 (file)
@@ -53,7 +53,6 @@
 using std::bind;
 using std::dynamic_pointer_cast;
 using std::make_shared;
-using std::map;
 using std::placeholders::_1;
 using std::shared_ptr;
 using std::string;
@@ -80,14 +79,7 @@ MainWindow::MainWindow(DeviceManager &device_manager, QWidget *parent) :
        qRegisterMetaType<util::Timestamp>("util::Timestamp");
        qRegisterMetaType<uint64_t>("uint64_t");
 
-       GlobalSettings::register_change_handler(GlobalSettings::Key_View_ColouredBG,
-               bind(&MainWindow::on_settingViewColouredBg_changed, this, _1));
-
-       GlobalSettings::register_change_handler(GlobalSettings::Key_View_ShowSamplingPoints,
-               bind(&MainWindow::on_settingViewShowSamplingPoints_changed, this, _1));
-
-       GlobalSettings::register_change_handler(GlobalSettings::Key_View_ShowAnalogMinorGrid,
-               bind(&MainWindow::on_settingViewShowAnalogMinorGrid_changed, this, _1));
+       GlobalSettings::add_change_handler(this);
 
        GlobalSettings settings;
        settings.set_defaults_where_needed();
@@ -98,6 +90,8 @@ MainWindow::MainWindow(DeviceManager &device_manager, QWidget *parent) :
 
 MainWindow::~MainWindow()
 {
+       GlobalSettings::remove_change_handler(this);
+
        while (!sessions_.empty())
                remove_session(sessions_.front());
 }
@@ -175,9 +169,9 @@ shared_ptr<views::ViewBase> MainWindow::add_view(const QString &title,
        connect(close_btn, SIGNAL(clicked(bool)),
                this, SLOT(on_view_close_clicked()));
 
-       connect(&session, SIGNAL(trigger_event(util::Timestamp)),
+       connect(&session, SIGNAL(trigger_event(int, util::Timestamp)),
                qobject_cast<views::ViewBase*>(v.get()),
-               SLOT(trigger_event(util::Timestamp)));
+               SLOT(trigger_event(int, util::Timestamp)));
 
        if (type == views::ViewTypeTrace) {
                views::trace::View *tv =
@@ -401,6 +395,18 @@ void MainWindow::restore_sessions()
        }
 }
 
+void MainWindow::on_setting_changed(const QString &key, const QVariant &value)
+{
+       if (key == GlobalSettings::Key_View_ColouredBG)
+               on_settingViewColouredBg_changed(value);
+
+       if (key == GlobalSettings::Key_View_ShowSamplingPoints)
+               on_settingViewShowSamplingPoints_changed(value);
+
+       if (key == GlobalSettings::Key_View_ShowAnalogMinorGrid)
+               on_settingViewShowAnalogMinorGrid_changed(value);
+}
+
 void MainWindow::setup_ui()
 {
        setObjectName(QString::fromUtf8("MainWindow"));