diff options
author | Grace Karanja <gracie.karanja89@gmail.com> | 2015-02-09 09:24:32 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-02-09 21:02:13 -0800 |
commit | c5138b2090e50cf76a51af1c561a31b5e01485db (patch) | |
tree | 1b1673e4b9b9cddc95d693776c89e49a84ca0b03 /qt-ui/mainwindow.cpp | |
parent | 853dfa66735db874cc16688e6fd9ad9320474e37 (diff) | |
download | subsurface-c5138b2090e50cf76a51af1c561a31b5e01485db.tar.gz |
Add menu entries for undo/redo
Add an edit menu with undo and redo submenus, and connect them to
the UndoBuffer class. The submenus are only enabled when needed.
Signed-off-by: Grace Karanja <gracie.karanja89@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui/mainwindow.cpp')
-rw-r--r-- | qt-ui/mainwindow.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp index 3142f5a82..57af5e091 100644 --- a/qt-ui/mainwindow.cpp +++ b/qt-ui/mainwindow.cpp @@ -31,6 +31,7 @@ #include "usermanual.h" #endif #include <QNetworkProxy> +#include "undobuffer.h" MainWindow *MainWindow::m_Instance = NULL; @@ -77,6 +78,7 @@ MainWindow::MainWindow() : QMainWindow(), connect(DivePlannerPointsModel::instance(), SIGNAL(planCreated()), this, SLOT(planCreated())); connect(DivePlannerPointsModel::instance(), SIGNAL(planCanceled()), this, SLOT(planCanceled())); connect(ui.printPlan, SIGNAL(pressed()), ui.divePlannerWidget, SLOT(printDecoPlan())); + connect(ui.menu_Edit, SIGNAL(aboutToShow()), this, SLOT(checkForUndoAndRedo())); #ifdef NO_PRINTING ui.printPlan->hide(); #endif @@ -152,6 +154,7 @@ MainWindow::MainWindow() : QMainWindow(), toolBar->setContentsMargins(zeroMargins); updateManager = new UpdateManager(this); + undoBuffer = new UndoBuffer(this); } MainWindow::~MainWindow() @@ -1466,3 +1469,19 @@ void MainWindow::on_actionFilterTags_triggered() else ui.multiFilter->setVisible(true); } + +void MainWindow::on_action_Undo_triggered() +{ + undoBuffer->undo(); +} + +void MainWindow::on_action_Redo_triggered() +{ + undoBuffer->redo(); +} + +void MainWindow::checkForUndoAndRedo() +{ + ui.action_Undo->setEnabled(undoBuffer->canUndo()); + ui.action_Redo->setEnabled(undoBuffer->canRedo()); +} |