Add shortcut to hide panel

Fix moc include
wilder-5.26
Jacopo De Simoi 5 years ago committed by Jacopo De Simoi
parent 8a35e3418b
commit fe5ae9c685
  1. 30
      shell/shellcorona.cpp
  2. 1
      shell/shellcorona.h

@ -165,6 +165,8 @@ void ShellCorona::init()
connect(this, &ShellCorona::containmentAdded, this, &ShellCorona::handleContainmentAdded);
QAction *dashboardAction = actions()->addAction(QStringLiteral("show dashboard"));
QObject::connect(dashboardAction, &QAction::triggered, this, &ShellCorona::setDashboardShown);
dashboardAction->setText(i18n("Show Desktop"));
@ -179,6 +181,21 @@ void ShellCorona::init()
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(), &KSycoca::databaseChanged, this, &ShellCorona::checkAddPanelAction);
@ -1220,7 +1237,17 @@ QList<PanelView *> ShellCorona::panelsForScreen(QScreen *screen) const
return ret;
}
DesktopView *ShellCorona::desktopForScreen(QScreen *screen) const
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
{
DesktopView *view = m_desktopViewForScreen.value(screen);
//An output may have been renamed, fall back to a linear check
@ -2431,5 +2458,4 @@ void ShellCorona::refreshCurrentShell()
// Desktop corona handler
#include "moc_shellcorona.cpp"
#include "shellcorona.moc"

@ -224,6 +224,7 @@ protected Q_SLOTS:
void showAlternativesForApplet(Plasma::Applet *applet);
void togglePanelVisibility();
private Q_SLOTS:
void createWaitingPanels();
void handleContainmentAdded(Plasma::Containment *c);

Loading…
Cancel
Save