From: Joel Holdsworth Date: Fri, 15 Mar 2013 18:11:15 +0000 (+0000) Subject: Added Enable/Disable All Buttons X-Git-Tag: pulseview-0.1.0~83 X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=ed773982d53396e94266288a8fcd87846706f1e4;p=pulseview.git Added Enable/Disable All Buttons --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 7db89f81..8c18ad7e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -124,6 +124,7 @@ set(pulseview_HEADERS pv/sigsession.h pv/dialogs/about.h pv/dialogs/connect.h + pv/dialogs/deviceoptions.h pv/view/cursor.h pv/view/header.h pv/view/ruler.h diff --git a/pv/dialogs/deviceoptions.cpp b/pv/dialogs/deviceoptions.cpp index 232e6f6f..e6b2f847 100644 --- a/pv/dialogs/deviceoptions.cpp +++ b/pv/dialogs/deviceoptions.cpp @@ -31,6 +31,9 @@ DeviceOptions::DeviceOptions(QWidget *parent, struct sr_dev_inst *sdi) : _layout(this), _probes_box(tr("Probes"), this), _probes(this), + _probes_bar(this), + _enable_all_probes(this), + _disable_all_probes(this), _props_box(tr("Configuration"), this), _button_box(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, this), @@ -38,6 +41,11 @@ DeviceOptions::DeviceOptions(QWidget *parent, struct sr_dev_inst *sdi) : { setWindowTitle(tr("Configure Device")); + connect(&_enable_all_probes, SIGNAL(clicked()), + this, SLOT(enable_all_probes())); + connect(&_disable_all_probes, SIGNAL(clicked()), + this, SLOT(disable_all_probes())); + connect(&_button_box, SIGNAL(accepted()), this, SLOT(accept())); connect(&_button_box, SIGNAL(rejected()), this, SLOT(reject())); @@ -46,8 +54,17 @@ DeviceOptions::DeviceOptions(QWidget *parent, struct sr_dev_inst *sdi) : setup_probes(); _probes_box.setLayout(&_probes_box_layout); _probes_box_layout.addWidget(&_probes); + + _enable_all_probes.setText(tr("Enable All")); + _probes_bar.addWidget(&_enable_all_probes); + + _disable_all_probes.setText(tr("Disable All")); + _probes_bar.addWidget(&_disable_all_probes); + + _probes_box_layout.addWidget(&_probes_bar); _layout.addWidget(&_probes_box); + _props_box.setLayout(&_props_box_layout); _props_box_layout.addWidget(_device_options_binding.get_form(this)); _layout.addWidget(&_props_box); @@ -93,5 +110,24 @@ void DeviceOptions::setup_probes() } } +void DeviceOptions::set_all_probes(bool set) +{ + for (int i = 0; i < _probes.count(); i++) { + QListWidgetItem *const item = _probes.item(i); + assert(item); + item->setCheckState(set ? Qt::Checked : Qt::Unchecked); + } +} + +void DeviceOptions::enable_all_probes() +{ + set_all_probes(true); +} + +void DeviceOptions::disable_all_probes() +{ + set_all_probes(false); +} + } // namespace dialogs } // namespace pv diff --git a/pv/dialogs/deviceoptions.h b/pv/dialogs/deviceoptions.h index 2e1b7bfb..059d336e 100644 --- a/pv/dialogs/deviceoptions.h +++ b/pv/dialogs/deviceoptions.h @@ -25,6 +25,8 @@ #include #include #include +#include +#include #include #include @@ -34,6 +36,8 @@ namespace dialogs { class DeviceOptions : public QDialog { + Q_OBJECT + public: DeviceOptions(QWidget *parent, struct sr_dev_inst *sdi); @@ -43,6 +47,12 @@ protected: private: void setup_probes(); + void set_all_probes(bool set); + +private slots: + void enable_all_probes(); + void disable_all_probes(); + private: struct sr_dev_inst *const _sdi; @@ -51,6 +61,9 @@ private: QGroupBox _probes_box; QVBoxLayout _probes_box_layout; QListWidget _probes; + QToolBar _probes_bar; + QToolButton _enable_all_probes; + QToolButton _disable_all_probes; QGroupBox _props_box; QVBoxLayout _props_box_layout;