add_decoder_button->setMenu(main_window_.menu_decoder_add());
#endif
- // Setup the menu
+ // Setup the burger menu
QMenu *const menu = new QMenu(this);
+ QMenu *const menu_view = new QMenu;
+ menu_view->setTitle(tr("&View"));
+ menu_view->addAction(main_window.action_view_sticky_scrolling());
+
QMenu *const menu_help = new QMenu;
menu_help->setTitle(tr("&Help"));
menu_help->addAction(main_window.action_about());
+ menu->addAction(menu_view->menuAction());
+ menu->addSeparator();
menu->addAction(menu_help->menuAction());
menu->addSeparator();
menu->addAction(main_window.action_quit());
{
uint64_t sample_count = 0;
- if (updating_sample_count_)
- return;
-
const shared_ptr<devices::Device> device =
device_selector_.selected_device();
if (!device)
const shared_ptr<sigrok::Device> sr_dev = device->device();
sample_count = sample_count_.value();
-
- // Set the sample count
- assert(!updating_sample_count_);
- updating_sample_count_ = true;
if (sample_count_supported_)
{
try {
sr_dev->config_set(ConfigKey::LIMIT_SAMPLES,
Glib::Variant<guint64>::create(sample_count));
- on_config_changed();
+ update_sample_count_selector();
} catch (Error error) {
qDebug() << "Failed to configure sample count.";
return;
}
}
- updating_sample_count_ = false;
+
+ // Devices with built-in memory might impose limits on certain
+ // configurations, so let's check what sample rate the driver
+ // lets us use now.
+ update_sample_rate_selector();
}
void MainBar::commit_sample_rate()
{
uint64_t sample_rate = 0;
- if (updating_sample_rate_)
- return;
-
const shared_ptr<devices::Device> device =
device_selector_.selected_device();
if (!device)
if (sample_rate == 0)
return;
- // Set the samplerate
- assert(!updating_sample_rate_);
- updating_sample_rate_ = true;
try {
sr_dev->config_set(ConfigKey::SAMPLERATE,
Glib::Variant<guint64>::create(sample_rate));
- on_config_changed();
+ update_sample_rate_selector();
} catch (Error error) {
qDebug() << "Failed to configure samplerate.";
return;
}
- updating_sample_rate_ = false;
+
+ // Devices with built-in memory might impose limits on certain
+ // configurations, so let's check what sample count the driver
+ // lets us use now.
+ update_sample_count_selector();
}
void MainBar::on_device_selected()
void MainBar::on_sample_count_changed()
{
- commit_sample_count();
+ if (!updating_sample_count_)
+ commit_sample_count();
}
void MainBar::on_sample_rate_changed()
{
- commit_sample_rate();
+ if (!updating_sample_rate_)
+ commit_sample_rate();
}
void MainBar::on_run_stop()
void MainBar::on_config_changed()
{
commit_sample_count();
- update_sample_count_selector();
commit_sample_rate();
- update_sample_rate_selector();
}
bool MainBar::eventFilter(QObject *watched, QEvent *event)