mirror-kde-plasma-desktop/kcms/solid_actions/ActionItem.h
Alexander Lohnau d9b9575910 Reformat project, add trailing commas to multiline enums
This way we have the same results with older ECM versions. There the
oneline enum version was disabled.
2024-11-25 20:51:09 +01:00

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 *)