fixed problem with show main window and some bugs - fixed src/searchfile.py
[findit] / src / searchfile.py
index dbdff7f..08f2da0 100644 (file)
@@ -11,21 +11,21 @@ from heapq import nlargest
 
 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):
@@ -33,7 +33,6 @@ 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."""
@@ -72,7 +71,8 @@ class Search_File_Abstraction(object):
   
 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)
@@ -83,13 +83,14 @@ class Search_File_Presentation(object):
 
         # Кнопка "Показать"
         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)
@@ -99,14 +100,14 @@ class Search_File_Presentation(object):
     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)