X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fmainwindow.cpp;h=52b625086d4830df551f5a302e61cb1d3db30b5f;hp=786d07e28987d1fe7af3943447eb4ddd492687fa;hb=b5940cf0ef30b3519389da8c8768aee4d4424415;hpb=3ed18835d80218df744ec539946c2660fe5de812 diff --git a/pv/mainwindow.cpp b/pv/mainwindow.cpp index 786d07e2..52b62508 100644 --- a/pv/mainwindow.cpp +++ b/pv/mainwindow.cpp @@ -45,7 +45,7 @@ #include "globalsettings.hpp" #include "toolbars/mainbar.hpp" #include "util.hpp" -#include "view/view.hpp" +#include "views/trace/view.hpp" #include "views/trace/standardbar.hpp" #include @@ -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; @@ -89,6 +88,9 @@ MainWindow::MainWindow(DeviceManager &device_manager, QWidget *parent) : GlobalSettings::register_change_handler(GlobalSettings::Key_View_ShowAnalogMinorGrid, bind(&MainWindow::on_settingViewShowAnalogMinorGrid_changed, this, _1)); + GlobalSettings settings; + settings.set_defaults_where_needed(); + setup_ui(); restore_ui_settings(); } @@ -149,7 +151,7 @@ shared_ptr MainWindow::add_view(const QString &title, if (type == views::ViewTypeTrace) // This view will be the main view if there's no main bar yet - v = make_shared(session, + v = make_shared(session, (main_bar ? false : true), dock_main); if (!v) @@ -177,8 +179,8 @@ shared_ptr MainWindow::add_view(const QString &title, SLOT(trigger_event(util::Timestamp))); if (type == views::ViewTypeTrace) { - views::TraceView::View *tv = - qobject_cast(v.get()); + views::trace::View *tv = + qobject_cast(v.get()); tv->enable_coloured_bg(settings.value(GlobalSettings::Key_View_ColouredBG).toBool()); tv->enable_show_sampling_points(settings.value(GlobalSettings::Key_View_ShowSamplingPoints).toBool()); @@ -335,20 +337,26 @@ void MainWindow::add_default_session() shared_ptr session = add_session(); - map dev_info; - shared_ptr other_device, demo_device; - - // Use any available device that's not demo + // Check the list of available devices. Prefer the one that was + // found with user supplied scan specs (if applicable). Then try + // one of the auto detected devices that are not the demo device. + // Pick demo in the absence of "genuine" hardware devices. + shared_ptr user_device, other_device, demo_device; for (shared_ptr dev : device_manager_.devices()) { - if (dev->hardware_device()->driver()->name() == "demo") { + if (dev == device_manager_.user_spec_device()) { + user_device = dev; + } else if (dev->hardware_device()->driver()->name() == "demo") { demo_device = dev; } else { other_device = dev; } } - - // ...and if there isn't any, just use demo then - session->select_device(other_device ? other_device : demo_device); + if (user_device) + session->select_device(user_device); + else if (other_device) + session->select_device(other_device); + else + session->select_device(demo_device); } void MainWindow::save_sessions() @@ -400,7 +408,7 @@ void MainWindow::setup_ui() // Set the window icon QIcon icon; - icon.addFile(QString(":/icons/sigrok-logo-notext.png")); + icon.addFile(QString(":/icons/pulseview.png")); setWindowIcon(icon); view_sticky_scrolling_shortcut_ = new QShortcut(QKeySequence(Qt::Key_S), this, SLOT(on_view_sticky_scrolling_shortcut())); @@ -796,8 +804,8 @@ void MainWindow::on_settingViewColouredBg_changed(const QVariant new_value) shared_ptr viewbase = entry.second; // Only trace views have this setting - views::TraceView::View* view = - qobject_cast(viewbase.get()); + views::trace::View* view = + qobject_cast(viewbase.get()); if (view) view->enable_coloured_bg(state); } @@ -811,8 +819,8 @@ void MainWindow::on_settingViewShowSamplingPoints_changed(const QVariant new_val shared_ptr viewbase = entry.second; // Only trace views have this setting - views::TraceView::View* view = - qobject_cast(viewbase.get()); + views::trace::View* view = + qobject_cast(viewbase.get()); if (view) view->enable_show_sampling_points(state); } @@ -826,8 +834,8 @@ void MainWindow::on_settingViewShowAnalogMinorGrid_changed(const QVariant new_va shared_ptr viewbase = entry.second; // Only trace views have this setting - views::TraceView::View* view = - qobject_cast(viewbase.get()); + views::trace::View* view = + qobject_cast(viewbase.get()); if (view) view->enable_show_analog_minor_grid(state); }