summaryrefslogtreecommitdiff
path: root/DSLogic-gui/pv/dialogs
diff options
context:
space:
mode:
authorSven Wegener <sven.wegener@stealer.net>2014-06-30 09:38:31 +0200
committerSven Wegener <sven.wegener@stealer.net>2014-06-30 09:38:31 +0200
commit79de83205964ee0182940ef7cec86b46896ed0e6 (patch)
treeccf532205a550ac926e52069649a1cc41aa555a6 /DSLogic-gui/pv/dialogs
parent3de7dbb24c71c0d894dbd734ddf9258683d9e2e1 (diff)
Update from DSLogic-v0.3.tar.gzHEADmaster
Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
Diffstat (limited to 'DSLogic-gui/pv/dialogs')
-rw-r--r--DSLogic-gui/pv/dialogs/deviceoptions.cpp24
-rw-r--r--DSLogic-gui/pv/dialogs/deviceoptions.h2
-rw-r--r--DSLogic-gui/pv/dialogs/search.cpp42
-rw-r--r--DSLogic-gui/pv/dialogs/search.h10
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;
};