forked from Qortal/Brooklyn
44 lines
1006 B
C++
44 lines
1006 B
C++
/*
|
|
SPDX-FileCopyrightText: 2006 Aaron Seigo <aseigo@kde.org>
|
|
|
|
SPDX-License-Identifier: LGPL-2.0-only
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <kdisplaymanager.h>
|
|
#include <krunner/abstractrunner.h>
|
|
|
|
#include <sessionmanagement.h>
|
|
|
|
/**
|
|
* This class provides matches for running sessions as well as
|
|
* an action to start a new session, etc.
|
|
*/
|
|
class SessionRunner : public Plasma::AbstractRunner
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
SessionRunner(QObject *parent, const KPluginMetaData &metaData, const QVariantList &args);
|
|
~SessionRunner() override;
|
|
|
|
void match(Plasma::RunnerContext &context) override;
|
|
void run(const Plasma::RunnerContext &context, const Plasma::QueryMatch &action) override;
|
|
|
|
enum {
|
|
LogoutAction = 1,
|
|
ShutdownAction,
|
|
RestartAction,
|
|
LockAction,
|
|
};
|
|
|
|
private:
|
|
void matchCommands(QList<Plasma::QueryMatch> &matches, const QString &term);
|
|
|
|
QString m_triggerWord;
|
|
KDisplayManager dm;
|
|
SessionManagement m_session;
|
|
bool m_canLogout;
|
|
};
|