diff --git a/app/dockconfigview.cpp b/app/dockconfigview.cpp index 3814ec0a3..2a7c9ca59 100644 --- a/app/dockconfigview.cpp +++ b/app/dockconfigview.cpp @@ -450,15 +450,6 @@ void DockConfigView::hideConfigWindow() } } -void DockConfigView::showLatteConfigWindow() -{ - auto *dockCorona = qobject_cast(m_dockView->corona()); - - if (dockCorona) { - dockCorona->layoutManager()->showLatteConfigDialog(); - } -} - void DockConfigView::updateLaunchersForGroup(int groupInt) { Dock::LaunchersGroup group = (Dock::LaunchersGroup)groupInt; diff --git a/app/dockconfigview.h b/app/dockconfigview.h index e1e4bffcd..f20e99f6e 100644 --- a/app/dockconfigview.h +++ b/app/dockconfigview.h @@ -74,7 +74,6 @@ public slots: Q_INVOKABLE void hideConfigWindow(); Q_INVOKABLE void setSticker(bool blockFocusLost); Q_INVOKABLE void setVisibleWindow(bool visible); - Q_INVOKABLE void showLatteConfigWindow(); Q_INVOKABLE void syncGeometry(); Q_INVOKABLE void updateLaunchersForGroup(int groupInt); diff --git a/app/dockview.cpp b/app/dockview.cpp index ddefad2bd..f75a796aa 100644 --- a/app/dockview.cpp +++ b/app/dockview.cpp @@ -2235,7 +2235,7 @@ void DockView::addContainmentActions(QMenu *desktopMenu, QEvent *event) QAction *editLayoutsAction = new QAction(i18n("Configure..."), layoutsMenu); connect(editLayoutsAction, &QAction::triggered, this, [this, dockCorona] { - dockCorona->layoutManager()->showLatteConfigDialog(); + dockCorona->layoutManager()->showLatteConfigDialog(Dock::LayoutPage); }); layoutsMenu->addAction(editLayoutsAction); diff --git a/app/globalshortcuts.cpp b/app/globalshortcuts.cpp index 33c5f74fe..b7cbec1c3 100644 --- a/app/globalshortcuts.cpp +++ b/app/globalshortcuts.cpp @@ -171,7 +171,7 @@ void GlobalShortcuts::init() //show-hide the main dock in the primary screen QAction *showAction = generalActions->addAction(QStringLiteral("show latte dock")); - showAction->setText(i18n("Show Latte Dock")); + showAction->setText(i18n("Show Dock")); showAction->setShortcut(QKeySequence(Qt::META + '`')); KGlobalAccel::setGlobalShortcut(showAction, QKeySequence(Qt::META + '`')); connect(showAction, &QAction::triggered, this, [this]() { @@ -187,14 +187,22 @@ void GlobalShortcuts::init() }); //show the layouts editor - QAction *layoutsAction = generalActions->addAction(QStringLiteral("show latte settings")); - layoutsAction->setText(i18n("Show Latte Settings Window")); - layoutsAction->setShortcut(QKeySequence(Qt::META + Qt::Key_E)); - KGlobalAccel::setGlobalShortcut(layoutsAction, QKeySequence(Qt::META + Qt::Key_E)); + QAction *layoutsAction = generalActions->addAction(QStringLiteral("show layout settings")); + layoutsAction->setText(i18n("Show Layout Settings")); + layoutsAction->setShortcut(QKeySequence(Qt::META + Qt::Key_W)); + KGlobalAccel::setGlobalShortcut(layoutsAction, QKeySequence(Qt::META + Qt::Key_W)); connect(layoutsAction, &QAction::triggered, this, [this]() { - showLatteConfigDialog(); + m_corona->layoutManager()->showLatteConfigDialog(Dock::LayoutPage); }); + //show the latter universal settings + QAction *universalSettingsAction = generalActions->addAction(QStringLiteral("show latte universal settings")); + universalSettingsAction->setText(i18n("Show Latte Settings")); + universalSettingsAction->setShortcut(QKeySequence(Qt::META + Qt::Key_E)); + KGlobalAccel::setGlobalShortcut(universalSettingsAction, QKeySequence(Qt::META + Qt::Key_E)); + connect(universalSettingsAction, &QAction::triggered, this, [this]() { + m_corona->layoutManager()->showLatteConfigDialog(Dock::PreferencesPage); + }); KActionCollection *taskbarActions = new KActionCollection(m_corona); @@ -490,11 +498,6 @@ void GlobalShortcuts::showDock() } } -void GlobalShortcuts::showLatteConfigDialog() -{ - m_corona->layoutManager()->showLatteConfigDialog(); -} - bool GlobalShortcuts::dockAtLowerScreenPriority(DockView *test, DockView *base) { if (!base || ! test) { diff --git a/app/globalshortcuts.h b/app/globalshortcuts.h index 4a47be53d..d912c0114 100644 --- a/app/globalshortcuts.h +++ b/app/globalshortcuts.h @@ -52,7 +52,6 @@ private: void activateTaskManagerEntry(int index, Qt::Key modifier); void showDock(); void hideDock(); - void showLatteConfigDialog(); void showSettings(); bool dockAtLowerEdgePriority(DockView *test, DockView *base); diff --git a/app/latteconfigdialog.cpp b/app/latteconfigdialog.cpp index 4bbc9ce87..572a56ee1 100644 --- a/app/latteconfigdialog.cpp +++ b/app/latteconfigdialog.cpp @@ -183,6 +183,15 @@ QStringList LatteConfigDialog::availableActivities() return m_availableActivities; } +void LatteConfigDialog::setCurrentPage(Dock::LatteConfigPage page) +{ + if (page == Dock::LayoutPage) { + ui->tabWidget->setCurrentIndex(0); + } else if (page == Dock::PreferencesPage) { + ui->tabWidget->setCurrentIndex(1); + } +} + void LatteConfigDialog::on_newButton_clicked() { qDebug() << Q_FUNC_INFO; diff --git a/app/latteconfigdialog.h b/app/latteconfigdialog.h index c53a8738d..1a17c8071 100644 --- a/app/latteconfigdialog.h +++ b/app/latteconfigdialog.h @@ -52,6 +52,8 @@ public: LatteConfigDialog(QWidget *parent, DockCorona *corona); ~LatteConfigDialog(); + void setCurrentPage(Dock::LatteConfigPage page); + QStringList activities(); QStringList availableActivities(); diff --git a/app/latteconfigdialog.ui b/app/latteconfigdialog.ui index 1e6565a9d..cccc8d12b 100644 --- a/app/latteconfigdialog.ui +++ b/app/latteconfigdialog.ui @@ -17,7 +17,7 @@ - 1 + 0 @@ -102,7 +102,7 @@ false - false + true true diff --git a/app/layoutmanager.cpp b/app/layoutmanager.cpp index af63d7c9f..874f6ddb8 100644 --- a/app/layoutmanager.cpp +++ b/app/layoutmanager.cpp @@ -1024,7 +1024,7 @@ bool LayoutManager::layoutIsAssigned(QString layoutName) return false; } -void LayoutManager::showLatteConfigDialog() +void LayoutManager::showLatteConfigDialog(int page) { if (!m_latteConfigDialog) { m_latteConfigDialog = new LatteConfigDialog(nullptr, m_corona); @@ -1037,6 +1037,9 @@ void LayoutManager::showLatteConfigDialog() m_latteConfigDialog->showNormal(); } + Dock::LatteConfigPage configPage = static_cast(page); + m_latteConfigDialog->setCurrentPage(configPage); + m_latteConfigDialog->activateWindow(); } diff --git a/app/layoutmanager.h b/app/layoutmanager.h index 26a5aafde..3abfa0639 100644 --- a/app/layoutmanager.h +++ b/app/layoutmanager.h @@ -106,7 +106,7 @@ public: public slots: void showAboutDialog(); - Q_INVOKABLE void showLatteConfigDialog(); + Q_INVOKABLE void showLatteConfigDialog(int page = Latte::Dock::LayoutPage); //! switch to specified layout, default previousMemoryUsage means that it didnt change Q_INVOKABLE bool switchToLayout(QString layoutName, int previousMemoryUsage = -1); diff --git a/liblattedock/dock.h b/liblattedock/dock.h index a2509f425..13e25b336 100644 --- a/liblattedock/dock.h +++ b/liblattedock/dock.h @@ -124,6 +124,12 @@ public: HighSensitivity }; Q_ENUM(MouseSensitivity) + + enum LatteConfigPage { + LayoutPage = 0, + PreferencesPage + }; + Q_ENUM(LatteConfigPage) }; }//end of namespace diff --git a/shell/package/contents/configuration/LatteDockConfiguration.qml b/shell/package/contents/configuration/LatteDockConfiguration.qml index 59ee228e9..ee717d815 100644 --- a/shell/package/contents/configuration/LatteDockConfiguration.qml +++ b/shell/package/contents/configuration/LatteDockConfiguration.qml @@ -217,7 +217,8 @@ FocusScope { anchors.fill: parent hoverEnabled: true - onClicked: dockConfig.showLatteConfigWindow() + readonly property int preferencesPage: Latte.Dock.PreferencesPage + onClicked: layoutManager.showLatteConfigDialog(preferencesPage) } }