From: Eugene Gagarin Date: Fri, 24 Apr 2009 13:41:16 +0000 (+0400) Subject: Objects updates again X-Git-Url: http://git.maemo.org/git/?a=commitdiff_plain;ds=sidebyside;h=08543410a25bfe746d454f4f38ca82950b09ffc1;p=findit Objects updates again --- diff --git a/src/debs/outtable.py b/src/debs/outtable.py index 753d8bc..3b27b08 100755 --- a/src/debs/outtable.py +++ b/src/debs/outtable.py @@ -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) diff --git a/src/debs/search.py b/src/debs/search.py index e8267ee..8a39835 100755 --- a/src/debs/search.py +++ b/src/debs/search.py @@ -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): diff --git a/src/files/outtable.py b/src/files/outtable.py index 7ff5d60..6529d6d 100755 --- a/src/files/outtable.py +++ b/src/files/outtable.py @@ -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): diff --git a/src/files/search.py b/src/files/search.py index 4c7a54c..e554f4e 100755 --- a/src/files/search.py +++ b/src/files/search.py @@ -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) diff --git a/src/main.py b/src/main.py index ce3188c..f988978 100755 --- a/src/main.py +++ b/src/main.py @@ -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() #==============================================================================