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 = []
self.present.show_out_toplevel(None, outtype, filelist)
def run(self):
- return self.present.toplevel
+ self.present.run()
#==============================================================================
stopit = get_stopit()
if stopit:
stopit = False
+ print 'Stopped'
raise StopIteration
# Query only valid files
try:
#==============================================================================
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']
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)
#==============================================================================
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()
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']:
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())
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 ================================================
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