[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. |