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>
This commit is contained in:
Berthold Stoeger 2018-07-30 11:15:08 +02:00 committed by Dirk Hohndel
parent 63b65a7e20
commit 26901a8dbd
2 changed files with 9 additions and 6 deletions

View file

@ -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);

View file

@ -185,6 +185,8 @@ private:
Ui::MainWindow ui;
QAction *actionNextDive;
QAction *actionPreviousDive;
QAction *undoAction;
QAction *redoAction;
#ifndef NO_USERMANUAL
UserManual *helpView;
#endif