[ocrfeeder/new_fixes: 8/10] fix async completion issues on recognition finish



commit a6b0f7a6a67edde17a309a0a417919f369ca0728
Author: Jan Losinski <losinski wh2 tu-dresden de>
Date:   Fri Jul 27 15:22:32 2012 +0200

    fix async completion issues on recognition finish
    
    ensure that we have the last __performRecognitionForPageFinishedCb when
    calling __updateImageReviewers()
    
    Signed-off-by: Jan Losinski <losinski wh2 tu-dresden de>

 src/ocrfeeder/studio/widgetModeler.py |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)
---
diff --git a/src/ocrfeeder/studio/widgetModeler.py b/src/ocrfeeder/studio/widgetModeler.py
index 7e77b7a..e5b7887 100644
--- a/src/ocrfeeder/studio/widgetModeler.py
+++ b/src/ocrfeeder/studio/widgetModeler.py
@@ -415,6 +415,9 @@ def _performRecognitionForPage(page, configuration_manager, ocr_engine):
                                      page.resolution[1])
 
 
+_pages_recognized_count_lock = threading.RLock()
+
+
 class ImageReviewer_Controler:
 
     REVIEWER_CACHE_LENGTH = 5
@@ -635,6 +638,7 @@ class ImageReviewer_Controler:
            self.__confirmOveritePossibilityByRecognition() != gtk.RESPONSE_YES:
                 return
         dialog.setItemsList(items)
+        self._pages_recognized_count = 0
         dialog.run()
 
     def __getConfiguredOcrEngine(self):
@@ -647,9 +651,12 @@ class ImageReviewer_Controler:
                                               pages_to_process,
                                               data_boxes, error):
         page.data_boxes = data_boxes
-        if dialog.worker.done:
-            dialog.cancel()
-            self.__updateImageReviewers()
+
+        with _pages_recognized_count_lock:
+            if dialog.worker.done and self._pages_recognized_count == (len(pages_to_process) - 1):
+                dialog.cancel()
+                self.__updateImageReviewers()
+            self._pages_recognized_count +=1
 
     def copyRecognizedTextToClipboard(self, widget):
         image_reviewer = self.__getCurrentReviewer()



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]