import gtk
#import apt_pkg
from heapq import nlargest
-import gtk ###
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()
#==============================================================================
+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):
# "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')
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):