X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Ftoolbars%2Fmainbar.cpp;h=5518e98b6a9ce6466515c4e14558f0656cdcb2e1;hb=4c60462b00cc329e61daedd1c2e66724077bd412;hp=9c5049dd8aa92d291e9c8b0e5b1e92b823685262;hpb=a6ed12bfdfe8588565456d04824011c66863914c;p=pulseview.git diff --git a/pv/toolbars/mainbar.cpp b/pv/toolbars/mainbar.cpp index 9c5049d..5518e98 100644 --- a/pv/toolbars/mainbar.cpp +++ b/pv/toolbars/mainbar.cpp @@ -38,6 +38,7 @@ #include #include #include +#include #include @@ -54,6 +55,7 @@ using std::vector; using sigrok::Capability; using sigrok::ConfigKey; using sigrok::Error; +using sigrok::InputFormat; namespace pv { namespace toolbars { @@ -69,7 +71,7 @@ MainBar::MainBar(Session &session, MainWindow &main_window) : device_selector_(this, session.device_manager(), main_window.action_connect()), configure_button_(this), - configure_button_action_(NULL), + configure_button_action_(nullptr), channels_button_(this), sample_count_(" samples", this), sample_rate_("Hz", this), @@ -88,6 +90,21 @@ MainBar::MainBar(Session &session, MainWindow &main_window) : setFloatable(false); setContextMenuPolicy(Qt::PreventContextMenu); + // Open button + QToolButton *const open_button = new QToolButton(this); + + widgets::ImportMenu *import_menu = new widgets::ImportMenu(this, + session.device_manager().context(), + main_window.action_open()); + connect(import_menu, + SIGNAL(format_selected(std::shared_ptr)), + &main_window_, + SLOT(import_file(std::shared_ptr))); + + open_button->setMenu(import_menu); + open_button->setDefaultAction(main_window.action_open()); + open_button->setPopupMode(QToolButton::MenuButtonPopup); + // Save button QToolButton *const save_button = new QToolButton(this); @@ -133,7 +150,7 @@ MainBar::MainBar(Session &session, MainWindow &main_window) : QIcon(":/icons/menu.svg"))); // Setup the toolbar - addAction(main_window.action_open()); + addWidget(open_button); addWidget(save_button); addSeparator(); addAction(main_window.action_view_zoom_in()); @@ -214,7 +231,7 @@ void MainBar::update_sample_rate_selector() { Glib::VariantContainerBase gvar_dict; GVariant *gvar_list; - const uint64_t *elements = NULL; + const uint64_t *elements = nullptr; gsize num_elements; map< const ConfigKey*, std::set > keys;