summaryrefslogtreecommitdiff
path: root/extra/k3b/fix-crash-with-qt-4.7.0.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extra/k3b/fix-crash-with-qt-4.7.0.patch')
-rw-r--r--extra/k3b/fix-crash-with-qt-4.7.0.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/extra/k3b/fix-crash-with-qt-4.7.0.patch b/extra/k3b/fix-crash-with-qt-4.7.0.patch
new file mode 100644
index 000000000..a99b5c639
--- /dev/null
+++ b/extra/k3b/fix-crash-with-qt-4.7.0.patch
@@ -0,0 +1,37 @@
+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
++ );
+ }
+ }
+