diff options
-rw-r--r-- | kcminit/main.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/kcminit/main.cpp b/kcminit/main.cpp index 230d4c3dd..47dc60fe6 100644 --- a/kcminit/main.cpp +++ b/kcminit/main.cpp @@ -112,16 +112,25 @@ void KCMInit::runModules( int phase ) TQString libName = TQString("kcm_%1").arg(library); + TQString factoryName = service->property("X-TDE-FactoryName", TQVariant::String).toString(); + if (!factoryName.isEmpty()) + { + factoryName = ":" + factoryName; + } + TQString libFactoryName = libName + factoryName; + // try to load the library - if (! alreadyInitialized.contains( libName.ascii() )) { + if (!alreadyInitialized.contains( libFactoryName.ascii() )) { if (!runModule(libName, service)) { libName = TQString("libkcm_%1").arg(library); - if (! alreadyInitialized.contains( libName.ascii() )) { + libFactoryName = libName + factoryName; + if (!alreadyInitialized.contains( libFactoryName.ascii() )) { runModule(libName, service); - alreadyInitialized.append( libName.ascii() ); + alreadyInitialized.append( libFactoryName.ascii() ); } - } else - alreadyInitialized.append( libName.ascii() ); + } else { + alreadyInitialized.append( libFactoryName.ascii() ); + } } } } |