[ocrfeeder: 4/15] Implement move page up or down



commit 0be9baf0dc97ea35e400d01ae387934366b66793
Author: Joaquim Rocha <jrocha igalia com>
Date:   Tue Oct 2 23:07:54 2012 +0200

    Implement move page up or down

 src/ocrfeeder/studio/studioBuilder.py   |    8 ++++++++
 src/ocrfeeder/studio/widgetModeler.py   |   13 +++++++++++++
 src/ocrfeeder/studio/widgetPresenter.py |    4 ++++
 3 files changed, 25 insertions(+), 0 deletions(-)
---
diff --git a/src/ocrfeeder/studio/studioBuilder.py b/src/ocrfeeder/studio/studioBuilder.py
index 95f9e9f..5eab747 100644
--- a/src/ocrfeeder/studio/studioBuilder.py
+++ b/src/ocrfeeder/studio/studioBuilder.py
@@ -110,6 +110,8 @@ class Studio:
                                  'copy_to_clipboard': self.source_images_controler.copyRecognizedTextToClipboard,
                                  'spell_checker': self.spellChecker,
                                  'help_contents': self.showHelpContents,
+                                 'move_page_down': self.movePageDown,
+                                 'move_page_up': self.movePageUp,
                                  'select_next_page': self.selectNextPage,
                                  'select_previous_page': self.selectPreviousPage,
                                  }
@@ -357,6 +359,12 @@ class Studio:
             self.source_images_icon_view.deleteCurrentSelection()
         delete_dialog.destroy()
 
+    def movePageDown(self, widget):
+        self.source_images_icon_view.movePage(1)
+
+    def movePageUp(self, widget):
+        self.source_images_icon_view.movePage(-1)
+
     def selectNextPage(self, widget):
         self.source_images_icon_view.selectPageFromOffset(1)
 
diff --git a/src/ocrfeeder/studio/widgetModeler.py b/src/ocrfeeder/studio/widgetModeler.py
index f21f103..99e9640 100644
--- a/src/ocrfeeder/studio/widgetModeler.py
+++ b/src/ocrfeeder/studio/widgetModeler.py
@@ -165,6 +165,19 @@ class SourceImagesSelectorIconView(gtk.IconView):
             index = 0
         return index
 
+    def movePage(self, offset):
+        selected_items = self.get_selected_items()
+        if not len(selected_items):
+            return
+        selected_item_path = selected_items[0]
+        model = self.get_model()
+        index = self._getIndexFromOffset(offset)
+        if index != selected_item_path[0] + offset:
+            return
+        model.swap(model.get_iter((index,)),
+                   model.get_iter(selected_item_path))
+        self.select_path((index,))
+
     def selectPageFromOffset(self, offset):
         selected_items = self.get_selected_items()
         if not len(selected_items):
diff --git a/src/ocrfeeder/studio/widgetPresenter.py b/src/ocrfeeder/studio/widgetPresenter.py
index 4b808ba..f8d2ce5 100644
--- a/src/ocrfeeder/studio/widgetPresenter.py
+++ b/src/ocrfeeder/studio/widgetPresenter.py
@@ -71,6 +71,8 @@ class MainWindow:
             <menuitem action="DeletePage"/>
             <menuitem action="SelectNextPage"/>
             <menuitem action="SelectPreviousPage"/>
+            <menuitem action="MovePageUp"/>
+            <menuitem action="MovePageDown"/>
             <separator/>
             <menuitem action="ClearProject"/>
             <separator/>
@@ -170,6 +172,8 @@ class MainWindow:
                                   ('EditPage', gtk.STOCK_EDIT, _('_Edit Page'), None, _('Edit page settings'), menu_items['edit_page']),
                                   ('Preferences', gtk.STOCK_PREFERENCES, _('_Preferences'), None, _('Configure the application'), menu_items['preferences']),
                                   ('DeletePage', gtk.STOCK_DELETE, _('_Delete Page'), None, _('Delete current page'), menu_items['delete_page']),
+                                  ('MovePageDown', gtk.STOCK_GO_DOWN, _('Move Page Do_wn'), '<control><shift>Page_Down', _('Move page down'), menu_items['move_page_down']),
+                                  ('MovePageUp', gtk.STOCK_GO_UP, _('Move Page Up'), '<control><shift>Page_Up', _('Move page up'), menu_items['move_page_up']),
                                   ('SelectNextPage', gtk.STOCK_GO_DOWN, _('Select Next Page'), '<control>Page_Down', _('Select next page'), menu_items['select_next_page']),
                                   ('SelectPreviousPage', gtk.STOCK_GO_UP, _('Select Previous Page'), '<control>Page_Up', _('Select previous page'), menu_items['select_previous_page']),
                                   ('ClearProject', gtk.STOCK_DELETE, _('_Clear Project'), None, _('Delete all images'), menu_items['clear']),



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