9 #ifndef INTERFACES_CORE_ITAGSMANAGER_H 10 #define INTERFACES_CORE_ITAGSMANAGER_H 11 #include <QStringList> 13 class QAbstractItemModel;
40 virtual tag_id GetID (
const QString& tag) = 0;
55 for (
const auto& tag : tags)
56 result << GetID (tag);
72 virtual QString GetTag (tag_id
id)
const = 0;
87 for (
const auto&
id : ids)
88 result << GetTag (
id);
96 virtual QStringList GetAllTags ()
const = 0;
103 virtual QStringList Split (
const QString&
string)
const = 0;
114 virtual QList<tag_id> SplitToIDs (
const QString&
string) = 0;
122 virtual QString
Join (
const QStringList& tags)
const = 0;
134 virtual QString JoinIDs (
const QStringList& tagIDs)
const = 0;
144 virtual QAbstractItemModel* GetModel () = 0;
151 virtual QObject* GetQObject () = 0;
154 Q_DECLARE_INTERFACE (
ITagsManager,
"org.Deviant.LeechCraft.ITagsManager/1.0")
constexpr auto Join(auto &&) noexcept