X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Ftoolbars%2Fmainbar.cpp;h=4ff8235727fd3ffea81c118eb0ab62c847f3503b;hb=998b89fd858e0dfc09c97cc4e3de718643f0017b;hp=50a90643d71f406919172827350318a8517b5056;hpb=079d39ea735015597a65390e4c5cacc7d272f78c;p=pulseview.git diff --git a/pv/toolbars/mainbar.cpp b/pv/toolbars/mainbar.cpp index 50a9064..4ff8235 100644 --- a/pv/toolbars/mainbar.cpp +++ b/pv/toolbars/mainbar.cpp @@ -36,8 +36,9 @@ #include #include #include +#include -#include +#include using std::back_inserter; using std::copy; @@ -85,6 +86,22 @@ MainBar::MainBar(Session &session, MainWindow &main_window) : setMovable(false); 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()), @@ -117,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()); @@ -214,8 +231,6 @@ void MainBar::update_sample_rate_selector() const auto iter = keys.find(ConfigKey::SAMPLERATE); if (iter != keys.end() && (*iter).second.find(sigrok::LIST) != (*iter).second.end()) { - const auto keys = device->config_keys( - ConfigKey::DEVICE_OPTIONS); try { gvar_dict = device->config_list(ConfigKey::SAMPLERATE); } catch(const sigrok::Error &e) {