X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fmainwindow.cpp;h=c3747e0256f945f81ce94fa5298ad7ce4c0c2904;hb=39eb0d45ab6c2910f08a1ad79ac60d188fa9f6ae;hp=1a6dabd4b01f2ef11242b50ca2f9ee1f3e35a2d6;hpb=0a9fdca5f3874231414882a6bbf87a333a317711;p=pulseview.git diff --git a/pv/mainwindow.cpp b/pv/mainwindow.cpp index 1a6dabd4..c3747e02 100644 --- a/pv/mainwindow.cpp +++ b/pv/mainwindow.cpp @@ -18,6 +18,8 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#include + #ifdef ENABLE_DECODE #include #endif @@ -28,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -79,6 +82,7 @@ MainWindow::MainWindow(DeviceManager &device_manager, _session(device_manager) { setup_ui(); + restore_ui_settings(); if (open_file_name) { const QString s(QString::fromUtf8(open_file_name)); QMetaObject::invokeMethod(this, "load_file", @@ -91,8 +95,6 @@ void MainWindow::setup_ui() { setObjectName(QString::fromUtf8("MainWindow")); - resize(1024, 768); - // Set the window icon QIcon icon; icon.addFile(QString::fromUtf8(":/icons/sigrok-logo-notext.png"), @@ -238,6 +240,7 @@ void MainWindow::setup_ui() // Setup the toolbar QToolBar *const toolbar = new QToolBar(tr("Main Toolbar"), this); + toolbar->setObjectName(QString::fromUtf8("MainToolbar")); toolbar->addAction(action_open); toolbar->addAction(action_save_as); toolbar->addSeparator(); @@ -266,6 +269,31 @@ void MainWindow::setup_ui() } +void MainWindow::save_ui_settings() +{ + QSettings settings; + + settings.beginGroup("MainWindow"); + settings.setValue("state", saveState()); + settings.setValue("geometry", saveGeometry()); + settings.endGroup(); +} + +void MainWindow::restore_ui_settings() +{ + QSettings settings; + + settings.beginGroup("MainWindow"); + + if (settings.contains("geometry")) { + restoreGeometry(settings.value("geometry").toByteArray()); + restoreState(settings.value("state").toByteArray()); + } else + resize(1000, 720); + + settings.endGroup(); +} + void MainWindow::session_error( const QString text, const QString info_text) { @@ -280,6 +308,10 @@ void MainWindow::update_device_list() shared_ptr selected_device = _session.get_device(); list< shared_ptr > devices; + + if (_device_manager.devices().size() == 0) + return; + std::copy(_device_manager.devices().begin(), _device_manager.devices().end(), std::back_inserter(devices)); @@ -291,6 +323,12 @@ void MainWindow::update_device_list() _sampling_bar->set_device_list(devices, selected_device); } +void MainWindow::closeEvent(QCloseEvent *event) +{ + save_ui_settings(); + event->accept(); +} + void MainWindow::load_file(QString file_name) { const QString errorMessage(