Objects updates again
authorEugene Gagarin <mosfet07@ya.ru>
Fri, 24 Apr 2009 13:41:16 +0000 (17:41 +0400)
committerEugene Gagarin <mosfet07@ya.ru>
Fri, 24 Apr 2009 13:41:16 +0000 (17:41 +0400)
src/debs/outtable.py
src/debs/search.py
src/files/outtable.py
src/files/search.py
src/main.py

index 753d8bc..3b27b08 100755 (executable)
@@ -2,9 +2,7 @@
 # -*-coding: utf-8 -*-
 # vim: sw=4 ts=4 expandtab ai
 
-import gtk
-import gobject
-from misc import size_hum_read
+#==============================================================================
 
 class Out_Table_Control(object):
     def __init__(self):
@@ -16,13 +14,23 @@ class Out_Table_Control(object):
     def get_ui(self):
         return self.out_ui.get_ui()
 
+#==============================================================================
+
 class Out_Table_Abstraction(object):
     pass
 
-class Out_Table_Presentation(object):
+#==============================================================================
+
+class Cli_Presentation(object):
+    pass
+
+#==============================================================================
+
+class Gtk_Presentation(object):
     def __init__(self):
-        # Список файлов
-    
+        import gtk
+        import gobject
+
         scrollwind = gtk.ScrolledWindow()
         scrollwind.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
 
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):
index 7ff5d60..6529d6d 100755 (executable)
@@ -2,10 +2,6 @@
 # -*-coding: utf-8 -*-
 # vim: sw=4 ts=4 expandtab ai
 
-import gtk      ###
-import gobject  ###
-
-
 #==============================================================================
 
 # class OutTable_Control(object):
@@ -24,18 +20,17 @@ import gobject  ###
 # class OutTable_Abstraction(object):
 #     pass
 
-
 #==============================================================================
 
 class Cli_Presentation(object):
     pass
 
-
 #==============================================================================
 
-class Gtk_Presentation(gtk.ScrolledWindow):
+class Gtk_Presentation(object):
     def __init__(self, filelist):   ###
-        gtk.ScrolledWindow.__init__(self)
+        import gtk
+        import gobject
 
         # Определяем переменную в которой будет храниться выводимый список
         self.liststore = gtk.ListStore(str, str, gobject.TYPE_INT64)
@@ -68,9 +63,11 @@ class Gtk_Presentation(gtk.ScrolledWindow):
         path_col.set_sort_column_id(0)
         size_col.set_sort_column_id(2)
 
-        self.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
-        self.add(treeview)
-        self.show_all()
+        self.swin = gtk.ScrolledWindow()
+        self.swin.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
+        self.swin.add(treeview)
+###        self.swin.show_all()
+        self.toplevel = self.swin
 
 #     #=== Functions ============================================================
 #     def show_results(self, filelist):
index 4c7a54c..e554f4e 100755 (executable)
@@ -17,6 +17,7 @@ class Control(object):
         start_path = '.'
         count = 7
 
+        print ui
         if ui == 'cli':
             self.present = Cli_Presentation(start_path, count, self.start_search)
         elif ui == 'gtk':
@@ -35,7 +36,6 @@ class Control(object):
     def run(self):
         return self.present.toplevel
 
-
 #==============================================================================
 
 class Abstraction(object):
@@ -59,8 +59,7 @@ class Abstraction(object):
 
             for fname in fnames:
                 flpath = abspath(join(dirpath, fname))
-                #self.presentation.show_current_status(flpath)
-                self.presentation.update_window(flpath)
+                self.presentation.show_current_status(flpath)
 
                 # Останавливаем цикл по нажатию кнопки стоп
                 stopit = get_stopit()
@@ -75,7 +74,6 @@ class Abstraction(object):
                 except OSError:
                     continue
 
-
 #==============================================================================
 
 class Cli_Presentation(object):
@@ -88,7 +86,6 @@ class Cli_Presentation(object):
     def show_current_status(self, current_path):
         print current_path
 
-
 #==============================================================================
 
 class Gtk_Presentation(object):
@@ -148,12 +145,12 @@ class Gtk_Presentation(object):
         def show_current_status(current_path):
             self.statusbar.push(self.context_id, current_path)
             gtk.main_iteration()
-        self.update_window = show_current_status
+        self.show_current_status = show_current_status
 
 #        self.show_out_toplevel(None, 'outtable', [(11, 22, 33)])
 
     #=== Functions ============================================================
-    def start_btn_released(self, widget, start_func):
+    def start_btn_released(self, btn, start_func):
         self.stopit = False
         self.stop_btn.set_sensitive(True)
         self.start_btn.set_sensitive(False)
@@ -176,8 +173,12 @@ class Gtk_Presentation(object):
     def show_out_toplevel(self, btn, outtype, results):
         print 'Entering <' + outtype + '> output mode...'
         out_submodule = __import__('files.' + outtype, None, None, outtype)
-        out_toplevel = out_submodule.Gtk_Presentation(results)
+        out_toplevel = out_submodule.Gtk_Presentation(results).toplevel
 
-###        self.vbox.remove(self.vbox.get_children()[2])
+        try:
+            self.vbox.remove(self.vbox.get_children()[2])
+        except:
+            pass
         self.vbox.add(out_toplevel)
+        out_toplevel.show_all()
 #        out_submodule.Gtk_Presentation().show_results(results)
index ce3188c..f988978 100755 (executable)
@@ -52,7 +52,7 @@ class Gtk_Presentation(object):
         import gtk
 
         def _create_menu():
-            """ Create main menu """
+            """Create main menu."""
             menubar = gtk.MenuBar()
             fileitem = gtk.MenuItem( '_File' )
             viewitem = gtk.MenuItem( '_View' )
@@ -62,6 +62,23 @@ class Gtk_Presentation(object):
             menubar.add(helpitem)
             return menubar
 
+        def _create_toolbar():
+            """Create toolbar."""
+            toolbar = gtk.Toolbar()
+            filesearch_tbtn = gtk.RadioToolButton(None)
+            debsearch_tbtn = gtk.RadioToolButton(filesearch_tbtn)
+
+            filesearch_tbtn.set_label('Files search')
+            debsearch_tbtn.set_label('Debs search')
+
+            filesearch_tbtn.connect('clicked', self.show_search_toplevel, 'files')
+            debsearch_tbtn.connect('clicked', self.show_search_toplevel, 'debs')
+
+            toolbar.insert(filesearch_tbtn, -1)
+            toolbar.insert(debsearch_tbtn, -1)
+
+            return toolbar
+
         window = gtk.Window()
         window.set_default_size(560, 400)
         window.set_border_width(4)
@@ -69,25 +86,26 @@ class Gtk_Presentation(object):
         window.connect('destroy', gtk.main_quit)
 
         menu = _create_menu()
-
-        about_btn = gtk.Button('About')
-        about_btn.set_size_request(-1, 30)
-        about_btn.connect('clicked', self.about_dialog)
-
-        quit_btn = gtk.Button('Exit')
-        quit_btn.connect('clicked', gtk.main_quit)
-
-        file_btn = gtk.Button('Files search')
-        file_btn.connect('clicked', self.show_search_toplevel, 'files')
-
-        deb_btn = gtk.Button('Debs search')
-        deb_btn.connect('clicked', self.show_search_toplevel, 'debs')
-
-        toolbar = gtk.HBox(True, 4)
-        toolbar.pack_start(file_btn)
-        toolbar.pack_start(deb_btn)
-        toolbar.pack_start(about_btn)
-        toolbar.pack_start(quit_btn)
+        toolbar = _create_toolbar()
+
+#         about_btn = gtk.Button('About')
+#         about_btn.set_size_request(-1, 30)
+#         about_btn.connect('clicked', self.about_dialog)
+# 
+#         quit_btn = gtk.Button('Exit')
+#         quit_btn.connect('clicked', gtk.main_quit)
+# 
+#         file_btn = gtk.Button('Files search')
+#         file_btn.connect('clicked', self.show_search_toplevel, 'files')
+# 
+#         deb_btn = gtk.Button('Debs search')
+#         deb_btn.connect('clicked', self.show_search_toplevel, 'debs')
+
+#         toolbar = gtk.HBox(True, 4)
+#         toolbar.pack_start(file_btn)
+#         toolbar.pack_start(deb_btn)
+#         toolbar.pack_start(about_btn)
+#         toolbar.pack_start(quit_btn)
 
         self.vbox = gtk.VBox(False, 4)
         self.vbox.pack_start(menu, False, False, 0)
@@ -107,13 +125,14 @@ class Gtk_Presentation(object):
         print 'Entering <' + searchtype + '> search mode...'
 
         search_module = __import__(searchtype + '.search')
-        toplevel = search_module.search.Control('gtk').run()
+        search_toplevel = search_module.search.Control('gtk').run()
 
         try:
             self.vbox.remove(self.vbox.get_children()[2])
         except:
             pass
-        self.vbox.pack_start(toplevel, True, True, 0)
+        self.vbox.pack_start(search_toplevel, True, True, 0)
+        search_toplevel.show_all()
 
 #==============================================================================