diff options
| author | Peter Penz <[email protected]> | 2010-01-18 14:08:21 +0000 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2010-01-18 14:08:21 +0000 |
| commit | b3ab00e8badfd0911e0d7af7a632b5ae0bf4fbaf (patch) | |
| tree | cf66f437d88a1b9a8695d51c5f9bc9fbd0a2128b /src/versioncontrol | |
| parent | f18e6e6bb81e0466c16150ca6c74624f148e6071 (diff) | |
fixed issue that SVN actions got disabled after selecting items
svn path=/trunk/KDE/kdebase/apps/; revision=1076617
Diffstat (limited to 'src/versioncontrol')
| -rw-r--r-- | src/versioncontrol/fileviewsvnplugin.cpp | 12 | ||||
| -rw-r--r-- | src/versioncontrol/fileviewsvnplugin.h | 1 |
2 files changed, 10 insertions, 3 deletions
diff --git a/src/versioncontrol/fileviewsvnplugin.cpp b/src/versioncontrol/fileviewsvnplugin.cpp index 60ab81415..f43f10e98 100644 --- a/src/versioncontrol/fileviewsvnplugin.cpp +++ b/src/versioncontrol/fileviewsvnplugin.cpp @@ -43,6 +43,7 @@ K_EXPORT_PLUGIN(FileViewSvnPluginFactory("fileviewsvnplugin")) FileViewSvnPlugin::FileViewSvnPlugin(QObject* parent, const QList<QVariant>& args) : KVersionControlPlugin(parent), + m_pendingOperation(false), m_versionInfoHash(), m_versionInfoKeys(), m_updateAction(0), @@ -222,7 +223,7 @@ QList<QAction*> FileViewSvnPlugin::contextMenuActions(const KFileItemList& items QList<QAction*> FileViewSvnPlugin::contextMenuActions(const QString& directory) { - const bool enabled = m_contextItems.isEmpty(); + const bool enabled = !m_pendingOperation; if (enabled) { m_contextDir = directory; } @@ -320,6 +321,8 @@ void FileViewSvnPlugin::removeFiles() void FileViewSvnPlugin::slotOperationCompleted(int exitCode, QProcess::ExitStatus exitStatus) { + m_pendingOperation = false; + if ((exitStatus != QProcess::NormalExit) || (exitCode != 0)) { emit errorMessage(m_errorMsg); } else if (m_contextItems.isEmpty()) { @@ -332,10 +335,11 @@ void FileViewSvnPlugin::slotOperationCompleted(int exitCode, QProcess::ExitStatu void FileViewSvnPlugin::slotOperationError() { - emit errorMessage(m_errorMsg); - // don't do any operation on other items anymore m_contextItems.clear(); + m_pendingOperation = false; + + emit errorMessage(m_errorMsg); } void FileViewSvnPlugin::execSvnCommand(const QString& svnCommand, @@ -354,6 +358,8 @@ void FileViewSvnPlugin::execSvnCommand(const QString& svnCommand, void FileViewSvnPlugin::startSvnCommandProcess() { + m_pendingOperation = true; + QProcess* process = new QProcess(this); connect(process, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(slotOperationCompleted(int, QProcess::ExitStatus))); diff --git a/src/versioncontrol/fileviewsvnplugin.h b/src/versioncontrol/fileviewsvnplugin.h index e908afba8..e94c3ebcb 100644 --- a/src/versioncontrol/fileviewsvnplugin.h +++ b/src/versioncontrol/fileviewsvnplugin.h @@ -72,6 +72,7 @@ private: void startSvnCommandProcess(); private: + bool m_pendingOperation; QHash<QString, VersionState> m_versionInfoHash; QList<QString> m_versionInfoKeys; // cache for accessing the keys of the hash |
