def refresh_activity_list(self): self.menu = Gtk.Menu() def process_dir(activity_path): for dir_name in sorted(os.listdir(activity_path)): bundles_installed = [] if dir_name.endswith('.activity'): bundle_dir = os.path.join(activity_path, dir_name) bundle = ActivityBundle(bundle_dir) bundles_installed.append(bundle) item = MenuItem(file_name=bundle.get_icon(), xo_color=xocolor.XoColor()) item.set_label(bundle.get_name()) item.set_reserve_indicator(True) item.set_submenu(self.make_submenu(bundle)) self.menu.append(item) process_dir('/usr/share/sugar/activities/') process_dir(activities_path) # ~/Activities separator = Gtk.SeparatorMenuItem() self.menu.append(separator) about = MenuItem() about.set_label("About") about.connect("activate", self.show_about_dialog) self.menu.append(about) quit = MenuItem() quit.set_label("Quit") quit.connect("activate", Gtk.main_quit) self.menu.append(quit) self.menu.show_all()
def process_dir(activity_path): for dir_name in sorted(os.listdir(activity_path)): bundles_installed = [] if dir_name.endswith('.activity'): bundle_dir = os.path.join(activity_path, dir_name) bundle = ActivityBundle(bundle_dir) bundles_installed.append(bundle) item = MenuItem(file_name=bundle.get_icon(), xo_color=xocolor.XoColor()) item.set_label(bundle.get_name()) item.set_reserve_indicator(True) item.set_submenu(self.make_submenu(bundle)) self.menu.append(item)
def make_submenu(self, bundle): submenu = Gtk.Menu() newitem = MenuItem(icon_name='activity-start') newitem.set_label("Start new") newitem.connect("activate", self.launch, bundle) submenu.append(newitem) results, n = _datastore.find( {'limit':10, 'activity':bundle.get_bundle_id()}, ['uid', 'title', 'mime_type']) if n>0: separator = Gtk.SeparatorMenuItem() submenu.append(separator) for i in results: title = ''.join([chr(byte) for byte in i['title']]) uid = i['uid'] item = MenuItem(file_name=bundle.get_icon(), xo_color=xocolor.XoColor()) item.set_label(title) item.connect("activate", self.launch_with_uid, bundle, uid) submenu.append(item) if n>0: separator = Gtk.SeparatorMenuItem() submenu.append(separator) view_source = MenuItem(icon_name='view-source') view_source.set_label("View Source") view_source.connect("activate", self.view_source, bundle) submenu.append(view_source) return submenu