#include <pv/popups/channels.hpp>
#include <pv/util.hpp>
#include <pv/widgets/exportmenu.hpp>
+#include <pv/widgets/importmenu.hpp>
#include <libsigrokcxx/libsigrokcxx.hpp>
using sigrok::Capability;
using sigrok::ConfigKey;
using sigrok::Error;
+using sigrok::InputFormat;
namespace pv {
namespace toolbars {
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<sigrok::InputFormat>)),
+ &main_window_,
+ SLOT(import_file(std::shared_ptr<sigrok::InputFormat>)));
+
+ 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);
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());
GVariant *gvar_list;
const uint64_t *elements = NULL;
gsize num_elements;
+ map< const ConfigKey*, std::set<Capability> > keys;
if (updating_sample_rate_)
return;
updating_sample_rate_ = true;
const shared_ptr<sigrok::Device> sr_dev = device->device();
- const auto keys = sr_dev->config_keys(ConfigKey::DEVICE_OPTIONS);
+
+ try {
+ keys = sr_dev->config_keys(ConfigKey::DEVICE_OPTIONS);
+ } catch (Error) {}
+
const auto iter = keys.find(ConfigKey::SAMPLERATE);
if (iter != keys.end() &&
(*iter).second.find(sigrok::LIST) != (*iter).second.end()) {