diff --git a/src/views/versioncontrol/versioncontrolobserver.cpp b/src/views/versioncontrol/versioncontrolobserver.cpp index 709d98e426..cf5be3c916 100644 --- a/src/views/versioncontrol/versioncontrolobserver.cpp +++ b/src/views/versioncontrol/versioncontrolobserver.cpp @@ -112,7 +112,7 @@ QList VersionControlObserver::actions(const KFileItemList& items) cons return m_plugin->versionControlActions(items); } else { QList actions; - for (const auto &plugin : qAsConst(m_plugins)) { + for (const QPointer &plugin : qAsConst(m_plugins)) { actions << plugin->outOfVersionControlActions(items); } return actions; @@ -306,14 +306,18 @@ KVersionControlPlugin* VersionControlObserver::searchPlugin(const QUrl& director initPlugins(); // Verify whether the current directory is under a version system - for (const auto &plugin : qAsConst(m_plugins)) { + for (const QPointer &plugin : qAsConst(m_plugins)) { + if (!plugin) { + continue; + } + // first naively check if we are at working copy root const QString fileName = directory.path() + '/' + plugin->fileName(); if (QFile::exists(fileName)) { m_localRepoRoot = directory.path(); return plugin; } - auto root = plugin->localRepositoryRoot(directory.path()); + const QString root = plugin->localRepositoryRoot(directory.path()); if (!root.isEmpty()) { m_localRepoRoot = root; return plugin; diff --git a/src/views/versioncontrol/versioncontrolobserver.h b/src/views/versioncontrol/versioncontrolobserver.h index d9cc90cc6d..5f425fe852 100644 --- a/src/views/versioncontrol/versioncontrolobserver.h +++ b/src/views/versioncontrol/versioncontrolobserver.h @@ -146,7 +146,7 @@ private: bool m_pluginsInitialized; KVersionControlPlugin* m_plugin; - QList m_plugins; + QList> m_plugins; UpdateItemStatesThread* m_updateItemStatesThread; friend class UpdateItemStatesThread;