X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fmainwindow.cpp;h=879c8a522d9121f8c27a907a9d1fc2bf78717dc4;hb=24c29d4f917ffac5a280d572cc04d1edb66a81b9;hp=33ebdd648e84e09fd6c6614eeb6a6511ce413047;hpb=9eae6de4dd0a3c628026eca6ca55cef8b70bfa86;p=pulseview.git diff --git a/pv/mainwindow.cpp b/pv/mainwindow.cpp index 33ebdd6..879c8a5 100644 --- a/pv/mainwindow.cpp +++ b/pv/mainwindow.cpp @@ -39,9 +39,11 @@ #include "mainwindow.hpp" #include "devicemanager.hpp" +#include "globalsettings.hpp" #include "util.hpp" #include "devices/hardwaredevice.hpp" #include "dialogs/about.hpp" +#include "dialogs/settings.hpp" #include "toolbars/mainbar.hpp" #include "view/view.hpp" #include "views/trace/standardbar.hpp" @@ -65,6 +67,9 @@ class ViewItem; using toolbars::MainBar; +using std::bind; +using std::placeholders::_1; + const QString MainWindow::WindowTitle = tr("PulseView"); MainWindow::MainWindow(DeviceManager &device_manager, @@ -82,6 +87,9 @@ MainWindow::MainWindow(DeviceManager &device_manager, qRegisterMetaType("util::Timestamp"); qRegisterMetaType("uint64_t"); + GlobalSettings::register_change_handler(GlobalSettings::Key_View_ColouredBG, + bind(&MainWindow::on_settingViewColouredBg_changed, this, _1)); + setup_ui(); restore_ui_settings(); @@ -150,6 +158,8 @@ shared_ptr MainWindow::get_active_view() const shared_ptr MainWindow::add_view(const QString &title, views::ViewType type, Session &session) { + GlobalSettings settings; + QMainWindow *main_window = nullptr; for (auto entry : session_windows_) if (entry.first.get() == &session) @@ -190,7 +200,7 @@ shared_ptr MainWindow::add_view(const QString &title, SLOT(trigger_event(util::Timestamp))); v->enable_sticky_scrolling(true); - v->enable_coloured_bg(true); + v->enable_coloured_bg(settings.value(GlobalSettings::Key_View_ColouredBG).toBool()); shared_ptr main_bar = session.main_bar(); if (!main_bar) { @@ -392,6 +402,8 @@ void MainWindow::setup_ui() this, SLOT(on_run_stop_clicked())); connect(&session_state_mapper_, SIGNAL(mapped(QObject*)), this, SLOT(on_capture_state_changed(QObject*))); + connect(settings_button_, SIGNAL(clicked(bool)), + this, SLOT(on_settings_clicked())); connect(&session_selector_, SIGNAL(tabCloseRequested(int)), this, SLOT(on_tab_close_requested(int))); @@ -591,6 +603,12 @@ void MainWindow::on_run_stop_clicked() } } +void MainWindow::on_settings_clicked() +{ + dialogs::Settings dlg; + dlg.exec(); +} + void MainWindow::on_session_name_changed() { // Update the corresponding dock widget's name(s) @@ -714,11 +732,25 @@ void MainWindow::on_view_sticky_scrolling_shortcut() void MainWindow::on_view_coloured_bg_shortcut() { - shared_ptr viewbase = get_active_view(); - views::TraceView::View* view = - qobject_cast(viewbase.get()); - if (view) - view->toggle_coloured_bg(); + GlobalSettings settings; + + bool state = settings.value(GlobalSettings::Key_View_ColouredBG).toBool(); + settings.setValue(GlobalSettings::Key_View_ColouredBG, !state); +} + +void MainWindow::on_settingViewColouredBg_changed(const QVariant new_value) +{ + bool state = new_value.toBool(); + + for (auto entry : view_docks_) { + shared_ptr viewbase = entry.second; + + // Only trace views have this setting + views::TraceView::View* view = + qobject_cast(viewbase.get()); + if (view) + view->enable_coloured_bg(state); + } } void MainWindow::on_actionAbout_triggered()