Objects updates again
[findit] / src / debs / search.py
index e8267ee..8a39835 100755 (executable)
@@ -5,7 +5,6 @@
 import gtk
 #import apt_pkg
 from heapq import nlargest
-import gtk ###
 
 from misc import *
 
@@ -13,24 +12,32 @@ from misc import *
 
 class Control(object):
 
-    def __init__(self):
+    def __init__(self, ui):
         count = 7
-        self.abstrac = Abstraction()
-        self.present = Gtk_Presentation(count, self.start_search)
 
-    def start_search(self, count):
-        deblist = []
+        print ui
+        if ui == 'cli':
+            self.present = Cli_Presentation(count, self.start_search)
+        elif ui == 'gtk':
+            self.present = Gtk_Presentation(count, self.start_search)
+
+        self.abstrac = Abstraction(self.present)
+
+    def start_search(self, get_data):
+        deblist = [0, 0]
 #         for size, name in nlargest(count, self.abstrac.pkggetter()):
 #             deblist.append([name, size_hum_read(psize), size])
         
         self.search_present.show_out_toplevel(None, 'outtable', deblist)
 
     def run(self):
-        return self.present.get_toplevel()
+        return self.present.toplevel
+
+#==============================================================================
 
 class Abstraction(object):
-    pass
-#     def __init__(self):
+    def __init__(self, presentation):
+        self.presentation = presentation
 #         apt_pkg.InitConfig()
 #         apt_pkg.InitSystem()
 #         self.cache = apt_pkg.GetCache()
@@ -50,6 +57,18 @@ class Abstraction(object):
 
 #==============================================================================
 
+class Cli_Presentation(object):
+    def __init__(self, start_func):
+        self.stopit = False
+                  #     get_data,      get_stopit, label, kill_func)
+        start_func(self.get_data, self.get_stopit, self.kill_wind)
+        pass
+
+    def show_current_status(self, current_path):
+        print current_path
+
+#==============================================================================
+
 class Gtk_Presentation(object):
 
     def __init__(self, count, start_func):
@@ -66,7 +85,7 @@ class Gtk_Presentation(object):
 
         # "Start" button
         start_btn = gtk.Button('Start')
-        start_btn.connect('released', self.start_search)
+        start_btn.connect('released', self.start_btn_released)
 
         # Output selection
         outtable_rbtn = gtk.RadioButton(None, 'Table')
@@ -90,29 +109,20 @@ class Gtk_Presentation(object):
         self.vbox.pack_start(hbox, False, False, 0)
         self.vbox.pack_end(statusbar, False, False, 0)
 
-        self.show_out_toplevel(None, 'outtable') ###
-        self.frame = gtk.Frame('Deb packages search')
-        self.frame.add(self.vbox)
-        self.frame.show_all()
+        self.toplevel = self.vbox
+
+#         self.show_out_toplevel(None, 'outtable') ###
+#         self.vbox.show_all()
 
     #=== Functions ============================================================
-    def start_search(self, widget, start_func):
+    def start_btn_released(self, btn, start_func):
         self.stopit = False
         self.butt_stop.set_sensitive(True)
         self.butt_start.set_sensitive(False)
         start_func(self.get_data, self.get_stopit, self.currfilelbl, self.kill_wind)
 
-    def stop_search(self, widget):
-        self.stopit = True
-        self.butt_stop.set_sensitive(False)
-        self.butt_start.set_sensitive(True)
-
-    def get_stopit(self):
-        return self.stopit
-
-    #=== Toplevel widget for embedding to main window =========================
-    def get_toplevel(self):
-        return self.frame ###
+    def get_data(self):
+        return int(self.qty_spin.get_value())
 
     #=== Output type selecting ================================================
     def show_out_toplevel(self, btn, outtype):