Пример #1
0
 def switchContext(self, widget, context):
     commands.getoutput("python %sapplicationswitcher.py save" %
                        config.APPLICATION_COMMAND_PATH)
     model.ActivitiesModel().switchContext(context)
     commands.getoutput("python %sapplicationswitcher.py switch" %
                        config.APPLICATION_COMMAND_PATH)
     self.button.set_label("A: %s" % context)
Пример #2
0
 def showMenu(self, widget, event, applet):
     if event.button == 1:
         activities = model.ActivitiesModel().getActivities()
         activities = sorted(activities.iteritems(),
                             key=itemgetter(1),
                             reverse=True)
         menu = []
         for activity in activities:
             menu.append([activity[0], self.switchContext, activity[0]])
         self.createAndShowMenu(event, menu)
         widget.emit_stop_by_name("button_press_event")
     elif event.type == gtk.gdk.BUTTON_PRESS and event.button == 3:
         widget.emit_stop_by_name("button_press_event")
         self.create_menu(applet)
 def switch_application(self, screen, window):
     am = model.ActivitiesModel()
     db = model.ActivitiesDB()
     current = am.getCurrentContext()
     application_map_of_current_context = db.get_application_map_for_activity(
         current)
     for w in screen.get_windows():
         if application_map_of_current_context is not None and self.pid_in_application_maps_of_activity(
                 w.get_pid(), application_map_of_current_context):
             w.set_skip_pager(False)
             w.set_skip_tasklist(False)
             w.unminimize(int(time.time()))
         else:
             w.set_skip_pager(True)
             w.set_skip_tasklist(True)
             w.minimize()
     sys.exit(0)
    def get_file_items(self, window, files):
        if len(files) != 1:
            return

        fileitem = files[0]

        top_menuitem = nautilus.MenuItem(
            'ActivitiesMenuProvider::MoveToActivity', 'Move to Activity',
            'Move directory to %s' % fileitem.get_name())

        submenu = nautilus.Menu()
        top_menuitem.set_submenu(submenu)

        self.acModel = model.ActivitiesModel()
        activities = self.acModel.getActivities()
        for key, value in activities.items():
            sub_menuitem = nautilus.MenuItem(
                'ActivitiesMenuProvider::Activity%s' % key, key, key)
            sub_menuitem.connect('activate', self.menu_activate_cb, fileitem,
                                 key)
            submenu.append_item(sub_menuitem)

        return top_menuitem,
 def save_application_map(self, screen, window):
     am = model.ActivitiesModel()
     current = am.getCurrentContext()
     db = model.ActivitiesDB()
     application_map = []
     application_maps_for_all_activities = db.get_all_application_maps()
     for w in screen.get_windows():
         cmdline = (" ".join(
             open("/proc/%s/cmdline" % w.get_pid(),
                  "r").readlines()[0].split("\x00"))).strip()
         if cmdline == 'gnome-panel' or w.get_name(
         ) == 'x-nautilus-desktop':
             continue
         associated = False
         for activity_name, application_maps in application_maps_for_all_activities.items(
         ):
             if self.pid_in_application_maps_of_activity(
                     w.get_pid(), application_maps):
                 # This application has been mapped to some activity, if it is the current
                 # activity, retain it or else, break
                 if activity_name == current:
                     associated = False
                 else:
                     associated = True
                 break
         # New unmapped application found - this was never seen before - so we are associating
         # this with the current activity
         if not associated:
             application_map.append({
                 'name': w.get_name(),
                 'pid': w.get_pid(),
                 'cmdline': cmdline
             })
     db.put_application_map_for_activity(
         current,
         json.JSONEncoder().encode(application_map))
     sys.exit(0)