Blob Blame History Raw
Index: src/option/k3bpluginoptiontab.cpp
===================================================================
--- src/option/k3bpluginoptiontab.cpp	(revision 1168967)
+++ src/option/k3bpluginoptiontab.cpp	(working copy)
@@ -43,12 +43,28 @@
     layout->addWidget( label );
     layout->addWidget( pluginSelector );
 
+    // find all categories
+    QHash<QString, QString> categoryNames;
+
     foreach( K3b::Plugin* plugin, k3bcore->pluginManager()->plugins() ) {
-        kDebug() << "Adding plugin" << plugin->pluginInfo().name();
-        pluginSelector->addPlugins( QList<KPluginInfo>() << plugin->pluginInfo(),
+        categoryNames[ plugin->category() ] = plugin->categoryName();
+    }
+
+    // add all plugins in each category
+    foreach( const QString &category, categoryNames.keys() ) {
+        QList<KPluginInfo> plugins;
+
+        foreach( K3b::Plugin* plugin, k3bcore->pluginManager()->plugins() ) {
+            if ( plugin->category() == category ) {
+                plugins << plugin->pluginInfo();
+                kDebug() << "Adding plugin" << plugin->pluginInfo().name();
+            }
+        }
+        pluginSelector->addPlugins( plugins,
                                     KPluginSelector::ReadConfigFile,
-                                    plugin->categoryName(),
-                                    plugin->category() );
+                                    categoryNames[ category ],
+                                    category
+                                  );
     }
 }