Skip to content

Commit d9122e2

Browse files
committed
Refactor mbCoreUi and derived classes
1 parent b29a4d5 commit d9122e2

File tree

8 files changed

+323
-241
lines changed

8 files changed

+323
-241
lines changed

src/client/gui/client_ui.cpp

Lines changed: 62 additions & 116 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@
4141

4242
#include "project/client_projectui.h"
4343
#include "dataview/client_dataviewmanager.h"
44-
#include "dataview/client_dataviewui.h"
4544

4645
#include "client_windowmanager.h"
4746

@@ -55,6 +54,68 @@ mbClientUi::mbClientUi(mbClient *core, QWidget *parent) :
5554
ui->setupUi(this);
5655

5756
m_helpFile = QStringLiteral("/help/ModbusClient.qhc");
57+
58+
m_ui.menuFile = ui->menuFile ;
59+
m_ui.menuEdit = ui->menuEdit ;
60+
m_ui.menuView = ui->menuView ;
61+
m_ui.menuPort = ui->menuPort ;
62+
m_ui.menuDevice = ui->menuDevice ;
63+
m_ui.menuDataView = ui->menuDataView ;
64+
m_ui.menuTools = ui->menuTools ;
65+
m_ui.menuRuntime = ui->menuRuntime ;
66+
m_ui.menuWindow = ui->menuWindow ;
67+
m_ui.menuHelp = ui->menuHelp ;
68+
m_ui.actionFileNew = ui->actionFileNew ;
69+
m_ui.actionFileOpen = ui->actionFileOpen ;
70+
m_ui.actionFileSave = ui->actionFileSave ;
71+
m_ui.actionFileSaveAs = ui->actionFileSaveAs ;
72+
m_ui.actionFileEdit = ui->actionFileEdit ;
73+
m_ui.actionFileQuit = ui->actionFileQuit ;
74+
m_ui.actionEditCut = ui->actionEditCut ;
75+
m_ui.actionEditCopy = ui->actionEditCopy ;
76+
m_ui.actionEditPaste = ui->actionEditPaste ;
77+
m_ui.actionEditInsert = ui->actionEditInsert ;
78+
m_ui.actionEditEdit = ui->actionEditEdit ;
79+
m_ui.actionEditDelete = ui->actionEditDelete ;
80+
m_ui.actionEditSelectAll = ui->actionEditSelectAll ;
81+
m_ui.actionViewProject = ui->actionViewProject ;
82+
m_ui.actionViewLogView = ui->actionViewLogView ;
83+
m_ui.actionPortNew = ui->actionPortNew ;
84+
m_ui.actionPortEdit = ui->actionPortEdit ;
85+
m_ui.actionPortDelete = ui->actionPortDelete ;
86+
m_ui.actionPortImport = ui->actionPortImport ;
87+
m_ui.actionPortExport = ui->actionPortExport ;
88+
m_ui.actionDeviceNew = ui->actionDeviceNew ;
89+
m_ui.actionDeviceEdit = ui->actionDeviceEdit ;
90+
m_ui.actionDeviceDelete = ui->actionDeviceDelete ;
91+
m_ui.actionDeviceImport = ui->actionDeviceImport ;
92+
m_ui.actionDeviceExport = ui->actionDeviceExport ;
93+
m_ui.actionDataViewItemNew = ui->actionDataViewItemNew ;
94+
m_ui.actionDataViewItemEdit = ui->actionDataViewItemEdit ;
95+
m_ui.actionDataViewItemInsert = ui->actionDataViewItemInsert ;
96+
m_ui.actionDataViewItemDelete = ui->actionDataViewItemDelete ;
97+
m_ui.actionDataViewImportItems = ui->actionDataViewImportItems ;
98+
m_ui.actionDataViewExportItems = ui->actionDataViewExportItems ;
99+
m_ui.actionDataViewNew = ui->actionDataViewNew ;
100+
m_ui.actionDataViewEdit = ui->actionDataViewEdit ;
101+
m_ui.actionDataViewInsert = ui->actionDataViewInsert ;
102+
m_ui.actionDataViewDelete = ui->actionDataViewDelete ;
103+
m_ui.actionDataViewImport = ui->actionDataViewImport ;
104+
m_ui.actionDataViewExport = ui->actionDataViewExport ;
105+
m_ui.actionWindowShowAll = ui->actionWindowShowAll ;
106+
m_ui.actionWindowShowActive = ui->actionWindowShowActive ;
107+
m_ui.actionWindowCloseAll = ui->actionWindowCloseAll ;
108+
m_ui.actionWindowCloseActive = ui->actionWindowCloseActive ;
109+
m_ui.actionWindowCascade = ui->actionWindowCascade ;
110+
m_ui.actionWindowTile = ui->actionWindowTile ;
111+
m_ui.actionHelpAbout = ui->actionHelpAbout ;
112+
m_ui.actionHelpAboutQt = ui->actionHelpAboutQt ;
113+
m_ui.actionHelpContents = ui->actionHelpContents ;
114+
m_ui.actionToolsSettings = ui->actionToolsSettings ;
115+
m_ui.actionRuntimeStartStop = ui->actionRuntimeStartStop ;
116+
m_ui.dockProject = ui->dockProject ;
117+
m_ui.dockLogView = ui->dockLogView ;
118+
m_ui.statusbar = ui->statusbar ;
58119
}
59120

60121
mbClientUi::~mbClientUi()
@@ -64,126 +125,29 @@ mbClientUi::~mbClientUi()
64125

65126
void mbClientUi::initialize()
66127
{
67-
// LogView
68-
ui->dockLogView->setWidget(logView());
69-
70128
// Dialogs
71129
m_dialogs = new mbClientDialogs(this);
72130

73131
// Project Ui
74132
m_projectUi = new mbClientProjectUi(this);
75-
connect(projectUi(), &mbClientProjectUi::portDoubleClick , this, &mbClientUi::menuSlotPortEdit );
76133
connect(projectUi(), &mbClientProjectUi::deviceDoubleClick, this, &mbClientUi::menuSlotDeviceEdit);
77-
connect(projectUi(), &mbClientProjectUi::portContextMenu , this, &mbClientUi::contextMenuPort );
78134
connect(projectUi(), &mbClientProjectUi::deviceContextMenu, this, &mbClientUi::contextMenuDevice );
79-
ui->dockProject->setWidget(m_projectUi);
80135

81136
m_dataViewManager = new mbClientDataViewManager(this);
82-
connect(dataViewManager(), &mbClientDataViewManager::dataViewUiContextMenu, this, &mbClientUi::contextMenuDataView);
83137

84138
m_windowManager = new mbClientWindowManager(this, dataViewManager());
85-
this->setCentralWidget(m_windowManager->centralWidget());
86-
87-
// Menu File
88-
ui->actionFileNew ->setShortcuts(QKeySequence::New );
89-
ui->actionFileOpen ->setShortcuts(QKeySequence::Open );
90-
ui->actionFileSave ->setShortcuts(QKeySequence::Save );
91-
ui->actionFileSaveAs->setShortcuts(QKeySequence::SaveAs);
92-
ui->actionEdit ->setShortcut (QKeySequence(Qt::CTRL | Qt::SHIFT | Qt::Key_E));
93-
ui->actionQuit ->setShortcuts(QKeySequence::Quit);
94-
95-
connect(ui->actionFileNew , &QAction::triggered, this, &mbClientUi::menuSlotFileNew );
96-
connect(ui->actionFileOpen , &QAction::triggered, this, &mbClientUi::menuSlotFileOpen );
97-
connect(ui->actionFileSave , &QAction::triggered, this, &mbClientUi::menuSlotFileSave );
98-
connect(ui->actionFileSaveAs, &QAction::triggered, this, &mbClientUi::menuSlotFileSaveAs);
99-
connect(ui->actionEdit , &QAction::triggered, this, &mbClientUi::menuSlotFileEdit );
100-
connect(ui->actionQuit , &QAction::triggered, this, &mbClientUi::menuSlotFileQuit );
101-
102-
// Menu Edit
103-
//ui->actionEditUndo ->setShortcuts(QKeySequence::Undo );
104-
//ui->actionEditRedo ->setShortcuts(QKeySequence::Redo );
105-
ui->actionEditCut ->setShortcuts(QKeySequence::Cut );
106-
ui->actionEditCopy ->setShortcuts(QKeySequence::Copy );
107-
ui->actionEditPaste ->setShortcuts(QKeySequence::Paste );
108-
ui->actionEditInsert ->setShortcut (QKeySequence(Qt::Key_Insert ));
109-
ui->actionEditEdit ->setShortcut (QKeySequence(Qt::CTRL | Qt::Key_E));
110-
ui->actionEditDelete ->setShortcuts(QKeySequence::Delete );
111-
ui->actionEditSelectAll->setShortcuts(QKeySequence::SelectAll );
112-
113-
//connect(ui->actionEditUndo , &QAction::triggered, this, &mbClientUi::menuSlotEditUndo );
114-
//connect(ui->actionEditRedo , &QAction::triggered, this, &mbClientUi::menuSlotEditRedo );
115-
connect(ui->actionEditCut , &QAction::triggered, this, &mbClientUi::menuSlotEditCut );
116-
connect(ui->actionEditCopy , &QAction::triggered, this, &mbClientUi::menuSlotEditCopy );
117-
connect(ui->actionEditPaste , &QAction::triggered, this, &mbClientUi::menuSlotEditPaste );
118-
connect(ui->actionEditInsert , &QAction::triggered, this, &mbClientUi::menuSlotEditInsert );
119-
connect(ui->actionEditEdit , &QAction::triggered, this, &mbClientUi::menuSlotEditEdit );
120-
connect(ui->actionEditDelete , &QAction::triggered, this, &mbClientUi::menuSlotEditDelete );
121-
connect(ui->actionEditSelectAll , &QAction::triggered, this, &mbClientUi::menuSlotEditSelectAll);
122-
123-
// Menu View
124-
connect(ui->actionViewProject, &QAction::triggered, this, &mbClientUi::menuSlotViewProject);
125-
connect(ui->actionViewLogView, &QAction::triggered, this, &mbClientUi::menuSlotViewLogView);
126139

127140
// Menu Port
128-
ui->actionPortNew->setShortcut(QKeySequence(Qt::ALT | Qt::Key_N));
129-
130-
connect(ui->actionPortNew , &QAction::triggered, this, &mbClientUi::menuSlotPortNew );
131-
connect(ui->actionPortEdit , &QAction::triggered, this, &mbClientUi::menuSlotPortEdit );
132-
connect(ui->actionPortDelete , &QAction::triggered, this, &mbClientUi::menuSlotPortDelete );
133141
connect(ui->actionPortNewDevice , &QAction::triggered, this, &mbClientUi::menuSlotPortNewDevice );
134142
connect(ui->actionPortClearAllDevices, &QAction::triggered, this, &mbClientUi::menuSlotPortClearAllDevice);
135-
connect(ui->actionPortImport , &QAction::triggered, this, &mbClientUi::menuSlotPortImport );
136-
connect(ui->actionPortExport , &QAction::triggered, this, &mbClientUi::menuSlotPortExport );
137-
138-
// Menu Device
139-
ui->actionDeviceNew->setShortcut(QKeySequence(Qt::SHIFT | Qt::Key_N));
140-
141-
connect(ui->actionDeviceNew , &QAction::triggered, this, &mbClientUi::menuSlotDeviceNew );
142-
connect(ui->actionDeviceEdit , &QAction::triggered, this, &mbClientUi::menuSlotDeviceEdit );
143-
connect(ui->actionDeviceDelete, &QAction::triggered, this, &mbClientUi::menuSlotDeviceDelete);
144-
connect(ui->actionDeviceImport, &QAction::triggered, this, &mbClientUi::menuSlotDeviceImport);
145-
connect(ui->actionDeviceExport, &QAction::triggered, this, &mbClientUi::menuSlotDeviceExport);
146-
147-
// Menu DataView
148-
connect(ui->actionDataViewItemNew , &QAction::triggered, this, &mbClientUi::menuSlotDataViewItemNew );
149-
connect(ui->actionDataViewItemEdit , &QAction::triggered, this, &mbClientUi::menuSlotDataViewItemEdit );
150-
connect(ui->actionDataViewItemInsert , &QAction::triggered, this, &mbClientUi::menuSlotDataViewItemInsert );
151-
connect(ui->actionDataViewItemDelete , &QAction::triggered, this, &mbClientUi::menuSlotDataViewItemDelete );
152-
connect(ui->actionDataViewImportItems, &QAction::triggered, this, &mbClientUi::menuSlotDataViewImportItems);
153-
connect(ui->actionDataViewExportItems, &QAction::triggered, this, &mbClientUi::menuSlotDataViewExportItems);
154-
connect(ui->actionDataViewNew , &QAction::triggered, this, &mbClientUi::menuSlotDataViewNew );
155-
connect(ui->actionDataViewEdit , &QAction::triggered, this, &mbClientUi::menuSlotDataViewEdit );
156-
connect(ui->actionDataViewInsert , &QAction::triggered, this, &mbClientUi::menuSlotDataViewInsert );
157-
connect(ui->actionDataViewDelete , &QAction::triggered, this, &mbClientUi::menuSlotDataViewDelete );
158-
connect(ui->actionDataViewImport , &QAction::triggered, this, &mbClientUi::menuSlotDataViewImport );
159-
connect(ui->actionDataViewExport , &QAction::triggered, this, &mbClientUi::menuSlotDataViewExport );
160143

161144
// Menu Tools
162-
connect(ui->actionToolsSettings , &QAction::triggered, this, &mbClientUi::menuSlotToolsSettings );
163145
connect(ui->actionToolsSendMessage, &QAction::triggered, this, &mbClientUi::menuSlotToolsSendMessage);
164146
connect(ui->actionToolsScanner , &QAction::triggered, this, &mbClientUi::menuSlotToolsScanner );
165147

166-
// Menu Runtime
167-
connect(ui->actionRuntimeStartStop , &QAction::triggered, this, &mbClientUi::menuSlotRuntimeStartStop );
168-
169-
// Menu Window
170-
connect(ui->actionWindowShowAll , &QAction::triggered, this, &mbClientUi::menuSlotWindowShowAll );
171-
connect(ui->actionWindowShowActive , &QAction::triggered, this, &mbClientUi::menuSlotWindowShowActive );
172-
connect(ui->actionWindowCloseAll , &QAction::triggered, this, &mbClientUi::menuSlotWindowCloseAll );
173-
connect(ui->actionWindowCloseActive , &QAction::triggered, this, &mbClientUi::menuSlotWindowCloseActive);
174-
connect(ui->actionWindowCascade , &QAction::triggered, this, &mbClientUi::menuSlotWindowCascade );
175-
connect(ui->actionWindowTile , &QAction::triggered, this, &mbClientUi::menuSlotWindowTile );
176-
177-
// Menu Help
178-
connect(ui->actionHelpAbout , &QAction::triggered, this, &mbClientUi::menuSlotHelpAbout );
179-
connect(ui->actionHelpAboutQt , &QAction::triggered, this, &mbClientUi::menuSlotHelpAboutQt );
180-
connect(ui->actionHelpContents, &QAction::triggered, this, &mbClientUi::menuSlotHelpContents);
181-
182148
m_sendMessageUi = new mbClientSendMessageUi(this);
183149
m_scannerUi = new mbClientScannerUi(this);
184150

185-
m_ui.statusbar = ui->statusbar ;
186-
m_ui.actionRuntimeStartStop = ui->actionRuntimeStartStop;
187151
mbCoreUi::initialize();
188152
}
189153

@@ -555,14 +519,6 @@ void mbClientUi::menuSlotToolsScanner()
555519
m_scannerUi->show();
556520
}
557521

558-
void mbClientUi::contextMenuPort(mbCorePort */*port*/)
559-
{
560-
QMenu mn(m_projectUi);
561-
Q_FOREACH(QAction *a, ui->menuPort->actions())
562-
mn.addAction(a);
563-
mn.exec(QCursor::pos());
564-
}
565-
566522
void mbClientUi::contextMenuDevice(mbClientDevice */*device*/)
567523
{
568524
QMenu mn(m_projectUi);
@@ -571,16 +527,6 @@ void mbClientUi::contextMenuDevice(mbClientDevice */*device*/)
571527
mn.exec(QCursor::pos());
572528
}
573529

574-
void mbClientUi::contextMenuDataView(mbCoreDataViewUi *dataViewUi)
575-
{
576-
QMenu mn(dataViewUi); // Note: be careful to delete deviceUi while his child 'QMenu' in stack
577-
// User can choose 'actionDeleteDevice' and program can crash
578-
// Solution: don't use direct 'delete deviceUi', use 'deviceUi->deleteLater'
579-
Q_FOREACH(QAction *a, ui->menuDataView->actions())
580-
mn.addAction(a);
581-
mn.exec(QCursor::pos());
582-
}
583-
584530
void mbClientUi::editPort(mbCorePort *port)
585531
{
586532
MBSETTINGS o = port->settings();

src/client/gui/client_ui.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,7 @@ private Q_SLOTS:
121121
void menuSlotToolsScanner();
122122

123123
private Q_SLOTS:
124-
void contextMenuPort(mbCorePort *port);
125124
void contextMenuDevice(mbClientDevice *device);
126-
void contextMenuDataView(mbCoreDataViewUi *dataViewUi);
127125

128126
private:
129127
void editPort(mbCorePort *port);

src/client/gui/client_ui.ui

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,9 @@
6060
<addaction name="actionFileOpen"/>
6161
<addaction name="actionFileSave"/>
6262
<addaction name="actionFileSaveAs"/>
63-
<addaction name="actionEdit"/>
63+
<addaction name="actionFileEdit"/>
6464
<addaction name="separator"/>
65-
<addaction name="actionQuit"/>
65+
<addaction name="actionFileQuit"/>
6666
</widget>
6767
<widget class="QMenu" name="menuView">
6868
<property name="title">
@@ -350,7 +350,7 @@
350350
<string>Edit Device...</string>
351351
</property>
352352
</action>
353-
<action name="actionEdit">
353+
<action name="actionFileEdit">
354354
<property name="icon">
355355
<iconset resource="../../core/gui/core_rsc.qrc">
356356
<normaloff>:/core/icons/edit.png</normaloff>:/core/icons/edit.png</iconset>
@@ -359,7 +359,7 @@
359359
<string>Edit...</string>
360360
</property>
361361
</action>
362-
<action name="actionQuit">
362+
<action name="actionFileQuit">
363363
<property name="icon">
364364
<iconset resource="../../core/gui/core_rsc.qrc">
365365
<normaloff>:/core/icons/quit.png</normaloff>:/core/icons/quit.png</iconset>

0 commit comments

Comments
 (0)