From c5138b2090e50cf76a51af1c561a31b5e01485db Mon Sep 17 00:00:00 2001 From: Grace Karanja Date: Mon, 9 Feb 2015 09:24:32 +0100 Subject: 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 Signed-off-by: Dirk Hohndel --- qt-ui/mainwindow.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'qt-ui/mainwindow.cpp') 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 +#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()); +} -- cgit v1.2.3-70-g09d2