Skip to content

Commit c1e96b5

Browse files
committed
Add cached settings to Client.Ui.Dialogs.Device
1 parent 65c3705 commit c1e96b5

File tree

4 files changed

+84
-32
lines changed

4 files changed

+84
-32
lines changed

src/client/gui/dialogs/client_dialogdevice.cpp

Lines changed: 78 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,9 @@
3636

3737
mbClientDialogDevice::Strings::Strings() :
3838
mbCoreDialogDevice::Strings(),
39-
createDeviceForPort(QStringLiteral("create_device_for_port")){
40-
39+
createDeviceForPort(QStringLiteral("create_device_for_port")),
40+
portName (QStringLiteral("portName"))
41+
{
4142
}
4243

4344
const mbClientDialogDevice::Strings &mbClientDialogDevice::Strings::instance()
@@ -178,13 +179,66 @@ mbClientDialogDevice::~mbClientDialogDevice()
178179

179180
MBSETTINGS mbClientDialogDevice::cachedSettings() const
180181
{
182+
const mbClientPort::Strings &ms = mbClientPort::Strings();
183+
const Modbus::Strings ss = Modbus::Strings::instance();
184+
const Strings &ds = Strings();
185+
const QString &prefix = Strings().settings_prefix;
186+
181187
MBSETTINGS m = mbCoreDialogDevice::cachedSettings();
188+
189+
m[prefix+ds.portName ] = ui->lnPortName ->text ();
190+
m[prefix+ms.type ] = ui->cmbPortType ->currentText();
191+
m[prefix+ss.serialPortName ] = ui->cmbSerialPortName->currentText();
192+
m[prefix+ss.baudRate ] = ui->cmbBaudRate ->currentText();
193+
m[prefix+ss.dataBits ] = ui->cmbDataBits ->currentText();
194+
m[prefix+ss.parity ] = ui->cmbParity ->currentText();
195+
m[prefix+ss.stopBits ] = ui->cmbStopBits ->currentText();
196+
m[prefix+ss.flowControl ] = ui->cmbFlowControl ->currentText();
197+
m[prefix+ss.timeoutFirstByte] = ui->spTimeoutFB ->value ();
198+
m[prefix+ss.timeoutInterByte] = ui->spTimeoutIB ->value ();
199+
m[prefix+ss.host ] = ui->lnHost ->text ();
200+
m[prefix+ss.port ] = ui->spPort ->value ();
201+
m[prefix+ss.timeout ] = ui->spTimeout ->value ();
202+
182203
return m;
183204
}
184205

185206
void mbClientDialogDevice::setCachedSettings(const MBSETTINGS &m)
186207
{
187208
mbCoreDialogDevice::setCachedSettings(m);
209+
210+
const mbClientPort::Strings &ms = mbClientPort::Strings();
211+
const Modbus::Strings ss = Modbus::Strings::instance();
212+
const Strings &ds = Strings();
213+
const QString &prefix = Strings().settings_prefix;
214+
215+
MBSETTINGS::const_iterator it;
216+
MBSETTINGS::const_iterator end = m.end();
217+
218+
it = m.find(prefix+ds.portName ); if (it != end) ui->lnPortName ->setText (it.value().toString());
219+
it = m.find(prefix+ms.type ); if (it != end) ui->cmbPortType ->setCurrentText(it.value().toString());
220+
it = m.find(prefix+ss.serialPortName ); if (it != end) ui->cmbSerialPortName->setCurrentText(it.value().toString());
221+
it = m.find(prefix+ss.baudRate ); if (it != end) ui->cmbBaudRate ->setCurrentText(it.value().toString());
222+
it = m.find(prefix+ss.dataBits ); if (it != end) ui->cmbDataBits ->setCurrentText(it.value().toString());
223+
it = m.find(prefix+ss.parity ); if (it != end) ui->cmbParity ->setCurrentText(it.value().toString());
224+
it = m.find(prefix+ss.stopBits ); if (it != end) ui->cmbStopBits ->setCurrentText(it.value().toString());
225+
it = m.find(prefix+ss.flowControl ); if (it != end) ui->cmbFlowControl ->setCurrentText(it.value().toString());
226+
it = m.find(prefix+ss.timeoutFirstByte); if (it != end) ui->spTimeoutFB ->setValue (it.value().toInt());
227+
it = m.find(prefix+ss.timeoutInterByte); if (it != end) ui->spTimeoutIB ->setValue (it.value().toInt());
228+
it = m.find(prefix+ss.host ); if (it != end) ui->lnHost ->setText (it.value().toString());
229+
it = m.find(prefix+ss.port ); if (it != end) ui->spPort ->setValue (it.value().toInt());
230+
it = m.find(prefix+ss.timeout ); if (it != end) ui->spTimeout ->setValue (it.value().toInt());
231+
232+
QString portName = ui->lnPortName->text();
233+
if (!portName.isEmpty())
234+
ui->cmbPort->setCurrentText(portName);
235+
}
236+
237+
MBSETTINGS mbClientDialogDevice::getSettings(const MBSETTINGS &settings, const QString &title)
238+
{
239+
fillPortNames();
240+
return mbCoreDialogDevice::getSettings(settings, title);
241+
188242
}
189243

190244
void mbClientDialogDevice::fillForm(const MBSETTINGS &m)
@@ -255,48 +309,42 @@ void mbClientDialogDevice::setPortName(const QString &portName)
255309

256310
void mbClientDialogDevice::fillPortForm(const MBSETTINGS &m)
257311
{
258-
mbClientPort::Strings ms = mbClientPort::Strings();
312+
mbClientPort::Strings ms = mbClientPort::Strings();
259313
Modbus::Strings ss = Modbus::Strings::instance();
260314

261-
QString portName = m.value(ms.name).toString();
262-
//ui->cmbPort->setCurrentText(portName);
263-
ui->lnPortName->setText(portName);
264-
ui->cmbPortType->setCurrentText(m.value(ms.type).toString());
265-
//--------------------- SERIAL ---------------------
266-
ui->cmbSerialPortName->setCurrentText(m.value(ss.serialPortName).toString());
267-
ui->cmbBaudRate->setCurrentText(m.value(ss.baudRate).toString());
268-
ui->cmbDataBits->setCurrentText(m.value(ss.dataBits).toString());
269-
ui->cmbParity->setCurrentText(m.value(ss.parity).toString());
270-
ui->cmbStopBits->setCurrentText(m.value(ss.stopBits).toString());
271-
ui->cmbFlowControl->setCurrentText(m.value(ss.flowControl).toString());
272-
ui->spTimeoutFB->setValue(m.value(ss.timeoutFirstByte).toInt());
273-
ui->spTimeoutIB->setValue(m.value(ss.timeoutInterByte).toInt());
274-
//--------------------- TCP ---------------------
275-
ui->lnHost ->setText (m.value(ss.host ).toString());
276-
ui->spPort ->setValue(m.value(ss.port ).toInt());
277-
ui->spTimeout->setValue(m.value(ss.timeout).toInt());
315+
ui->lnPortName ->setText (m.value(ms.name ).toString());
316+
ui->cmbPortType ->setCurrentText(m.value(ms.type ).toString());
317+
ui->cmbSerialPortName->setCurrentText(m.value(ss.serialPortName ).toString());
318+
ui->cmbBaudRate ->setCurrentText(m.value(ss.baudRate ).toString());
319+
ui->cmbDataBits ->setCurrentText(m.value(ss.dataBits ).toString());
320+
ui->cmbParity ->setCurrentText(m.value(ss.parity ).toString());
321+
ui->cmbStopBits ->setCurrentText(m.value(ss.stopBits ).toString());
322+
ui->cmbFlowControl ->setCurrentText(m.value(ss.flowControl ).toString());
323+
ui->spTimeoutFB ->setValue (m.value(ss.timeoutFirstByte).toInt());
324+
ui->spTimeoutIB ->setValue (m.value(ss.timeoutInterByte).toInt());
325+
ui->lnHost ->setText (m.value(ss.host ).toString());
326+
ui->spPort ->setValue (m.value(ss.port ).toInt());
327+
ui->spTimeout ->setValue (m.value(ss.timeout ).toInt());
278328
}
279329

280330
void mbClientDialogDevice::fillPortData(MBSETTINGS &m) const
281331
{
282-
mbClientPort::Strings ms = mbClientPort::Strings();
332+
mbClientPort::Strings ms = mbClientPort::Strings();
283333
Modbus::Strings ss = Modbus::Strings::instance();
284334

285-
m[ms.name] = ui->lnPortName->text();
286-
m[ms.type] = ui->cmbPortType->currentText();
287-
//--------------------- SERIAL ---------------------
335+
m[ms.name ] = ui->lnPortName ->text ();
336+
m[ms.type ] = ui->cmbPortType ->currentText();
288337
m[ss.serialPortName ] = ui->cmbSerialPortName->currentText();
289338
m[ss.baudRate ] = ui->cmbBaudRate ->currentText();
290339
m[ss.dataBits ] = ui->cmbDataBits ->currentText();
291340
m[ss.parity ] = ui->cmbParity ->currentText();
292341
m[ss.stopBits ] = ui->cmbStopBits ->currentText();
293342
m[ss.flowControl ] = ui->cmbFlowControl ->currentText();
294-
m[ss.timeoutFirstByte] = ui->spTimeoutFB ->value();
295-
m[ss.timeoutInterByte] = ui->spTimeoutIB ->value();
296-
//--------------------- TCP ---------------------
297-
m[ss.host ] = ui->lnHost ->text();
298-
m[ss.port ] = ui->spPort ->value();
299-
m[ss.timeout] = ui->spTimeout->value();
343+
m[ss.timeoutFirstByte] = ui->spTimeoutFB ->value ();
344+
m[ss.timeoutInterByte] = ui->spTimeoutIB ->value ();
345+
m[ss.host ] = ui->lnHost ->text ();
346+
m[ss.port ] = ui->spPort ->value ();
347+
m[ss.timeout ] = ui->spTimeout ->value ();
300348
}
301349

302350
void mbClientDialogDevice::setPort(int i)

src/client/gui/dialogs/client_dialogdevice.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ class mbClientDialogDevice : public mbCoreDialogDevice
3737
struct Strings : public mbCoreDialogDevice::Strings
3838
{
3939
const QString createDeviceForPort;
40+
const QString portName;
4041
Strings();
4142
static const Strings &instance();
4243
};
@@ -49,6 +50,9 @@ class mbClientDialogDevice : public mbCoreDialogDevice
4950
MBSETTINGS cachedSettings() const override;
5051
void setCachedSettings(const MBSETTINGS &m) override;
5152

53+
public:
54+
MBSETTINGS getSettings(const MBSETTINGS &settings, const QString &title) override;
55+
5256
private:
5357
void fillForm(const MBSETTINGS& params) override;
5458
void fillData(MBSETTINGS& params) const override;

src/client/gui/dialogs/client_dialogdevice.ui

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<item>
1818
<widget class="QTabWidget" name="tabWidget">
1919
<property name="currentIndex">
20-
<number>1</number>
20+
<number>0</number>
2121
</property>
2222
<widget class="QWidget" name="tabSettings">
2323
<attribute name="title">

src/client/gui/dialogs/client_dialogport.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ void mbClientDialogPort::setCachedSettings(const MBSETTINGS &m)
9898
MBSETTINGS::const_iterator end = m.end();
9999
//bool ok;
100100

101-
it = m.find(prefix+ss.host); if (it != end) m_ui.lnName->setText(it.value().toString());
101+
it = m.find(prefix+ss.host); if (it != end) ui->lnHost->setText(it.value().toString());
102102

103103
}
104104

0 commit comments

Comments
 (0)