From e9ec4ea266b3296ada05eab040c1ddb28b6178ff Mon Sep 17 00:00:00 2001 From: Michail Vourlakos Date: Tue, 17 Mar 2020 17:06:15 +0200 Subject: [PATCH] add shortcuts for layouts editor --- .../controllers/layoutscontroller.cpp | 4 +- app/settings/settingsdialog.cpp | 23 ++++++-- app/settings/settingsdialog.h | 5 +- app/settings/settingsdialog.ui | 52 +++++++++++++++---- 4 files changed, 64 insertions(+), 20 deletions(-) diff --git a/app/settings/controllers/layoutscontroller.cpp b/app/settings/controllers/layoutscontroller.cpp index d4732a7c4..294b15716 100644 --- a/app/settings/controllers/layoutscontroller.cpp +++ b/app/settings/controllers/layoutscontroller.cpp @@ -274,7 +274,7 @@ void Layouts::removeSelected() void Layouts::toggleLockedForSelected() { - if (m_view->currentIndex().row() < 0) { + if (!hasSelectedLayout()) { return; } @@ -285,7 +285,7 @@ void Layouts::toggleLockedForSelected() void Layouts::toggleSharedForSelected() { - if (m_view->currentIndex().row() < 0) { + if (!hasSelectedLayout()) { return; } diff --git a/app/settings/settingsdialog.cpp b/app/settings/settingsdialog.cpp index 0778676bb..3e55d2bea 100644 --- a/app/settings/settingsdialog.cpp +++ b/app/settings/settingsdialog.cpp @@ -126,7 +126,7 @@ SettingsDialog::SettingsDialog(QWidget *parent, Latte::Corona *corona) QAction *screensAction = fileMenu->addAction(i18n("Sc&reens...")); screensAction->setIcon(QIcon::fromTheme("document-properties")); - screensAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_R)); + //screensAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_R)); QAction *quitAction = fileMenu->addAction(i18n("&Quit Latte")); quitAction->setIcon(QIcon::fromTheme("application-exit")); @@ -134,8 +134,12 @@ SettingsDialog::SettingsDialog(QWidget *parent, Latte::Corona *corona) m_editLayoutAction = layoutMenu->addAction(i18nc("edit layout","&Edit...")); m_editLayoutAction->setIcon(QIcon::fromTheme("document-edit")); - m_editLayoutAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_E)); + //m_editLayoutAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_E)); m_editLayoutAction->setToolTip("You can edit layout file when layout is not active or locked"); + m_editLayoutAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_E)); + + ui->buttonBox->button(QDialogButtonBox::Apply)->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_S)); + ui->buttonBox->button(QDialogButtonBox::Reset)->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_L)); m_openUrlAction = new QAction(i18n("Open Location..."), this); connect(m_openUrlAction, &QAction::triggered, this, [&]() { @@ -148,7 +152,7 @@ SettingsDialog::SettingsDialog(QWidget *parent, Latte::Corona *corona) QAction *infoLayoutAction = layoutMenu->addAction(i18nc("layout information","&Information...")); infoLayoutAction->setIcon(QIcon::fromTheme("document-properties")); - infoLayoutAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_I)); + //infoLayoutAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_I)); //! RTL support for labels in preferences if (qApp->layoutDirection() == Qt::RightToLeft) { @@ -376,7 +380,6 @@ void SettingsDialog::on_importButton_clicked() { qDebug() << Q_FUNC_INFO; - QFileDialog *importFileDialog = new QFileDialog(this, i18nc("import layout/configuration", "Import Layout/Configuration") , QDir::homePath() , QStringLiteral("layout.latte")); @@ -465,7 +468,7 @@ void SettingsDialog::on_importButton_clicked() void SettingsDialog::on_exportButton_clicked() { - if (ui->layoutsView->currentIndex().row() < 0) { + if (!m_layoutsController->hasSelectedLayout()) { return; } @@ -597,6 +600,10 @@ void SettingsDialog::apply() { qDebug() << Q_FUNC_INFO; + if (!ui->buttonBox->button(QDialogButtonBox::Apply)->isEnabled()) { + return; + } + saveAllChanges(); updateApplyButtonsState(); @@ -605,6 +612,12 @@ void SettingsDialog::apply() void SettingsDialog::reset() { + qDebug() << Q_FUNC_INFO; + + if (!ui->buttonBox->button(QDialogButtonBox::Reset)->isEnabled()) { + return; + } + if (ui->tabWidget->currentIndex() == Latte::Types::LayoutPage) { m_layoutsController->reset(); } diff --git a/app/settings/settingsdialog.h b/app/settings/settingsdialog.h index c35bd5a88..bb7ae5c5b 100644 --- a/app/settings/settingsdialog.h +++ b/app/settings/settingsdialog.h @@ -84,14 +84,15 @@ private slots: void on_newButton_clicked(); void on_copyButton_clicked(); void on_downloadButton_clicked(); - void on_lockedButton_clicked(); void on_pauseButton_clicked(); void on_removeButton_clicked(); - void on_sharedButton_clicked(); void on_switchButton_clicked(); void on_importButton_clicked(); void on_exportButton_clicked(); + void on_lockedButton_clicked(); + void on_sharedButton_clicked(); + void accept() override; void apply(); diff --git a/app/settings/settingsdialog.ui b/app/settings/settingsdialog.ui index 05e0832fa..50ae8fb7c 100644 --- a/app/settings/settingsdialog.ui +++ b/app/settings/settingsdialog.ui @@ -145,12 +145,15 @@ Switch to selected layout - Switch + &Switch .. + + Ctrl+Tab + @@ -159,12 +162,15 @@ Pause all activities from the selected layout - Pause + &Pause .. + + Ctrl+P + @@ -218,12 +224,15 @@ New layout - New + &New .. + + Ctrl+N + @@ -232,12 +241,15 @@ Copy selected layout - Copy + &Copy .. + + Ctrl+C + false @@ -279,12 +291,15 @@ Lock layout and make it read-only - Locked + &Locked .. + + Meta+Shift+L + true @@ -296,12 +311,15 @@ Share that layout with other central layouts - Shared + Sha&red .. + + Ctrl+R + true @@ -373,12 +391,15 @@ Import a layout or full configuration file - Import + &Import .. + + + false @@ -390,12 +411,18 @@ Export selected layout or full configuration into a file - Export + E&xport .. + + Ctrl+Shift+X + + + false + @@ -404,12 +431,15 @@ Download community layouts from the Internet - Download + Do&wnload .. + + Ctrl+Shift+D + @@ -470,8 +500,8 @@ 0 0 - 890 - 662 + 885 + 613