DtkCore
DTK Core module
载入中...
搜索中...
未找到
ddesktopentry.h
浏览该文件的文档.
1// SPDX-FileCopyrightText: 2019 - 2022 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#pragma once
6
7#include "dtkcore_global.h"
8
9#include <QIODevice>
10#include <QObject>
11#include <QVariant>
12
13DCORE_BEGIN_NAMESPACE
14
15class DDesktopEntryPrivate;
16class LIBDTKCORESHARED_EXPORT DDesktopEntry
17{
18 Q_GADGET
19public:
29 Q_ENUM(EntryType)
30
31 enum ValueType {
32 Unparsed = 0, // Maybe useless, consider remove it?
37 NotExisted = 99
38 };
39 Q_ENUM(ValueType)
40
41 enum Status {
42 NoError = 0,
44 FormatError
45 };
46 Q_ENUM(Status)
47
48 explicit DDesktopEntry(const QString &filePath) noexcept;
50
51 bool save() const;
52
53 Status status() const;
54 QStringList keys(const QString &section = "Desktop Entry") const;
55 QStringList allGroups(bool sorted = false) const;
56
57 bool contains(const QString &key, const QString &section = "Desktop Entry") const;
58
59 QString name() const;
60 QString genericName() const;
61 QString ddeDisplayName() const;
62 QString comment() const;
63
64 QString rawValue(const QString &key, const QString &section = "Desktop Entry",
65 const QString &defaultValue = QString()) const;
66 QString stringValue(const QString &key, const QString &section = "Desktop Entry",
67 const QString &defaultValue = QString()) const;
68 QString localizedValue(const QString &key, const QString &localeKey = "default",
69 const QString &section = "Desktop Entry", const QString& defaultValue = QString()) const;
70 QString localizedValue(const QString &key, const QLocale &locale,
71 const QString &section = "Desktop Entry", const QString& defaultValue = QString()) const;
72 QStringList stringListValue(const QString &key, const QString &section = "Desktop Entry") const;
73
74 bool setRawValue(const QString &value, const QString &key, const QString& section = "Desktop Entry");
75 bool setStringValue(const QString &value, const QString &key, const QString& section = "Desktop Entry");
76 bool setLocalizedValue(const QString &value, const QString& localeKey,
77 const QString &key, const QString& section = "Desktop Entry");
78
79 bool removeEntry(const QString &key, const QString &section = "Desktop Entry");
80
81 static QString &escape(QString &str);
82 static QString &escapeExec(QString &str);
83 static QString &unescape(QString &str, bool unescapeSemicolons = false);
84 static QString &unescapeExec(QString &str);
85
86protected:
87 bool setStatus(const Status &status);
88
89private:
90 QScopedPointer<DDesktopEntryPrivate> d_ptr;
91
92 Q_DECLARE_PRIVATE(DDesktopEntry)
93};
94
95DCORE_END_NAMESPACE
处理desktop文件的接口
Definition ddesktopentry.h:17
Status
desktop文件的解析状态
Definition ddesktopentry.h:41
@ AccessError
发生访问错误(例如, 试图写入只读文件)
Definition ddesktopentry.h:43
EntryType
桌面入口文件的类型
Definition ddesktopentry.h:20
@ Service
KDE特定类型。规范中提到过, 所以这里也列出了
Definition ddesktopentry.h:26
@ ServiceType
KDE特定类型。规范中提到过, 所以这里也列出了
Definition ddesktopentry.h:25
@ Application
该文件描述应用程序
Definition ddesktopentry.h:22
@ Link
该文件描述URL
Definition ddesktopentry.h:23
@ Directory
该文件描述目录设置
Definition ddesktopentry.h:24
ValueType
值的类型
Definition ddesktopentry.h:31
@ Numeric
数字
Definition ddesktopentry.h:36
@ Strings
字符串数组
Definition ddesktopentry.h:34
@ String
字符串
Definition ddesktopentry.h:33
@ Boolean
布尔值
Definition ddesktopentry.h:35