]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Added VCS plugins signals connections for outOfVersionControl() actions.
authorNikolai Krasheninnikov <nkrasheninnikov@yandex.ru>
Wed, 6 May 2020 17:31:05 +0000 (20:31 +0300)
committerNikolai Krasheninnikov <nkrasheninnikov@yandex.ru>
Fri, 15 May 2020 20:09:05 +0000 (23:09 +0300)
Summary:
Plugins can now do out of version control actions (D29041), so we need them to inform of their state.
This change connects every plugin signal to Dolphin on plugin instantiation.

Test Plan:
1. Try SVN Update of inaccessible repository: see SVN error message shows up.
2. Try pull inaccessible git repository: see GIT error message shows up.
3. Try SVN Commit: see SVN message.

Reviewers: #dolphin, meven, elvisangelaccio

Reviewed By: #dolphin, meven

Subscribers: kfm-devel

Tags: #dolphin

Differential Revision: https://phabricator.kde.org/D29488

src/views/versioncontrol/versioncontrolobserver.cpp

index f6c74fb5fe4de9eee2e1b8560142b4cab93a1ecb..2f0632243ea0a01330cb813cac17915152b9499c 100644 (file)
@@ -168,21 +168,8 @@ void VersionControlObserver::verifyDirectory()
         return;
     }
 
         return;
     }
 
-    if (m_plugin) {
-        m_plugin->disconnect(this);
-    }
-
     m_plugin = searchPlugin(rootItem.url());
     if (m_plugin) {
     m_plugin = searchPlugin(rootItem.url());
     if (m_plugin) {
-        connect(m_plugin, &KVersionControlPlugin::itemVersionsChanged,
-                this, &VersionControlObserver::silentDirectoryVerification);
-        connect(m_plugin, &KVersionControlPlugin::infoMessage,
-                this, &VersionControlObserver::infoMessage);
-        connect(m_plugin, &KVersionControlPlugin::errorMessage,
-                this, &VersionControlObserver::errorMessage);
-        connect(m_plugin, &KVersionControlPlugin::operationCompletedMessage,
-                this, &VersionControlObserver::operationCompletedMessage);
-
         if (!m_versionedDirectory) {
             m_versionedDirectory = true;
 
         if (!m_versionedDirectory) {
             m_versionedDirectory = true;
 
@@ -311,6 +298,15 @@ KVersionControlPlugin* VersionControlObserver::searchPlugin(const QUrl& director
             if (enabledPlugins.contains((*it)->name())) {
                 KVersionControlPlugin* plugin = (*it)->createInstance<KVersionControlPlugin>(this);
                 if (plugin) {
             if (enabledPlugins.contains((*it)->name())) {
                 KVersionControlPlugin* plugin = (*it)->createInstance<KVersionControlPlugin>(this);
                 if (plugin) {
+                    connect(plugin, &KVersionControlPlugin::itemVersionsChanged,
+                            this, &VersionControlObserver::silentDirectoryVerification);
+                    connect(plugin, &KVersionControlPlugin::infoMessage,
+                            this, &VersionControlObserver::infoMessage);
+                    connect(plugin, &KVersionControlPlugin::errorMessage,
+                            this, &VersionControlObserver::errorMessage);
+                    connect(plugin, &KVersionControlPlugin::operationCompletedMessage,
+                            this, &VersionControlObserver::operationCompletedMessage);
+
                     m_plugins.append( qMakePair(plugin, plugin->fileName()) );
                 }
             }
                     m_plugins.append( qMakePair(plugin, plugin->fileName()) );
                 }
             }