X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fmainwindow.cpp;h=19caab32e2d8d63265758eee8b0bc0b28d2168ed;hp=119ce0a791ba22a2aa1d6b1702a387fd6bef9caf;hb=eaa02ef436fb9d8217a94076e1258da47d3cd8e0;hpb=6e2a5b1d677a26a637465cd4d304e2bc52e14f36 diff --git a/pv/mainwindow.cpp b/pv/mainwindow.cpp index 119ce0a7..19caab32 100644 --- a/pv/mainwindow.cpp +++ b/pv/mainwindow.cpp @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -50,11 +51,8 @@ #include -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,17 +78,7 @@ MainWindow::MainWindow(DeviceManager &device_manager, QWidget *parent) : qRegisterMetaType("util::Timestamp"); qRegisterMetaType("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 settings; - settings.set_defaults_where_needed(); + GlobalSettings::add_change_handler(this); setup_ui(); restore_ui_settings(); @@ -98,6 +86,8 @@ MainWindow::MainWindow(DeviceManager &device_manager, QWidget *parent) : MainWindow::~MainWindow() { + GlobalSettings::remove_change_handler(this); + while (!sessions_.empty()) remove_session(sessions_.front()); } @@ -175,9 +165,9 @@ shared_ptr 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(v.get()), - SLOT(trigger_event(util::Timestamp))); + SLOT(trigger_event(int, util::Timestamp))); if (type == views::ViewTypeTrace) { views::trace::View *tv = @@ -401,6 +391,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")); @@ -561,6 +563,8 @@ bool MainWindow::restoreState(const QByteArray &state, int version) void MainWindow::session_error(const QString text, const QString info_text) { + qDebug().noquote() << "Notifying user of session error:" << info_text; + QMetaObject::invokeMethod(this, "show_session_error", Qt::QueuedConnection, Q_ARG(QString, text), Q_ARG(QString, info_text));