X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fpopups%2Fchannels.cpp;h=c3388581f2c402426e62a0281d61d809fa899eec;hp=7dedb317cf8428043ca9d3701744e04aae71a86b;hb=d9ea96280ab1128427143660ae375c30b19aa0cb;hpb=fe3a1c218407f6b8a0d7ac7c454593809212ea9e diff --git a/pv/popups/channels.cpp b/pv/popups/channels.cpp index 7dedb317..c3388581 100644 --- a/pv/popups/channels.cpp +++ b/pv/popups/channels.cpp @@ -20,6 +20,14 @@ #include +#ifdef _WIN32 +// Windows: Avoid boost/thread namespace pollution (which includes windows.h). +#define NOGDI +#define NORESOURCE +#endif +#include +#include + #include #include #include @@ -27,7 +35,8 @@ #include "channels.hpp" -#include +#include +#include #include #include @@ -42,6 +51,7 @@ using std::map; using std::mutex; using std::set; using std::shared_ptr; +using std::unordered_set; using std::vector; using sigrok::Channel; @@ -64,27 +74,24 @@ Channels::Channels(Session &session, QWidget *parent) : // Create the layout setLayout(&layout_); - shared_ptr device = session_.device(); + const shared_ptr device = session_.device()->device(); assert(device); // Collect a set of signals map, shared_ptr > signal_map; - shared_lock lock(session_.signals_mutex()); - const vector< shared_ptr > &sigs(session_.signals()); + const unordered_set< shared_ptr > sigs(session_.signals()); for (const shared_ptr &sig : sigs) signal_map[sig->channel()] = sig; // Populate channel groups - for (auto entry : device->channel_groups()) - { + for (auto entry : device->channel_groups()) { shared_ptr group = entry.second; // Make a set of signals, and removed this signals from the // signal map. vector< shared_ptr > group_sigs; - for (auto channel : group->channels()) - { + for (auto channel : group->channels()) { const auto iter = signal_map.find(channel); if (iter == signal_map.end()) @@ -99,8 +106,7 @@ Channels::Channels(Session &session, QWidget *parent) : // Make a vector of the remaining channels vector< shared_ptr > global_sigs; - for (auto channel : device->channels()) - { + for (auto channel : device->channels()) { const map, shared_ptr >:: const_iterator iter = signal_map.find(channel); if (iter != signal_map.end()) @@ -108,7 +114,7 @@ Channels::Channels(Session &session, QWidget *parent) : } // Create a group - populate_group(NULL, global_sigs); + populate_group(nullptr, global_sigs); // Create the enable/disable all buttons connect(&enable_all_channels_, SIGNAL(clicked()), @@ -135,9 +141,8 @@ void Channels::set_all_channels(bool set) updating_channels_ = true; for (map >::const_iterator i = - check_box_signal_map_.begin(); - i != check_box_signal_map_.end(); i++) - { + check_box_signal_map_.begin(); + i != check_box_signal_map_.end(); i++) { const shared_ptr sig = (*i).second; assert(sig); @@ -151,14 +156,14 @@ void Channels::set_all_channels(bool set) void Channels::populate_group(shared_ptr group, const vector< shared_ptr > sigs) { - using pv::prop::binding::DeviceOptions; + using pv::binding::Device; // Only bind options if this is a group. We don't do it for general // options, because these properties are shown in the device config // popup. - shared_ptr binding; + shared_ptr binding; if (group) - binding = shared_ptr(new DeviceOptions(group)); + binding = shared_ptr(new Device(group)); // Create a title if the group is going to have any content if ((!sigs.empty() || (binding && !binding->properties().empty())) && @@ -185,8 +190,7 @@ QGridLayout* Channels::create_channel_group_grid( int row = 0, col = 0; QGridLayout *const grid = new QGridLayout(); - for (const shared_ptr& sig : sigs) - { + for (const shared_ptr& sig : sigs) { assert(sig); QCheckBox *const checkbox = new QCheckBox(sig->name()); @@ -198,23 +202,22 @@ QGridLayout* Channels::create_channel_group_grid( check_box_signal_map_[checkbox] = sig; - if(++col >= 8) + if (++col >= 8) col = 0, row++; } return grid; } -void Channels::showEvent(QShowEvent *e) +void Channels::showEvent(QShowEvent *event) { - pv::widgets::Popup::showEvent(e); + pv::widgets::Popup::showEvent(event); updating_channels_ = true; for (map >::const_iterator i = - check_box_signal_map_.begin(); - i != check_box_signal_map_.end(); i++) - { + check_box_signal_map_.begin(); + i != check_box_signal_map_.end(); i++) { const shared_ptr sig = (*i).second; assert(sig);