git-svn-id: svn://db.shs.com.ru/libs@95 a8b55f48-bf90-11e4-a774-851b48703e85

This commit is contained in:
2016-07-04 07:52:07 +00:00
parent 51ebffa2af
commit 491712bd77
4 changed files with 103 additions and 16 deletions

View File

@@ -1,10 +1,28 @@
#include <QApplication> #include <QApplication>
#include "piqt_connection_edit.h" #include "piqt_connection_edit.h"
#include <QFileDialog>
#include <qpiconfig.h>
int main(int argc, char * argv[]) { int main(int argc, char * argv[]) {
QApplication a(argc, argv); QApplication a(argc, argv);
ConnectionEdit w; ConnectionEdit w;
w.show(); if (a.arguments().size() > 1) {
return a.exec(); 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;
} }

View File

@@ -23,11 +23,13 @@ ConnectionEdit::ConnectionEdit(QWidget * parent): QDialog(parent) {
piForeachC (PICodeInfo::EnumeratorInfo & e, ei->members) piForeachC (PICodeInfo::EnumeratorInfo & e, ei->members)
ui->comboMode->addItem(PI2QString(e.name + " (" + PIString::fromNumber(e.value) + ")"), QVariant::fromValue<int>(e.value)); ui->comboMode->addItem(PI2QString(e.name + " (" + PIString::fromNumber(e.value) + ")"), QVariant::fromValue<int>(e.value));
} }
ui->comboMode->setCurrentIndex(ui->comboMode->count() - 1);
ei = PICodeInfo::enumsInfo->value("PIPacketExtractor::SplitMode"); ei = PICodeInfo::enumsInfo->value("PIPacketExtractor::SplitMode");
if (ei) { if (ei) {
piForeachC (PICodeInfo::EnumeratorInfo & e, ei->members) piForeachC (PICodeInfo::EnumeratorInfo & e, ei->members)
ui->comboSplit->addItem(PI2QString(e.name + " (" + PIString::fromNumber(e.value) + ")"), QVariant::fromValue<int>(e.value)); ui->comboSplit->addItem(PI2QString(e.name + " (" + PIString::fromNumber(e.value) + ")"), QVariant::fromValue<int>(e.value));
} }
udevicenum = 0;
} }
@@ -167,7 +169,7 @@ void ConnectionEdit::selectionChanged() {
break; break;
} }
ui->lineDevice->setText(di->name()); ui->lineDevice->setText(di->name());
ui->linePath->setText(di->path()); ui->linePath->setEditText(di->path());
ui->spinDeviceDT->setValue(di->disconnectTimeout()); ui->spinDeviceDT->setValue(di->disconnectTimeout());
} }
if (type == __CV_Filter) { if (type == __CV_Filter) {
@@ -211,9 +213,13 @@ void ConnectionEdit::applyFilter(FilterItem * b) {
void ConnectionEdit::applyDevice(DeviceItem * 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->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()); b->setDisconnectTimeout(ui->spinDeviceDT->value());
recreateConnection(); recreateConnection();
} }
@@ -232,7 +238,9 @@ void ConnectionEdit::recreateConnection() {
if (loading) return; if (loading) return;
ui->blockView->reconnectAll(); ui->blockView->reconnectAll();
if (conn) delete conn; 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<BlockItem*> devs = ui->blockView->allDevices(); QList<BlockItem*> devs = ui->blockView->allDevices();
foreach (BlockItem * b, devs) { foreach (BlockItem * b, devs) {
DeviceItem * di = (DeviceItem*)b; DeviceItem * di = (DeviceItem*)b;
@@ -352,7 +360,15 @@ void ConnectionEdit::on_buttonFilterModify_clicked() {
void ConnectionEdit::on_buttonDeviceAdd_clicked() { void ConnectionEdit::on_buttonDeviceAdd_clicked() {
if (!conn) return; 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()));
} }

View File

@@ -36,6 +36,7 @@ private:
Ui::ConnectionEdit * ui; Ui::ConnectionEdit * ui;
PIConnection * conn; PIConnection * conn;
bool loading; bool loading;
int udevicenum;
private slots: private slots:
void recreateRequest() {if (!loading) QMetaObject::invokeMethod(this, "recreateConnection", Qt::QueuedConnection);} void recreateRequest() {if (!loading) QMetaObject::invokeMethod(this, "recreateConnection", Qt::QueuedConnection);}

View File

@@ -6,7 +6,7 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>1048</width> <width>794</width>
<height>799</height> <height>799</height>
</rect> </rect>
</property> </property>
@@ -86,9 +86,6 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="1">
<widget class="CLineEdit" name="linePath"/>
</item>
<item row="2" column="0"> <item row="2" column="0">
<widget class="QLabel" name="labelFilter_12"> <widget class="QLabel" name="labelFilter_12">
<property name="text"> <property name="text">
@@ -126,6 +123,56 @@ timeout:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="1">
<widget class="EComboBox" name="linePath">
<property name="editable">
<bool>true</bool>
</property>
<property name="currentIndex">
<number>-1</number>
</property>
<item>
<property name="text">
<string>eth://UDP:127.0.0.1:12345:127.0.0.1:12346</string>
</property>
</item>
<item>
<property name="text">
<string>eth://TCP:127.0.0.1:16666</string>
</property>
</item>
<item>
<property name="text">
<string>eth://UDP:192.168.0.5:16666:192.168.0.6:16667:mcast:234.0.2.1:mcast:234.0.2.2</string>
</property>
</item>
<item>
<property name="text">
<string>file://./text.txt</string>
</property>
</item>
<item>
<property name="text">
<string>binlog://./logs/:mylog_:1</string>
</property>
</item>
<item>
<property name="text">
<string>ser:///dev/ttyUSB0:9600:8:N:1</string>
</property>
</item>
<item>
<property name="text">
<string>ser://COM32:115200:8:N:1</string>
</property>
</item>
<item>
<property name="text">
<string>usb://0bb4:0c86:1:1:2</string>
</property>
</item>
</widget>
</item>
</layout> </layout>
</item> </item>
<item> <item>
@@ -163,7 +210,7 @@ timeout:</string>
<string>Modify</string> <string>Modify</string>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="../../../../../mnt/data/orders/libs/piqt_tools/piconnedit.qrc"> <iconset resource="piconnedit.qrc">
<normaloff>:/icons/document-save-.png</normaloff>:/icons/document-save-.png</iconset> <normaloff>:/icons/document-save-.png</normaloff>:/icons/document-save-.png</iconset>
</property> </property>
</widget> </widget>
@@ -478,7 +525,7 @@ timeout:</string>
<string>Modify</string> <string>Modify</string>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="../../../../../mnt/data/orders/libs/piqt_tools/piconnedit.qrc"> <iconset resource="piconnedit.qrc">
<normaloff>:/icons/document-save-.png</normaloff>:/icons/document-save-.png</iconset> <normaloff>:/icons/document-save-.png</normaloff>:/icons/document-save-.png</iconset>
</property> </property>
</widget> </widget>
@@ -583,7 +630,7 @@ timeout:</string>
<string>Modify</string> <string>Modify</string>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="../../../../../mnt/data/orders/libs/piqt_tools/piconnedit.qrc"> <iconset resource="piconnedit.qrc">
<normaloff>:/icons/document-save-.png</normaloff>:/icons/document-save-.png</iconset> <normaloff>:/icons/document-save-.png</normaloff>:/icons/document-save-.png</iconset>
</property> </property>
</widget> </widget>
@@ -617,7 +664,7 @@ timeout:</string>
<string>Clear</string> <string>Clear</string>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="../../../../../mnt/data/orders/libs/piqt_tools/piconnedit.qrc"> <iconset resource="piconnedit.qrc">
<normaloff>:/icons/edit-clear-.png</normaloff>:/icons/edit-clear-.png</iconset> <normaloff>:/icons/edit-clear-.png</normaloff>:/icons/edit-clear-.png</iconset>
</property> </property>
</widget> </widget>
@@ -665,6 +712,11 @@ timeout:</string>
<extends>QLineEdit</extends> <extends>QLineEdit</extends>
<header>clineedit.h</header> <header>clineedit.h</header>
</customwidget> </customwidget>
<customwidget>
<class>EComboBox</class>
<extends>QComboBox</extends>
<header>ecombobox.h</header>
</customwidget>
<customwidget> <customwidget>
<class>QCodeEdit</class> <class>QCodeEdit</class>
<extends>QWidget</extends> <extends>QWidget</extends>
@@ -677,7 +729,7 @@ timeout:</string>
</customwidget> </customwidget>
</customwidgets> </customwidgets>
<resources> <resources>
<include location="../../../../../mnt/data/orders/libs/piqt_tools/piconnedit.qrc"/> <include location="piconnedit.qrc"/>
</resources> </resources>
<connections> <connections>
<connection> <connection>