┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/revisioncontrolobserver.cpp
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2009-07-22 07:07:43 +0000
committerPeter Penz <[email protected]>2009-07-22 07:07:43 +0000
commitebf78d6ac26467560e66beeb106d0650aafd60f3 (patch)
treed314cc3d95e7ae933109935023479c8907b81f99 /src/revisioncontrolobserver.cpp
parentc92c5cada0bb687d29f4af1eb1230f28cc2bdf6c (diff)
- Documentation updates.
- Allow the revision plugin to emit a signal which indicates a changed revision state. - Update the revision state if the state of file items has been changed. - Check also the content of a file if the size of a local and revisioned file is equal. svn path=/trunk/KDE/kdebase/apps/; revision=1000831
Diffstat (limited to 'src/revisioncontrolobserver.cpp')
-rw-r--r--src/revisioncontrolobserver.cpp30
1 files changed, 20 insertions, 10 deletions
diff --git a/src/revisioncontrolobserver.cpp b/src/revisioncontrolobserver.cpp
index 246450fe7..7f832cef4 100644
--- a/src/revisioncontrolobserver.cpp
+++ b/src/revisioncontrolobserver.cpp
@@ -88,6 +88,7 @@ QList<RevisionControlObserver::ItemState> UpdateItemStatesThread::itemStates() c
RevisionControlObserver::RevisionControlObserver(QAbstractItemView* view) :
QObject(view),
m_pendingItemStatesUpdate(false),
+ m_revisionedDirectory(false),
m_view(view),
m_dirLister(0),
m_dolphinModel(0),
@@ -105,10 +106,7 @@ RevisionControlObserver::RevisionControlObserver(QAbstractItemView* view) :
m_dirLister = m_dolphinModel->dirLister();
connect(m_dirLister, SIGNAL(completed()),
this, SLOT(delayedDirectoryVerification()));
- // TODO:
- // connect(m_dirLister, SIGNAL(refreshItems(const QList<QPair<KFileItem,KFileItem>>&)),
- // this, SLOT(refreshItems()));
-
+
// The verification timer specifies the timeout until the shown directory
// is checked whether it is versioned. Per default it is assumed that users
// don't iterate through versioned directories and a high timeout is used
@@ -146,16 +144,28 @@ void RevisionControlObserver::verifyDirectory()
}
revisionControlUrl.addPath(m_plugin->fileName());
- KFileItem item = m_dirLister->findByUrl(revisionControlUrl);
- if (item.isNull()) {
+ const KFileItem item = m_dirLister->findByUrl(revisionControlUrl);
+ if (item.isNull() && m_revisionedDirectory) {
// The directory is not versioned. Reset the verification timer to a higher
// value, so that browsing through non-versioned directories is not slown down
// by an immediate verification.
m_dirVerificationTimer->setInterval(500);
- } else {
- // The directory is versioned. Assume that the user will further browse through
- // versioned directories and decrease the verification timer.
- m_dirVerificationTimer->setInterval(100);
+ m_revisionedDirectory = false;
+ disconnect(m_dirLister, SIGNAL(refreshItems(const QList<QPair<KFileItem,KFileItem>>&)),
+ this, SLOT(delayedDirectoryVerification()));
+ disconnect(m_dirLister, SIGNAL(newItems(const KFileItemList&)),
+ this, SLOT(delayedDirectoryVerification()));
+ } else if (!item.isNull()) {
+ if (!m_revisionedDirectory) {
+ // The directory is versioned. Assume that the user will further browse through
+ // versioned directories and decrease the verification timer.
+ m_dirVerificationTimer->setInterval(100);
+ m_revisionedDirectory = true;
+ connect(m_dirLister, SIGNAL(refreshItems(const QList<QPair<KFileItem,KFileItem>>&)),
+ this, SLOT(delayedDirectoryVerification()));
+ connect(m_dirLister, SIGNAL(newItems(const KFileItemList&)),
+ this, SLOT(delayedDirectoryVerification()));
+ }
updateItemStates();
}
}