30class DIGIKAM_DATABASE_EXPORT
TagsCache :
public QObject
55 QString tagName(
int id)
const;
56 QStringList tagNames(
const QList<int>& ids, HiddenTagsPolicy hiddenTagsPolicy = IncludeHiddenTags)
const;
63 QString tagPath(
int id, LeadingSlashPolicy slashPolicy = IncludeLeadingSlash)
const;
64 QStringList tagPaths(
const QList<int>& ids,
65 LeadingSlashPolicy slashPolicy = IncludeLeadingSlash,
66 HiddenTagsPolicy hiddenTagsPolicy = IncludeHiddenTags)
const;
71 bool hasTag(
int id)
const;
76 int parentTag(
int id)
const;
83 QList<int> parentTags(
int id)
const;
90 QList<int> tagsForName(
const QString& tagName, HiddenTagsPolicy hiddenTagsPolicy = NoHiddenTags)
const;
97 int tagForName(
const QString& tagName,
int parentId = 0)
const;
106 int tagForPath(
const QString& path)
const;
107 QList<int> tagsForPaths(
const QStringList& tagPaths)
const;
116 int createTag(
const QString& tagPathToCreate);
117 QList<int> createTags(
const QStringList& tagPaths);
124 int getOrCreateTag(
const QString& tagPath);
125 QList<int> getOrCreateTags(
const QStringList& tagPaths);
132 int getOrCreateTagWithProperty(
const QString& tagPath,
133 const QString& property,
134 const QString&
value = QString());
141 bool hasProperty(
int tagId,
const QString& property,
const QString&
value = QString())
const;
149 QString propertyValue(
int tagId,
const QString& property)
const;
150 QStringList propertyValues(
int tagId,
const QString& property)
const;
156 QMap<QString, QString> properties(
int tagId)
const;
164 QList<int> tagsWithProperty(
const QString& property,
const QString&
value = QString())
const;
172 QList<int> tagsWithPropertyCached(
const QString& property)
const;
178 bool isInternalTag(
int tagId)
const;
184 QList<int> publicTags(
const QList<int>& tagIds)
const;
190 bool containsPublicTags(
const QList<int>& tagIds)
const;
196 bool canBeWrittenToMetadata(
int tagId)
const;
203 int getOrCreateInternalTag(
const QString& tagName);
209 int tagForColorLabel(
int label);
214 QVector<int> colorLabelTags();
220 int colorLabelForTag(
int tagId);
227 int colorLabelFromTags(
const QList<int>& tagIds);
233 int tagForPickLabel(
int label);
238 QVector<int> pickLabelTags();
244 int pickLabelForTag(
int tagId);
251 int pickLabelFromTags(
const QList<int>& tagIds);
256 QList<int> tagsContaining(
const QString& fragment,
257 Qt::CaseSensitivity caseSensitivity = Qt::CaseInsensitive,
258 HiddenTagsPolicy hiddenTagsPolicy = NoHiddenTags);
259 QList<int> tagsStartingWith(
const QString& begin,
260 Qt::CaseSensitivity caseSensitivity = Qt::CaseInsensitive,
261 HiddenTagsPolicy hiddenTagsPolicy = NoHiddenTags);
271 QStringList shortenedTagPaths(
const QList<int>& ids,
272 LeadingSlashPolicy slashPolicy = IncludeLeadingSlash,
273 HiddenTagsPolicy hiddenTagsPolicy = IncludeHiddenTags)
const;
275 QStringList shortenedTagPaths(
const QList<int>& ids, QList<int>* sortedIds,
276 LeadingSlashPolicy slashPolicy = IncludeLeadingSlash,
277 HiddenTagsPolicy hiddenTagsPolicy = IncludeHiddenTags)
const;
283 static QLatin1String tagPathOfDigikamInternalTags(LeadingSlashPolicy slashPolicy = IncludeLeadingSlash);
284 static QLatin1String propertyNameDigikamInternalTag();
285 static QLatin1String propertyNameExcludedFromWriting();
315 friend class TagsCacheCreator;
321 Private*
const d =
nullptr;