[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: make_it_cool: kdenetwork/kmail
From: Don Sanders <don () sanders ! org>
Date: 2003-02-08 18:14:51
[Download RAW message or body]
CVS commit by sanders:
Stealthier full text indexing.
M +41 -0 kmmsgindex.cpp 1.1.2.28
M +6 -0 kmmsgindex.h 1.1.2.17
--- kdenetwork/kmail/kmmsgindex.h #1.1.2.16:1.1.2.17
@@ -66,4 +66,10 @@ class KMMsgIndex : public QObject
bool reading_processed, restart_index;
} restore;
+ struct {
+ int timer_id;
+ int create_id;
+ int restore_id;
+ int counter;
+ } delay;
QTime mLastSearch; //when last index lookup was performed
QIntDict<KMIndexSearchTarget> mActiveSearches; //for async search
--- kdenetwork/kmail/kmmsgindex.cpp #1.1.2.27:1.1.2.28
@@ -214,4 +214,9 @@ KMMsgIndex::KMMsgIndex(QObject *o, const
{
mActiveSearches.setAutoDelete(TRUE);
+ create.timer_id = -1;
+ restore.timer_id = -1;
+ delay.timer_id = -1;
+ delay.create_id = -1;
+ delay.restore_id = -1;
reset(FALSE);
mTermIndex.loc = kernel->folderMgr()->basePath() + "/.kmmsgindex_search";
@@ -246,4 +251,9 @@ KMMsgIndex::reset(bool clean)
restore.timer_id = -1;
}
+ if(delay.timer_id != -1) {
+ if(clean)
+ killTimer(delay.timer_id);
+ delay.timer_id = -1;
+ }
//TOC
if(clean)
@@ -641,6 +651,37 @@ void
KMMsgIndex::timerEvent(QTimerEvent *e)
{
+ if (e->timerId() == delay.timer_id) {
+ if(qApp->hasPendingEvents()) {
+ delay.counter = 10;
+ return;
+ }
+ --delay.counter;
+ if (delay.counter > 0)
+ return;
+ killTimer(delay.timer_id);
+ if (delay.create_id != -1)
+ create.timer_id = startTimer(0);
+ if (delay.restore_id != -1)
+ restore.timer_id = startTimer(0);
+ delay.timer_id = -1;
+ delay.create_id = -1;
+ delay.restore_id = -1;
+ }
+ if (delay.timer_id != -1)
+ return;
if(qApp->hasPendingEvents()) //nah, next time..
+ {
+ delay.timer_id = startTimer(1000);
+ delay.counter = 10;
+ delay.create_id = create.timer_id;
+ delay.restore_id = restore.timer_id;
+ if (create.timer_id != -1)
+ killTimer( create.timer_id );
+ create.timer_id = -1;
+ if (restore.timer_id != -1)
+ killTimer( restore.timer_id );
+ restore.timer_id = -1;
return;
+ }
if(mIndexState == INDEX_CREATE && e->timerId() == create.timer_id)
createState(FALSE);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic