[Pycodeocr-main] SF.net SVN: pycodeocr:[55] trunk
Status: Beta
Brought to you by:
drtrigon
|
From: <la...@us...> - 2011-07-27 07:33:38
|
Revision: 55
http://pycodeocr.svn.sourceforge.net/pycodeocr/?rev=55&view=rev
Author: laserb
Date: 2011-07-27 07:33:30 +0000 (Wed, 27 Jul 2011)
Log Message:
-----------
Merge with branche from laserb:
+ outsource RunExternal, RunLibdmtx and RunMagickWand from ocr.py
+ add blacklist_manager
+ clean up scanner initialization code, no longer jumping back and forth in code, retry connecting to scanner possible
+ renamed some gtk elements to have a meaningful name
+ make main window resizable
+ added tabstyle, todo: show information in different tabs
+ changed glade format to GTKBuilder instead of libglade, as libglade is depriciated ( no longer supported as of glade 3.10 )
Modified Paths:
--------------
trunk/PyCodeOCR.glade
trunk/PyCodeOCR.py
trunk/README
trunk/utils/__init__.py
trunk/utils/ocr.py
Added Paths:
-----------
trunk/utils/RunExternal.py
trunk/utils/RunLibdmtx.py
trunk/utils/RunMagickWand.py
trunk/utils/blacklist_manager.py
Modified: trunk/PyCodeOCR.glade
===================================================================
--- trunk/PyCodeOCR.glade 2011-04-28 10:21:55 UTC (rev 54)
+++ trunk/PyCodeOCR.glade 2011-07-27 07:33:30 UTC (rev 55)
@@ -1,417 +1,865 @@
-<?xml version="1.0"?>
-<glade-interface>
- <!-- interface-requires gtk+ 2.16 -->
- <!-- interface-naming-policy toplevel-contextual -->
- <widget class="GtkWindow" id="window1">
- <property name="width_request">798</property>
- <property name="height_request">246</property>
- <property name="visible">True</property>
- <property name="title" translatable="yes">PyCodeOCR</property>
- <property name="resizable">False</property>
- <signal name="destroy" handler="on_window1_destroy"/>
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk+" version="2.24"/>
+ <object class="GtkAdjustment" id="adjustment1">
+ <property name="upper">300</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="adjustment2">
+ <property name="upper">300</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="adjustment3">
+ <property name="upper">300</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="adjustment4">
+ <property name="upper">300</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkWindow" id="img_popup">
+ <property name="can_focus">False</property>
+ <property name="type">popup</property>
+ <property name="window_position">mouse</property>
+ <property name="destroy_with_parent">True</property>
+ <signal name="leave-notify-event" handler="on_main_image_eventbox_button_press_event" swapped="no"/>
<child>
- <widget class="GtkFixed" id="fixed1">
+ <object class="GtkVBox" id="vbox1">
<property name="visible">True</property>
+ <property name="can_focus">False</property>
<child>
- <widget class="GtkProgressBar" id="progressbar1">
- <property name="width_request">504</property>
- <property name="height_request">20</property>
+ <object class="GtkEventBox" id="popup_image_eventbox">
<property name="visible">True</property>
- <property name="pulse_step">0.10000000149</property>
- </widget>
+ <property name="can_focus">False</property>
+ <property name="events">GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | GDK_BUTTON3_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK | GDK_PROPERTY_CHANGE_MASK | GDK_VISIBILITY_NOTIFY_MASK | GDK_PROXIMITY_IN_MASK | GDK_PROXIMITY_OUT_MASK | GDK_SUBSTRUCTURE_MASK | GDK_SCROLL_MASK</property>
+ <property name="visible_window">False</property>
+ <child>
+ <object class="GtkImage" id="popup_image">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ </child>
+ </object>
<packing>
- <property name="x">16</property>
- <property name="y">208</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
</packing>
</child>
+ </object>
+ </child>
+ </object>
+ <object class="GtkWindow" id="main_window">
+ <property name="width_request">786</property>
+ <property name="height_request">242</property>
+ <property name="can_focus">False</property>
+ <signal name="destroy" handler="on_main_window_destroy" swapped="no"/>
+ <signal name="motion-notify-event" handler="on_pointer_motion" swapped="no"/>
+ <child>
+ <object class="GtkNotebook" id="notebook">
+ <property name="width_request">786</property>
+ <property name="height_request">242</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="tab_pos">left</property>
<child>
- <widget class="GtkEntry" id="entry1">
- <property name="width_request">504</property>
- <property name="height_request">27</property>
+ <object class="GtkHBox" id="hbox1">
+ <property name="width_request">1284</property>
+ <property name="height_request">443</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">False</property>
- <property name="invisible_char">●</property>
- </widget>
- <packing>
- <property name="x">16</property>
- <property name="y">168</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label5">
- <property name="width_request">90</property>
- <property name="height_request">21</property>
- <property name="visible">True</property>
- <property name="label" translatable="yes">Orientation:</property>
- </widget>
- <packing>
- <property name="x">569</property>
- <property name="y">160</property>
- </packing>
- </child>
- <child>
- <widget class="GtkComboBox" id="combobox1">
- <property name="width_request">90</property>
- <property name="height_request">29</property>
- <property name="visible">True</property>
- <property name="items" translatable="yes">0 deg
-90 deg
-180 deg
-270 deg</property>
- <signal name="changed" handler="on_combobox1_changed"/>
- </widget>
- <packing>
- <property name="x">691</property>
- <property name="y">155</property>
- </packing>
- </child>
- <child>
- <widget class="GtkFrame" id="frame1">
- <property name="width_request">224</property>
- <property name="height_request">91</property>
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
+ <property name="can_focus">False</property>
<child>
- <widget class="GtkAlignment" id="alignment1">
+ <object class="GtkVBox" id="vbox4">
<property name="visible">True</property>
- <property name="left_padding">12</property>
+ <property name="can_focus">False</property>
<child>
- <widget class="GtkFixed" id="fixed2">
+ <object class="GtkHBox" id="hbox2">
+ <property name="height_request">32</property>
<property name="visible">True</property>
+ <property name="can_focus">False</property>
<child>
- <widget class="GtkLabel" id="label2">
- <property name="width_request">72</property>
- <property name="height_request">17</property>
+ <object class="GtkHBox" id="hbox6">
+ <property name="height_request">30</property>
<property name="visible">True</property>
- <property name="label" translatable="yes">Position:</property>
- </widget>
+ <property name="can_focus">False</property>
+ <property name="spacing">11</property>
+ <child>
+ <object class="GtkRadioButton" id="file_input_button">
+ <property name="width_request">21</property>
+ <property name="height_request">21</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">sane_input_button</property>
+ <signal name="toggled" handler="on_mode_changed" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">4</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFileChooserButton" id="filechooserbutton">
+ <property name="width_request">168</property>
+ <property name="height_request">29</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="do_overwrite_confirmation">True</property>
+ <signal name="file-set" handler="on_filechooserbutton_file_set" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">4</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
<packing>
- <property name="y">8</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">4</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkSpinButton" id="spinbutton1">
- <property name="width_request">56</property>
- <property name="height_request">27</property>
+ <object class="GtkComboBox" id="mode_combobox">
+ <property name="width_request">200</property>
+ <property name="height_request">29</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="adjustment">1 0 200 1 10 0</property>
- <property name="climb_rate">1</property>
- <property name="numeric">True</property>
- <signal name="value_changed" handler="on_spinbutton_value_changed"/>
- </widget>
+ <property name="can_focus">False</property>
+ <property name="model">mode_list</property>
+ <property name="active">0</property>
+ <property name="has_entry">True</property>
+ <property name="entry_text_column">0</property>
+ <signal name="changed" handler="on_mode_changed" swapped="no"/>
+ <child internal-child="entry">
+ <object class="GtkEntry" id="combobox-entry2">
+ <property name="can_focus">False</property>
+ <property name="editable">False</property>
+ <property name="shadow_type">none</property>
+ <property name="caps_lock_warning">False</property>
+ </object>
+ </child>
+ </object>
<packing>
- <property name="x">80</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
</packing>
</child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">4</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="scanned_code_label">
+ <property name="width_request">102</property>
+ <property name="height_request">17</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Scanned code:</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEventBox" id="main_image_eventbox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <signal name="button-press-event" handler="on_main_image_eventbox_button_press_event" swapped="no"/>
<child>
- <widget class="GtkSpinButton" id="spinbutton2">
- <property name="width_request">56</property>
- <property name="height_request">27</property>
+ <object class="GtkImage" id="main_image">
<property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">4</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="output">
+ <property name="width_request">504</property>
+ <property name="height_request">27</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">False</property>
+ <property name="invisible_char">•</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">4</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkProgressBar" id="progressbar">
+ <property name="width_request">504</property>
+ <property name="height_request">20</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="pulse_step">0.10000000149</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">4</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkVBox" id="vbox5">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkHBox" id="hbox3">
+ <property name="height_request">30</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkRadioButton" id="sane_input_button">
+ <property name="label" translatable="yes">Standard SANE Interface</property>
+ <property name="width_request">224</property>
+ <property name="height_request">21</property>
+ <property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="adjustment">1 0 200 1 10 0</property>
- <property name="climb_rate">1</property>
- <property name="numeric">True</property>
- <signal name="value_changed" handler="on_spinbutton_value_changed"/>
- </widget>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="on_mode_changed" swapped="no"/>
+ </object>
<packing>
- <property name="x">144</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">4</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkSpinButton" id="spinbutton3">
- <property name="width_request">56</property>
- <property name="height_request">27</property>
- <property name="visible">True</property>
+ <object class="GtkButton" id="retry_button">
+ <property name="label" translatable="yes">Retry</property>
+ <property name="width_request">60</property>
+ <property name="height_request">29</property>
<property name="can_focus">True</property>
- <property name="adjustment">1 0 200 1 10 0</property>
- <property name="climb_rate">1</property>
- <property name="numeric">True</property>
- <signal name="value_changed" handler="on_spinbutton_value_changed"/>
- </widget>
+ <property name="receives_default">True</property>
+ <property name="use_action_appearance">False</property>
+ <signal name="clicked" handler="on_retry_button_clicked" swapped="no"/>
+ </object>
<packing>
- <property name="x">80</property>
- <property name="y">40</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">4</property>
+ <property name="position">1</property>
</packing>
</child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">4</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="placement_frame">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
<child>
- <widget class="GtkSpinButton" id="spinbutton4">
- <property name="width_request">56</property>
- <property name="height_request">27</property>
+ <object class="GtkAlignment" id="alignment1">
<property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkFixed" id="fixed2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkLabel" id="position_label">
+ <property name="width_request">72</property>
+ <property name="height_request">17</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Position:</property>
+ </object>
+ <packing>
+ <property name="y">8</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="position_x">
+ <property name="width_request">56</property>
+ <property name="height_request">27</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="adjustment">adjustment1</property>
+ <property name="climb_rate">1</property>
+ <property name="numeric">True</property>
+ <signal name="value-changed" handler="on_placement_value_changed" swapped="no"/>
+ </object>
+ <packing>
+ <property name="x">80</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="position_y">
+ <property name="width_request">56</property>
+ <property name="height_request">27</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="adjustment">adjustment2</property>
+ <property name="climb_rate">1</property>
+ <property name="numeric">True</property>
+ <signal name="value-changed" handler="on_placement_value_changed" swapped="no"/>
+ </object>
+ <packing>
+ <property name="x">144</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="size_x">
+ <property name="width_request">56</property>
+ <property name="height_request">27</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="adjustment">adjustment3</property>
+ <property name="climb_rate">1</property>
+ <property name="numeric">True</property>
+ <signal name="value-changed" handler="on_placement_value_changed" swapped="no"/>
+ </object>
+ <packing>
+ <property name="x">80</property>
+ <property name="y">40</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="size_y">
+ <property name="width_request">56</property>
+ <property name="height_request">27</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="adjustment">adjustment4</property>
+ <property name="climb_rate">1</property>
+ <property name="numeric">True</property>
+ <signal name="value-changed" handler="on_placement_value_changed" swapped="no"/>
+ </object>
+ <packing>
+ <property name="x">144</property>
+ <property name="y">40</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="size_label">
+ <property name="width_request">72</property>
+ <property name="height_request">17</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Size:</property>
+ </object>
+ <packing>
+ <property name="y">48</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="placement_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Placement</property>
+ <property name="use_markup">True</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">4</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHBox" id="hbox4">
+ <property name="width_request">1</property>
+ <property name="height_request">30</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkLabel" id="orientation_label">
+ <property name="width_request">92</property>
+ <property name="height_request">21</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Orientation:</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">4</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="orientation">
+ <property name="width_request">90</property>
+ <property name="height_request">29</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="model">orientation_list</property>
+ <property name="has_entry">True</property>
+ <property name="entry_text_column">0</property>
+ <signal name="changed" handler="on_orientation_changed" swapped="no"/>
+ <child internal-child="entry">
+ <object class="GtkEntry" id="combobox-entry4">
+ <property name="can_focus">False</property>
+ <property name="editable">False</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">4</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label8">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHBox" id="hbox5">
+ <property name="height_request">31</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkToggleButton" id="scan_button">
+ <property name="label" translatable="yes">scan</property>
+ <property name="width_request">90</property>
+ <property name="height_request">29</property>
+ <property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="adjustment">1 0 200 1 10 0</property>
- <property name="climb_rate">1</property>
- <property name="numeric">True</property>
- <signal name="value_changed" handler="on_spinbutton_value_changed"/>
- </widget>
+ <property name="receives_default">True</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <signal name="toggled" handler="on_scan_button_clicked" swapped="no"/>
+ </object>
<packing>
- <property name="x">144</property>
- <property name="y">40</property>
+ <property name="expand">True</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label3">
- <property name="width_request">72</property>
- <property name="height_request">17</property>
+ <object class="GtkButton" id="exit_button">
+ <property name="label" translatable="yes">exit</property>
+ <property name="width_request">90</property>
+ <property name="height_request">19</property>
<property name="visible">True</property>
- <property name="label" translatable="yes">Size:</property>
- </widget>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <signal name="clicked" handler="on_exit_button_clicked" swapped="no"/>
+ </object>
<packing>
- <property name="y">48</property>
+ <property name="expand">True</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
</packing>
</child>
- </widget>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">4</property>
+ <property name="position">4</property>
+ </packing>
</child>
- </widget>
- </child>
- <child>
- <widget class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Placement</property>
- <property name="use_markup">True</property>
- </widget>
+ </object>
<packing>
- <property name="type">label_item</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
</packing>
</child>
- </widget>
- <packing>
- <property name="x">558</property>
- <property name="y">56</property>
- </packing>
+ </object>
</child>
- <child>
- <widget class="GtkLabel" id="label4">
- <property name="width_request">102</property>
- <property name="height_request">17</property>
+ <child type="tab">
+ <object class="GtkLabel" id="scan_label">
<property name="visible">True</property>
- <property name="label" translatable="yes">Scanned code:</property>
- </widget>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">SCAN</property>
+ </object>
<packing>
- <property name="x">16</property>
- <property name="y">55</property>
+ <property name="tab_fill">False</property>
</packing>
</child>
<child>
- <widget class="GtkButton" id="button2">
- <property name="label" translatable="yes">exit</property>
- <property name="width_request">90</property>
- <property name="height_request">29</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <signal name="clicked" handler="on_button2_clicked"/>
- </widget>
- <packing>
- <property name="x">692</property>
- <property name="y">200</property>
- </packing>
+ <placeholder/>
</child>
<child>
- <widget class="GtkToggleButton" id="togglebutton1">
- <property name="label" translatable="yes">scan</property>
- <property name="width_request">90</property>
- <property name="height_request">29</property>
+ <object class="GtkVBox" id="vbox3">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <signal name="toggled" handler="on_togglebutton1_toggled"/>
- </widget>
+ <property name="can_focus">False</property>
+ <property name="resize_mode">immediate</property>
+ <child>
+ <object class="GtkScrolledWindow" id="device_info_scrolled">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="window_placement_set">True</property>
+ <child>
+ <object class="GtkTextView" id="device_info_text">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">False</property>
+ <property name="wrap_mode">word</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
<packing>
- <property name="x">568</property>
- <property name="y">200</property>
+ <property name="position">1</property>
</packing>
</child>
- <child>
- <widget class="GtkComboBox" id="combobox2">
- <property name="width_request">256</property>
- <property name="height_request">31</property>
+ <child type="tab">
+ <object class="GtkLabel" id="device_info_label">
<property name="visible">True</property>
- <property name="items" translatable="yes">E-Banking invoice OCR
-Barcode optical recogn. (beta)
-DataMatrix optical recogn. (beta)
-PDF417 bc. optical recogn. (beta)
-</property>
- <signal name="changed" handler="on_combobox2_changed"/>
- </widget>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Device Info</property>
+ </object>
<packing>
- <property name="x">16</property>
- <property name="y">16</property>
+ <property name="position">1</property>
+ <property name="tab_fill">False</property>
</packing>
</child>
<child>
- <widget class="GtkRadioButton" id="radiobutton2">
- <property name="label" translatable="yes">Standard SANE Interface</property>
- <property name="width_request">224</property>
- <property name="height_request">21</property>
+ <object class="GtkHBox" id="hbox10">
+ <property name="width_request">100</property>
+ <property name="height_request">80</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- <signal name="toggled" handler="on_combobox2_changed"/>
- </widget>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkVBox" id="vbox9">
+ <property name="width_request">100</property>
+ <property name="height_request">80</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkScrolledWindow" id="device_list_scrolled">
+ <property name="width_request">740</property>
+ <property name="height_request">140</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <child>
+ <object class="GtkTreeView" id="device_treeview">
+ <property name="width_request">740</property>
+ <property name="height_request">140</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="enable_grid_lines">horizontal</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection" id="treeview-selection1"/>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="device_chooser_button">
+ <property name="label" translatable="yes">OK</property>
+ <property name="width_request">90</property>
+ <property name="height_request">29</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_action_appearance">False</property>
+ <signal name="clicked" handler="on_device_chooser_button_clicked" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkVBox" id="vbox8">
+ <property name="width_request">75</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkLabel" id="label12">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="blacklist_add_button">
+ <property name="label" translatable="yes">--></property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_action_appearance">False</property>
+ <signal name="clicked" handler="blacklist_add" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="blacklist_remove_button">
+ <property name="label" translatable="yes"><--</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_action_appearance">False</property>
+ <property name="image_position">right</property>
+ <signal name="clicked" handler="blacklist_remove" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label13">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkVBox" id="vbox7">
+ <property name="width_request">100</property>
+ <property name="height_request">80</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkScrolledWindow" id="blacklist_scrolled">
+ <property name="width_request">740</property>
+ <property name="height_request">140</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <child>
+ <object class="GtkTreeView" id="blacklist_treeview">
+ <property name="width_request">740</property>
+ <property name="height_request">140</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="enable_grid_lines">horizontal</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection" id="treeview-selection2"/>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
<packing>
- <property name="x">534</property>
- <property name="y">24</property>
+ <property name="position">3</property>
</packing>
</child>
- <child>
- <widget class="GtkRadioButton" id="radiobutton1">
- <property name="width_request">21</property>
- <property name="height_request">21</property>
+ <child type="tab">
+ <object class="GtkLabel" id="blacklist_label">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">radiobutton2</property>
- <signal name="toggled" handler="on_combobox2_changed"/>
- </widget>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Blacklist</property>
+ </object>
<packing>
- <property name="x">318</property>
- <property name="y">24</property>
+ <property name="position">2</property>
+ <property name="tab_fill">False</property>
</packing>
</child>
<child>
- <widget class="GtkFileChooserButton" id="filechooserbutton1">
- <property name="width_request">168</property>
- <property name="height_request">31</property>
+ <object class="GtkVBox" id="vbox6">
<property name="visible">True</property>
- <property name="do_overwrite_confirmation">True</property>
- <signal name="file_set" handler="on_filechooserbutton1_file_set"/>
- </widget>
- <packing>
- <property name="x">342</property>
- <property name="y">16</property>
- </packing>
- </child>
- <child>
- <widget class="GtkButton" id="button1">
- <property name="label" translatable="yes">Restart</property>
- <property name="width_request">60</property>
- <property name="height_request">29</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <signal name="clicked" handler="on_button1_clicked"/>
- </widget>
- <packing>
- <property name="x">721</property>
- <property name="y">20</property>
- </packing>
- </child>
- <child>
- <widget class="GtkEventBox" id="eventbox2">
- <property name="width_request">505</property>
- <property name="height_request">84</property>
- <property name="visible">True</property>
- <signal name="button_press_event" handler="on_eventbox2_button_press_event"/>
+ <property name="can_focus">False</property>
+ <property name="resize_mode">immediate</property>
<child>
- <widget class="GtkImage" id="image1">
- <property name="width_request">505</property>
- <property name="height_request">84</property>
+ <object class="GtkScrolledWindow" id="log_scrolled">
<property name="visible">True</property>
- </widget>
+ <property name="can_focus">True</property>
+ <property name="window_placement_set">True</property>
+ <child>
+ <object class="GtkTextView" id="log_text">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">False</property>
+ <property name="wrap_mode">word</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
</child>
- </widget>
+ </object>
<packing>
- <property name="x">16</property>
- <property name="y">75</property>
+ <property name="position">3</property>
</packing>
</child>
- </widget>
- </child>
- </widget>
- <widget class="GtkWindow" id="window2">
- <property name="width_request">470</property>
- <property name="height_request">190</property>
- <property name="title" translatable="yes">Device selection</property>
- <property name="resizable">False</property>
- <property name="modal">True</property>
- <property name="window_position">center</property>
- <property name="destroy_with_parent">True</property>
- <property name="type_hint">dialog</property>
- <property name="urgency_hint">True</property>
- <property name="deletable">False</property>
- <property name="transient_for">window1</property>
- <child>
- <widget class="GtkFixed" id="fixed1">
- <property name="visible">True</property>
- <child>
- <widget class="GtkTreeView" id="treeview1">
- <property name="width_request">440</property>
- <property name="height_request">84</property>
+ <child type="tab">
+ <object class="GtkLabel" id="log_label">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="enable_grid_lines">horizontal</property>
- <signal name="row_activated" handler="on_treeview1_row_activated"/>
- </widget>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Log</property>
+ </object>
<packing>
- <property name="x">15</property>
- <property name="y">52</property>
+ <property name="position">3</property>
+ <property name="tab_fill">False</property>
</packing>
</child>
- <child>
- <widget class="GtkButton" id="button3">
- <property name="label" translatable="yes">OK</property>
- <property name="width_request">90</property>
- <property name="height_request">29</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="receives_default">False</property>
- <signal name="clicked" handler="on_button3_clicked"/>
- </widget>
- <packing>
- <property name="x">365</property>
- <property name="y">149</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label1">
- <property name="width_request">416</property>
- <property name="height_request">30</property>
- <property name="visible">True</property>
- <property name="label" translatable="yes">Select device to use.</property>
- </widget>
- <packing>
- <property name="x">23</property>
- <property name="y">12</property>
- </packing>
- </child>
- </widget>
+ </object>
</child>
- </widget>
- <widget class="GtkWindow" id="window3">
- <property name="type">popup</property>
- <property name="window_position">mouse</property>
- <property name="destroy_with_parent">True</property>
- <child>
- <widget class="GtkFixed" id="fixed1">
- <property name="visible">True</property>
- <child>
- <widget class="GtkEventBox" id="eventbox...
[truncated message content] |