KFileMetaData

usermetadata.h
1 /*
2  SPDX-FileCopyrightText: 2014 Vishesh Handa <[email protected]>
3 
4  SPDX-License-Identifier: LGPL-2.1-or-later
5 */
6 
7 #ifndef KFILEMETADATA_USERMETADATA_H
8 #define KFILEMETADATA_USERMETADATA_H
9 
10 #include "kfilemetadata_export.h"
11 #include <QStringList>
12 #include <QUrl>
13 
14 #include <memory>
15 
16 namespace KFileMetaData {
17 
18 class UserMetaDataPrivate;
19 /**
20  * \class UserMetaData usermetadata.h <KFileMetaData/UserMetaData>
21  */
22 class KFILEMETADATA_EXPORT UserMetaData {
23 public:
24  UserMetaData(const QString &filePath);
25  UserMetaData(const UserMetaData &rhs);
26  virtual ~UserMetaData();
27 
28  enum Error {
29  NoError = 0
30  };
31 
32  /**
33  * @see Attributes
34  */
35  enum Attribute : uint32_t {
36  None = 0x0,
37  Any = None,
38  Tags = 0x1,
39  Rating = 0x2,
40  Comment = 0x4,
41  OriginUrl = 0x8,
42  OriginEmailSubject = 0x10,
43  OriginEmailSender = 0x20,
44  OriginEmailMessageId = 0x40,
45  Other = 0xffffff80,
46  All = 0xffffffff,
47  };
48  /**
49  * Stores a combination of #Attribute values.
50  */
51  Q_DECLARE_FLAGS(Attributes, Attribute)
52 
53  const UserMetaData& operator =(const UserMetaData& rhs);
54 
55  QString filePath() const;
56  bool isSupported() const;
57 
58  Error setTags(const QStringList& tags);
59  QStringList tags() const;
60 
61  int rating() const;
62  Error setRating(int rating);
63 
64  QString userComment() const;
65  Error setUserComment(const QString& userComment);
66 
67  QUrl originUrl() const;
68  Error setOriginUrl(const QUrl &originUrl);
69 
70  QString originEmailSubject() const;
71  Error setOriginEmailSubject(const QString &originEmailSubject);
72 
73  QString originEmailSender() const;
74  Error setOriginEmailSender(const QString &originEmailSender);
75 
76  QString originEmailMessageId() const;
77  Error setOriginEmailMessageId(const QString &originEmailMessageId);
78 
79  QString attribute(const QString& name);
80  Error setAttribute(const QString& name, const QString& value);
81  bool hasAttribute(const QString& name);
82 
83  /**
84  * Query list of available attributes
85  *
86  * Checks for the availability of the given \p attributes. May return
87  * a superset of the input value when the file has attributes set
88  * beyond the requested ones.
89  *
90  * If the input attribute mask is Attribute::Any, either Attribute::None
91  * (the file has no user attributes) or Attribute::All (the file has at
92  * least one attribute set) is returned.
93  *
94  * \since 5.60
95  */
96  Attributes queryAttributes(Attributes attributes = Attribute::Any) const;
97 
98 private:
99  const std::unique_ptr<UserMetaDataPrivate> d;
100 };
101 
102 Q_DECLARE_OPERATORS_FOR_FLAGS(UserMetaData::Attributes)
103 }
104 
105 #endif // KFILEMETADATA_USERMETADATA_H
@ OriginEmailSender
The sender of the email this file was originally attached to.
Definition: properties.h:287
@ Rating
For ratings stored in Metadata tags.
Definition: properties.h:347
@ OriginUrl
The URL this file has originally been downloaded from.
Definition: properties.h:277
@ OriginEmailSubject
The subject of the email this file was originally attached to.
Definition: properties.h:282
@ Comment
Represents a comment stored in the file.
Definition: properties.h:77
bool isSupported(const QString &mimeType, Mode mode=Writing)
@ OriginEmailMessageId
The message ID of the email this file was originally attached to.
Definition: properties.h:292
This file is part of the KDE documentation.
Documentation copyright © 1996-2022 The KDE developers.
Generated on Sat May 21 2022 03:47:08 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.