summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMavridis Philippe <[email protected]>2024-09-04 23:28:04 +0300
committerMavridis Philippe <[email protected]>2024-09-08 01:30:32 +0300
commite91257a7c75a50b69bde8189f336acc89fa4fec0 (patch)
treefd19483eae6b1c6fe857f3d3bd735f45a237f27d
parentae5dd342175b8e9dc5794971557e57412064b1af (diff)
downloadtdebase-e91257a7c75a50b69bde8189f336acc89fa4fec0.tar.gz
tdebase-e91257a7c75a50b69bde8189f336acc89fa4fec0.zip
KControl: implement dynamic module tests
Since KDE 3.4 there is underlying support for dynamically determining whether a module should be loaded or not, depending on an exported test function which would return a boolean value depending on the success of one or more tests (e.g. for presence of specific hardware). This approach is documented but has so far not been implemented by the TDE Control Centre. This commit adds a check to the TCC which performs the test function if needed (that is, if the X-TDE-Test-Module property is true) and, if it returns false, prevents showing the module in the tree list, which is the intended behaviour of the test function feature. For more information see: https://wiki.trinitydesktop.org/index.php?title=TDEConfig_Module_HOWTO&oldid=1893#Making_a_KCModule_dynamically_available Signed-off-by: Mavridis Philippe <[email protected]>
-rw-r--r--kcontrol/kcontrol/modules.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/kcontrol/kcontrol/modules.cpp b/kcontrol/kcontrol/modules.cpp
index c419e0d4e..0d6c9f7fc 100644
--- a/kcontrol/kcontrol/modules.cpp
+++ b/kcontrol/kcontrol/modules.cpp
@@ -284,9 +284,9 @@ bool ConfigModuleList::readDesktopEntriesRecursive(const TQString &path)
KService *s = static_cast<KService*>(p);
if (!kapp->authorizeControlModule(s->menuId()))
continue;
-
+
ConfigModule *module = new ConfigModule(s);
- if (module->library().isEmpty())
+ if (module->library().isEmpty() || (module->needsTest() && !TDECModuleLoader::testModule(*module)))
{
delete module;
continue;