X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Ftoolbars%2Fmainbar.cpp;h=30cff789a3436abdd1216f94d25e4abca6668bc1;hp=fff245d31e8d44b3b3986480f339c44a031b7ce9;hb=2ad82c2e40b6865481733913a2c32735602f63c4;hpb=60d9b99a32e551cffd2b537d3e157d578a761c9b diff --git a/pv/toolbars/mainbar.cpp b/pv/toolbars/mainbar.cpp index fff245d3..30cff789 100644 --- a/pv/toolbars/mainbar.cpp +++ b/pv/toolbars/mainbar.cpp @@ -110,9 +110,13 @@ MainBar::MainBar(Session &session, MainWindow &main_window) : // Save button QToolButton *const save_button = new QToolButton(this); + vector open_actions; + open_actions.push_back(main_window.action_save_as()); + open_actions.push_back(main_window.action_save_selection_as()); + widgets::ExportMenu *export_menu = new widgets::ExportMenu(this, session.device_manager().context(), - main_window.action_save_as()); + open_actions); connect(export_menu, SIGNAL(format_selected(std::shared_ptr)), &main_window_, @@ -274,7 +278,7 @@ void MainBar::update_sample_rate_selector() (*iter).second.find(sigrok::LIST) != (*iter).second.end()) { try { gvar_dict = sr_dev->config_list(ConfigKey::SAMPLERATE); - } catch(const sigrok::Error &e) { + } catch (const sigrok::Error &e) { // Failed to enunmerate samplerate (void)e; } @@ -287,8 +291,7 @@ void MainBar::update_sample_rate_selector() } if ((gvar_list = g_variant_lookup_value(gvar_dict.gobj(), - "samplerate-steps", G_VARIANT_TYPE("at")))) - { + "samplerate-steps", G_VARIANT_TYPE("at")))) { elements = (const uint64_t *)g_variant_get_fixed_array( gvar_list, &num_elements, sizeof(uint64_t)); @@ -305,18 +308,15 @@ void MainBar::update_sample_rate_selector() if (step == 1) sample_rate_.show_125_list(min, max); - else - { + else { // When the step is not 1, we cam't make a 1-2-5-10 // list of sample rates, because we may not be able to // make round numbers. Therefore in this case, show a // spin box. sample_rate_.show_min_max_step(min, max, step); } - } - else if ((gvar_list = g_variant_lookup_value(gvar_dict.gobj(), - "samplerates", G_VARIANT_TYPE("at")))) - { + } else if ((gvar_list = g_variant_lookup_value(gvar_dict.gobj(), + "samplerates", G_VARIANT_TYPE("at")))) { elements = (const uint64_t *)g_variant_get_fixed_array( gvar_list, &num_elements, sizeof(uint64_t)); sample_rate_.show_list(elements, num_elements); @@ -366,8 +366,7 @@ void MainBar::update_sample_count_selector() assert(!updating_sample_count_); updating_sample_count_ = true; - if (!sample_count_supported_) - { + if (!sample_count_supported_) { sample_count_.show_none(); updating_sample_count_ = false; return; @@ -390,7 +389,7 @@ void MainBar::update_sample_count_selector() if (gvar.gobj()) g_variant_get(gvar.gobj(), "(tt)", &min_sample_count, &max_sample_count); - } catch(const sigrok::Error &e) { + } catch (const sigrok::Error &e) { // Failed to query sample limit (void)e; } @@ -451,8 +450,7 @@ void MainBar::update_device_config_widgets() sample_count_supported_ = false; try { - for (auto entry : sr_dev->config_keys(ConfigKey::DEVICE_OPTIONS)) - { + for (auto entry : sr_dev->config_keys(ConfigKey::DEVICE_OPTIONS)) { auto key = entry.first; auto capabilities = entry.second; switch (key->id()) { @@ -461,8 +459,7 @@ void MainBar::update_device_config_widgets() sample_count_supported_ = true; break; case SR_CONF_LIMIT_FRAMES: - if (capabilities.count(Capability::SET)) - { + if (capabilities.count(Capability::SET)) { sr_dev->config_set(ConfigKey::LIMIT_FRAMES, Glib::Variant::create(1)); on_config_changed(); @@ -496,8 +493,7 @@ void MainBar::commit_sample_count() const shared_ptr sr_dev = device->device(); sample_count = sample_count_.value(); - if (sample_count_supported_) - { + if (sample_count_supported_) { try { sr_dev->config_set(ConfigKey::LIMIT_SAMPLES, Glib::Variant::create(sample_count)); @@ -582,12 +578,14 @@ void MainBar::on_config_changed() bool MainBar::eventFilter(QObject *watched, QEvent *event) { - if ((watched == &sample_count_ || watched == &sample_rate_) && - (event->type() == QEvent::ToolTip)) { + if (sample_count_supported_ && (watched == &sample_count_ || + watched == &sample_rate_) && + (event->type() == QEvent::ToolTip)) { auto sec = pv::util::Timestamp(sample_count_.value()) / sample_rate_.value(); QHelpEvent *help_event = static_cast(event); - QString str = tr("Total sampling time: %1").arg(pv::util::format_second(sec)); + QString str = tr("Total sampling time: %1").arg( + pv::util::format_time_si(sec, pv::util::SIPrefix::unspecified, 0, "s", false)); QToolTip::showText(help_event->globalPos(), str); return true;