X-Git-Url: http://git.code-monkey.de/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fpopups%2Fchannels.cpp;h=ffe42fd8ea21717444c6294d5d3d89758d18189f;hp=cbe9a2a2eb4fd7bd6b0ddb828739381261c5b597;hb=7ceb2376de956f72e2055467efe0a16a68da4bd8;hpb=3b6c4a1fe75289e56be6bc2a5d1b9e24ccdd1744 diff --git a/pv/popups/channels.cpp b/pv/popups/channels.cpp index cbe9a2a..ffe42fd 100644 --- a/pv/popups/channels.cpp +++ b/pv/popups/channels.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include #include "channels.hpp" @@ -57,12 +58,12 @@ Channels::Channels(Session &session, QWidget *parent) : Popup(parent), session_(session), updating_channels_(false), - enable_all_channels_(tr("Enable All"), this), - disable_all_channels_(tr("Disable All"), this), - enable_all_logic_channels_(tr("Enable only logic"), this), - enable_all_analog_channels_(tr("Enable only analog"), this), - enable_all_named_channels_(tr("Enable only named"), this), - enable_all_changing_channels_(tr("Enable only changing"), this), + enable_all_channels_(tr("All"), this), + disable_all_channels_(tr("All"), this), + enable_all_logic_channels_(tr("Logic"), this), + enable_all_analog_channels_(tr("Analog"), this), + enable_all_named_channels_(tr("Named"), this), + enable_all_changing_channels_(tr("Changing"), this), check_box_mapper_(this) { // Create the layout @@ -127,13 +128,17 @@ Channels::Channels(Session &session, QWidget *parent) : connect(&enable_all_changing_channels_, SIGNAL(clicked()), this, SLOT(enable_all_changing_channels())); - buttons_bar_.setRowMinimumHeight(0, 2 * QFontMetrics(QApplication::font()).height()); - buttons_bar_.addWidget(&enable_all_channels_, 1, 0); - buttons_bar_.addWidget(&disable_all_channels_, 1, 1); - buttons_bar_.addWidget(&enable_all_logic_channels_, 2, 0); - buttons_bar_.addWidget(&enable_all_analog_channels_, 2, 1); - buttons_bar_.addWidget(&enable_all_named_channels_, 2, 2); - buttons_bar_.addWidget(&enable_all_changing_channels_, 2, 3); + QLabel *label1 = new QLabel(tr("Disable: ")); + buttons_bar_.addWidget(label1); + buttons_bar_.addWidget(&disable_all_channels_); + QLabel *label2 = new QLabel(tr("Enable: ")); + buttons_bar_.addWidget(label2); + buttons_bar_.addWidget(&enable_all_channels_); + buttons_bar_.addWidget(&enable_all_logic_channels_); + buttons_bar_.addWidget(&enable_all_analog_channels_); + buttons_bar_.addWidget(&enable_all_named_channels_); + buttons_bar_.addWidget(&enable_all_changing_channels_); + buttons_bar_.addStretch(); layout_.addRow(&buttons_bar_); @@ -158,7 +163,7 @@ void Channels::set_all_channels(bool set) updating_channels_ = false; } -void Channels::set_all_channels_conditionally( +void Channels::enable_channels_conditionally( function)> cond_func) { updating_channels_ = true; @@ -169,8 +174,10 @@ void Channels::set_all_channels_conditionally( assert(sig); const bool state = cond_func(sig); - sig->set_enabled(state); - cb->setChecked(state); + if (state) { + sig->set_enabled(state); + cb->setChecked(state); + } } updating_channels_ = false; @@ -298,25 +305,25 @@ void Channels::disable_all_channels() void Channels::enable_all_logic_channels() { - set_all_channels_conditionally([](const shared_ptr signal) + enable_channels_conditionally([](const shared_ptr signal) { return signal->type() == SignalBase::LogicChannel; }); } void Channels::enable_all_analog_channels() { - set_all_channels_conditionally([](const shared_ptr signal) + enable_channels_conditionally([](const shared_ptr signal) { return signal->type() == SignalBase::AnalogChannel; }); } void Channels::enable_all_named_channels() { - set_all_channels_conditionally([](const shared_ptr signal) + enable_channels_conditionally([](const shared_ptr signal) { return signal->name() != signal->internal_name(); }); } void Channels::enable_all_changing_channels() { - set_all_channels_conditionally([](const shared_ptr signal) + enable_channels_conditionally([](const shared_ptr signal) { // Never enable channels without sample data if (!signal->has_samples())