diff options
| author | Peter Penz <[email protected]> | 2009-07-22 07:07:43 +0000 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2009-07-22 07:07:43 +0000 |
| commit | ebf78d6ac26467560e66beeb106d0650aafd60f3 (patch) | |
| tree | d314cc3d95e7ae933109935023479c8907b81f99 /src/revisioncontrolobserver.cpp | |
| parent | c92c5cada0bb687d29f4af1eb1230f28cc2bdf6c (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.cpp | 30 |
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(); } } |
