//---------------------------------------------------------------------------- // $Id: QtRpl/RplFunctionMenus.cpp 2017/07/23 11:03:09 philw $ // QMenus and menu QActions for RplFunctionDlg and RplViewerDlg //---------------------------------------------------------------------------- #include "RplFunctionMenus.hpp" // this module #include #include #include #include // constructor RplFunctionMenus::RplFunctionMenus (QWidget* widParent, bool forViewer) : _forViewer (forViewer) { // Note: The widParent QWidget is provided for only Qt's automatic // life-cycle maintenance of the dynamically instantiated QMenus and // QActions. It can be the client QMainWindow (dialog) using these // menus, or any other high-level container widget. // // Even if a QMainWindow is provided, note that this class DOES NOT // install the top-level QMenus into that QMainWindow's QMenuBar. // That's the the responsibility of the client -- see the public // 'topMenuList' method. This architecture supports the requirement // of the new RPL Viewer to _dynamically_ install a different set of // menus each time a RPL Block or RPL Function tab is selected. buildMenusAndActions (widParent); } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- // desctructor RplFunctionMenus::~RplFunctionMenus() { // Don't delete the QMenus and menu QActions created within this class. // That is done automatically by virtue of those objects being parented // with a parent QWidget (provided by the client in the constructor). } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- // public QList RplFunctionMenus::topMenuList() const { // Return list of top-level QMenus to be installed into a QMainWindow's // QMenuBar. //------------------------------------- // field: bool _forViewer; -- not used. //------------------------------------- QList retList; retList << _fileMenu << _editMenu << _funcMenu << _viewMenu; return retList; } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- // local helper function static QAction* newAction (QWidget* wid, const char* qObjName, bool checkable=false) { QAction* act = new QAction(wid); act->setObjectName(qObjName); if (checkable) act->setCheckable (true); return act; } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- // private void RplFunctionMenus::buildMenusAndActions (QWidget* wid) { //------------------------------------- // field: bool _forViewer; -- not used. //------------------------------------- // ************************** // *** (1) Create Menus *** // ************************** // *** Top-Level Menus *** _fileMenu = new QMenu(wid); _editMenu = new QMenu(wid); _funcMenu = new QMenu(wid); _viewMenu = new QMenu(wid); _fileMenu -> setObjectName("_fileMenu"); _editMenu -> setObjectName("_editMenu"); _funcMenu -> setObjectName("_funcMenu"); _viewMenu -> setObjectName("_viewMenu"); _fileMenu -> setTitle (tr ("&File")); _editMenu -> setTitle (tr ("&Edit")); _funcMenu -> setTitle (tr ("Function")); _viewMenu -> setTitle (tr ("View")); // *** SubMenus *** _reopenSetMenu = new LoadSaveMgr::FileItemMenu(_fileMenu); _reopenGlobFuncSetMenu = new LoadSaveMgr::FileItemMenu(_fileMenu); _extDocMenu = new QMenu(_viewMenu); _reopenSetMenu -> setObjectName("_reopenSetMenu"); _reopenGlobFuncSetMenu -> setObjectName("_reopenGlobFuncSetMenu"); _extDocMenu -> setObjectName("_extDocMenu"); _reopenSetMenu -> setTitle (tr ("Reopen Set")); _reopenGlobFuncSetMenu -> setTitle (tr ("Reopen Global Functions Set")); _extDocMenu -> setTitle (tr ("External Documentation")); // **************************** // *** (2) Create Actions *** // **************************** _newSetAction = newAction (wid, "_newSetAction"); _openSetAction = newAction (wid, "_openSetAction"); _newGlobFuncSetAction = newAction (wid, "_newGlobFuncSetAction"); _openGlobFuncSetAction = newAction (wid, "_openGlobFuncSetAction"); _saveSetAction = newAction (wid, "_saveSetAction"); _saveSetAsAction = newAction (wid, "_saveSetAsAction"); _printRplSetAction = newAction (wid, "_printRplSetAction"); _closeAction = newAction (wid, "_closeAction"); _cutAction = newAction (wid, "_cutAction"); _copyAction = newAction (wid, "_copyAction"); _pasteAction = newAction (wid, "_pasteAction"); _deleteAction = newAction (wid, "_deleteAction"); _enableAction = newAction (wid, "_enableAction", true); _insertAction = newAction (wid, "_insertAction"); _appendAction = newAction (wid, "_appendAction"); _undoAction = newAction (wid, "_undoAction"); _redoAction = newAction (wid, "_redoAction"); _searchReplaceAction = newAction (wid, "_searchReplaceAction"); _refreshAction = newAction (wid, "_refreshAction"); _addMinConstraintAction = newAction (wid, "_addMinConstraintAction"); _addMaxConstraintAction = newAction (wid, "_addMaxConstraintAction"); _addMinErrorAction = newAction (wid, "_addMinErrorAction"); _addMaxErrorAction = newAction (wid, "_addMaxErrorAction"); _setTimeVaryingAction = newAction (wid, "_setTimeVaryingAction", true); _breakBeforeEvalAction = newAction (wid, "_breakBeforeEvalAction", true); _breakAfterEvalAction = newAction (wid, "_breakAfterEvalAction", true); _checkValidityAction = newAction (wid, "_checkValidityAction"); _paletteAction = newAction (wid, "_paletteAction"); _displaySettingsAction = newAction (wid, "_displaySettingsAction"); _setAnalysisAction = newAction (wid, "_setAnalysisAction"); _compareSetAction = newAction (wid, "_compareSetAction"); _setEditorAction = newAction (wid, "_setEditorAction"); _openDebuggerDlgAction = newAction (wid, "_openDebuggerDlgAction"); _closeAllEditorsAction = newAction (wid, "_closeAllEditorsAction"); _showPostExecChecksAction = newAction (wid, "_showPostExecChecksAction", true); _showDescriptionAction = newAction (wid, "_showDescriptionAction", true); _showNotesAction = newAction (wid, "_showNotesAction", true); _showDiagnosticsAction = newAction (wid, "_showDiagnosticsAction", true); _showCommentsAction = newAction (wid, "_showCommentsAction", true); _viewExtDocAction = newAction (wid, "_viewExtDocAction"); _editExtDocAction = newAction (wid, "_editExtDocAction"); _configExtDocAction = newAction (wid, "_configExtDocAction"); _fileTypeAssocAction = newAction (wid, "_fileTypeAssocAction"); // ***************************** // *** (3) Set Action Text *** // ***************************** _newSetAction -> setText (tr ("&New Set...")); _openSetAction -> setText (tr ("&Open Set...")); _newGlobFuncSetAction -> setText (tr ("New Global Functions Set...")); _openGlobFuncSetAction -> setText (tr ("Open Global Functions Set...")); _saveSetAction -> setText (tr ("&Save Set")); _saveSetAsAction -> setText (tr ("Save Set &As...")); _printRplSetAction -> setText (tr ("&Print Function...")); _closeAction -> setText (tr ("&Close Window")); _cutAction -> setText (tr ("Cu&t")); _copyAction -> setText (tr ("&Copy")); _pasteAction -> setText (tr ("&Paste")); _deleteAction -> setText (tr ("D&elete")); _enableAction -> setText (tr ("Enabled")); _insertAction -> setText (tr ("Insert")); _appendAction -> setText (tr ("&Append")); _undoAction -> setText (tr ("Undo")); _redoAction -> setText (tr ("Redo")); _searchReplaceAction -> setText (tr ("&Search and Replace...")); _refreshAction -> setText (tr ("&Refresh")); _addMinConstraintAction -> setText (tr ("Add &Min Constraint")); _addMaxConstraintAction -> setText (tr ("Add Ma&x Constraint")); _addMinErrorAction -> setText (tr ("Add M&in Error")); _addMaxErrorAction -> setText (tr ("Add Max Error")); _setTimeVaryingAction -> setText (tr ("Set Time Varying")); _breakBeforeEvalAction -> setText (tr ("Break Before Evaluation")); _breakAfterEvalAction -> setText (tr ("Break After Evaluation")); _checkValidityAction -> setText (tr ("Check &Validity...")); _paletteAction -> setText (tr ("Palette...")); _displaySettingsAction -> setText (tr ("&Display Settings...")); _setAnalysisAction -> setText (tr ("Anal&ysis...")); _compareSetAction -> setText (tr ("Compare Set...")); _setEditorAction -> setText (tr ("Set Editor...")); _openDebuggerDlgAction -> setText (tr ("Debugger...")); _closeAllEditorsAction -> setText (tr ("Close Other Editors")); _showPostExecChecksAction -> setText (tr ("Show Post-Execution Checks")); _showDescriptionAction -> setText (tr ("Show Description")); _showNotesAction -> setText (tr ("Show Notes")); _showDiagnosticsAction -> setText (tr ("Show Diagnostic Settings")); _showCommentsAction -> setText (tr ("Show Comments")); _viewExtDocAction -> setText (tr ("View Document ...")); _editExtDocAction -> setText (tr ("Edit Document ...")); _configExtDocAction -> setText (tr ("Configure ...")); _fileTypeAssocAction -> setText (tr ("File Type Associations ...")); // ******************************** // *** (4) Set Action ToolTips *** // ******************************** // None. // ********************************** // *** (5) Set Action Shortcuts *** // ********************************** _newSetAction -> setShortcut (QKeySequence ("Ctrl+N")); _openSetAction -> setShortcut (QKeySequence ("Ctrl+O")); _saveSetAction -> setShortcut (QKeySequence ("Ctrl+S")); _saveSetAsAction -> setShortcut (QKeySequence ("Ctrl+Shift+S")); _printRplSetAction -> setShortcut (QKeySequence ("Ctrl+Shift+P")); _closeAction -> setShortcut (QKeySequence ("Ctrl+W")); _cutAction -> setShortcut (QKeySequence ("Ctrl+X")); _copyAction -> setShortcut (QKeySequence ("Ctrl+C")); _pasteAction -> setShortcut (QKeySequence ("Ctrl+V")); _deleteAction -> setShortcut (QKeySequence ("Del")); _insertAction -> setShortcut (QKeySequence ("Ins")); _appendAction -> setShortcut (QKeySequence ("Alt+A")); _undoAction -> setShortcut (QKeySequence ("Ctrl+Z")); _redoAction -> setShortcut (QKeySequence ("Ctrl+Shift+Z")); _searchReplaceAction -> setShortcut (QKeySequence ("F4")); _refreshAction -> setShortcut (QKeySequence ("F5")); _addMinConstraintAction -> setShortcut (QKeySequence ("Ctrl+M")); _addMaxConstraintAction -> setShortcut (QKeySequence ("Ctrl+A")); _addMinErrorAction -> setShortcut (QKeySequence ("Alt+M")); _checkValidityAction -> setShortcut (QKeySequence ("Alt+V")); _paletteAction -> setShortcut (QKeySequence ("Alt+P")); _setAnalysisAction -> setShortcut (QKeySequence ("Ctrl+Y")); _openDebuggerDlgAction -> setShortcut (QKeySequence ("F8")); // ******************************* // *** (6.1) Build File Menu *** // ******************************* _fileMenu->addAction(_newSetAction); _fileMenu->addAction(_openSetAction); _fileMenu->addAction(_reopenSetMenu->menuAction()); _fileMenu->addSeparator(); //------------ _fileMenu->addAction(_newGlobFuncSetAction); _fileMenu->addAction(_openGlobFuncSetAction); _fileMenu->addAction(_reopenGlobFuncSetMenu->menuAction()); _fileMenu->addSeparator(); //------------ _fileMenu->addAction(_saveSetAction); _fileMenu->addAction(_saveSetAsAction); _fileMenu->addSeparator(); //------------ _fileMenu->addAction(_printRplSetAction); _fileMenu->addAction(_closeAction); _reopenSetMenu->addSeparator(); //------------ _reopenGlobFuncSetMenu->addSeparator(); //------------ // ******************************* // *** (6.2) Build Edit Menu *** // ******************************* _editMenu->addAction(_cutAction); _editMenu->addAction(_copyAction); _editMenu->addAction(_pasteAction); _editMenu->addAction(_deleteAction); _editMenu->addAction(_enableAction); _editMenu->addSeparator(); //------------ _editMenu->addAction(_insertAction); _editMenu->addAction(_appendAction); _editMenu->addSeparator(); //------------ _editMenu->addAction(_undoAction); _editMenu->addAction(_redoAction); _editMenu->addSeparator(); //------------ _editMenu->addAction(_searchReplaceAction); _editMenu->addSeparator(); //------------ _editMenu->addAction(_refreshAction); // *********************************** // *** (6.3) Build Function Menu *** // *********************************** _funcMenu->addAction(_addMinConstraintAction); _funcMenu->addAction(_addMaxConstraintAction); _funcMenu->addAction(_addMinErrorAction); _funcMenu->addAction(_addMaxErrorAction); _funcMenu->addSeparator(); //------------ _funcMenu->addAction(_setTimeVaryingAction); _funcMenu->addSeparator(); //------------ _funcMenu->addAction(_breakBeforeEvalAction); _funcMenu->addAction(_breakAfterEvalAction); _funcMenu->addSeparator(); //------------ _funcMenu->addAction(_checkValidityAction); _funcMenu->addSeparator(); //------------ _funcMenu->addAction(_paletteAction); _funcMenu->addSeparator(); //------------ _funcMenu->addAction(_displaySettingsAction); _funcMenu->addAction(_setAnalysisAction); _funcMenu->addAction(_compareSetAction); _funcMenu->addAction(_setEditorAction); _funcMenu->addAction(_openDebuggerDlgAction); _funcMenu->addSeparator(); //------------ _funcMenu->addAction(_closeAllEditorsAction); // ******************************* // *** (6.4) Build View Menu *** // ******************************* _viewMenu->addAction(_showPostExecChecksAction); _viewMenu->addAction(_showDescriptionAction); _viewMenu->addAction(_showNotesAction); _viewMenu->addAction(_showDiagnosticsAction); _viewMenu->addAction(_showCommentsAction); _viewMenu->addSeparator(); //------------ _viewMenu->addAction(_extDocMenu->menuAction()); _extDocMenu->addAction(_viewExtDocAction); _extDocMenu->addAction(_editExtDocAction); _extDocMenu->addAction(_configExtDocAction); _extDocMenu->addAction(_fileTypeAssocAction); } //--- (end RplFunctionMenus.cpp) ---