Version: 9.16.0
GenericGui.hxx
Go to the documentation of this file.
1// Copyright (C) 2006-2026 CEA, EDF
2//
3// This library is free software; you can redistribute it and/or
4// modify it under the terms of the GNU Lesser General Public
5// License as published by the Free Software Foundation; either
6// version 2.1 of the License, or (at your option) any later version.
7//
8// This library is distributed in the hope that it will be useful,
9// but WITHOUT ANY WARRANTY; without even the implied warranty of
10// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11// Lesser General Public License for more details.
12//
13// You should have received a copy of the GNU Lesser General Public
14// License along with this library; if not, write to the Free Software
15// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16//
17// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18//
19
20#ifndef _GENERICGUI_HXX_
21#define _GENERICGUI_HXX_
22
23#include "GenericGuiExport.hxx"
24
25#include <QAction>
26#include <QActionGroup>
27#include <QObject>
28#include <QMainWindow>
29#include <QDockWidget>
30#include <QString>
31
32#include "SuitWrapper.hxx"
33
34#include <map>
35#include <list>
36#include <string>
37
38namespace YACS
39{
40
41 namespace ENGINE
42 {
43 class Proc;
44 class Catalog;
45 }
46 namespace HMI
47 {
48 class QtGuiContext;
49 class GuiEditor;
50 class SuitWrapper;
51 class CatalogWidget;
52 class YACSGuiLoader;
53 class SubjectDataPort;
54 class BatchJobsListDialog;
55
57 {
58 Q_OBJECT
59
60 public:
61 GenericGui(YACS::HMI::SuitWrapper* wrapper, QMainWindow *parent = 0);
62 virtual ~GenericGui();
63
64 void createActions();
65 void createMenus();
66 void createTools();
67 void initialMenus();
68 void hideAllMenus();
69 void showBaseMenus(bool show);
70 void showEditionMenus(bool show);
71 void showExecMenus(bool show);
72 void showCommonMenus(bool show);
73 void switchContext(QWidget *view, bool onExit = false);
74 bool closeContext(QWidget *view, bool onExit = false);
75 void showDockWidgets(bool isVisible);
76 void raiseStacked();
77 CatalogWidget* getCatalogWidget() { return _catalogsWidget; };
78 std::list<std::string> getMachineList();
79 void createForEachLoop(std::string type="double");
80 void putGraphInForeachLoop(std::string type);
81 virtual void loadSchema(const std::string& filename,bool edit=true, bool arrangeLocalNodes=false);
82 virtual void onHelpContextModule( const QString&, const QString&, const QString& = QString() );
83 void createContext(YACS::ENGINE::Proc* proc,
84 const QString& schemaName,
85 const QString& runName,
86 bool forEdition);
87 YACSGuiLoader *getLoader() { return _loader; };
88
89 QAction *_newSchemaAct;
96
100
102 QAction *_abortAct;
103 QAction *_pauseAct;
104 QAction *_resetAct;
105
108
109 QActionGroup *_execModeGroup;
113
115
121
135 QAction *_cppNodeAct;
136 QAction *_XMLNodeAct;
144 QAction *_FORNodeAct;
151 QAction *_cutItemAct;
152 QAction *_copyItemAct;
167
176
179
184
189
191 QAction *_showLinkAct;
192 QAction *_hideLinkAct;
195
196 QAction *_undoAct;
197 QAction *_redoAct;
198 QAction *_showUndoAct;
199 QAction *_showRedoAct;
200
202 void setLoadedPresentation(YACS::ENGINE::Proc* proc);
203
204 public slots:
205 void onCleanOnExit();
206
207 protected:
208 int getMenuId() { return _menuId++; }
209 QString getSaveFileName(const QString& fileName = QString());
210
214 QDockWidget* _dwTree;
215 QDockWidget* _dwStacked;
216 QDockWidget* _dwCatalogs;
221 std::map<QWidget*, YACS::HMI::QtGuiContext*> _mapViewContext;
226 std::list<std::string> _machineList;
227
228 private slots:
229
230 void onNewSchema();
231 void onImportSchema();
232 void onChooseBatchJob();
233 void onImportSupervSchema();
234 void onExportSchema();
235 void onExportSchemaAs();
236 void onImportCatalog();
237
238 void onRunLoadedSchema(bool withState = false);
239 void onLoadRunStateSchema();
240 void onLoadAndRunSchema();
241
242 void onStartResume();
243 void onAbort();
244 void onPause();
245 void onReset();
246 void onSaveRunState();
247 void onNewEdition();
248
249 void onWithoutStopMode(bool checked);
250 void onBreakpointsMode(bool checked);
251 void onStepByStepMode(bool checked);
252
253 void onToggleStopOnError(bool checked);
254
255 void onGetYacsContainerLog();
256 void onGetErrorReport();
257 void onGetErrorDetails();
258 void onGetContainerLog();
259 void onShutdownProc();
260
261 void onEditDataTypes();
262 void onCreateDataType();
263 void onImportDataType();
264
265 void onNewContainer();
266 void onNewHPContainer();
267 void onSelectComponentInstance();
268 void onNewSalomeComponent();
269 void onNewSalomePythonComponent();
270 void onNewCorbaComponent();
271
272 void onSalomeServiceNode();
273 void onServiceInlineNode();
274 void onCORBAServiceNode();
275 void onNodeNodeServiceNode();
276 void onCppNode();
277 void onXMLNode();
278 void onInDataNode();
279 void onOutDataNode();
280 void onInStudyNode();
281 void onOutStudyNode();
282 void onInlineScriptNode();
283 void onInlineFunctionNode();
284 void onBlockNode();
285 void onFORNode();
286 void onFOREACHNode();
287 void onWHILENode();
288 void onSWITCHNode();
289 void onOptimizerLoop();
290 void onNodeFromCatalog();
291
292 void onDeleteItem();
293 void onCutItem();
294 void onCopyItem();
295 void onPasteItem();
296 void onPutInBloc();
297 void onPutGraphInBloc();
298 void onPutGraphInForLoop();
299 void onPutGraphInWhileLoop();
300 void onPutGraphInOptimizerLoop();
301 void onArrangeLocalNodes();
302 void onArrangeRecurseNodes();
303 void onRebuildLinks();
304 void onZoomToBloc();
305 void onCenterOnNode();
306 void onShrinkExpand();
307 void onShrinkExpandChildren();
308 void onShrinkExpandElementaryRecursively();
309 void onToggleStraightLinks(bool checked);
310 void onToggleAutomaticComputeLinks(bool checked);
311 void onToggleSimplifyLinks(bool checked);
312 void onToggleForce2NodesLinks(bool checked);
313 void onToggleAddRowCols(bool checked);
314
315 void onToggleSceneItemVisible(bool checked);
316
317 void onShowAllLinks();
318 void onHideAllLinks();
319
320 void onShowOnlyPortLinks();
321 void onShowPortLinks();
322 void onHidePortLinks();
323 void onEmphasisPortLinks();
324
325 void onShowOnlyCtrlLinks();
326 void onShowCtrlLinks();
327 void onHideCtrlLinks();
328 void onEmphasisCtrlLinks();
329
330 void onShowOnlyLink();
331 void onShowLink();
332 void onHideLink();
333 void onEmphasisLink();
334 void onDeEmphasizeAll();
335
336 void onSelectReference();
337 void onWhatsThis();
338
339 void onUndo();
340 void onRedo();
341 void onShowUndo();
342 void onShowRedo();
343
344 private:
345 void displayLinks(bool isShown);
346 void displayControlLinks(bool isShown);
347 void displayPortLinks(bool isShown);
348 void displayALink(bool isShown);
349 void emphasizePortLink(YACS::HMI::SubjectDataPort* sub, bool emphasize);
350 };
351
352 }
353}
354
355#endif
#define GENERICGUI_EXPORT
class for YACS catalogs.
Definition: Catalog.hxx:42
Base class for all schema objects.
Definition: Proc.hxx:44
std::list< std::string > _machineList
Definition: GenericGui.hxx:226
QAction * _CORBAServiceNodeAct
Definition: GenericGui.hxx:133
QAction * _stepByStepModeAct
Definition: GenericGui.hxx:112
CatalogWidget * getCatalogWidget()
Definition: GenericGui.hxx:77
QAction * _getErrorReportAct
Definition: GenericGui.hxx:117
QAction * _OptimizerLoopAct
Definition: GenericGui.hxx:148
QAction * _nodeNodeServiceNodeAct
Definition: GenericGui.hxx:134
QAction * _inlineScriptNodeAct
Definition: GenericGui.hxx:141
std::map< QWidget *, YACS::HMI::QtGuiContext * > _mapViewContext
Definition: GenericGui.hxx:221
QAction * _arrangeRecurseNodesAct
Definition: GenericGui.hxx:160
QAction * _getYacsContainerLogAct
Definition: GenericGui.hxx:116
YACS::HMI::GuiEditor * _guiEditor
Definition: GenericGui.hxx:201
QAction * _getContainerLogAct
Definition: GenericGui.hxx:119
QAction * _importSupervSchemaAct
Definition: GenericGui.hxx:92
QAction * _showCtrlLinksAct
Definition: GenericGui.hxx:186
QMainWindow * _parent
Definition: GenericGui.hxx:213
QAction * _emphasisPortLinksAct
Definition: GenericGui.hxx:183
QAction * _newCorbaComponentAct
Definition: GenericGui.hxx:130
QAction * _putGraphInForLoopAct
Definition: GenericGui.hxx:156
QAction * _withoutStopModeAct
Definition: GenericGui.hxx:110
QDockWidget * _dwStacked
Definition: GenericGui.hxx:215
QAction * _selectReferenceAct
Definition: GenericGui.hxx:174
QAction * _inlineFunctionNodeAct
Definition: GenericGui.hxx:142
QAction * _toggleSceneItemVisibleAct
Definition: GenericGui.hxx:173
QAction * _toggleStopOnErrorAct
Definition: GenericGui.hxx:114
QAction * _breakpointsModeAct
Definition: GenericGui.hxx:111
QAction * _getErrorDetailsAct
Definition: GenericGui.hxx:118
QAction * _newHPContainerAct
Definition: GenericGui.hxx:126
QAction * _hideCtrlLinksAct
Definition: GenericGui.hxx:187
YACS::ENGINE::Catalog * _builtinCatalog
Definition: GenericGui.hxx:218
QAction * _emphasisLinkAct
Definition: GenericGui.hxx:193
QAction * _chooseBatchJobAct
Definition: GenericGui.hxx:91
QAction * _importSchemaAct
Definition: GenericGui.hxx:90
QActionGroup * _execModeGroup
Definition: GenericGui.hxx:109
QAction * _putGraphInBlocAct
Definition: GenericGui.hxx:155
QAction * _emphasisCtrlLinksAct
Definition: GenericGui.hxx:188
QAction * _showOnlyCtrlLinksAct
Definition: GenericGui.hxx:185
QAction * _salomeServiceNodeAct
Definition: GenericGui.hxx:131
QAction * _hidePortLinksAct
Definition: GenericGui.hxx:182
QAction * _serviceInlineNodeAct
Definition: GenericGui.hxx:132
QAction * _importDataTypeAct
Definition: GenericGui.hxx:124
QAction * _newSalomeComponentAct
Definition: GenericGui.hxx:128
QAction * _toggleAutomaticComputeLinkAct
Definition: GenericGui.hxx:169
QDockWidget * _dwTree
Definition: GenericGui.hxx:214
QAction * _editDataTypesAct
Definition: GenericGui.hxx:122
QAction * _toggleSimplifyLinkAct
Definition: GenericGui.hxx:170
QAction * _runLoadedSchemaAct
Definition: GenericGui.hxx:97
YACSGuiLoader * _loader
Definition: GenericGui.hxx:211
QAction * _outStudyNodeAct
Definition: GenericGui.hxx:140
QAction * _shrinkExpandElementaryRecursively
Definition: GenericGui.hxx:166
CatalogWidget * _catalogsWidget
Definition: GenericGui.hxx:220
QAction * _nodeFromCatalogAct
Definition: GenericGui.hxx:149
QAction * _saveRunStateAct
Definition: GenericGui.hxx:106
QAction * _hideAllLinksAct
Definition: GenericGui.hxx:178
QAction * _arrangeLocalNodesAct
Definition: GenericGui.hxx:159
QAction * _loadAndRunSchemaAct
Definition: GenericGui.hxx:99
QAction * _shrinkExpandChildren
Definition: GenericGui.hxx:165
QAction * _putGraphInWhileLoopAct
Definition: GenericGui.hxx:157
QAction * _toggleStraightLinksAct
Definition: GenericGui.hxx:168
QAction * _toggleForce2NodesLinkAct
Definition: GenericGui.hxx:171
QAction * _showOnlyLinkAct
Definition: GenericGui.hxx:190
QAction * _exportSchemaAct
Definition: GenericGui.hxx:93
QAction * _showOnlyPortLinksAct
Definition: GenericGui.hxx:180
QAction * _shutdownProcAct
Definition: GenericGui.hxx:120
QAction * _selectComponentInstanceAct
Definition: GenericGui.hxx:127
QAction * _centerOnNodeAct
Definition: GenericGui.hxx:163
QAction * _deEmphasizeAllAct
Definition: GenericGui.hxx:194
QAction * _showAllLinksAct
Definition: GenericGui.hxx:177
QAction * _importCatalogAct
Definition: GenericGui.hxx:95
QAction * _toggleAddRowColsAct
Definition: GenericGui.hxx:172
QAction * _newContainerAct
Definition: GenericGui.hxx:125
BatchJobsListDialog * _BJLdialog
Definition: GenericGui.hxx:217
YACSGuiLoader * getLoader()
Definition: GenericGui.hxx:87
QAction * _newSalomePythonComponentAct
Definition: GenericGui.hxx:129
QAction * _showPortLinksAct
Definition: GenericGui.hxx:181
QAction * _putGraphInOptimizerLoopAct
Definition: GenericGui.hxx:158
QAction * _exportSchemaAsAct
Definition: GenericGui.hxx:94
QAction * _createDataTypeAct
Definition: GenericGui.hxx:123
YACS::ENGINE::Catalog * _sessionCatalog
Definition: GenericGui.hxx:219
SuitWrapper * _wrapper
Definition: GenericGui.hxx:212
QDockWidget * _dwCatalogs
Definition: GenericGui.hxx:216
QAction * _loadRunStateSchemaAct
Definition: GenericGui.hxx:98
viewer QGraphicsScene: deriver SUIT_ViewModel comme QxGraph_Viewer
Definition: SuitWrapper.hxx:43