┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/revisioncontrolobserver.cpp
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2009-07-30 06:21:35 +0000
committerPeter Penz <[email protected]>2009-07-30 06:21:35 +0000
commit9470f30828e7b86d8c60700bfb27f161e7327276 (patch)
tree9e825585da549abe1dfb7528e595e648dbe7dcab /src/revisioncontrolobserver.cpp
parentddc14611478d21efb193981d1f768c90cec304af (diff)
If the revision states have been changed because of executing a SVN context menu action, the resulting update should be done silently without information messages.
svn path=/trunk/KDE/kdebase/apps/; revision=1004412
Diffstat (limited to 'src/revisioncontrolobserver.cpp')
-rw-r--r--src/revisioncontrolobserver.cpp27
1 files changed, 20 insertions, 7 deletions
diff --git a/src/revisioncontrolobserver.cpp b/src/revisioncontrolobserver.cpp
index b37acb4cb..6ecba64c5 100644
--- a/src/revisioncontrolobserver.cpp
+++ b/src/revisioncontrolobserver.cpp
@@ -105,6 +105,7 @@ RevisionControlObserver::RevisionControlObserver(QAbstractItemView* view) :
QObject(view),
m_pendingItemStatesUpdate(false),
m_revisionedDirectory(false),
+ m_silentUpdate(false),
m_view(view),
m_dirLister(0),
m_dolphinModel(0),
@@ -168,6 +169,13 @@ QList<QAction*> RevisionControlObserver::contextMenuActions(const QString& direc
void RevisionControlObserver::delayedDirectoryVerification()
{
+ m_silentUpdate = false;
+ m_dirVerificationTimer->start();
+}
+
+void RevisionControlObserver::silentDirectoryVerification()
+{
+ m_silentUpdate = true;
m_dirVerificationTimer->start();
}
@@ -213,7 +221,7 @@ void RevisionControlObserver::verifyDirectory()
connect(m_dirLister, SIGNAL(newItems(const KFileItemList&)),
this, SLOT(delayedDirectoryVerification()));
connect(m_plugin, SIGNAL(revisionStatesChanged()),
- this, SLOT(delayedDirectoryVerification()));
+ this, SLOT(silentDirectoryVerification()));
}
updateItemStates();
} else if (m_revisionedDirectory) {
@@ -228,13 +236,14 @@ void RevisionControlObserver::verifyDirectory()
disconnect(m_dirLister, SIGNAL(newItems(const KFileItemList&)),
this, SLOT(delayedDirectoryVerification()));
disconnect(m_plugin, SIGNAL(revisionStatesChanged()),
- this, SLOT(delayedDirectoryVerification()));
+ this, SLOT(silentDirectoryVerification()));
}
}
void RevisionControlObserver::applyUpdatedItemStates()
{
if (!m_updateItemStatesThread->retrievedItems()) {
+ // ignore m_silentUpdate for an error message
emit errorMessage(i18nc("@info:status", "Update of revision information failed."));
return;
}
@@ -256,10 +265,12 @@ void RevisionControlObserver::applyUpdatedItemStates()
m_dolphinModel->blockSignals(signalsBlocked);
m_view->viewport()->repaint();
- // Using an empty message results in clearing the previously shown information message and showing
- // the default status bar information. This is useful as the user already gets feedback that the
- // operation has been completed because of the icon emblems.
- emit operationCompletedMessage(QString());
+ if (!m_silentUpdate) {
+ // Using an empty message results in clearing the previously shown information message and showing
+ // the default status bar information. This is useful as the user already gets feedback that the
+ // operation has been completed because of the icon emblems.
+ emit operationCompletedMessage(QString());
+ }
if (m_pendingItemStatesUpdate) {
m_pendingItemStatesUpdate = false;
@@ -298,7 +309,9 @@ void RevisionControlObserver::updateItemStates()
itemStates.append(itemState);
}
- emit infoMessage(i18nc("@info:status", "Updating revision information..."));
+ if (!m_silentUpdate) {
+ emit infoMessage(i18nc("@info:status", "Updating revision information..."));
+ }
m_updateItemStatesThread->setData(m_plugin, itemStates);
m_updateItemStatesThread->start(); // applyUpdatedItemStates() is called when finished
}