diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2015-02-03 07:30:08 -0800 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-02-03 07:36:09 -0800 |
commit | d34965135a3b3f8fd887bb1d2a6083fb2f181fb0 (patch) | |
tree | bbff5d2b7ffbadf581902f710aad8a0b33d3b9f8 | |
parent | fdb736c1e1ae6ba637061fe967fb8ef3ff571084 (diff) | |
download | subsurface-d34965135a3b3f8fd887bb1d2a6083fb2f181fb0.tar.gz |
Disable dive component copy/paste shortcuts when no profile show
Instead of inventing another way to do this (and inevitably forgetting a
path where this should be re-enabled) I renamed the DcShortcup related
function and made them enable/disable the copy and paste shortcuts as
well.
Of course there now is one exception (isn't there always?): in "ADD" state
we don't want to be able to switch DCs, but we do want to be able to
paste.
Fixes #825
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r-- | qt-ui/mainwindow.cpp | 17 | ||||
-rw-r--r-- | qt-ui/mainwindow.h | 8 | ||||
-rw-r--r-- | qt-ui/profile/profilewidget2.cpp | 6 |
3 files changed, 18 insertions, 13 deletions
diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp index 3b7333619..df87eeef0 100644 --- a/qt-ui/mainwindow.cpp +++ b/qt-ui/mainwindow.cpp @@ -268,7 +268,7 @@ void MainWindow::cleanUpEmpty() ui.globe->reload(); if (!existing_filename) setTitle(MWTF_DEFAULT); - disableDcShortcuts(); + disableShortcuts(); } bool MainWindow::okToClose(QString message) @@ -342,21 +342,26 @@ void MainWindow::on_actionPrint_triggered() #endif } -void MainWindow::disableDcShortcuts() +void MainWindow::disableShortcuts(bool disablePaste) { ui.actionPreviousDC->setShortcut(QKeySequence()); ui.actionNextDC->setShortcut(QKeySequence()); + ui.copy->setShortcut(QKeySequence()); + if (disablePaste) + ui.paste->setShortcut(QKeySequence()); } -void MainWindow::enableDcShortcuts() +void MainWindow::enableShortcuts() { ui.actionPreviousDC->setShortcut(Qt::Key_Left); ui.actionNextDC->setShortcut(Qt::Key_Right); + ui.copy->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_C)); + ui.paste->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_V)); } void MainWindow::showProfile() { - enableDcShortcuts(); + enableShortcuts(); ui.newProfile->setProfileState(); ui.infoPane->setCurrentIndex(MAINTAB); } @@ -1359,14 +1364,14 @@ void MainWindow::editCurrentDive() QString defaultDC(d->dc.model); DivePlannerPointsModel::instance()->clear(); if (defaultDC == "manually added dive") { - disableDcShortcuts(); + disableShortcuts(); DivePlannerPointsModel::instance()->setPlanMode(DivePlannerPointsModel::ADD); ui.newProfile->setAddState(); ui.infoPane->setCurrentIndex(MAINTAB); DivePlannerPointsModel::instance()->loadFromDive(d); ui.InfoWidget->enableEdition(MainTab::MANUALLY_ADDED_DIVE); } else if (defaultDC == "planned dive") { - disableDcShortcuts(); + disableShortcuts(); DivePlannerPointsModel::instance()->setPlanMode(DivePlannerPointsModel::PLAN); //TODO: I BROKE THIS BY COMMENTING THE LINE BELOW // and I'm sleepy now, so I think I should not try to fix right away. diff --git a/qt-ui/mainwindow.h b/qt-ui/mainwindow.h index 8a9d6f38b..2364caadc 100644 --- a/qt-ui/mainwindow.h +++ b/qt-ui/mainwindow.h @@ -67,10 +67,10 @@ public: void showError(QString message); void setTitle(enum MainWindowTitleFormat format); - // The 'Change DC Shortcuts' should only be enabled - // when the profile's visible. - void disableDcShortcuts(); - void enableDcShortcuts(); + // Some shortcuts like "change DC" or "copy/paste dive components" + // should only be enabled when the profile's visible. + void disableShortcuts(bool disablePaste = true); + void enableShortcuts(); void loadFiles(const QStringList files); void importFiles(const QStringList importFiles); void importTxtFiles(const QStringList fileNames); diff --git a/qt-ui/profile/profilewidget2.cpp b/qt-ui/profile/profilewidget2.cpp index ab16146e8..f04d16b3f 100644 --- a/qt-ui/profile/profilewidget2.cpp +++ b/qt-ui/profile/profilewidget2.cpp @@ -916,7 +916,7 @@ void ProfileWidget2::setProfileState() /* show the same stuff that the profile shows. */ //TODO: Move the DC handling to another method. - MainWindow::instance()->enableDcShortcuts(); + MainWindow::instance()->enableShortcuts(); currentState = PROFILE; MainWindow::instance()->setEnabledToolbar(true); @@ -1061,7 +1061,7 @@ void ProfileWidget2::setAddState() mouseFollowerVertical->setLine(QLineF(0, profileYAxis->pos().y(), 0, timeAxis->pos().y())); disconnectTemporaryConnections(); //TODO: Move this method to another place, shouldn't be on mainwindow. - MainWindow::instance()->disableDcShortcuts(); + MainWindow::instance()->disableShortcuts(false); actionsForKeys[Qt::Key_Left]->setShortcut(Qt::Key_Left); actionsForKeys[Qt::Key_Right]->setShortcut(Qt::Key_Right); actionsForKeys[Qt::Key_Up]->setShortcut(Qt::Key_Up); @@ -1094,7 +1094,7 @@ void ProfileWidget2::setPlanState() mouseFollowerVertical->setLine(QLineF(0, profileYAxis->pos().y(), 0, timeAxis->pos().y())); disconnectTemporaryConnections(); //TODO: Move this method to another place, shouldn't be on mainwindow. - MainWindow::instance()->disableDcShortcuts(); + MainWindow::instance()->disableShortcuts(); actionsForKeys[Qt::Key_Left]->setShortcut(Qt::Key_Left); actionsForKeys[Qt::Key_Right]->setShortcut(Qt::Key_Right); actionsForKeys[Qt::Key_Up]->setShortcut(Qt::Key_Up); |