Skip to content

Commit 105c6e4

Browse files
committed
Correct storing data in #38
1 parent a5343ee commit 105c6e4

2 files changed

Lines changed: 12 additions & 9 deletions

File tree

omodsim/menuconnect.cpp

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ MenuConnect::MenuConnect(MenuType type, ModbusMultiServer& server, QWidget *pare
1515
{
1616
if(_menuType == MenuType::ConnectMenu)
1717
{
18-
addAction(tr("Modbus/TCP Srv"), ConnectionType::Tcp, QString());
18+
addAction(tr("Modbus/TCP Srv"), ConnectionType::Tcp, QString(), "Modbus/TCP Srv");
1919
for(auto&& port: getAvailableSerialPorts())
2020
{
2121
const auto text = QString(tr("Port %1")).arg(port);
22-
addAction(text, ConnectionType::Serial, port);
22+
addAction(text, ConnectionType::Serial, port, QString("Port %1").arg(port));
2323
}
2424
}
2525

@@ -32,12 +32,12 @@ MenuConnect::MenuConnect(MenuType type, ModbusMultiServer& server, QWidget *pare
3232
case ConnectionType::Tcp:
3333
{
3434
const auto port = QString("%1:%2").arg(cd.TcpParams.IPAddress, QString::number(cd.TcpParams.ServicePort));
35-
addAction(QString(tr("Modbus/TCP Srv %1")).arg(port), ConnectionType::Tcp, port);
35+
addAction(QString(tr("Modbus/TCP Srv %1")).arg(port), ConnectionType::Tcp, port, QString("Modbus/TCP Srv %1").arg(port));
3636
}
3737
break;
3838

3939
case ConnectionType::Serial:
40-
addAction(QString(tr("Port %1")).arg(cd.SerialParams.PortName), ConnectionType::Serial, cd.SerialParams.PortName);
40+
addAction(QString(tr("Port %1")).arg(cd.SerialParams.PortName), ConnectionType::Serial, cd.SerialParams.PortName, QString("Port %1").arg(cd.SerialParams.PortName));
4141
break;
4242
}
4343
}
@@ -94,7 +94,7 @@ void MenuConnect::changeEvent(QEvent* event)
9494
if(data.second.isEmpty())
9595
a->setText(tr("Modbus/TCP Srv"));
9696
else
97-
a->setText(QString(tr("Modbus/TCP Srv %1").arg(data.second)));
97+
a->setText(QString(tr("Modbus/TCP Srv %1").arg(data.second)));
9898
break;
9999
case ConnectionType::Serial:
100100
a->setText(QString(tr("Port %1")).arg(data.second));
@@ -154,8 +154,9 @@ void MenuConnect::updateConnectionDetails(const QList<ConnectionDetails>& conns)
154154
/// \param text
155155
/// \param type
156156
/// \param port
157+
/// \param id
157158
///
158-
void MenuConnect::addAction(const QString& text, ConnectionType type, const QString& port)
159+
void MenuConnect::addAction(const QString& text, ConnectionType type, const QString& port, const QString& id)
159160
{
160161
auto action = QMenu::addAction(text);
161162
connect(action, &QAction::triggered, this, [this, action, type, port]
@@ -178,6 +179,7 @@ void MenuConnect::addAction(const QString& text, ConnectionType type, const QStr
178179

179180
const auto data = QPair<ConnectionType, QString>(type, port);
180181
action->setData(QVariant::fromValue(data));
182+
action->setProperty("id", id);
181183
}
182184

183185
///
@@ -201,7 +203,8 @@ QSettings& operator <<(QSettings& out, const MenuConnect* menu)
201203
QByteArray a;
202204
QDataStream ds(&a, QIODeviceBase::WriteOnly);
203205
ds << cd;
204-
out.setValue("MenuConnect/" + action->text(), a);
206+
207+
out.setValue("MenuConnect/" + action->property("id").toString(), a);
205208
}
206209

207210
return out;
@@ -224,7 +227,7 @@ QSettings& operator >>(QSettings& in, MenuConnect* menu)
224227
auto&& item = it.next();
225228
QAction* action = it.key();
226229

227-
const QByteArray a = in.value("MenuConnect/" + action->text()).toByteArray();
230+
const QByteArray a = in.value("MenuConnect/" + action->property("id").toString()).toByteArray();
228231
if(!a.isEmpty())
229232
{
230233
QDataStream ds(a);

omodsim/menuconnect.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class MenuConnect : public QMenu
3131
void changeEvent(QEvent* event) override;
3232

3333
private:
34-
void addAction(const QString& text, ConnectionType type, const QString& port);
34+
void addAction(const QString& text, ConnectionType type, const QString& port, const QString& id);
3535

3636
private:
3737
MenuType _menuType;

0 commit comments

Comments
 (0)