[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdesdk/kbabel/kbabeldict/modules/dbsearchengine
From:       Stanislav Višňovský <visnovsky () nenya ! ms ! mff ! cuni ! cz
Date:       2005-02-07 11:51:12
Message-ID: 20050207115112.F0CE41CF37 () office ! kde ! org
[Download RAW message or body]

CVS commit by nanulo: 

- better responsiveness
- handle stop search in all cases


  M +36 -13    KDBSearchEngine.cpp   1.89


--- kdesdk/kbabel/kbabeldict/modules/dbsearchengine/KDBSearchEngine.cpp  #1.88:1.89
@@ -4,4 +4,5 @@
     begin                : Fri Sep 8 2000
     copyright            : (C) 2000 by Andrea Rizzi
+                           (C) 2005 by Stanislav Visnovsky
     email                : rizzi@kde.org
  ***************************************************************************/
@@ -727,9 +728,31 @@ KDBSearchEngine::startSearchNow (int sea
       {
           goodkeys = searchWords (mainRequest, thre, threorig, listmax);        //FIX IT, mainReq?
+          if (stopNow)
+          {
+                stopNow = false;
+                searching = false;
+                emit finished ();
+                return false;
+          }
           if (goodkeys.count () == 0)
               gk = false;       // if no good keys, use the whole database
       }
+      
+    // prepare progress values
     totalprogress = gk ? goodkeys.count () : totalRecord;
     int step = (totalprogress / 30) + 1;
+    if( step > 100 )
+        step = 100;
+
+    emit progress (0);
+    kapp->processEvents (100);
+    if (stopNow)
+    {
+        stopNow = false;
+        searching = false;
+        emit finished ();
+        return true;    // No error, stopped!
+    }
+    
 
     for (item = gk ? (dm->getItem (goodkeys[0])) : (dm->firstItem ());
@@ -745,5 +767,5 @@ KDBSearchEngine::startSearchNow (int sea
                                totalprogress /*,1) */ );
                 kapp->processEvents (100);
-            }
+
           if (stopNow)
             {
@@ -753,4 +775,5 @@ KDBSearchEngine::startSearchNow (int sea
                 return true;    // No error, stopped!
             }
+            }
 
           //  fprintf(stderr,"%s\n",(const char *)item.key.utf8());
@@ -859,7 +881,4 @@ KDBSearchEngine::startSearchNow (int sea
                   {
 
-//           kdDebug(0) << QString("Found") << endl;
-
-
                       if (equal)
                           foundExact = true;
@@ -1689,4 +1708,8 @@ QValueList < KeyAndScore > KDBSearchEngi
                                       kapp->processEvents (100);
                                   }
+                                  if (stopNow)
+                                  {
+                                        return keylist;
+                                  }
 
                                 currentloc[j]++;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic