┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2010-01-18 14:08:21 +0000
committerPeter Penz <[email protected]>2010-01-18 14:08:21 +0000
commitb3ab00e8badfd0911e0d7af7a632b5ae0bf4fbaf (patch)
treecf66f437d88a1b9a8695d51c5f9bc9fbd0a2128b /src
parentf18e6e6bb81e0466c16150ca6c74624f148e6071 (diff)
fixed issue that SVN actions got disabled after selecting items
svn path=/trunk/KDE/kdebase/apps/; revision=1076617
Diffstat (limited to 'src')
-rw-r--r--src/versioncontrol/fileviewsvnplugin.cpp12
-rw-r--r--src/versioncontrol/fileviewsvnplugin.h1
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