It enables do not disturb until turned off and allows disabling it. Differential Revision: https://phabricator.kde.org/D25910wilder-5.18
parent
b4b6418ae1
commit
e793d64372
5 changed files with 96 additions and 6 deletions
@ -0,0 +1,63 @@ |
||||
/*
|
||||
* Copyright 2019 Kai Uwe Broulik <kde@broulik.de> |
||||
* |
||||
* This program is free software; you can redistribute it and/or |
||||
* modify it under the terms of the GNU General Public License as |
||||
* published by the Free Software Foundation; either version 3 of |
||||
* the License or any later version accepted by the membership of |
||||
* KDE e.V. (or its successor approved by the membership of KDE |
||||
* e.V.), which shall act as a proxy defined in Section 14 of |
||||
* version 3 of the license. |
||||
* |
||||
* This program is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU General Public License |
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/ |
||||
|
||||
#include "globalshortcuts.h" |
||||
|
||||
#include <QAction> |
||||
#include <QDBusConnection> |
||||
#include <QDBusMessage> |
||||
|
||||
#include <KLocalizedString> |
||||
|
||||
#include <KGlobalAccel> |
||||
|
||||
GlobalShortcuts::GlobalShortcuts(QObject *parent) |
||||
: QObject(parent) |
||||
, m_toggleDoNotDisturbAction(new QAction(this)) |
||||
{ |
||||
m_toggleDoNotDisturbAction->setObjectName(QStringLiteral("toggle do not disturb")); |
||||
m_toggleDoNotDisturbAction->setProperty("componentName", QStringLiteral("plasmashell")); |
||||
m_toggleDoNotDisturbAction->setText(i18n("Toggle do not disturb")); |
||||
m_toggleDoNotDisturbAction->setIcon(QIcon::fromTheme(QStringLiteral("notifications-disabled"))); |
||||
m_toggleDoNotDisturbAction->setShortcutContext(Qt::ApplicationShortcut); |
||||
connect(m_toggleDoNotDisturbAction, &QAction::triggered, this, &GlobalShortcuts::toggleDoNotDisturbTriggered); |
||||
|
||||
KGlobalAccel::self()->setGlobalShortcut(m_toggleDoNotDisturbAction, QKeySequence()); |
||||
} |
||||
|
||||
GlobalShortcuts::~GlobalShortcuts() = default; |
||||
|
||||
void GlobalShortcuts::showDoNotDisturbOsd(bool doNotDisturb) const |
||||
{ |
||||
QDBusMessage msg = QDBusMessage::createMethodCall( |
||||
QStringLiteral("org.kde.plasmashell"), |
||||
QStringLiteral("/org/kde/osdService"), |
||||
QStringLiteral("org.kde.osdService"), |
||||
QStringLiteral("showText") |
||||
); |
||||
|
||||
const QString iconName = doNotDisturb ? QStringLiteral("notifications-disabled") : QStringLiteral("notifications"); |
||||
const QString text = doNotDisturb ? i18nc("OSD popup, keep short", "Notifications Off") |
||||
: i18nc("OSD popup, keep short", "Notifications On"); |
||||
|
||||
msg.setArguments({iconName, text}); |
||||
|
||||
QDBusConnection::sessionBus().call(msg, QDBus::NoBlock); |
||||
} |
||||
Loading…
Reference in new issue