From cb509d51fbd1134554dee323369f1e3fd077f7f6 Mon Sep 17 00:00:00 2001 From: Jacopo De Simoi Date: Sun, 21 Jan 2018 15:52:25 -0500 Subject: [PATCH] Add shortcut to hide panel --- shell/panelview.cpp | 8 ++++---- shell/panelview.h | 2 +- shell/shellcorona.cpp | 28 +++++++++++++++++++++++++++- shell/shellcorona.h | 5 ++--- 4 files changed, 34 insertions(+), 9 deletions(-) diff --git a/shell/panelview.cpp b/shell/panelview.cpp index 184962052..24ed89cd1 100644 --- a/shell/panelview.cpp +++ b/shell/panelview.cpp @@ -303,9 +303,9 @@ void PanelView::setBackgroundHints(Plasma::Types::BackgroundHints hint) if (m_backgroundHints == hint) { return; } - + m_backgroundHints = hint; - + emit backgroundHintsChanged(); } @@ -1110,13 +1110,13 @@ void PanelView::themeChanged() { if (m_backgroundHints == Plasma::Types::NoBackground) { KWindowEffects::enableBlurBehind(winId(), false); - KWindowEffects::enableBackgroundContrast(winId(), false); + KWindowEffects::enableBackgroundContrast(winId(), false); } else { KWindowEffects::enableBlurBehind(winId(), true); KWindowEffects::enableBackgroundContrast(winId(), m_theme.backgroundContrastEnabled(), m_theme.backgroundContrast(), m_theme.backgroundIntensity(), - m_theme.backgroundSaturation()); + m_theme.backgroundSaturation()); } updateMask(); diff --git a/shell/panelview.h b/shell/panelview.h index d12cba435..d052b63d5 100644 --- a/shell/panelview.h +++ b/shell/panelview.h @@ -81,7 +81,7 @@ class PanelView : public PlasmaQuick::ContainmentView * support NoBackground in order to disable blur/contrast effects and remove * the panel shadows * @since 5.9 - */ + */ Q_PROPERTY(Plasma::Types::BackgroundHints backgroundHints WRITE setBackgroundHints READ backgroundHints NOTIFY backgroundHintsChanged) /** diff --git a/shell/shellcorona.cpp b/shell/shellcorona.cpp index 4741e8aaf..5513b94f9 100644 --- a/shell/shellcorona.cpp +++ b/shell/shellcorona.cpp @@ -162,6 +162,8 @@ ShellCorona::ShellCorona(QObject *parent) connect(this, &ShellCorona::containmentAdded, this, &ShellCorona::handleContainmentAdded); + + QAction *dashboardAction = actions()->addAction(QStringLiteral("show dashboard")); QObject::connect(dashboardAction, &QAction::triggered, this, &ShellCorona::setDashboardShown); @@ -177,6 +179,21 @@ ShellCorona::ShellCorona(QObject *parent) dashboardAction->setData(Plasma::Types::ControlAction); KGlobalAccel::self()->setGlobalShortcut(dashboardAction, Qt::CTRL + Qt::Key_F12); + QAction *panelAction = actions()->addAction(QStringLiteral("show panel")); + QObject::connect(panelAction, &QAction::triggered, + this, &ShellCorona::togglePanelVisibility); + panelAction->setText(i18n("Toggle Panel")); + // connect(KWindowSystem::self(), &KWindowSystem::showingDesktopChanged, [panelAction](bool showing) { + // panelAction->setText(showing ? i18n("Hide Desktop") : i18n("Show Desktop")); + // panelAction->setChecked(showing); + // }); + + // panelAction->setAutoRepeat(true); + // panelAction->setCheckable(true); + // panelAction->setIcon(QIcon::fromTheme(QStringLiteral("panel-show"))); + // panelAction->setData(Plasma::Types::ControlAction); + KGlobalAccel::self()->setGlobalShortcut(panelAction, Qt::CTRL + Qt::Key_F11); + checkAddPanelAction(); connect(KSycoca::self(), SIGNAL(databaseChanged(QStringList)), this, SLOT(checkAddPanelAction(QStringList))); @@ -1094,6 +1111,16 @@ QList ShellCorona::panelsForScreen(QScreen *screen) const return ret; } +void ShellCorona::togglePanelVisibility() +{ + for (auto it = m_panelViews.constBegin(), end = m_panelViews.constEnd(); it != end; ++it) { + if (it.value()->screen() != qGuiApp->primaryScreen()) { + continue; + } + it.value()->setVisible(!it.value()->isVisible()); + } +} + DesktopView* ShellCorona::desktopForScreen(QScreen* screen) const { return m_desktopViewforId.value(m_screenPool->id(screen->name())); @@ -2112,4 +2139,3 @@ void ShellCorona::activateTaskManagerEntry(int index) #include "moc_shellcorona.cpp" - diff --git a/shell/shellcorona.h b/shell/shellcorona.h index 03bf3e04f..11a5d6ef4 100644 --- a/shell/shellcorona.h +++ b/shell/shellcorona.h @@ -141,7 +141,7 @@ public Q_SLOTS: void showInteractiveKWinConsole(); void loadKWinScriptInInteractiveConsole(const QString &script); void toggleActivityManager(); - void toggleWidgetExplorer(); + void toggleWidgetExplorer(); void evaluateScript(const QString &string); void activateLauncherMenu(); @@ -186,6 +186,7 @@ protected Q_SLOTS: void showAlternativesForApplet(Plasma::Applet *applet); + void togglePanelVisibility(); private Q_SLOTS: void createWaitingPanels(); void handleContainmentAdded(Plasma::Containment *c); @@ -252,5 +253,3 @@ private: }; #endif // SHELLCORONA_H - -