class Search_File_Control(object):
- def __init__(self, start_dir, ignore_dirs, count):
+ def __init__(self, start_dir, count, ignore_dirs, show_func):
self.filelist = []
- self.srch_present = Search_File_Presentation(self.start_search)
- self.srch_abs = Search_File_Abstraction(start_dir, ignore_dirs)
self.fl_cnt = count
+ self.srch_abs = Search_File_Abstraction(start_dir, ignore_dirs)
+ self.srch_present = Search_File_Presentation(self.start_search, show_func)
def get_ui(self):
return self.srch_present.get_ui()
- def start_search(self, label):
- count, start_path = self.srch_present()
+ def start_search(self, stopit, label, show_func):
+ #count, start_path = self.srch_present()
for fsize, fpath in nlargest(self.fl_cnt, \
- self.srch_abs.filegetter(self.srch_present.stopit, label) ):
+ self.srch_abs.filegetter(stopit, label) ):
self.filelist.append([fpath, self.srch_abs.size_convert(fsize), fsize])
- return self.filelist
+ show_func(self.filelist)
class Search_File_Abstraction(object):
def __init__(self, startdir, ignore_dirs):
self.startdir = startdir
self.ignore_dirs = ignore_dirs
- self.label = label
def size_convert(self, size):
"""Return string with file size in b or Kb or Mb or Gb or Tb."""
class Search_File_Presentation(object):
- def __init__(self, st_func):
+ def __init__(self, st_func, show_func):
+
# Строка вывода текущего осматриваемого файла
self.currfilelbl = gtk.Label('---')
self.currfilelbl.set_alignment(0, 0.5)
# Кнопка "Показать"
self.butt_start = gtk.Button('Go')
- self.butt_start.connect('released', self.start_srch(st_func))
# Кнопка "Остановить"
self.butt_stop = gtk.Button('Stop')
self.butt_stop.set_sensitive(False)
- self.butt_stop.connect('clicked', self.stop_srch)
self.stopit = False
+ self.butt_stop.connect('clicked', self.stop_srch)
+ self.butt_start.connect('released', self.start_srch, st_func, show_func)
+
self.search_hbox = gtk.HBox(False, 10)
self.search_hbox.pack_start(currfilefrm, False, False, 0)
def get_ui(self):
return self.search_hbox
- def start_srch(self, start_func):
+ def start_srch(self, widget, start_func, show_func):
self.butt_stop.set_sensitive(True)
self.butt_start.set_sensitive(False)
- start_func(self.currfilelbl)
+ start_func(self.stopit, self.currfilelbl, show_func)
self.butt_stop.set_sensitive(False)
self.butt_start.set_sensitive(True)
- def stop_srch(self):
+ def stop_srch(self, widget):
self.stopit = True
self.butt_stop.set_sensitive(False)
self.butt_start.set_sensitive(True)