Warning, file /plasma/plasma-workspace/systemmonitor/kdedksysguard.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 SPDX-FileCopyrightText: 2014 Vishesh Handa <me@vhanda.in> 0003 SPDX-FileCopyrightText: 2006 Aaron Seigo <aseigo@kde.org> 0004 0005 SPDX-License-Identifier: LGPL-2.0-only 0006 */ 0007 0008 #include "kdedksysguard.h" 0009 0010 #include <QAction> 0011 #include <QProcess> 0012 #include <QStandardPaths> 0013 #include <QTimer> 0014 0015 #include <KLocalizedString> 0016 #include <KPluginFactory> 0017 0018 #include <KActionCollection> 0019 #include <KGlobalAccel> 0020 #include <QDBusConnection> 0021 #include <QDBusConnectionInterface> 0022 0023 K_PLUGIN_CLASS_WITH_JSON(KDEDKSysGuard, "ksysguard.json") 0024 0025 KDEDKSysGuard::KDEDKSysGuard(QObject *parent, const QVariantList &) 0026 : KDEDModule(parent) 0027 { 0028 QTimer::singleShot(0, this, &KDEDKSysGuard::init); 0029 } 0030 0031 KDEDKSysGuard::~KDEDKSysGuard() 0032 { 0033 } 0034 0035 void KDEDKSysGuard::init() 0036 { 0037 KActionCollection *actionCollection = new KActionCollection(this); 0038 0039 QAction *action = actionCollection->addAction(QStringLiteral("Show System Activity")); 0040 action->setText(i18n("Show System Activity")); 0041 connect(action, &QAction::triggered, this, &KDEDKSysGuard::showTaskManager); 0042 0043 KGlobalAccel::self()->setGlobalShortcut(action, QKeySequence(Qt::CTRL | Qt::Key_Escape)); 0044 } 0045 0046 void KDEDKSysGuard::showTaskManager() 0047 { 0048 QDBusConnection con = QDBusConnection::sessionBus(); 0049 QDBusConnectionInterface *interface = con.interface(); 0050 if (interface->isServiceRegistered(QStringLiteral("org.kde.systemmonitor"))) { 0051 QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.kde.systemmonitor"), 0052 QStringLiteral("/"), 0053 QStringLiteral("org.qtproject.Qt.QWidget"), 0054 QStringLiteral("close")); 0055 0056 con.asyncCall(msg); 0057 } else { 0058 const QString exe = QStandardPaths::findExecutable(QStringLiteral("systemmonitor")); 0059 QProcess::startDetached(exe, QStringList()); 0060 } 0061 } 0062 0063 #include "kdedksysguard.moc"