From: Soeren Apel Date: Sun, 15 Apr 2018 06:19:42 +0000 (+0200) Subject: Channels: Break up logic and analog channels into separate grids X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=commitdiff_plain;h=3b6c4a1fe75289e56be6bc2a5d1b9e24ccdd1744;hp=d13d95b3eaee713cc4eabbc0682ca545b4c31800 Channels: Break up logic and analog channels into separate grids This way, a named analog channel (e.g. "SDA analog") won't visually disturb the alignment of the logic channels if there are only ungrouped channels. To see this change in effect, you may compare using sainsmart_dds120_powerup_scl_analog.sr --- diff --git a/pv/popups/channels.cpp b/pv/popups/channels.cpp index fdb97728..cbe9a2a2 100644 --- a/pv/popups/channels.cpp +++ b/pv/popups/channels.cpp @@ -100,16 +100,23 @@ Channels::Channels(Session &session, QWidget *parent) : } // Make a vector of the remaining channels - vector< shared_ptr > global_sigs; + vector< shared_ptr > global_analog_sigs, global_logic_sigs; for (auto channel : device->channels()) { const map, shared_ptr >:: const_iterator iter = signal_map.find(channel); - if (iter != signal_map.end()) - global_sigs.push_back((*iter).second); + + if (iter != signal_map.end()) { + const shared_ptr signal = (*iter).second; + if (signal->type() == SignalBase::AnalogChannel) + global_analog_sigs.push_back(signal); + else + global_logic_sigs.push_back(signal); + } } - // Create a group - populate_group(nullptr, global_sigs); + // Create the groups for the ungrouped channels + populate_group(nullptr, global_logic_sigs); + populate_group(nullptr, global_analog_sigs); // Create the enable/disable all buttons connect(&enable_all_channels_, SIGNAL(clicked()), this, SLOT(enable_all_channels()));