[ocrfeeder: 5/15] Refactor how the main window is notified of the existence of pages



commit 5d2699a88be858b3debbd9ae3e02e5e22ca0b96b
Author: Joaquim Rocha <jrocha igalia com>
Date:   Sat Oct 6 15:09:47 2012 +0200

    Refactor how the main window is notified of the existence of pages
    
    Instead of just saying that is has images or not, it now needs to
    know the number of images.

 src/ocrfeeder/studio/studioBuilder.py   |    3 ++-
 src/ocrfeeder/studio/widgetModeler.py   |    4 +++-
 src/ocrfeeder/studio/widgetPresenter.py |    6 +++---
 3 files changed, 8 insertions(+), 5 deletions(-)
---
diff --git a/src/ocrfeeder/studio/studioBuilder.py b/src/ocrfeeder/studio/studioBuilder.py
index 5eab747..f82a917 100644
--- a/src/ocrfeeder/studio/studioBuilder.py
+++ b/src/ocrfeeder/studio/studioBuilder.py
@@ -139,7 +139,8 @@ class Studio:
 
         self.main_window.setHasSelectedBoxes(False)
         self.main_window.setHasContentBoxes(False)
-        self.main_window.setHasImages(not self.source_images_list_store.isEmpty())
+        self.main_window.setNumberOfPages(
+            self.source_images_icon_view.getNumberOfPages())
 
         # Show dialog to choose system-wide OCR engines when no engine was found
         if not self.ocr_engines:
diff --git a/src/ocrfeeder/studio/widgetModeler.py b/src/ocrfeeder/studio/widgetModeler.py
index 99e9640..072e21c 100644
--- a/src/ocrfeeder/studio/widgetModeler.py
+++ b/src/ocrfeeder/studio/widgetModeler.py
@@ -187,6 +187,9 @@ class SourceImagesSelectorIconView(gtk.IconView):
         index = self._getIndexFromOffset(offset)
         self.select_path((index,))
 
+    def getNumberOfPages(self):
+        return self.get_model().iter_n_children(None)
+
 class ImageReviewer(gtk.HPaned):
 
     def __init__(self, main_window, page_data, ocr_engines):
@@ -541,7 +544,6 @@ class ImageReviewer_Controler:
         self.__setZoomStatus(None, reviewer.selectable_boxes_area.get_scale())
         self.__updateStatusBar(reviewer)
         reviewer.updateMainWindow()
-        self.main_window.setHasImages(bool(reviewer))
 
     def __setZoomStatus(self, widget, zoom):
         self.__updateStatusBar()
diff --git a/src/ocrfeeder/studio/widgetPresenter.py b/src/ocrfeeder/studio/widgetPresenter.py
index f8d2ce5..c9c2ea3 100644
--- a/src/ocrfeeder/studio/widgetPresenter.py
+++ b/src/ocrfeeder/studio/widgetPresenter.py
@@ -267,7 +267,7 @@ class MainWindow:
     def setDestroyEvent(self, function):
         self.window.connect('delete-event', function)
 
-    def setHasImages(self, has_images = True):
+    def setNumberOfPages(self, nr_images):
         if not self.action_group:
             return
         actions = ['ZoomIn', 'ZoomOut', 'ResetZoom',
@@ -275,8 +275,8 @@ class MainWindow:
                    'DeletePage', 'SaveProject', 'SaveProjectAs',
                    'OCRFeederReconDocument', 'EditPage', 'ClearProject',
                    'AppendProject', 'ZoomFit', 'ImageDeskewer']
-        self.__setActionsSensitiveness(actions, has_images)
-        if not has_images:
+        self.__setActionsSensitiveness(actions, nr_images > 0)
+        if nr_images:
             self.setHasSelectedBoxes(False)
             self.setHasContentBoxes(False)
 



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