From f00b88ef80a27a12651de2372c5ac9169ebe2c71 Mon Sep 17 00:00:00 2001 From: Jim Evins Date: Sat, 26 Oct 2013 13:57:00 -0400 Subject: [PATCH] Added private methods to enable/disable actions based on state. --- app/MainWindow.cpp | 113 +++++++++++++++++++++++++++++++++++++++++++++ app/MainWindow.h | 6 +++ 2 files changed, 119 insertions(+) diff --git a/app/MainWindow.cpp b/app/MainWindow.cpp index 90d5ccc..879c3a8 100644 --- a/app/MainWindow.cpp +++ b/app/MainWindow.cpp @@ -41,6 +41,9 @@ namespace gLabels createMenus(); createToolBars(); + setDocVerbsEnabled( false ); + setPasteVerbsEnabled( false ); + readSettings(); } @@ -460,6 +463,116 @@ namespace gLabels } + /* + * Set enabled state of actions associated with a document. + */ + void MainWindow::setDocVerbsEnabled( bool enabled ) + { + filePropertiesAction->setEnabled( enabled ); + fileSaveAction->setEnabled( enabled ); + fileSaveAsAction->setEnabled( enabled ); + filePrintAction->setEnabled( enabled ); + fileCloseAction->setEnabled( enabled ); + editUndoAction->setEnabled( enabled ); + editRedoAction->setEnabled( enabled ); + editCutAction->setEnabled( enabled ); + editCopyAction->setEnabled( enabled ); + editPasteAction->setEnabled( enabled ); + editDeleteAction->setEnabled( enabled ); + editSelectAllAction->setEnabled( enabled ); + editUnSelectAllAction->setEnabled( enabled ); + viewZoomInAction->setEnabled( enabled ); + viewZoomOutAction->setEnabled( enabled ); + viewZoom1to1Action->setEnabled( enabled ); + viewZoomToFitAction->setEnabled( enabled ); + viewGridAction->setEnabled( enabled ); + viewMarkupAction->setEnabled( enabled ); + objectsArrowModeAction->setEnabled( enabled ); + objectsCreateMenu->setEnabled( enabled ); + objectsCreateTextAction->setEnabled( enabled ); + objectsCreateLineAction->setEnabled( enabled ); + objectsCreateBoxAction->setEnabled( enabled ); + objectsCreateEllipseAction->setEnabled( enabled ); + objectsCreateImageAction->setEnabled( enabled ); + objectsCreateBarcodeAction->setEnabled( enabled ); + objectsOrderMenu->setEnabled( enabled ); + objectsOrderRaiseAction->setEnabled( enabled ); + objectsOrderLowerAction->setEnabled( enabled ); + objectsXformMenu->setEnabled( enabled ); + objectsXformRotateLeftAction->setEnabled( enabled ); + objectsXformRotateRightAction->setEnabled( enabled ); + objectsXformFlipHorizAction->setEnabled( enabled ); + objectsXformFlipVertAction->setEnabled( enabled ); + objectsAlignMenu->setEnabled( enabled ); + objectsAlignLeftAction->setEnabled( enabled ); + objectsAlignRightAction->setEnabled( enabled ); + objectsAlignHCenterAction->setEnabled( enabled ); + objectsAlignTopAction->setEnabled( enabled ); + objectsAlignBottomAction->setEnabled( enabled ); + objectsAlignVCenterAction->setEnabled( enabled ); + objectsCenterMenu->setEnabled( enabled ); + objectsCenterHorizAction->setEnabled( enabled ); + objectsCenterVertAction->setEnabled( enabled ); + objectsMergePropertiesAction->setEnabled( enabled ); + } + + + /* + * Set enabled state of actions associated with a document being modified since last save. + */ + void MainWindow::setDocModifiedVerbsEnabled( bool enabled ) + { + fileSaveAction->setEnabled( enabled ); + } + + + /* + * Set enabled state of actions associated with data being available on clipboard. + */ + void MainWindow::setPasteVerbsEnabled( bool enabled ) + { + editPasteAction->setEnabled( enabled ); + } + + + /* + * Set enabled state of actions associated with a non-empty selection. + */ + void MainWindow::setSelectionVerbsEnabled( bool enabled ) + { + editCutAction->setEnabled( enabled ); + editCopyAction->setEnabled( enabled ); + editDeleteAction->setEnabled( enabled ); + editUnSelectAllAction->setEnabled( enabled ); + objectsOrderMenu->setEnabled( enabled ); + objectsOrderRaiseAction->setEnabled( enabled ); + objectsOrderLowerAction->setEnabled( enabled ); + objectsXformMenu->setEnabled( enabled ); + objectsXformRotateLeftAction->setEnabled( enabled ); + objectsXformRotateRightAction->setEnabled( enabled ); + objectsXformFlipHorizAction->setEnabled( enabled ); + objectsXformFlipVertAction->setEnabled( enabled ); + objectsCenterMenu->setEnabled( enabled ); + objectsCenterHorizAction->setEnabled( enabled ); + objectsCenterVertAction->setEnabled( enabled ); + } + + + /* + * Set enabled state of actions associated with a non-atomic selection. + */ + void MainWindow::setMultiSelectionVerbsEnabled( bool enabled ) + { + objectsAlignMenu->setEnabled( enabled ); + objectsAlignLeftAction->setEnabled( enabled ); + objectsAlignRightAction->setEnabled( enabled ); + objectsAlignHCenterAction->setEnabled( enabled ); + objectsAlignTopAction->setEnabled( enabled ); + objectsAlignBottomAction->setEnabled( enabled ); + objectsAlignVCenterAction->setEnabled( enabled ); + } + + void MainWindow::readSettings() { QSettings settings; diff --git a/app/MainWindow.h b/app/MainWindow.h index ed9f6e0..aead3af 100644 --- a/app/MainWindow.h +++ b/app/MainWindow.h @@ -108,6 +108,12 @@ namespace gLabels void createMenus(); void createToolBars(); + void setDocVerbsEnabled( bool ); + void setDocModifiedVerbsEnabled( bool ); + void setPasteVerbsEnabled( bool ); + void setSelectionVerbsEnabled( bool ); + void setMultiSelectionVerbsEnabled( bool ); + void readSettings(); void writeSettings();