diff options
author | Sven Wegener <sven.wegener@stealer.net> | 2014-06-30 09:38:31 +0200 |
---|---|---|
committer | Sven Wegener <sven.wegener@stealer.net> | 2014-06-30 09:38:31 +0200 |
commit | 79de83205964ee0182940ef7cec86b46896ed0e6 (patch) | |
tree | ccf532205a550ac926e52069649a1cc41aa555a6 /DSLogic-gui/pv/dialogs | |
parent | 3de7dbb24c71c0d894dbd734ddf9258683d9e2e1 (diff) |
Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
Diffstat (limited to 'DSLogic-gui/pv/dialogs')
-rw-r--r-- | DSLogic-gui/pv/dialogs/deviceoptions.cpp | 24 | ||||
-rw-r--r-- | DSLogic-gui/pv/dialogs/deviceoptions.h | 2 | ||||
-rw-r--r-- | DSLogic-gui/pv/dialogs/search.cpp | 42 | ||||
-rw-r--r-- | DSLogic-gui/pv/dialogs/search.h | 10 |
4 files changed, 58 insertions, 20 deletions
diff --git a/DSLogic-gui/pv/dialogs/deviceoptions.cpp b/DSLogic-gui/pv/dialogs/deviceoptions.cpp index 75023c3..726fc92 100644 --- a/DSLogic-gui/pv/dialogs/deviceoptions.cpp +++ b/DSLogic-gui/pv/dialogs/deviceoptions.cpp @@ -50,7 +50,9 @@ DeviceOptions::DeviceOptions(QWidget *parent, struct sr_dev_inst *sdi) : setWindowTitle(tr("Configure Device")); setLayout(&_layout); + _last_mode = sdi->mode; _mode_comboBox.addItem(mode_strings[LOGIC]); + _mode_comboBox.addItem(mode_strings[DSO]); _mode_comboBox.addItem(mode_strings[ANALOG]); _mode_comboBox.setCurrentIndex(_sdi->mode); _props_box.setLayout(&_props_box_layout); @@ -77,10 +79,11 @@ void DeviceOptions::accept() QDialog::accept(); + _last_mode = _sdi->mode; // Commit the properties - const vector< shared_ptr<pv::prop::Property> > &properties = + const vector< boost::shared_ptr<pv::prop::Property> > &properties = _device_options_binding.properties(); - BOOST_FOREACH(shared_ptr<pv::prop::Property> p, properties) { + BOOST_FOREACH(boost::shared_ptr<pv::prop::Property> p, properties) { assert(p); p->commit(); } @@ -96,6 +99,15 @@ void DeviceOptions::accept() } } +void DeviceOptions::reject() +{ + using namespace Qt; + QDialog::reject(); + + // Mode Recovery + sr_config_set(_sdi, SR_CONF_DEVICE_MODE, g_variant_new_string(_mode_comboBox.itemText(_last_mode).toLocal8Bit())); +} + QWidget* DeviceOptions::get_property_form() { QWidget *const form = new QWidget(this); @@ -103,9 +115,9 @@ QWidget* DeviceOptions::get_property_form() form->setLayout(layout); layout->addRow("Device Mode", &_mode_comboBox); - const vector< shared_ptr<pv::prop::Property> > &properties = + const vector< boost::shared_ptr<pv::prop::Property> > &properties = _device_options_binding.properties(); - BOOST_FOREACH(shared_ptr<pv::prop::Property> p, properties) + BOOST_FOREACH(boost::shared_ptr<pv::prop::Property> p, properties) { assert(p); const QString label = p->labeled_widget() ? QString() : p->name(); @@ -182,7 +194,9 @@ void DeviceOptions::disable_all_probes() void DeviceOptions::mode_changed(QString mode) { - sr_config_set(_sdi, SR_CONF_DEVICE_MODE, g_variant_new_string(mode.toLocal8Bit())); + (void)mode; + // Commit mode + sr_config_set(_sdi, SR_CONF_DEVICE_MODE, g_variant_new_string(_mode_comboBox.currentText().toLocal8Bit())); setup_probes(); } diff --git a/DSLogic-gui/pv/dialogs/deviceoptions.h b/DSLogic-gui/pv/dialogs/deviceoptions.h index 2ee2534..ad804d2 100644 --- a/DSLogic-gui/pv/dialogs/deviceoptions.h +++ b/DSLogic-gui/pv/dialogs/deviceoptions.h @@ -51,6 +51,7 @@ public: protected: void accept(); + void reject(); private: @@ -67,6 +68,7 @@ private slots: private: struct sr_dev_inst *const _sdi; + int _last_mode; QVBoxLayout _layout; diff --git a/DSLogic-gui/pv/dialogs/search.cpp b/DSLogic-gui/pv/dialogs/search.cpp index 50c15c9..5945491 100644 --- a/DSLogic-gui/pv/dialogs/search.cpp +++ b/DSLogic-gui/pv/dialogs/search.cpp @@ -22,33 +22,55 @@ #include "search.h"
-#include "ui_search.h"
#include <assert.h>
+#include <QRegExpValidator>
namespace pv {
namespace dialogs {
Search::Search(QWidget *parent, struct sr_dev_inst *sdi, QString pattern) :
QDialog(parent),
- ui(new Ui::Search),
_sdi(sdi)
{
assert(_sdi);
- ui->setupUi(this);
+
+ QFont font("Monaco");
+ font.setStyleHint(QFont::Monospace);
+ font.setFixedPitch(true);
QRegExp value_rx("[10XRFCxrfc ]+");
QValidator *value_validator = new QRegExpValidator(value_rx, this);
- //ui->_value_lineEdit->setText("X X X X X X X X X X X X X X X X");
- ui->_value_lineEdit->setText(pattern);
- ui->_value_lineEdit->setValidator(value_validator);
- ui->_value_lineEdit->setMaxLength(16 * 2 - 1);
- ui->_value_lineEdit->setInputMask("X X X X X X X X X X X X X X X X");
+
+ search_lineEdit.setText(pattern);
+ search_lineEdit.setValidator(value_validator);
+ search_lineEdit.setMaxLength(16 * 2 - 1);
+ search_lineEdit.setInputMask("X X X X X X X X X X X X X X X X");
+ search_lineEdit.setFont(font);
+
+ QLabel *search_label = new QLabel("1 1 1 1 1\n5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0");
+ search_label->setFont(font);
+
+ search_buttonBox.addButton(QDialogButtonBox::Ok);
+ search_buttonBox.addButton(QDialogButtonBox::Cancel);
+
+ QGridLayout *search_layout = new QGridLayout();
+ search_layout->addWidget(search_label, 0, 1);
+ search_layout->addWidget(new QLabel("Search Value: "), 1,0, Qt::AlignRight);
+ search_layout->addWidget(&search_lineEdit, 1, 1);
+ search_layout->addWidget(new QLabel(" "), 2,0);
+ search_layout->addWidget(new QLabel("X: Don't care\n0: Low level\n1: High level\nR: Rising edge\nF: Falling edge\nC: Rising/Falling edge"), 3, 0);
+ search_layout->addWidget(&search_buttonBox, 4, 2);
+ //search_layout->addStretch(1);
+
+ setLayout(search_layout);
+
+ connect(&search_buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
+ connect(&search_buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
}
Search::~Search()
{
- delete ui;
}
void Search::accept()
@@ -60,7 +82,7 @@ void Search::accept() QString Search::get_pattern()
{
- QString pattern = ui->_value_lineEdit->text();
+ QString pattern = search_lineEdit.text();
//pattern.remove(QChar('/r'), Qt::CaseInsensitive);
return pattern;
}
diff --git a/DSLogic-gui/pv/dialogs/search.h b/DSLogic-gui/pv/dialogs/search.h index a4dea4c..07c3312 100644 --- a/DSLogic-gui/pv/dialogs/search.h +++ b/DSLogic-gui/pv/dialogs/search.h @@ -27,13 +27,12 @@ #include <QDialog>
#include <QLabel>
#include <QLineEdit>
+#include <QVBoxLayout>
+#include <QGridLayout>
+#include <QDialogButtonBox>
#include "../sigsession.h"
#include <libsigrok4DSLogic/libsigrok.h>
-namespace Ui {
-class Search;
-}
-
namespace pv {
namespace dialogs {
@@ -56,7 +55,8 @@ signals: public slots:
private:
- Ui::Search *ui;
+ QLineEdit search_lineEdit;
+ QDialogButtonBox search_buttonBox;
sr_dev_inst *_sdi;
};
|