mirror of
https://invent.kde.org/plasma/plasma-desktop.git
synced 2026-11-03 14:49:44 -09:00
This way we have the same results with older ECM versions. There the oneline enum version was disabled.
68 lines
1.9 KiB
C++
68 lines
1.9 KiB
C++
/*
|
|
SPDX-FileCopyrightText: 2009 Ben Cooksley <ben@eclipse.endoftheinternet.org>
|
|
|
|
SPDX-License-Identifier: GPL-2.0-or-later
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <QMap>
|
|
#include <QObject>
|
|
|
|
#include <Solid/Predicate>
|
|
|
|
class QString;
|
|
|
|
class KDesktopFile;
|
|
class KConfigGroup;
|
|
|
|
class ActionItem : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
ActionItem(const QString &pathToDesktop, const QString &action, QObject *parent = nullptr);
|
|
~ActionItem() override;
|
|
|
|
bool isUserSupplied() const;
|
|
|
|
QString icon() const;
|
|
QString exec() const;
|
|
QString name() const;
|
|
Solid::Predicate predicate() const;
|
|
QString involvedTypes() const;
|
|
void setIcon(const QString &nameOfIcon);
|
|
void setName(const QString &nameOfAction);
|
|
void setExec(const QString &execUrl);
|
|
void setPredicate(const QString &newPredicate);
|
|
|
|
QString desktopMasterPath;
|
|
QString desktopWritePath;
|
|
QString actionName;
|
|
|
|
private:
|
|
enum DesktopAction {
|
|
DesktopRead = 0,
|
|
DesktopWrite = 1,
|
|
};
|
|
enum GroupType {
|
|
GroupDesktop = 0,
|
|
GroupAction = 1,
|
|
};
|
|
|
|
QString readKey(GroupType keyGroup, const QString &keyName, const QString &defaultValue) const;
|
|
void setKey(GroupType keyGroup, const QString &keyName, const QString &keyContents);
|
|
bool hasKey(GroupType keyGroup, const QString &keyName) const;
|
|
|
|
KConfigGroup &configItem(DesktopAction actionType, GroupType keyGroup, const QString &keyName = QString());
|
|
const KConfigGroup &configItem(DesktopAction actionType, GroupType keyGroup, const QString &keyName = QString()) const;
|
|
qsizetype configItemIndex(DesktopAction actionType, GroupType keyGroup, const QString &keyName = QString()) const;
|
|
|
|
KDesktopFile *desktopFileMaster;
|
|
KDesktopFile *desktopFileWrite;
|
|
QMultiMap<GroupType, qsizetype> actionGroupIndices;
|
|
QList<KConfigGroup> configGroups;
|
|
Solid::Predicate predicateItem;
|
|
};
|
|
|
|
Q_DECLARE_METATYPE(ActionItem *)
|