From 491712bd7767e3115c35baf6efa44e00f46d70e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D1=8B=D1=87=D0=BA=D0=BE=D0=B2=20=D0=90=D0=BD=D0=B4?= =?UTF-8?q?=D1=80=D0=B5=D0=B9?= Date: Mon, 4 Jul 2016 07:52:07 +0000 Subject: [PATCH] git-svn-id: svn://db.shs.com.ru/libs@95 a8b55f48-bf90-11e4-a774-851b48703e85 --- piqt_utils/piconnedit_main.cpp | 22 ++++++++- piqt_utils/piqt_connection_edit.cpp | 26 ++++++++--- piqt_utils/piqt_connection_edit.h | 1 + piqt_utils/piqt_connection_edit.ui | 70 +++++++++++++++++++++++++---- 4 files changed, 103 insertions(+), 16 deletions(-) diff --git a/piqt_utils/piconnedit_main.cpp b/piqt_utils/piconnedit_main.cpp index 04065cd..7a77c5e 100644 --- a/piqt_utils/piconnedit_main.cpp +++ b/piqt_utils/piconnedit_main.cpp @@ -1,10 +1,28 @@ #include #include "piqt_connection_edit.h" +#include +#include int main(int argc, char * argv[]) { QApplication a(argc, argv); ConnectionEdit w; - w.show(); - return a.exec(); + if (a.arguments().size() > 1) { + QPIConfig cfg(a.arguments()[1]); + QByteArray model = cfg.getValue("connectionmodel", QByteArray()); + if (!model.isEmpty()) w.setModel(model); + } + if (w.exec() == QDialog::Accepted) { + QString c = QFileDialog::getSaveFileName(&w, "Save config to file", a.applicationDirPath(), "*.conf"); + if (!c.isEmpty()) { + QFile f(c); + if (f.open(QIODevice::WriteOnly)) { + QTextStream ts(&f); + ts << w.configuration(); + ts << "connectionmodel = " << QByteArray2QString(w.model()) << "\n"; + f.close(); + } + } + } + return 0; } diff --git a/piqt_utils/piqt_connection_edit.cpp b/piqt_utils/piqt_connection_edit.cpp index ca1b0be..3a40cc3 100644 --- a/piqt_utils/piqt_connection_edit.cpp +++ b/piqt_utils/piqt_connection_edit.cpp @@ -23,11 +23,13 @@ ConnectionEdit::ConnectionEdit(QWidget * parent): QDialog(parent) { piForeachC (PICodeInfo::EnumeratorInfo & e, ei->members) ui->comboMode->addItem(PI2QString(e.name + " (" + PIString::fromNumber(e.value) + ")"), QVariant::fromValue(e.value)); } + ui->comboMode->setCurrentIndex(ui->comboMode->count() - 1); ei = PICodeInfo::enumsInfo->value("PIPacketExtractor::SplitMode"); if (ei) { piForeachC (PICodeInfo::EnumeratorInfo & e, ei->members) ui->comboSplit->addItem(PI2QString(e.name + " (" + PIString::fromNumber(e.value) + ")"), QVariant::fromValue(e.value)); } + udevicenum = 0; } @@ -167,7 +169,7 @@ void ConnectionEdit::selectionChanged() { break; } ui->lineDevice->setText(di->name()); - ui->linePath->setText(di->path()); + ui->linePath->setEditText(di->path()); ui->spinDeviceDT->setValue(di->disconnectTimeout()); } if (type == __CV_Filter) { @@ -211,9 +213,13 @@ void ConnectionEdit::applyFilter(FilterItem * b) { void ConnectionEdit::applyDevice(DeviceItem * b) { - b->setName(ui->lineDevice->text()); + QString n = ui->lineDevice->text(); + if (n.isEmpty()) { + n = "device" + QString::number(udevicenum); + } + b->setName(n); b->setMode(PIIODevice::DeviceMode(ui->comboMode->itemData(ui->comboMode->currentIndex()).toInt())); - b->setPath(ui->linePath->text()); + b->setPath(ui->linePath->currentText()); b->setDisconnectTimeout(ui->spinDeviceDT->value()); recreateConnection(); } @@ -232,7 +238,9 @@ void ConnectionEdit::recreateConnection() { if (loading) return; ui->blockView->reconnectAll(); if (conn) delete conn; - conn = new PIConnection(Q2PIString(ui->lineName->text())); + PIString cn = Q2PIString(ui->lineName->text()); + if (cn.isEmpty()) conn = new PIConnection(); + else conn = new PIConnection(cn); QList devs = ui->blockView->allDevices(); foreach (BlockItem * b, devs) { DeviceItem * di = (DeviceItem*)b; @@ -352,7 +360,15 @@ void ConnectionEdit::on_buttonFilterModify_clicked() { void ConnectionEdit::on_buttonDeviceAdd_clicked() { if (!conn) return; - applyDevice(ui->blockView->addDevice(ui->lineDevice->text(), ui->linePath->text())); + QString n = ui->lineDevice->text(); + if (n.isEmpty()) { + udevicenum++; + n = "device" + QString::number(udevicenum); + } + QString p = ui->linePath->currentText(); + if (ui->linePath->findText(p) < 0) ui->linePath->addItem(p); + qDebug() << "add:" << n; + applyDevice(ui->blockView->addDevice(n, ui->linePath->currentText())); } diff --git a/piqt_utils/piqt_connection_edit.h b/piqt_utils/piqt_connection_edit.h index edb9300..6b6b903 100644 --- a/piqt_utils/piqt_connection_edit.h +++ b/piqt_utils/piqt_connection_edit.h @@ -36,6 +36,7 @@ private: Ui::ConnectionEdit * ui; PIConnection * conn; bool loading; + int udevicenum; private slots: void recreateRequest() {if (!loading) QMetaObject::invokeMethod(this, "recreateConnection", Qt::QueuedConnection);} diff --git a/piqt_utils/piqt_connection_edit.ui b/piqt_utils/piqt_connection_edit.ui index 29f0d6a..7b7102e 100644 --- a/piqt_utils/piqt_connection_edit.ui +++ b/piqt_utils/piqt_connection_edit.ui @@ -6,7 +6,7 @@ 0 0 - 1048 + 794 799 @@ -86,9 +86,6 @@ - - - @@ -126,6 +123,56 @@ timeout: + + + + true + + + -1 + + + + eth://UDP:127.0.0.1:12345:127.0.0.1:12346 + + + + + eth://TCP:127.0.0.1:16666 + + + + + eth://UDP:192.168.0.5:16666:192.168.0.6:16667:mcast:234.0.2.1:mcast:234.0.2.2 + + + + + file://./text.txt + + + + + binlog://./logs/:mylog_:1 + + + + + ser:///dev/ttyUSB0:9600:8:N:1 + + + + + ser://COM32:115200:8:N:1 + + + + + usb://0bb4:0c86:1:1:2 + + + + @@ -163,7 +210,7 @@ timeout: Modify - + :/icons/document-save-.png:/icons/document-save-.png @@ -478,7 +525,7 @@ timeout: Modify - + :/icons/document-save-.png:/icons/document-save-.png @@ -583,7 +630,7 @@ timeout: Modify - + :/icons/document-save-.png:/icons/document-save-.png @@ -617,7 +664,7 @@ timeout: Clear - + :/icons/edit-clear-.png:/icons/edit-clear-.png @@ -665,6 +712,11 @@ timeout: QLineEdit
clineedit.h
+ + EComboBox + QComboBox +
ecombobox.h
+
QCodeEdit QWidget @@ -677,7 +729,7 @@ timeout: - +