]> sigrok.org Git - pulseview.git/blobdiff - pv/mainwindow.cpp
SelectableItem: Renamed to ViewItem
[pulseview.git] / pv / mainwindow.cpp
index f9aa81dfdc4e7bc2e4e843543091709821d96a0a..9fa4eee6baa2735281a4c3e4dbfda21cc7a3bb62 100644 (file)
@@ -61,7 +61,6 @@
 
 using std::list;
 using std::map;
-using std::pair;
 using std::shared_ptr;
 using std::string;
 
@@ -72,7 +71,7 @@ using sigrok::HardwareDevice;
 namespace pv {
 
 namespace view {
-class SelectableItem;
+class ViewItem;
 }
 
 const char *MainWindow::SettingOpenDirectory = "MainWindow/OpenDirectory";
@@ -110,6 +109,20 @@ void MainWindow::run_stop()
        }
 }
 
+void MainWindow::select_device(shared_ptr<Device> device)
+{
+       try {
+               session_.set_device(device);
+       } catch(const QString &e) {
+               QMessageBox msg(this);
+               msg.setText(e);
+               msg.setInformativeText(tr("Failed to Select Device"));
+               msg.setStandardButtons(QMessageBox::Ok);
+               msg.setIcon(QMessageBox::Warning);
+               msg.exec();
+       }
+}
+
 void MainWindow::setup_ui()
 {
        setObjectName(QString::fromUtf8("MainWindow"));
@@ -364,7 +377,7 @@ void MainWindow::restore_ui_settings()
        device = device_manager_.find_device_from_info(dev_info);
 
        if (device) {
-               session_.set_device(device);
+               select_device(device);
                update_device_list();
        }
 
@@ -397,13 +410,7 @@ void MainWindow::update_device_list()
                devices.push_back(selected_device);
        assert(selected_device);
 
-       list< pair< shared_ptr<Device>, string> > device_list;
-
-       for (auto device : devices)
-               device_list.push_back(make_pair(
-                       device, device_manager_.get_display_name(device)));
-
-       sampling_bar_->set_device_list(device_list, selected_device);
+       sampling_bar_->set_device_list(devices, selected_device);
 }
 
 void MainWindow::closeEvent(QCloseEvent *event)
@@ -497,7 +504,7 @@ void MainWindow::on_actionConnect_triggered()
        // If the user selected a device, select it in the device list. Select the
        // current device otherwise.
        if (dlg.exec())
-               session_.set_device(dlg.get_selected_device());
+               select_device(dlg.get_selected_device());
 
        update_device_list();
 }