X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fwidgets%2Fimportmenu.cpp;h=b63256cb923cd36edaf89962975bc4e348147cfd;hp=1a45aa6207dec2cd493719bfa86f5eb376a80afb;hb=5f46ec7a6288888aa0d5026ff444e78b6a40219d;hpb=870ea3dbf35b182e120c5d84ab89bf9cb7691232 diff --git a/pv/widgets/importmenu.cpp b/pv/widgets/importmenu.cpp index 1a45aa62..b63256cb 100644 --- a/pv/widgets/importmenu.cpp +++ b/pv/widgets/importmenu.cpp @@ -31,6 +31,7 @@ using std::map; using std::pair; using std::string; using std::shared_ptr; +using std::vector; using sigrok::Context; using sigrok::InputFormat; @@ -39,27 +40,34 @@ namespace pv { namespace widgets { ImportMenu::ImportMenu(QWidget *parent, shared_ptr context, - QAction *open_action) : + vectoropen_actions) : QMenu(parent), context_(context), mapper_(this) { assert(context); - if (open_action) { - addAction(open_action); - setDefaultAction(open_action); + if (!open_actions.empty()) { + bool first_action = true; + for (auto open_action : open_actions) { + addAction(open_action); + + if (first_action) { + first_action = false; + setDefaultAction(open_action); + } + } addSeparator(); } const map > formats = context->input_formats(); - for (const pair > &f : formats) { + for (const pair > &f : formats) { assert(f.second); QAction *const action = addAction(tr("Import %1...") .arg(QString::fromStdString(f.second->description()))); - action->setData(qVariantFromValue((void*)f.second.get())); + action->setData(QVariant::fromValue((void*)f.second.get())); mapper_.setMapping(action, action); connect(action, SIGNAL(triggered()), &mapper_, SLOT(map())); }