@@ -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);
0 commit comments