7#include "usermetadata.h"
11using namespace KFileMetaData;
13class KFileMetaData::UserMetaDataPrivate
19UserMetaData::UserMetaData(
const QString& filePath)
20 : d(new UserMetaDataPrivate)
22 d->filePath = filePath;
25UserMetaData::UserMetaData(
const UserMetaData& rhs)
26 : d(new UserMetaDataPrivate(*rhs.d))
30UserMetaData::~UserMetaData() =
default;
32const UserMetaData& UserMetaData::operator=(
const UserMetaData& rhs)
34 d->filePath = rhs.d->filePath;
38QString UserMetaData::filePath()
const
43UserMetaData::Error UserMetaData::setTags(
const QStringList& tags)
46 k_setxattr(d->filePath, QStringLiteral(
"xdg.tags"), tags.
join(
QLatin1Char(
',')));
48 k_removexattr(d->filePath, QStringLiteral(
"xdg.tags"));
58 k_getxattr(d->filePath, QStringLiteral(
"xdg.tags"), &value);
62int UserMetaData::rating()
const
66 k_getxattr(d->filePath, QStringLiteral(
"baloo.rating"), &value);
70UserMetaData::Error UserMetaData::setRating(
int rating)
73 k_setxattr(d->filePath, QStringLiteral(
"baloo.rating"),
QString::number(rating));
75 k_removexattr(d->filePath, QStringLiteral(
"baloo.rating"));
81QString UserMetaData::userComment()
const
84 k_getxattr(d->filePath, QStringLiteral(
"xdg.comment"), &value);
89UserMetaData::Error UserMetaData::setUserComment(
const QString& userComment)
92 k_setxattr(d->filePath, QStringLiteral(
"xdg.comment"), userComment);
94 k_removexattr(d->filePath, QStringLiteral(
"xdg.comment"));
100QUrl UserMetaData::originUrl()
const
103 k_getxattr(d->filePath, QStringLiteral(
"xdg.origin.url"), &value);
108UserMetaData::Error UserMetaData::setOriginUrl(
const QUrl &originUrl)
111 k_setxattr(d->filePath, QStringLiteral(
"xdg.origin.url"), originUrl.
toString());
113 k_removexattr(d->filePath, QStringLiteral(
"xdg.origin.url"));
119QString UserMetaData::originEmailSubject()
const
122 k_getxattr(d->filePath, QStringLiteral(
"xdg.origin.email.subject"), &value);
126UserMetaData::Error UserMetaData::setOriginEmailSubject(
const QString &originEmailSubject)
128 if (!originEmailSubject.
isEmpty()) {
129 k_setxattr(d->filePath, QStringLiteral(
"xdg.origin.email.subject"), originEmailSubject);
131 k_removexattr(d->filePath, QStringLiteral(
"xdg.origin.email.subject"));
137QString UserMetaData::originEmailSender()
const
140 k_getxattr(d->filePath, QStringLiteral(
"xdg.origin.email.sender"), &value);
144UserMetaData::Error UserMetaData::setOriginEmailSender(
const QString &originEmailSender)
146 if (!originEmailSender.
isEmpty()) {
147 k_setxattr(d->filePath, QStringLiteral(
"xdg.origin.email.sender"), originEmailSender);
149 k_removexattr(d->filePath, QStringLiteral(
"xdg.origin.email.sender"));
155QString UserMetaData::originEmailMessageId()
const
158 k_getxattr(d->filePath, QStringLiteral(
"xdg.origin.email.message-id"), &value);
162UserMetaData::Error UserMetaData::setOriginEmailMessageId(
const QString &originEmailMessageId)
164 if (!originEmailMessageId.
isEmpty()) {
165 k_setxattr(d->filePath, QStringLiteral(
"xdg.origin.email.message-id"), originEmailMessageId);
167 k_removexattr(d->filePath, QStringLiteral(
"xdg.origin.email.message-id"));
173UserMetaData::Error UserMetaData::setAttribute(
const QString& key,
const QString& value)
176 k_setxattr(d->filePath, key, value);
178 k_removexattr(d->filePath, key);
184bool UserMetaData::hasAttribute(
const QString& key)
186 return k_hasAttribute(d->filePath, key);
192 k_getxattr(d->filePath, key, &value);
197bool UserMetaData::isSupported()
const
199 return k_isSupported(d->filePath);
204 return k_queryAttributes(d->filePath, attributes);
bool isEmpty() const const
bool isEmpty() const const
QString number(double n, char format, int precision)
QStringList split(QChar sep, Qt::SplitBehavior behavior, Qt::CaseSensitivity cs) const const
int toInt(bool *ok, int base) const const
QString join(QChar separator) const const
bool isEmpty() const const
QString toString(FormattingOptions options) const const