X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Ffiles%2Fsearch.py;h=8215d354214070d71fef5ea6714467dfbb672a25;hb=070b7f21be12b1fdc823f0893d930fbb98dbc875;hp=ff4ff83c56580a7ac3a3d033e80c66434e56803b;hpb=de1a44eca95c14953c321cfcd4f7716e9c954ea6;p=findit diff --git a/src/files/search.py b/src/files/search.py index ff4ff83..8215d35 100755 --- a/src/files/search.py +++ b/src/files/search.py @@ -6,26 +6,19 @@ from os import walk from os.path import join, abspath, normcase, basename, isdir, getsize from heapq import nlargest -from misc import * +from misc import size_hum_read, _ #============================================================================== class Control(object): def __init__(self, ui, config): + self.config = config - if ui == 'cli': - self.present = Cli_Presentation(config) - elif ui == 'gtk': - self.present = Gtk_Presentation(config, self.start_search) - elif ui == 'hildon': - self.present = Hildon_Presentation(config, self.start_search) - - # self.present - for updating windows in interactive presentations - self.abstrac = Abstraction(config, self.present) + self.present = eval(ui + '_Presentation(config, self.start_search)') + self.abstrac = Abstraction(self.config, self.present) - # Used only in non-interactive presentations - self.present.start_search(self.start_search) + self.toplevel = self.present.toplevel def start_search(self, get_data, get_stopit): filelist = [] @@ -36,7 +29,7 @@ class Control(object): self.present.show_out_toplevel(None, outtype, filelist) def run(self): - return self.present.toplevel + self.present.run() #============================================================================== @@ -67,6 +60,7 @@ class Abstraction(object): stopit = get_stopit() if stopit: stopit = False + print 'Stopped' raise StopIteration # Query only valid files try: @@ -78,7 +72,9 @@ class Abstraction(object): #============================================================================== class Cli_Presentation(object): - def __init__(self, config): + def __init__(self, config, start_func): + self.start_func = start_func + self.outtype = config['outtype'] self.start_path = config['start_path'] self.count = config['count'] @@ -98,10 +94,10 @@ class Cli_Presentation(object): def show_current_status(self, current_path): pass - #print current_path + ### print current_path - def start_search(self, start_func): - start_func(self.get_data, self.get_stopit) + def run(self): + self.start_func(self.get_data, self.get_stopit) #============================================================================== @@ -117,7 +113,7 @@ class Gtk_Presentation(object): self.path_entry.set_text(self.config['start_path']) # "Files quantity" label - qty_label = gtk.Label('Files quantity') + qty_label = gtk.Label(_('Files quantity')) # "Files quantity" spin self.qty_spin = gtk.SpinButton() @@ -127,31 +123,29 @@ class Gtk_Presentation(object): self.qty_spin.set_value(self.config['count']) # "Start" button - self.start_btn = gtk.Button('Start') + self.start_btn = gtk.Button(_('Start')) self.start_btn.connect('released', self.start_btn_released, start_func) # "Stop" button - self.stop_btn = gtk.Button('Stop') + self.stop_btn = gtk.Button(_('Stop')) self.stop_btn.set_sensitive(False) self.stop_btn.connect('clicked', self.stop_btn_clicked) # Output selection - self.outtable_rbtn = gtk.RadioButton(None, 'Table') - self.outtable_rbtn.set_name('outtable') - outdiagram_rbtn = gtk.RadioButton(self.outtable_rbtn, 'Diagram') + outtable_rbtn = gtk.RadioButton(None, _('Table')) + outtable_rbtn.set_name('outtable') + outdiagram_rbtn = gtk.RadioButton(outtable_rbtn, _('Diagram')) outdiagram_rbtn.set_name('outdiagram') - out1_rbtn = gtk.RadioButton(self.outtable_rbtn, 'Another 1') + out1_rbtn = gtk.RadioButton(outtable_rbtn, 'Another 1') out1_rbtn.set_name('outanother1') - out2_rbtn = gtk.RadioButton(self.outtable_rbtn, 'Another 2') - out2_rbtn.set_name('outanother2') - out_rbtns = [self.outtable_rbtn, outdiagram_rbtn, out1_rbtn, out2_rbtn] + self.out_rbtns = [outtable_rbtn, outdiagram_rbtn, out1_rbtn] hbox = gtk.HBox(False, 4) hbox.pack_start(qty_label, False, False, 0) hbox.pack_start(self.qty_spin, False, False, 0) hbox.pack_start(self.start_btn, False, False, 0) hbox.pack_start(self.stop_btn, False, False, 0) - for btn in reversed(out_rbtns): + for btn in reversed(self.out_rbtns): hbox.pack_end(btn, False, False, 0) # Activate radio button if btn.get_name() == self.config['outtype']: @@ -190,7 +184,7 @@ class Gtk_Presentation(object): self.start_btn.set_sensitive(True) def get_data(self): - for btn in self.outtable_rbtn.get_group(): + for btn in self.out_rbtns: if btn.get_active(): out = btn.get_name() return out, self.path_entry.get_text(), int(self.qty_spin.get_value()) @@ -198,8 +192,7 @@ class Gtk_Presentation(object): def get_stopit(self): return self.stopit - # Empty because search start by button - def start_search(self, start_func): + def run(self): pass #=== Output type selecting ================================================ @@ -208,12 +201,24 @@ class Gtk_Presentation(object): out_submodule = __import__('files.' + outtype, None, None, outtype) try: - self.current_outtoplevel.destroy() + self.out_toplevel.destroy() except: pass - out_toplevel = out_submodule.Gtk_Presentation(results).toplevel - self.current_outtoplevel = out_toplevel - self.vbox.add(out_toplevel) - out_toplevel.show_all() -# out_submodule.Gtk_Presentation().show_results(results) + self.out_toplevel = out_submodule.Gtk_Presentation(results).toplevel + self.vbox.add(self.out_toplevel) + self.out_toplevel.show_all() +### out_submodule.Gtk_Presentation().show_results(results) + +#============================================================================== + +class Hildon_Presentation(object): + + def __init__(self, config, start_func): + import gtk + import hildon + + self.config = config + + def run(self): + pass