fixed issue that SVN actions got disabled after selecting items

svn path=/trunk/KDE/kdebase/apps/; revision=1076617
This commit is contained in:
Peter Penz 2010-01-18 14:08:21 +00:00
parent f18e6e6bb8
commit b3ab00e8ba
2 changed files with 10 additions and 3 deletions

View file

@ -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)));

View file

@ -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