aboutsummaryrefslogtreecommitdiffstats
path: root/desktop-widgets/mainwindow.cpp
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2018-07-30 11:15:08 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2018-10-11 16:22:27 -0700
commit26901a8dbd91a18689199361541f9d1f90d56e4e (patch)
tree846acb461aaf30edf2ea68c0d357cd269ea643ba /desktop-widgets/mainwindow.cpp
parent63b65a7e20615d7e049ab09ae7dc6053d705c04b (diff)
downloadsubsurface-26901a8dbd91a18689199361541f9d1f90d56e4e.tar.gz
Undo: disable undo- and redo-actions in edit mode
We have to avoid that undo/redo removes the currently edited dive from under our feet. This code can be removed once proper undo/redo (including editing) is implemented. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'desktop-widgets/mainwindow.cpp')
-rw-r--r--desktop-widgets/mainwindow.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/desktop-widgets/mainwindow.cpp b/desktop-widgets/mainwindow.cpp
index 05839824a..376d2e7f3 100644
--- a/desktop-widgets/mainwindow.cpp
+++ b/desktop-widgets/mainwindow.cpp
@@ -260,14 +260,11 @@ MainWindow::MainWindow() : QMainWindow(),
memset(&what, 0, sizeof(what));
updateManager = new UpdateManager(this);
- QAction *undoAction = Command::undoAction(this);
- QAction *redoAction = Command::redoAction(this);
+ undoAction = Command::undoAction(this);
+ redoAction = Command::redoAction(this);
undoAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Z));
redoAction->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_Z));
- QList<QAction*>undoRedoActions;
- undoRedoActions.append(undoAction);
- undoRedoActions.append(redoAction);
- ui.menu_Edit->addActions(undoRedoActions);
+ ui.menu_Edit->addActions({ undoAction, redoAction });
ReverseGeoLookupThread *geoLookup = ReverseGeoLookupThread::instance();
connect(geoLookup, SIGNAL(started()),information(), SLOT(disableGeoLookupEdition()));
@@ -1184,6 +1181,8 @@ void MainWindow::on_actionViewAll_triggered()
void MainWindow::enterEditState()
{
+ undoAction->setEnabled(false);
+ redoAction->setEnabled(false);
stateBeforeEdit = state;
if (state == VIEWALL || state == INFO_MAXIMIZED)
return;
@@ -1207,6 +1206,8 @@ void MainWindow::enterEditState()
void MainWindow::exitEditState()
{
+ undoAction->setEnabled(true);
+ redoAction->setEnabled(true);
if (stateBeforeEdit == state)
return;
enterState(stateBeforeEdit);