Changeset View
Changeset View
Standalone View
Standalone View
src/usermetadata.h
Show All 16 Lines | |||||
17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | ||
18 | * | 18 | * | ||
19 | */ | 19 | */ | ||
20 | 20 | | |||
21 | #ifndef KFILEMETADATA_USERMETADATA_H | 21 | #ifndef KFILEMETADATA_USERMETADATA_H | ||
22 | #define KFILEMETADATA_USERMETADATA_H | 22 | #define KFILEMETADATA_USERMETADATA_H | ||
23 | 23 | | |||
24 | #include "kfilemetadata_export.h" | 24 | #include "kfilemetadata_export.h" | ||
25 | #include <QFlags> | ||||
25 | #include <QStringList> | 26 | #include <QStringList> | ||
26 | #include <QUrl> | 27 | #include <QUrl> | ||
27 | 28 | | |||
28 | namespace KFileMetaData { | 29 | namespace KFileMetaData { | ||
29 | 30 | | |||
30 | /** | 31 | /** | ||
31 | * \class UserMetaData usermetadata.h <KFileMetaData/UserMetaData> | 32 | * \class UserMetaData usermetadata.h <KFileMetaData/UserMetaData> | ||
32 | */ | 33 | */ | ||
33 | class KFILEMETADATA_EXPORT UserMetaData { | 34 | class KFILEMETADATA_EXPORT UserMetaData { | ||
34 | public: | 35 | public: | ||
35 | UserMetaData(const QString &filePath); | 36 | UserMetaData(const QString &filePath); | ||
36 | UserMetaData(const UserMetaData &rhs); | 37 | UserMetaData(const UserMetaData &rhs); | ||
37 | virtual ~UserMetaData(); | 38 | virtual ~UserMetaData(); | ||
38 | 39 | | |||
39 | enum Error { | 40 | enum Error { | ||
40 | NoError = 0 | 41 | NoError = 0 | ||
41 | }; | 42 | }; | ||
43 | | ||||
44 | enum Attribute : uint32_t { | ||||
45 | None = 0x0, | ||||
46 | Any = None, | ||||
47 | Tags = 0x1, | ||||
48 | Rating = 0x2, | ||||
49 | Comment = 0x4, | ||||
50 | OriginUrl = 0x8, | ||||
51 | OriginEmailSubject = 0x10, | ||||
52 | OriginEmailSender = 0x20, | ||||
53 | OriginEmailMessageId = 0x40, | ||||
54 | Other = 0xffffff80, | ||||
55 | All = 0xffffffff, | ||||
56 | }; | ||||
57 | Q_DECLARE_FLAGS(Attributes, Attribute) | ||||
58 | | ||||
42 | const UserMetaData& operator =(const UserMetaData& rhs); | 59 | const UserMetaData& operator =(const UserMetaData& rhs); | ||
43 | 60 | | |||
44 | QString filePath() const; | 61 | QString filePath() const; | ||
45 | bool isSupported() const; | 62 | bool isSupported() const; | ||
46 | 63 | | |||
47 | Error setTags(const QStringList& tags); | 64 | Error setTags(const QStringList& tags); | ||
48 | QStringList tags() const; | 65 | QStringList tags() const; | ||
49 | 66 | | |||
Show All 13 Lines | |||||
63 | Error setOriginEmailSender(const QString &originEmailSender); | 80 | Error setOriginEmailSender(const QString &originEmailSender); | ||
64 | 81 | | |||
65 | QString originEmailMessageId() const; | 82 | QString originEmailMessageId() const; | ||
66 | Error setOriginEmailMessageId(const QString &originEmailMessageId); | 83 | Error setOriginEmailMessageId(const QString &originEmailMessageId); | ||
67 | 84 | | |||
68 | QString attribute(const QString& name); | 85 | QString attribute(const QString& name); | ||
69 | Error setAttribute(const QString& name, const QString& value); | 86 | Error setAttribute(const QString& name, const QString& value); | ||
70 | bool hasAttribute(const QString& name); | 87 | bool hasAttribute(const QString& name); | ||
88 | | ||||
89 | /** | ||||
90 | * Query list of available attributes | ||||
91 | * | ||||
92 | * Checks for the availability of the given \p attributes. May return | ||||
93 | * a superset of the input value when the file has attributes set | ||||
94 | * beyond the requested ones. | ||||
95 | * | ||||
96 | * If the input attribute mask is Attribute::Any, either Attribute::None | ||||
97 | * (the file has no user attributes) or Attribute::All (the file has at | ||||
98 | * least one attribute set) is returned. | ||||
99 | * | ||||
100 | * \since 5.60 | ||||
101 | */ | ||||
102 | Attributes queryAttributes(Attributes attributes = Attribute::Any) const; | ||||
103 | | ||||
71 | private: | 104 | private: | ||
72 | class Private; | 105 | class Private; | ||
73 | Private *d; | 106 | Private *d; | ||
74 | }; | 107 | }; | ||
75 | 108 | | |||
109 | Q_DECLARE_OPERATORS_FOR_FLAGS(UserMetaData::Attributes) | ||||
76 | } | 110 | } | ||
77 | 111 | | |||
78 | #endif // KFILEMETADATA_USERMETADATA_H | 112 | #endif // KFILEMETADATA_USERMETADATA_H |