[ocrfeeder] Extracted the unpaper preferences from the unpaper dialog
- From: Joaquim Manuel Pereira Rocha <jrocha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [ocrfeeder] Extracted the unpaper preferences from the unpaper dialog
- Date: Tue, 27 Jul 2010 22:14:32 +0000 (UTC)
commit d58c80ee0740114695f2d416d0df3b8eb547a05a
Author: Joaquim Rocha <jrocha igalia com>
Date: Wed Jul 21 12:53:23 2010 +0200
Extracted the unpaper preferences from the unpaper dialog
studio/widgetPresenter.py | 187 +++++++++++++++++++++++++-------------------
1 files changed, 106 insertions(+), 81 deletions(-)
---
diff --git a/studio/widgetPresenter.py b/studio/widgetPresenter.py
index 5dfd1f7..f94ec0a 100644
--- a/studio/widgetPresenter.py
+++ b/studio/widgetPresenter.py
@@ -20,6 +20,7 @@
from customWidgets import PlainFrame, TrippleStatusBar
from dataHolder import DataBox, TEXT_TYPE, IMAGE_TYPE
+from configuration import ConfigurationManager
from util import lib, PAPER_SIZES
from util.asyncworker import AsyncWorker
from util.constants import *
@@ -813,67 +814,17 @@ class UnpaperDialog(gtk.Dialog):
def __init__(self, reviewer , unpaper, temp_dir = '/tmp'):
super(UnpaperDialog, self).__init__(_('Unpaper Image Processor'), flags = gtk.DIALOG_MODAL, buttons = (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT,
gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))
- self.options_box = gtk.VBox()
+ self.unpaper_preferences = UnpaperPreferences()
self.reviewer = reviewer
self.unpaper = unpaper
self.temp_dir = temp_dir
self.unpapered_image = None
- self.__makeBlackFilter()
- self.__makeNoiseFilter()
- self.__makeGrayFilter()
- self.__makeExtraOptions()
- self.noise_filter_custom.connect('toggled', self.__toggleNoiseFilterIntensity)
- self.gray_filter_custom.connect('toggled', self.__toggleGrayFilterIntensity)
self.__makePreviewArea()
self.set_icon_from_file(WINDOW_ICON)
self.vbox.show_all()
self.preview.connect('clicked', self.__getPreview)
self.set_size_request(500, -1)
- def __makeNoiseFilter(self):
-
- noise_filter_frame = PlainFrame(_('Noise Filter Intensity'))
- noise_filter_box = gtk.VBox()
- self.noise_filter_default = gtk.RadioButton(None, _('Default'))
- self.noise_filter_custom = gtk.RadioButton(self.noise_filter_default, _('Custom'))
- self.noise_filter_none = gtk.RadioButton(self.noise_filter_custom, _('None'))
- self.noise_filter_intensity = gtk.SpinButton(gtk.Adjustment(0, 1, 1000, 1, 100, 0), 1, 1)
- self.noise_filter_intensity.set_sensitive(False)
- noise_filter_custom_box = gtk.HBox()
- noise_filter_custom_box.add(self.noise_filter_custom)
- noise_filter_custom_box.add(self.noise_filter_intensity)
- noise_filter_box.pack_start(self.noise_filter_default, False)
- noise_filter_box.pack_start(noise_filter_custom_box, False)
- noise_filter_box.pack_start(self.noise_filter_none, False)
- noise_filter_frame.add(noise_filter_box)
- self.options_box.pack_start(noise_filter_frame, False)
-
- def __makeGrayFilter(self):
-
- gray_filter_frame = PlainFrame(_('Gray Filter Size'))
- gray_filter_box = gtk.VBox()
- self.gray_filter_default = gtk.RadioButton(None, _('Default'))
- self.gray_filter_custom = gtk.RadioButton(self.gray_filter_default, _('Custom'))
- self.gray_filter_none = gtk.RadioButton(self.gray_filter_custom, _('None'))
- self.gray_filter_size = gtk.SpinButton(gtk.Adjustment(0, 1, 1000, 1, 100, 0), 1, 1)
- self.gray_filter_size.set_sensitive(False)
- gray_filter_custom_box = gtk.HBox()
- gray_filter_custom_box.add(self.gray_filter_custom)
- gray_filter_custom_box.add(self.gray_filter_size)
- gray_filter_box.pack_start(self.gray_filter_default, False)
- gray_filter_box.pack_start(gray_filter_custom_box, False)
- gray_filter_box.pack_start(self.gray_filter_none, False)
- gray_filter_frame.add(gray_filter_box)
- self.options_box.pack_start(gray_filter_frame, False)
-
- def __makeBlackFilter(self):
-
- black_filter_frame = PlainFrame(_('Black Filter'))
- self.black_filter_usage = gtk.CheckButton(_('Use'))
- self.black_filter_usage.set_active(True)
- black_filter_frame.add(self.black_filter_usage)
- self.options_box.pack_start(black_filter_frame, False)
-
def __makePreviewArea(self):
preview_frame = PlainFrame(_('Preview'))
preview_box = gtk.VBox()
@@ -887,17 +838,9 @@ class UnpaperDialog(gtk.Dialog):
preview_frame.add(preview_box)
main_area = gtk.HBox()
main_area.pack_start(preview_frame, False, padding = 10)
- main_area.add(self.options_box)
+ main_area.add(self.unpaper_preferences)
self.vbox.add(main_area)
- def __makeExtraOptions(self):
- options_frame = PlainFrame(_('Extra Options'))
- self.extra_options = gtk.Entry()
- self.extra_options.set_tooltip_text(_("Unpaper's command "
- "line arguments"))
- options_frame.add(self.extra_options)
- self.options_box.pack_start(options_frame, False)
-
def __getPreview(self, widget):
self.performUnpaper()
self.__getPreviewImage(self.unpapered_image)
@@ -910,22 +853,10 @@ class UnpaperDialog(gtk.Dialog):
if os.path.exists(name):
os.remove(name)
image.save(name, format = 'PPM')
- command = '%s --layout single' % self.unpaper
- if not self.black_filter_usage.get_active():
- command += ' --no-blackfilter'
- if self.noise_filter_none.get_active():
- command += ' --no-noisefilter'
- elif self.noise_filter_custom.get_active():
- command += ' --noisefilter-intensity %s' % self.noise_filter_intensity.get_value()
- if self.gray_filter_none.get_active():
- command += ' --no-grayfilter'
- elif self.gray_filter_custom.get_active():
- command += ' --grayfilter-size %s' % self.gray_filter_size.get_value()
- extra_options_text = self.extra_options.get_text()
- if extra_options_text.strip():
- command += ' %s ' % extra_options_text
+ command = self.unpaper_preferences.getUnpaperCommand()
unpapered_image = os.path.splitext(name)[0] + '_unpapered.ppm'
- unpapered_image = lib.getNonExistingFileName(unpapered_image)
+ if os.path.exists(unpapered_image):
+ unpapered_image = lib.getNonExistingFileName(unpapered_image)
command += ' %s %s' % (name, unpapered_image)
progress_bar = CommandProgressBarDialog(command, _('Performing Unpaper'), _('Performing unpaper. Please waitâ?¦'))
progress_bar.run()
@@ -949,17 +880,111 @@ class UnpaperDialog(gtk.Dialog):
self.preview_area.remove(child)
self.preview_area.add_with_viewport(image)
- def __toggleNoiseFilterIntensity(self, widget):
- self.noise_filter_intensity.set_sensitive(self.noise_filter_custom.get_active())
-
- def __toggleGrayFilterIntensity(self, widget):
- self.gray_filter_size.set_sensitive(self.gray_filter_custom.get_active())
-
def getUnpaperedImage(self):
if not self.unpapered_image:
self.performUnpaper()
return self.unpapered_image
+class UnpaperPreferences(gtk.VBox):
+
+ def __init__(self):
+ super(UnpaperPreferences, self).__init__()
+ self.configuration_manager = ConfigurationManager()
+ self.__makeBlackFilter()
+ self.__makeNoiseFilter()
+ self.__makeGrayFilter()
+ self.__makeExtraOptions()
+ self.noise_filter_custom.connect('toggled',
+ self.__toggleNoiseFilterIntensity)
+ self.gray_filter_custom.connect('toggled',
+ self.__toggleGrayFilterIntensity)
+ self.show_all()
+
+ def __makeNoiseFilter(self):
+
+ noise_filter_frame = PlainFrame(_('Noise Filter Intensity'))
+ noise_filter_box = gtk.VBox()
+ self.noise_filter_default = gtk.RadioButton(None, _('Default'))
+ self.noise_filter_custom = gtk.RadioButton(self.noise_filter_default,
+ _('Custom'))
+ self.noise_filter_none = gtk.RadioButton(self.noise_filter_custom,
+ _('None'))
+ adjustment = gtk.Adjustment(0, 1, 1000, 1, 100, 0)
+ self.noise_filter_intensity = gtk.SpinButton(adjustment, 1, 1)
+ self.noise_filter_intensity.set_sensitive(False)
+ noise_filter_custom_box = gtk.HBox()
+ noise_filter_custom_box.add(self.noise_filter_custom)
+ noise_filter_custom_box.add(self.noise_filter_intensity)
+ noise_filter_box.pack_start(self.noise_filter_default, False)
+ noise_filter_box.pack_start(noise_filter_custom_box, False)
+ noise_filter_box.pack_start(self.noise_filter_none, False)
+ noise_filter_frame.add(noise_filter_box)
+ self.pack_start(noise_filter_frame, False)
+
+ def __makeGrayFilter(self):
+
+ gray_filter_frame = PlainFrame(_('Gray Filter Size'))
+ gray_filter_box = gtk.VBox()
+ self.gray_filter_default = gtk.RadioButton(None, _('Default'))
+ self.gray_filter_custom = gtk.RadioButton(self.gray_filter_default,
+ _('Custom'))
+ self.gray_filter_none = gtk.RadioButton(self.gray_filter_custom,
+ _('None'))
+ self.gray_filter_size = gtk.SpinButton(gtk.Adjustment(0, 1, 1000,
+ 1, 100, 0), 1, 1)
+ self.gray_filter_size.set_sensitive(False)
+ gray_filter_custom_box = gtk.HBox()
+ gray_filter_custom_box.add(self.gray_filter_custom)
+ gray_filter_custom_box.add(self.gray_filter_size)
+ gray_filter_box.pack_start(self.gray_filter_default, False)
+ gray_filter_box.pack_start(gray_filter_custom_box, False)
+ gray_filter_box.pack_start(self.gray_filter_none, False)
+ gray_filter_frame.add(gray_filter_box)
+ self.pack_start(gray_filter_frame, False)
+
+ def __makeBlackFilter(self):
+
+ black_filter_frame = PlainFrame(_('Black Filter'))
+ self.black_filter_usage = gtk.CheckButton(_('Use'))
+ self.black_filter_usage.set_active(True)
+ black_filter_frame.add(self.black_filter_usage)
+ self.pack_start(black_filter_frame, False)
+
+ def __makeExtraOptions(self):
+ options_frame = PlainFrame(_('Extra Options'))
+ self.extra_options = gtk.Entry()
+ self.extra_options.set_tooltip_text(_("Unpaper's command "
+ "line arguments"))
+ options_frame.add(self.extra_options)
+ self.pack_start(options_frame, False)
+
+ def __toggleNoiseFilterIntensity(self, widget):
+ has_noise_filter = self.noise_filter_custom.get_active()
+ self.noise_filter_intensity.set_sensitive(has_noise_filter)
+
+ def __toggleGrayFilterIntensity(self, widget):
+ has_gray_filter = self.gray_filter_custom.get_active()
+ self.gray_filter_size.set_sensitive(has_gray_filter)
+
+ def getUnpaperCommand(self):
+ command = '%s --layout single' % self.configuration_manager.unpaper
+ if not self.black_filter_usage.get_active():
+ command += ' --no-blackfilter'
+ if self.noise_filter_none.get_active():
+ command += ' --no-noisefilter'
+ elif self.noise_filter_custom.get_active():
+ command += ' --noisefilter-intensity %s' % \
+ self.noise_filter_intensity.get_value()
+ if self.gray_filter_none.get_active():
+ command += ' --no-grayfilter'
+ elif self.gray_filter_custom.get_active():
+ command += ' --grayfilter-size %s' % \
+ self.gray_filter_size.get_value()
+ extra_options_text = self.extra_options.get_text()
+ if extra_options_text.strip():
+ command += ' %s ' % extra_options_text
+ return command
+
class SimpleDialog(gtk.MessageDialog):
def __init__(self, message, title = '', type = 'info'):
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]