X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/f6a465c9116eee978094b1928de5b4cb2cc59eae..9fde9035a89cfa2004de7d35c3ef86d94900a7c1:/src/views/versioncontrol/versioncontrolobserver.cpp diff --git a/src/views/versioncontrol/versioncontrolobserver.cpp b/src/views/versioncontrol/versioncontrolobserver.cpp index ad1d53a24..cf5be3c91 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; @@ -155,7 +155,7 @@ void VersionControlObserver::verifyDirectory() } if (m_plugin != nullptr) { - if (!rootItem.url().path().startsWith(m_localeRepoRoot) || !QFile::exists(m_localeRepoRoot + '/' + m_plugin->fileName())) { + if (!rootItem.url().path().startsWith(m_localRepoRoot) || !QFile::exists(m_localRepoRoot + '/' + m_plugin->fileName())) { m_plugin = nullptr; // The directory is not versioned. Reset the verification timer to a higher @@ -306,16 +306,20 @@ 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_localeRepoRoot = directory.path(); + m_localRepoRoot = directory.path(); return plugin; } - auto wcRoot = plugin->localRepositoryRoot(directory.path()); - if (!wcRoot.isEmpty()) { - m_localeRepoRoot = wcRoot; + const QString root = plugin->localRepositoryRoot(directory.path()); + if (!root.isEmpty()) { + m_localRepoRoot = root; return plugin; } }