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 "piqt_connection_edit.h"
#include <QFileDialog>
#include <qpiconfig.h>
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;
}

View File

@@ -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<int>(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<int>(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<BlockItem*> 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()));
}

View File

@@ -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);}

View File

@@ -6,7 +6,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>1048</width>
<width>794</width>
<height>799</height>
</rect>
</property>
@@ -86,9 +86,6 @@
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="CLineEdit" name="linePath"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="labelFilter_12">
<property name="text">
@@ -126,6 +123,56 @@ timeout:</string>
</property>
</widget>
</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>
</item>
<item>
@@ -163,7 +210,7 @@ timeout:</string>
<string>Modify</string>
</property>
<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>
</property>
</widget>
@@ -478,7 +525,7 @@ timeout:</string>
<string>Modify</string>
</property>
<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>
</property>
</widget>
@@ -583,7 +630,7 @@ timeout:</string>
<string>Modify</string>
</property>
<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>
</property>
</widget>
@@ -617,7 +664,7 @@ timeout:</string>
<string>Clear</string>
</property>
<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>
</property>
</widget>
@@ -665,6 +712,11 @@ timeout:</string>
<extends>QLineEdit</extends>
<header>clineedit.h</header>
</customwidget>
<customwidget>
<class>EComboBox</class>
<extends>QComboBox</extends>
<header>ecombobox.h</header>
</customwidget>
<customwidget>
<class>QCodeEdit</class>
<extends>QWidget</extends>
@@ -677,7 +729,7 @@ timeout:</string>
</customwidget>
</customwidgets>
<resources>
<include location="../../../../../mnt/data/orders/libs/piqt_tools/piconnedit.qrc"/>
<include location="piconnedit.qrc"/>
</resources>
<connections>
<connection>