X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Ftoolbars%2Fmainbar.cpp;h=adecf6ac978b7f6f8c652af80b3a0e7c6ebe5a84;hb=0aff286e72c0fb99e2dfeed565a8f5470b2296f0;hp=acab199da8853dbd075c1665a3dabdbb8a4fe5ab;hpb=3c35fcf0a15233dfd8042bc3063f7a4bb9d24256;p=pulseview.git diff --git a/pv/toolbars/mainbar.cpp b/pv/toolbars/mainbar.cpp index acab199d..adecf6ac 100644 --- a/pv/toolbars/mainbar.cpp +++ b/pv/toolbars/mainbar.cpp @@ -36,6 +36,7 @@ #include #include #include +#include #include @@ -87,6 +88,21 @@ MainBar::MainBar(Session &session, MainWindow &main_window) : setFloatable(false); setContextMenuPolicy(Qt::PreventContextMenu); + // Save button + QToolButton *const save_button = new QToolButton(this); + + widgets::ExportMenu *export_menu = new widgets::ExportMenu(this, + session.device_manager().context(), + main_window.action_save_as()); + connect(export_menu, + SIGNAL(format_selected(std::shared_ptr)), + &main_window_, + SLOT(export_file(std::shared_ptr))); + + save_button->setMenu(export_menu); + save_button->setDefaultAction(main_window.action_save_as()); + save_button->setPopupMode(QToolButton::MenuButtonPopup); + // Device selector menu connect(&device_selector_, SIGNAL(device_selected()), this, SLOT(on_device_selected())); @@ -118,7 +134,7 @@ MainBar::MainBar(Session &session, MainWindow &main_window) : // Setup the toolbar addAction(main_window.action_open()); - addAction(main_window.action_save_as()); + addWidget(save_button); addSeparator(); addAction(main_window.action_view_zoom_in()); addAction(main_window.action_view_zoom_out()); @@ -223,7 +239,7 @@ void MainBar::update_sample_rate_selector() } } - if (!gvar_dict) { + if (!gvar_dict.gobj()) { sample_rate_.show_none(); updating_sample_rate_ = false; return; @@ -326,7 +342,7 @@ void MainBar::update_sample_count_selector() try { auto gvar = device->config_list(ConfigKey::LIMIT_SAMPLES); - if (gvar) + if (gvar.gobj()) g_variant_get(gvar.gobj(), "(tt)", &min_sample_count, &max_sample_count); } catch(const sigrok::Error &e) {