]> sigrok.org Git - pulseview.git/blobdiff - pv/mainwindow.cpp
main window: Prefer the user specified device in new sessions
[pulseview.git] / pv / mainwindow.cpp
index a11d5286dd049c67627359e6aaeb196b7d0f5009..119ce0a791ba22a2aa1d6b1702a387fd6bef9caf 100644 (file)
@@ -338,20 +338,26 @@ void MainWindow::add_default_session()
 
        shared_ptr<Session> session = add_session();
 
-       map<string, string> dev_info;
-       shared_ptr<devices::HardwareDevice> 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<devices::HardwareDevice> user_device, other_device, demo_device;
        for (shared_ptr<devices::HardwareDevice> 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()
@@ -403,7 +409,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()));