diff --git a/shell/plugincontroller.cpp b/shell/plugincontroller.cpp --- a/shell/plugincontroller.cpp +++ b/shell/plugincontroller.cpp @@ -687,12 +687,18 @@ QList PluginController::queryPluginsForContextMenuExtensions( KDevelop::Context* context ) const { + QMultiMap sortedPlugins; + for(auto it = d->loadedPlugins.constBegin(), itEnd = d->loadedPlugins.constEnd(); it != itEnd; ++it) + { + sortedPlugins.insert(it.key().name(), it.value()); + } + QList exts; - for( auto it=d->loadedPlugins.constBegin(), itEnd = d->loadedPlugins.constEnd(); it!=itEnd; ++it ) + foreach(IPlugin* plugin, sortedPlugins) { - IPlugin* plug = it.value(); - exts << plug->contextMenuExtension( context ); + exts << plugin->contextMenuExtension( context ); } + exts << Core::self()->debugControllerInternal()->contextMenuExtension( context ); exts << Core::self()->documentationControllerInternal()->contextMenuExtension( context ); exts << Core::self()->sourceFormatterControllerInternal()->contextMenuExtension( context );