X-Git-Url: http://git.code-monkey.de/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fmainwindow.cpp;h=e48df546613a308b9e1374df3ea197be56fc71c5;hp=a339b19a1b8b3963c59a21a1d075a4493effdb2f;hb=ed43ef2e59baab85aa0381b08db101b7800e5c64;hpb=dd3fd4df34d129c83f7f5d80ff1e8b998beca63d diff --git a/pv/mainwindow.cpp b/pv/mainwindow.cpp index a339b19..e48df54 100644 --- a/pv/mainwindow.cpp +++ b/pv/mainwindow.cpp @@ -56,6 +56,7 @@ #include "view/logicsignal.hpp" #include "view/view.hpp" #include "widgets/exportmenu.hpp" +#include "widgets/importmenu.hpp" #ifdef ENABLE_DECODE #include "widgets/decodermenu.hpp" #endif @@ -253,6 +254,34 @@ void MainWindow::export_file(shared_ptr format) dlg->run(); } +void MainWindow::import_file(shared_ptr format) +{ + assert(format); + + QSettings settings; + const QString dir = settings.value(SettingOpenDirectory).toString(); + + // Construct the filter + const vector exts = format->extensions(); + const QString filter = exts.empty() ? "" : + tr("%1 files (*.%2)").arg( + QString::fromStdString(format->description())).arg( + QString::fromStdString(join(exts, ", *."))); + + // Show the file dialog + const QString file_name = QFileDialog::getOpenFileName( + this, tr("Import File"), dir, tr( + "%1 files (*.*);;All Files (*.*)").arg( + QString::fromStdString(format->description()))); + + if (!file_name.isEmpty()) { + load_file(file_name, format); + + const QString abs_path = QFileInfo(file_name).absolutePath(); + settings.setValue(SettingOpenDirectory, abs_path); + } +} + void MainWindow::setup_ui() { setObjectName(QString::fromUtf8("MainWindow")); @@ -305,6 +334,14 @@ void MainWindow::setup_ui() this, SLOT(export_file(std::shared_ptr))); menu_file->addAction(menu_file_export->menuAction()); + widgets::ImportMenu *menu_file_import = new widgets::ImportMenu(this, + device_manager_.context()); + menu_file_import->setTitle(tr("&Import")); + connect(menu_file_import, + SIGNAL(format_selected(std::shared_ptr)), + this, SLOT(import_file(std::shared_ptr))); + menu_file->addAction(menu_file_import->menuAction()); + menu_file->addSeparator(); action_connect_->setText(tr("&Connect to Device..."));