diff --git a/doomsday/apps/libdoomsday/include/doomsday/filesys/idgameslink.h b/doomsday/apps/libdoomsday/include/doomsday/filesys/idgameslink.h index f95c50e9f0..6a720380a6 100644 --- a/doomsday/apps/libdoomsday/include/doomsday/filesys/idgameslink.h +++ b/doomsday/apps/libdoomsday/include/doomsday/filesys/idgameslink.h @@ -31,6 +31,8 @@ class IdgamesLink : public de::filesys::WebHostedLink void parseRepositoryIndex(QByteArray data) override; + de::StringList categoryTags() const override; + de::LoopResult forPackageIds(std::function func) const override; de::String findPackagePath(de::String const &packageId) const override; diff --git a/doomsday/apps/libdoomsday/src/filesys/idgameslink.cpp b/doomsday/apps/libdoomsday/src/filesys/idgameslink.cpp index c6a8d1aae8..5135bddc68 100644 --- a/doomsday/apps/libdoomsday/src/filesys/idgameslink.cpp +++ b/doomsday/apps/libdoomsday/src/filesys/idgameslink.cpp @@ -233,6 +233,14 @@ void IdgamesLink::parseRepositoryIndex(QByteArray data) }); } +StringList IdgamesLink::categoryTags() const +{ + return StringList({ CATEGORY_LEVELS, + CATEGORY_MUSIC, + CATEGORY_SOUNDS, + CATEGORY_THEMES }); +} + LoopResult IdgamesLink::forPackageIds(std::function func) const { PathTreeIterator iter(d->packageIndex.leafNodes()); diff --git a/doomsday/sdk/libcore/include/de/filesys/remote/link.h b/doomsday/sdk/libcore/include/de/filesys/remote/link.h index 69b64134f5..d9b39247a7 100644 --- a/doomsday/sdk/libcore/include/de/filesys/remote/link.h +++ b/doomsday/sdk/libcore/include/de/filesys/remote/link.h @@ -71,6 +71,14 @@ class DENG2_PUBLIC Link */ virtual PackagePaths locatePackages(StringList const &packageIds) const = 0; + /** + * Returns a list of the categories in the repository. These can be used as tags + * for filtering. + * + * @return Category tags. + */ + virtual StringList categoryTags() const; + /** * Iterates the full list of all packages available in the repository. Note this * may be large set of packages. diff --git a/doomsday/sdk/libcore/src/filesys/remote/link.cpp b/doomsday/sdk/libcore/src/filesys/remote/link.cpp index bd46db6532..172544adfa 100644 --- a/doomsday/sdk/libcore/src/filesys/remote/link.cpp +++ b/doomsday/sdk/libcore/src/filesys/remote/link.cpp @@ -157,6 +157,11 @@ Link::State Link::state() const return d->state; } +StringList Link::categoryTags() const +{ + return StringList(); +} + void Link::wasConnected() { DENG2_ASSERT_IN_MAIN_THREAD();