Scare Crowe d2ebfd0519 QortalOS Titan 5.60.12
Screw the description like that inbred T3Q
2022-03-05 21:17:59 +05:00

63 lines
1.7 KiB
C++

/*
SPDX-FileCopyrightText: 2009 Ben Cooksley <ben@eclipse.endoftheinternet.org>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef ACTION_ITEM_H
#define ACTION_ITEM_H
#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;
KDesktopFile *desktopFileMaster;
KDesktopFile *desktopFileWrite;
QMultiMap<GroupType, KConfigGroup *> actionGroups;
QList<KConfigGroup> configGroups;
Solid::Predicate predicateItem;
};
Q_DECLARE_METATYPE(ActionItem *)
#endif