+ this, tr("Open File"), dir, tr(
+ "Sigrok Sessions (*.sr);;"
+ "All Files (*.*)"));
+
+ if (!file_name.isEmpty()) {
+ load_file(file_name);
+
+ const QString abs_path = QFileInfo(file_name).absolutePath();
+ settings.setValue(SettingOpenDirectory, abs_path);
+ }
+}
+
+void MainWindow::on_actionSaveAs_triggered()
+{
+ using pv::dialogs::StoreProgress;
+
+ // Stop any currently running capture session
+ _session.stop_capture();
+
+ QSettings settings;
+ const QString dir = settings.value(SettingSaveDirectory).toString();
+
+ // Show the dialog
+ const QString file_name = QFileDialog::getSaveFileName(
+ this, tr("Save File"), dir, tr("Sigrok Sessions (*.sr)"));
+
+ if (file_name.isEmpty())
+ return;
+
+ const QString abs_path = QFileInfo(file_name).absolutePath();
+ settings.setValue(SettingSaveDirectory, abs_path);
+
+ StoreProgress *dlg = new StoreProgress(file_name, _session, this);
+ dlg->run();
+}
+
+void MainWindow::on_actionConnect_triggered()
+{
+ // Stop any currently running capture session
+ _session.stop_capture();
+
+ dialogs::Connect dlg(this, _device_manager);
+
+ // 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());
+
+ update_device_list();