[Pycodeocr-main] SF.net SVN: pycodeocr:[38] branches/laserb
Status: Beta
Brought to you by:
drtrigon
|
From: <la...@us...> - 2011-02-11 11:34:00
|
Revision: 38
http://pycodeocr.svn.sourceforge.net/pycodeocr/?rev=38&view=rev
Author: laserb
Date: 2011-02-11 11:33:53 +0000 (Fri, 11 Feb 2011)
Log Message:
-----------
Add possibility to manage blacklist
Modified Paths:
--------------
branches/laserb/PyCodeOCR.glade
branches/laserb/PyCodeOCR.py
Modified: branches/laserb/PyCodeOCR.glade
===================================================================
--- branches/laserb/PyCodeOCR.glade 2011-02-10 18:17:05 UTC (rev 37)
+++ branches/laserb/PyCodeOCR.glade 2011-02-11 11:33:53 UTC (rev 38)
@@ -218,138 +218,119 @@
</packing>
</child>
<child>
- <widget class="GtkVBox" id="vbox6">
+ <widget class="GtkFrame" id="frame1">
<property name="visible">True</property>
+ <property name="label_xalign">0</property>
<child>
- <widget class="GtkHBox" id="hbox8">
+ <widget class="GtkAlignment" id="alignment1">
<property name="visible">True</property>
+ <property name="left_padding">12</property>
<child>
- <widget class="GtkLabel" id="label6">
- <property name="width_request">92</property>
- <property name="height_request">17</property>
+ <widget class="GtkFixed" id="fixed2">
<property name="visible">True</property>
- <property name="label" translatable="yes">Position:</property>
+ <child>
+ <widget class="GtkLabel" id="label2">
+ <property name="width_request">72</property>
+ <property name="height_request">17</property>
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Position:</property>
+ </widget>
+ <packing>
+ <property name="y">8</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkSpinButton" id="spinbutton1">
+ <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="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>
+ <packing>
+ <property name="x">80</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkSpinButton" id="spinbutton2">
+ <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="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>
+ <packing>
+ <property name="x">144</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>
+ <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>
+ <packing>
+ <property name="x">80</property>
+ <property name="y">40</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkSpinButton" id="spinbutton4">
+ <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="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>
+ <packing>
+ <property name="x">144</property>
+ <property name="y">40</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label3">
+ <property name="width_request">72</property>
+ <property name="height_request">17</property>
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Size:</property>
+ </widget>
+ <packing>
+ <property name="y">48</property>
+ </packing>
+ </child>
</widget>
- <packing>
- <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="spinbutton1">
- <property name="width_request">60</property>
- <property name="height_request">27</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="invisible_char">•</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>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="padding">4</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <widget class="GtkSpinButton" id="spinbutton2">
- <property name="width_request">60</property>
- <property name="height_request">27</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="invisible_char">•</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>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="padding">4</property>
- <property name="position">2</property>
- </packing>
- </child>
</widget>
- <packing>
- <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="GtkHBox" id="hbox9">
+ <widget class="GtkLabel" id="label1">
<property name="visible">True</property>
- <child>
- <widget class="GtkLabel" id="label7">
- <property name="width_request">92</property>
- <property name="height_request">17</property>
- <property name="visible">True</property>
- <property name="label" translatable="yes">Size:</property>
- </widget>
- <packing>
- <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">60</property>
- <property name="height_request">27</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="invisible_char">•</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>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="padding">4</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <widget class="GtkSpinButton" id="spinbutton4">
- <property name="width_request">60</property>
- <property name="height_request">27</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="invisible_char">•</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>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="padding">4</property>
- <property name="position">2</property>
- </packing>
- </child>
+ <property name="label" translatable="yes">Placement</property>
+ <property name="use_markup">True</property>
</widget>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="padding">4</property>
- <property name="position">1</property>
+ <property name="type">label_item</property>
</packing>
</child>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="padding">4</property>
<property name="position">1</property>
</packing>
</child>
@@ -460,7 +441,7 @@
</widget>
</child>
<child>
- <widget class="GtkLabel" id="label1">
+ <widget class="GtkLabel" id="label4">
<property name="visible">True</property>
<property name="label" translatable="yes">SCAN</property>
</widget>
@@ -502,7 +483,7 @@
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label3">
+ <widget class="GtkLabel" id="label6">
<property name="visible">True</property>
<property name="label" translatable="yes">Device Info</property>
</widget>
@@ -513,59 +494,143 @@
</packing>
</child>
<child>
- <widget class="GtkVBox" id="vbox1">
+ <widget class="GtkHBox" id="hbox10">
<property name="width_request">100</property>
<property name="height_request">80</property>
<property name="visible">True</property>
<child>
- <widget class="GtkLabel" id="label10">
- <property name="width_request">416</property>
- <property name="height_request">30</property>
+ <widget class="GtkVBox" id="vbox1">
+ <property name="width_request">100</property>
+ <property name="height_request">80</property>
<property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Select device to use.</property>
+ <child>
+ <widget class="GtkScrolledWindow" id="scrolledwindow2">
+ <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="hscrollbar_policy">automatic</property>
+ <property name="vscrollbar_policy">automatic</property>
+ <child>
+ <widget class="GtkTreeView" id="treeview1">
+ <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>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">0</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="receives_default">True</property>
+ <signal name="clicked" handler="on_button3_clicked"/>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
</widget>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkScrolledWindow" id="scrolledwindow2">
- <property name="width_request">740</property>
- <property name="height_request">140</property>
+ <widget class="GtkVBox" id="vbox8">
+ <property name="width_request">75</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">automatic</property>
- <property name="vscrollbar_policy">automatic</property>
<child>
- <widget class="GtkTreeView" id="treeview1">
- <property name="width_request">740</property>
- <property name="height_request">140</property>
+ <widget class="GtkLabel" id="label12">
<property name="visible">True</property>
+ </widget>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkButton" id="button5">
+ <property name="label" translatable="yes">--></property>
+ <property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="enable_grid_lines">horizontal</property>
+ <property name="receives_default">True</property>
+ <signal name="clicked" handler="blacklist_add"/>
</widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
</child>
+ <child>
+ <widget class="GtkButton" id="button4">
+ <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="image_position">right</property>
+ <signal name="clicked" handler="blacklist_remove"/>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label13">
+ <property name="visible">True</property>
+ </widget>
+ <packing>
+ <property name="position">3</property>
+ </packing>
+ </child>
</widget>
<packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
<property name="position">1</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>
+ <widget 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">True</property>
- <property name="receives_default">True</property>
- <signal name="clicked" handler="on_button3_clicked"/>
+ <child>
+ <widget class="GtkScrolledWindow" id="scrolledwindow4">
+ <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="hscrollbar_policy">automatic</property>
+ <property name="vscrollbar_policy">automatic</property>
+ <child>
+ <widget class="GtkTreeView" id="treeview2">
+ <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>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
</widget>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
@@ -575,7 +640,7 @@
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label4">
+ <widget class="GtkLabel" id="label7">
<property name="visible">True</property>
<property name="label" translatable="yes">Blacklist</property>
</widget>
@@ -615,7 +680,7 @@
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label2">
+ <widget class="GtkLabel" id="label10">
<property name="visible">True</property>
<property name="label" translatable="yes">Log</property>
</widget>
Modified: branches/laserb/PyCodeOCR.py
===================================================================
--- branches/laserb/PyCodeOCR.py 2011-02-10 18:17:05 UTC (rev 37)
+++ branches/laserb/PyCodeOCR.py 2011-02-11 11:33:53 UTC (rev 38)
@@ -164,6 +164,8 @@
self.filechooserbutton1 = self.xml.get_widget('filechooserbutton1')
## device list
self.treeview1 = self.xml.get_widget('treeview1')
+ ## blacklisted device list
+ self.treeview2 = self.xml.get_widget('treeview2')
## OK button
self.button3 = self.xml.get_widget('button3')
## event box for image
@@ -173,8 +175,8 @@
# redirect print
self.logging = logging(self.textbuffer)
- sys.stdout = self.logging
- sys.stderr = self.logging
+ #sys.stdout = self.logging
+ #sys.stderr = self.logging
print "---------",strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime()),"----------"
@@ -305,6 +307,7 @@
self.window3.show()
def on_button3_clicked(self, source=None):
+ self.button3.set_visible(False)
# get selection from treeview
devnr = self.treeview1.get_cursor()[0][0]
# hide window
@@ -313,7 +316,26 @@
self.run_sane.init_scanner(devnr)
# set sensitivity
self.init_sensitivity()
+
+ ## add device to blacklist
+ def blacklist_add(self, widget=None):
+ treeselection = self.treeview1.get_selection()
+ model, iter =treeselection.get_selected()
+ data = model.get_value(iter, 0)
+ self.run_sane.blacklist_store.append([data])
+ self.run_sane.list_store.remove(iter)
+ self.run_sane.write_blacklist()
+ ## remove device from blacklist
+ def blacklist_remove(self, widget=None):
+ treeselection = self.treeview2.get_selection()
+ model, iter =treeselection.get_selected()
+ data = model.get_value(iter, 0)
+ self.run_sane.list_store.append([data])
+ self.run_sane.blacklist_store.remove(iter)
+ self.run_sane.write_blacklist()
+
+
## set sensitivity of buttons the first time
def init_sensitivity(self):
# set sensitivity
@@ -446,11 +468,10 @@
## toggle placement sensitivity
def toggle_placement_sensitive(self, value):
- pass
-# if self.radiobutton2.get_active():
-# self.frame1.set_sensitive(value)
-# else:
-# self.frame1.set_sensitive(False)
+ if self.radiobutton2.get_active():
+ self.frame1.set_sensitive(value)
+ else:
+ self.frame1.set_sensitive(False)
# helpers
#
@@ -975,15 +996,15 @@
# Get the path set up properly
#sys.path.append('.')
- list_store = self.main.treeview1.get_model()
- if list_store == None:
+ self.list_store = self.main.treeview1.get_model()
+ if self.list_store == None:
# create treeview things
- list_store = gtk.ListStore(gobject.TYPE_STRING)
- self.main.treeview1.set_model(list_store)
- col = gtk.TreeViewColumn("Devices", gtk.CellRendererText(),text=0)
+ self.list_store = gtk.ListStore(gobject.TYPE_STRING)
+ self.main.treeview1.set_model(self.list_store)
+ col = gtk.TreeViewColumn("Select Device to use:", gtk.CellRendererText(),text=0)
self.main.treeview1.append_column(col)
else:
- list_store.clear()
+ self.list_store.clear()
# get blacklist
self.read_blacklist()
@@ -1006,16 +1027,16 @@
if not self.devices1[i][1]+" "+self.devices1[i][2] in self.blacklist:
self.devices.append(self.devices1[i])
print str(i)+": "+self.devices1[i][1]+" "+self.devices1[i][2]
- list_store.append([self.devices1[i][1]+" "+self.devices1[i][2]])
- else:
- print str(i)+": "+self.devices1[i][1]+" "+self.devices1[i][2]+" BLOCKED"
+ self.list_store.append([self.devices1[i][1]+" "+self.devices1[i][2]])
+# else:
+# print str(i)+": "+self.devices1[i][1]+" "+self.devices1[i][2]+" BLOCKED"
# self.devices is now filtered
# check how many devices we found
if len(self.devices) == 0:
self.main.progress(0./self.n,"No device found.")
self.found_scanner = False
- elif len(list_store) > 1:
+ elif len(self.list_store) > 1:
# more than one device, choose one.
self.main.progress(2./self.n,"More than one device found.")
if sys.argv[1:]:
@@ -1028,6 +1049,7 @@
# simply continue and select device in GUI ( see init_sane )
self.main.progress(2./self.n,"More than one device found.")
self.main.notebook.set_current_page(2)
+ self.main.button3.set_visible(True)
self.found_scanner = False
else:
@@ -1060,6 +1082,7 @@
self.info()
self.main.notebook.set_current_page(0)
+ self.main.button3.set_visible(False)
print "done."
except:
@@ -1135,18 +1158,35 @@
## get blacklisted devices
def read_blacklist(self):
+ self.blacklist_store = self.main.treeview2.get_model()
+ if self.blacklist_store == None:
+ # create treeview things
+ self.blacklist_store = gtk.ListStore(gobject.TYPE_STRING)
+ self.main.treeview2.set_model(self.blacklist_store)
+ blackcol = gtk.TreeViewColumn("Blacklisted Devices:", gtk.CellRendererText(),text=0)
+ self.main.treeview2.append_column(blackcol)
+ else:
+ self.blacklist_store.clear()
+
bl = open('%s/blacklist' % local_path, 'r' )
temp = bl.readlines()
bl.close
self.blacklist = []
for line in temp:
self.blacklist.append(line.strip())
+ self.blacklist_store.append([line.strip()])
## write blacklisted devices
# @todo add UI way to blacklist device
- def write_blacklist(self, blacklist):
+ def write_blacklist(self):
bl = open('%s/blacklist' % local_path, 'w' )
- bl.write(blacklist)
+
+ model= self.main.treeview2.get_model()
+ iter = model.get_iter_first()
+ while( iter != None):
+ data = model.get_value(iter, 0)
+ bl.write(data+"\n")
+ iter = model.iter_next(iter)
bl.close()
if __name__ == '__main__':
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|