[plasma/union] /: Exclude hidden packages by default in PackageHandler::allPackages()
Arjen Hiemstra <[email protected]> Wed, 5 Aug 2026 11:20:05 +0000 (UTC)
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git commit 15817df44ddcacf988c0ce7547e91a6120c9d170 by Arjen Hiemstra.
Committed on 05/08/2026 at 11:15.
Pushed by ahiemstra into branch 'master'.
Exclude hidden packages by default in PackageHandler::allPackages()
But allow overriding default behaviour and use that in styletool::list.
M +5 -1 src/PackageHandler.cpp
M +20 -1 src/PackageHandler.h
M +7 -1 tools/styletool/styletool.cpp
https://invent.kde.org/plasma/union/-/commit/15817df44ddcacf988c0ce7547e91a6120c9d170
diff --git a/src/PackageHandler.cpp b/src/PackageHandler.cpp
index e544b163..ae0cfa5b 100644
--- a/src/PackageHandler.cpp
+++ b/src/PackageHandler.cpp
@@ -48,7 +48,7 @@ StylePackage PackageHandler::package(const QString &id)
return StylePackage{};
}
-QList<StylePackage> PackageHandler::allPackages()
+QList<StylePackage> PackageHandler::allPackages(PackageFilter filter)
{
QSet<QString> seenPackages;
QList<StylePackage> result;
@@ -62,6 +62,10 @@ QList<StylePackage> PackageHandler::allPackages()
auto package = StylePackage{entry.path()};
if (package.isValid() && !seenPackages.contains(package.id())) {
+ if (filter != PackageFilter::IncludeHidden && package.isHidden()) {
+ continue;
+ }
+
result.append(package);
seenPackages.insert(package.id());
}
diff --git a/src/PackageHandler.h b/src/PackageHandler.h
index 9c52447b..6dc244d5 100644
--- a/src/PackageHandler.h
+++ b/src/PackageHandler.h
@@ -63,6 +63,25 @@ public:
UnknownInputType,
};
+ /*!
+ * \enum PackageHandler::PackageFilter
+ *
+ * What kind of filtering to perform on the list of all packages.
+ *
+ * \value Default
+ * Use the default, which excludes style packages explicitly marked as
+ * hidden.
+ * \value IncludeHidden
+ * Include hidden packages.
+ */
+ enum class PackageFilter {
+ Default,
+ IncludeHidden,
+ };
+
+ /*!
+ * A struct containing data for the create() method.
+ */
struct CreateInfo {
std::filesystem::path path;
QString inputType;
@@ -85,7 +104,7 @@ public:
/*!
* Returns a list of all installed packages.
*/
- QList<StylePackage> allPackages();
+ QList<StylePackage> allPackages(PackageFilter filter = PackageFilter::Default);
/*!
* Create a new package.
diff --git a/tools/styletool/styletool.cpp b/tools/styletool/styletool.cpp
index d0f10e1e..88d05cca 100644
--- a/tools/styletool/styletool.cpp
+++ b/tools/styletool/styletool.cpp
@@ -171,7 +171,13 @@ int handleListCommand([[maybe_unused]] const QStringList &arguments)
});
auto handler = Union::StyleRegistry::instance()->packageHandler();
- auto packages = handler->allPackages();
+
+ auto packageFilter = Union::PackageHandler::PackageFilter::Default;
+ if (parser->isSet(u"hidden"_s)) {
+ packageFilter = Union::PackageHandler::PackageFilter::IncludeHidden;
+ }
+
+ auto packages = handler->allPackages(packageFilter);
if (packages.isEmpty()) {
std::cerr << "No styles could be found.\n";
return 1;