Ejemplo n.º 1
0
    def _add_activity(self, activity_info):
        if activity_info.get_bundle_id() == "org.laptop.JournalActivity":
            return

        timestamp = activity_info.get_installation_time()
        version = activity_info.get_activity_version()

        registry = bundleregistry.get_registry()
        favorites = []
        for i in range(desktop.get_number_of_views()):
            favorites.append(registry.is_bundle_favorite(activity_info.get_bundle_id(), version, i))

        tag_list = activity_info.get_tags()
        if tag_list is None or not tag_list:
            title = "<b>%s</b>" % activity_info.get_name()
        else:
            tags = ", ".join(tag_list)
            title = "<b>%s</b>\n" '<span style="italic" weight="light">%s</span>' % (activity_info.get_name(), tags)

        model_list = [activity_info.get_bundle_id()]
        for i in range(desktop.get_number_of_views()):
            model_list.append(favorites[i])
        model_list.append(activity_info.get_icon())
        model_list.append(title)
        model_list.append(version)
        model_list.append(_("Version %s") % version)
        model_list.append(int(timestamp))
        model_list.append(util.timestamp_to_elapsed_string(timestamp))
        self._model.append(model_list)
    def __init__(self, toolbar):
        logging.debug('STARTUP: Loading the home view')

        Gtk.VBox.__init__(self)

        self._favorites_views_indicies = []
        for i in range(desktop.get_number_of_views()):
            self._favorites_views_indicies.append(i)
        self._list_view_index = self._favorites_views_indicies[-1] + 1

        self._favorites_boxes = []
        for i in range(desktop.get_number_of_views()):
            self._favorites_boxes.append(favoritesview.FavoritesBox(i))
        self._list_view = ActivitiesList()

        self._desktop_model = desktop.get_model()
        self._desktop_model.connect('desktop-view-icons-changed',
                                    self.__desktop_view_icons_changed_cb)

        toolbar.search_entry._icon_selected = []
        toolbar.connect('query-changed', self.__toolbar_query_changed_cb)
        toolbar.connect('view-changed', self.__toolbar_view_changed_cb)
        toolbar.search_entry.connect('key-press-event',
                                     self.__search_entry_key_press_event_cb)
        toolbar.search_entry.connect('icon-press',
                                     self.__clear_icon_pressed_cb)
        self._list_view.connect('clear-clicked',
                                self.__activitylist_clear_clicked_cb, toolbar)

        self._set_view(self._favorites_views_indicies[0])
        self._query = ''
        self._resume_mode = True
Ejemplo n.º 3
0
    def __init__(self, toolbar):
        logging.debug('STARTUP: Loading the home view')

        Gtk.VBox.__init__(self)

        self._favorites_views_indicies = []
        for i in range(desktop.get_number_of_views()):
            self._favorites_views_indicies.append(i)
        self._list_view_index = self._favorites_views_indicies[-1] + 1

        self._favorites_boxes = []
        for i in range(desktop.get_number_of_views()):
            self._favorites_boxes.append(favoritesview.FavoritesBox(i))
        self._list_view = ActivitiesList()

        self._desktop_model = desktop.get_model()
        self._desktop_model.connect('desktop-view-icons-changed',
                                    self.__desktop_view_icons_changed_cb)

        toolbar.connect('query-changed', self.__toolbar_query_changed_cb)
        toolbar.connect('view-changed', self.__toolbar_view_changed_cb)
        toolbar.search_entry.connect('icon-press',
                                     self.__clear_icon_pressed_cb)
        self._list_view.connect('clear-clicked',
                                self.__activitylist_clear_clicked_cb, toolbar)

        self._set_view(self._favorites_views_indicies[0])
        self._query = ''
Ejemplo n.º 4
0
    def _set_view(self, view):
        if view in self._favorites_views_indicies:
            favorite = self._favorites_views_indicies.index(view)

            children = self.get_children()
            if self._list_view in children:
                self.remove(self._list_view)
            else:
                for i in range(desktop.get_number_of_views()):
                    if i != favorite and self._favorites_boxes[i] in children:
                        self.remove(self._favorites_boxes[i])

            if self._favorites_boxes[favorite] not in children:
                self.add(self._favorites_boxes[favorite])
                self._favorites_boxes[favorite].show()
                self._favorites_boxes[favorite].grab_focus()
        elif view == self._list_view_index:
            children = self.get_children()
            for i in range(desktop.get_number_of_views()):
                if self._favorites_boxes[i] in children:
                    self.remove(self._favorites_boxes[i])

            if self._list_view not in children:
                self.add(self._list_view)
                self._list_view.show()
                self._list_view.grab_focus()
        else:
            raise ValueError('Invalid view: %r' % view)
Ejemplo n.º 5
0
    def __init__(self, activity_info):
        ActivityPalette.__init__(self, activity_info)

        self._bundle_id = activity_info.get_bundle_id()
        self._version = activity_info.get_activity_version()

        registry = bundleregistry.get_registry()

        self._favorites = []
        self._favorite_items = []
        self._favorite_icons = []

        for i in range(desktop.get_number_of_views()):
            self._favorites.append(registry.is_bundle_favorite(self._bundle_id, self._version, i))
            self._favorite_items.append(PaletteMenuItem())
            self._favorite_icons.append(Icon(icon_name=desktop.get_favorite_icons()[i], icon_size=Gtk.IconSize.MENU))
            self._favorite_items[i].set_image(self._favorite_icons[i])
            self._favorite_icons[i].show()
            self._favorite_items[i].connect("activate", self.__change_favorite_activate_cb, i)
            self.menu_box.append_item(self._favorite_items[i])
            self._favorite_items[i].show()

        if activity_info.is_user_activity():
            self._add_erase_option(registry, activity_info)

        registry = bundleregistry.get_registry()
        self._activity_changed_sid = []
        for i in range(desktop.get_number_of_views()):
            self._activity_changed_sid.append(registry.connect("bundle_changed", self.__activity_changed_cb, i))
            self._update_favorite_item(i)

        self.menu_box.connect("destroy", self.__destroy_cb)
Ejemplo n.º 6
0
    def _add_activity(self, activity_info):
        if activity_info.get_bundle_id() == 'org.laptop.JournalActivity':
            return

        timestamp = activity_info.get_installation_time()
        version = activity_info.get_activity_version()

        registry = bundleregistry.get_registry()
        favorites = []
        for i in range(desktop.get_number_of_views()):
            favorites.append(
                registry.is_bundle_favorite(activity_info.get_bundle_id(),
                                            version, i))

        tag_list = activity_info.get_tags()
        if tag_list is None or not tag_list:
            title = '<b>%s</b>' % activity_info.get_name()
        else:
            tags = ', '.join(tag_list)
            title = '<b>%s</b>\n' \
                    '<span style="italic" weight="light">%s</span>' % \
                (activity_info.get_name(), tags)

        model_list = [activity_info.get_bundle_id()]
        for i in range(desktop.get_number_of_views()):
            model_list.append(favorites[i])
        model_list.append(activity_info.get_icon())
        model_list.append(title)
        model_list.append(version)
        model_list.append(_('Version %s') % version)
        model_list.append(int(timestamp))
        model_list.append(util.timestamp_to_elapsed_string(timestamp))
        self._model.append(model_list)
Ejemplo n.º 7
0
    def __init__(self, toolbar):
        logging.debug('STARTUP: Loading the home view')

        Gtk.VBox.__init__(self)

        self._favorites_views_indicies = []
        for i in range(desktop.get_number_of_views()):
            self._favorites_views_indicies.append(i)
        self._list_view_index = self._favorites_views_indicies[-1] + 1

        self._favorites_boxes = []
        for i in range(desktop.get_number_of_views()):
            self._favorites_boxes.append(FavoritesBox(i))
        self._list_view = ActivitiesList()

        self._desktop_model = desktop.get_model()
        self._desktop_model.connect('desktop-view-icons-changed',
                                    self.__desktop_view_icons_changed_cb)

        toolbar.search_entry._icon_selected = []
        toolbar.connect('query-changed', self.__toolbar_query_changed_cb)
        toolbar.connect('view-changed', self.__toolbar_view_changed_cb)
        toolbar.search_entry.connect('key-press-event',
                                     self.__search_entry_key_press_event_cb)
        toolbar.search_entry.connect('icon-press',
                                     self.__clear_icon_pressed_cb)
        self._list_view.connect('clear-clicked',
                                self.__activitylist_clear_clicked_cb, toolbar)

        self._set_view(self._favorites_views_indicies[0])
        self._query = ''
        self._resume_mode = Gio.Settings('org.sugarlabs.user').get_boolean(
            'resume-activity')
    def _set_view(self, view):
        if view in self._favorites_views_indicies:
            favorite = self._favorites_views_indicies.index(view)

            children = self.get_children()
            if self._list_view in children:
                self.remove(self._list_view)
            else:
                for i in range(desktop.get_number_of_views()):
                    if i != favorite and self._favorites_boxes[i] in children:
                        self.remove(self._favorites_boxes[i])

            if self._favorites_boxes[favorite] not in children:
                self.add(self._favorites_boxes[favorite])
                self._favorites_boxes[favorite].show()
                self._favorites_boxes[favorite].grab_focus()
        elif view == self._list_view_index:
            children = self.get_children()
            for i in range(desktop.get_number_of_views()):
                if self._favorites_boxes[i] in children:
                    self.remove(self._favorites_boxes[i])

            if self._list_view not in children:
                self.add(self._list_view)
                self._list_view.show()
                self._list_view.grab_focus()
        else:
            raise ValueError('Invalid view: %r' % view)
Ejemplo n.º 9
0
    def __init__(self):
        Gtk.Toolbar.__init__(self)

        self._favorites_views_indicies = []
        for i in range(desktop.get_number_of_views()):
            self._favorites_views_indicies.append(i)
        self._list_view_index = self._favorites_views_indicies[-1] + 1

        self._desktop_model = desktop.get_model()
        self._desktop_model.connect('desktop-view-icons-changed',
                                    self.__desktop_view_icons_changed_cb)

        self._query = None
        self._autosearch_timer = None

        self._add_separator()

        tool_item = Gtk.ToolItem()
        self.insert(tool_item, -1)
        tool_item.show()

        self.search_entry = iconentry.IconEntry()
        self.search_entry.set_icon_from_name(iconentry.ICON_ENTRY_PRIMARY,
                                             'entry-search')
        self.set_placeholder_text_for_view(_('Home'))
        self.search_entry.add_clear_button()
        self.search_entry.set_width_chars(25)
        self.search_entry.connect('activate', self._entry_activated_cb)
        self.search_entry.connect('changed', self._entry_changed_cb)
        tool_item.add(self.search_entry)
        self.search_entry.show()

        self._add_separator(expand=True)

        self._button_box = Gtk.HBox()
        self._favorites_buttons = []
        for i in range(desktop.get_number_of_views()):
            self._add_favorites_button(i)
        toolitem = Gtk.ToolItem()
        toolitem.add(self._button_box)
        self.insert(toolitem, -1)
        self._button_box.show()
        toolitem.show()

        self._list_button = RadioToolButton(icon_name='view-list')
        self._list_button.props.group = self._favorites_buttons[0]
        self._list_button.props.tooltip = _('List view')
        self._list_button.props.accelerator = \
            _('<Ctrl>%d' % (len(self._favorites_views_indicies) + 1))
        self._list_view_toggle_id = self._list_button.connect(
            'toggled', self.__view_button_toggled_cb, self._list_view_index)
        self.insert(self._list_button, -1)

        self._add_separator()
Ejemplo n.º 10
0
 def __activity_changed_cb(self, activity_registry, activity_info):
     bundle_id = activity_info.get_bundle_id()
     version = activity_info.get_activity_version()
     favorites = []
     for i in range(desktop.get_number_of_views()):
         favorites.append(activity_registry.is_bundle_favorite(bundle_id, version, i))
     for row in self._model:
         if row[self.column_bundle_id] == bundle_id and row[self.column_version] == version:
             for i in range(desktop.get_number_of_views()):
                 row[self.column_favorites[i]] = favorites[i]
             return
Ejemplo n.º 11
0
    def __init__(self):
        Gtk.Toolbar.__init__(self)

        self._favorites_views_indicies = []
        for i in range(desktop.get_number_of_views()):
            self._favorites_views_indicies.append(i)
        self._list_view_index = self._favorites_views_indicies[-1] + 1

        self._desktop_model = desktop.get_model()
        self._desktop_model.connect('desktop-view-icons-changed',
                                    self.__desktop_view_icons_changed_cb)

        self._query = None
        self._autosearch_timer = None

        self._add_separator()

        tool_item = Gtk.ToolItem()
        self.insert(tool_item, -1)
        tool_item.show()

        self.search_entry = iconentry.IconEntry()
        self.search_entry.set_icon_from_name(iconentry.ICON_ENTRY_PRIMARY,
                                             'entry-search')
        self.set_placeholder_text_for_view(_('Home'))
        self.search_entry.add_clear_button()
        self.search_entry.set_width_chars(25)
        self.search_entry.connect('activate', self._entry_activated_cb)
        self.search_entry.connect('changed', self._entry_changed_cb)
        tool_item.add(self.search_entry)
        self.search_entry.show()

        self._add_separator(expand=True)

        self._button_box = Gtk.HBox()
        self._favorites_buttons = []
        for i in range(desktop.get_number_of_views()):
            self._add_favorites_button(i)
        toolitem = Gtk.ToolItem()
        toolitem.add(self._button_box)
        self.insert(toolitem, -1)
        self._button_box.show()
        toolitem.show()

        self._list_button = RadioToolButton(icon_name='view-list')
        self._list_button.props.group = self._favorites_buttons[0]
        self._list_button.props.tooltip = _('List view')
        self._list_button.props.accelerator = \
            _('<Ctrl>%d' % (len(self._favorites_views_indicies) + 1))
        self._list_view_toggle_id = self._list_button.connect(
            'toggled', self.__view_button_toggled_cb, self._list_view_index)
        self.insert(self._list_button, -1)

        self._add_separator()
Ejemplo n.º 12
0
 def __activity_changed_cb(self, activity_registry, activity_info):
     bundle_id = activity_info.get_bundle_id()
     version = activity_info.get_activity_version()
     favorites = []
     for i in range(desktop.get_number_of_views()):
         favorites.append(
             activity_registry.is_bundle_favorite(bundle_id, version, i))
     for row in self._model:
         if row[self.column_bundle_id] == bundle_id and \
                 row[self.column_version] == version:
             for i in range(desktop.get_number_of_views()):
                 row[self.column_favorites[i]] = favorites[i]
             return
Ejemplo n.º 13
0
 def __toolbar_query_changed_cb(self, toolbar, query):
     self._query = normalize_string(query.decode('utf-8'))
     self._list_view.set_filter(self._query)
     for i in range(desktop.get_number_of_views()):
         self._favorites_boxes[i].set_filter(self._query)
         toolbar.search_entry._icon_selected.append(
                 self._favorites_boxes[i]._get_selected(self._query))
Ejemplo n.º 14
0
    def __desktop_view_icons_changed_cb(self, model):
        number_of_views = desktop.get_number_of_views()

        if len(self._favorites_views_indicies) < number_of_views:
            for i in range(number_of_views -
                           len(self._favorites_views_indicies)):
                n = len(self._favorites_views_indicies)
                self._favorites_views_indicies.append(n)
                self._add_favorites_button(n)
                self._favorites_buttons[n].show()
        elif number_of_views < len(self._favorites_views_indicies):
            for i in range(len(self._favorites_views_indicies) -
                           number_of_views):
                n = len(self._favorites_views_indicies) - 1
                logging.debug('removing FavoritesButton %d' % (n))
                button = self._favorites_buttons[n]
                self._favorites_buttons.remove(button)
                button.destroy()
                self._favorites_views_indicies.remove(
                    self._favorites_views_indicies[n])
        self._button_box.show()

        self._list_view_index = number_of_views
        self._list_button.props.accelerator = \
            _('<Ctrl>%d' % (len(self._favorites_views_indicies) + 1))
        self._list_button.disconnect(self._list_view_toggle_id)
        self._list_view_toggle_id = self._list_button.connect(
            'toggled', self.__view_button_toggled_cb, self._list_view_index)
        self._list_button.show()
Ejemplo n.º 15
0
 def __toolbar_query_changed_cb(self, toolbar, query):
     self._query = normalize_string(query.decode('utf-8'))
     self._list_view.set_filter(self._query)
     for i in range(desktop.get_number_of_views()):
         self._favorites_boxes[i].set_filter(self._query)
         toolbar.search_entry._icon_selected.append(
             self._favorites_boxes[i]._get_selected(self._query))
 def set_resume_mode(self, resume_mode, favorite_view=0):
     self._resume_mode = resume_mode
     self._favorites_boxes[favorite_view].set_resume_mode(resume_mode)
     if resume_mode and self._query != '':
         self._list_view.set_filter(self._query)
         for i in range(desktop.get_number_of_views()):
             self._favorites_boxes[i].set_filter(self._query)
Ejemplo n.º 17
0
 def set_resume_mode(self, resume_mode, favorite_view=0):
     self._resume_mode = resume_mode
     self._favorites_boxes[favorite_view].set_resume_mode(resume_mode)
     if resume_mode and self._query != '':
         self._list_view.set_filter(self._query)
         for i in range(desktop.get_number_of_views()):
             self._favorites_boxes[i].set_filter(self._query)
Ejemplo n.º 18
0
    def __desktop_view_icons_changed_cb(self, model):
        number_of_views = desktop.get_number_of_views()

        if len(self._favorites_views_indicies) < number_of_views:
            for i in range(number_of_views -
                           len(self._favorites_views_indicies)):
                n = len(self._favorites_views_indicies)
                self._favorites_views_indicies.append(n)
                self._add_favorites_button(n)
                self._favorites_buttons[n].show()
        elif number_of_views < len(self._favorites_views_indicies):
            for i in range(
                    len(self._favorites_views_indicies) - number_of_views):
                n = len(self._favorites_views_indicies) - 1
                logging.debug('removing FavoritesButton %d' % (n))
                button = self._favorites_buttons[n]
                self._favorites_buttons.remove(button)
                button.destroy()
                self._favorites_views_indicies.remove(
                    self._favorites_views_indicies[n])
        self._button_box.show()

        self._list_view_index = number_of_views
        self._list_button.props.accelerator = \
            _('<Ctrl>%d' % (len(self._favorites_views_indicies) + 1))
        self._list_button.disconnect(self._list_view_toggle_id)
        self._list_view_toggle_id = self._list_button.connect(
            'toggled', self.__view_button_toggled_cb, self._list_view_index)
        self._list_button.show()
Ejemplo n.º 19
0
    def _load_favorites(self):
        for i in range(desktop.get_number_of_views()):
            # Special-case 0 for backward compatibility
            if i == 0:
                favorites_path = env.get_profile_path('favorite_activities')
            else:
                favorites_path = env.get_profile_path(
                    'favorite_activities_%d' % (i))
            if os.path.exists(favorites_path):
                favorites_data = json.load(open(favorites_path))

                favorite_bundles = favorites_data['favorites']
                if not isinstance(favorite_bundles, dict):
                    raise ValueError('Invalid format in %s.' % favorites_path)
                if favorite_bundles:
                    first_key = favorite_bundles.keys()[0]
                    if not isinstance(first_key, basestring):
                        raise ValueError('Invalid format in %s.' %
                                         favorites_path)

                    first_value = favorite_bundles.values()[0]
                    if first_value is not None and \
                       not isinstance(first_value, dict):
                        raise ValueError('Invalid format in %s.' %
                                         favorites_path)

                self._favorite_bundles[i] = favorite_bundles
Ejemplo n.º 20
0
    def _load_favorites(self):
        for i in range(desktop.get_number_of_views()):
            # Special-case 0 for backward compatibility
            if i == 0:
                favorites_path = env.get_profile_path('favorite_activities')
            else:
                favorites_path = env.get_profile_path(
                    'favorite_activities_%d' % (i))
            if os.path.exists(favorites_path):
                favorites_data = json.load(open(favorites_path))

                favorite_bundles = favorites_data['favorites']
                if not isinstance(favorite_bundles, dict):
                    raise ValueError('Invalid format in %s.' % favorites_path)
                if favorite_bundles:
                    first_key = favorite_bundles.keys()[0]
                    if not isinstance(first_key, basestring):
                        raise ValueError('Invalid format in %s.' %
                                         favorites_path)

                    first_value = favorite_bundles.values()[0]
                    if first_value is not None and \
                       not isinstance(first_value, dict):
                        raise ValueError('Invalid format in %s.' %
                                         favorites_path)

                self._last_defaults_mtime[i] = \
                    float(favorites_data['defaults-mtime'])
                self._favorite_bundles[i] = favorite_bundles
Ejemplo n.º 21
0
    def __init__(self):
        logging.debug('STARTUP: Loading the bundle registry')
        GObject.GObject.__init__(self)

        self._mime_defaults = self._load_mime_defaults()

        # Queue of bundles to be installed/upgraded
        self._install_queue = _InstallQueue(self)

        # Bundle installation happens in a separate thread, which needs
        # access to _bundles. Protect all _bundles access with a lock.
        self._lock = Lock()
        self._bundles = []

        # hold a reference to the monitors so they don't get disposed
        self._gio_monitors = []

        dirs = [env.get_user_activities_path(), env.get_user_library_path()]

        for data_dir in GLib.get_system_data_dirs():
            dirs.append(os.path.join(data_dir, "sugar", "activities"))

        for activity_dir in dirs:
            self._scan_directory(activity_dir)
            directory = Gio.File.new_for_path(activity_dir)
            monitor = directory.monitor_directory(
                flags=Gio.FileMonitorFlags.NONE, cancellable=None)
            monitor.connect('changed', self.__file_monitor_changed_cb)
            self._gio_monitors.append(monitor)

        self._last_defaults_mtime = []
        self._favorite_bundles = []
        for i in range(desktop.get_number_of_views()):
            self._favorite_bundles.append({})
            self._last_defaults_mtime.append(-1)

        client = GConf.Client.get_default()
        self._protected_activities = []

        # FIXME, gconf_client_get_list not introspectable #681433
        protected_activities = client.get(
            '/desktop/sugar/protected_activities')
        for gval in protected_activities.get_list():
            activity_id = gval.get_string()
            self._protected_activities.append(activity_id)

        if self._protected_activities is None:
            self._protected_activities = []

        try:
            self._load_favorites()
        except Exception:
            logging.exception('Error while loading favorite_activities.')

        self._merge_default_favorites()

        self._desktop_model = desktop.get_model()
        self._desktop_model.connect('desktop-view-icons-changed',
                                    self.__desktop_view_icons_changed_cb)
Ejemplo n.º 22
0
 def __desktop_view_icons_changed_cb(self, model):
     number_of_views = desktop.get_number_of_views()
     if len(self._favorite_bundles) < number_of_views:
         for i in range(number_of_views - len(self._favorite_bundles)):
             self._favorite_bundles.append({})
     try:
         self._load_favorites()
     except Exception:
         logging.exception('Error while loading favorite_activities.')
Ejemplo n.º 23
0
 def __desktop_view_icons_changed_cb(self, model):
     number_of_views = desktop.get_number_of_views()
     if len(self._favorite_bundles) < number_of_views:
         for i in range(number_of_views - len(self._favorite_bundles)):
             self._favorite_bundles.append({})
     try:
         self._load_favorites()
     except Exception:
         logging.exception('Error while loading favorite_activities.')
Ejemplo n.º 24
0
 def grab_focus(self):
     # overwrite grab focus to be able to grab focus on the
     # views which are packed inside a box
     children = self.get_children()
     if self._list_view in children:
         self._list_view.grab_focus()
     else:
         for i in range(desktop.get_number_of_views()):
             if self._favorites_boxes[i] in children:
                 self._favorites_boxes[i].grab_focus()
 def grab_focus(self):
     # overwrite grab focus to be able to grab focus on the
     # views which are packed inside a box
     children = self.get_children()
     if self._list_view in children:
         self._list_view.grab_focus()
     else:
         for i in range(desktop.get_number_of_views()):
             if self._favorites_boxes[i] in children:
                 self._favorites_boxes[i].grab_focus()
Ejemplo n.º 26
0
 def _convert_old_favorites(self):
     for i in range(desktop.get_number_of_views()):
         for key in self._favorite_bundles[i].keys():
             data = self._favorite_bundles[i][key]
             if data is None:
                 data = {}
             if 'favorite' not in data:
                 data['favorite'] = True
             self._favorite_bundles[i][key] = data
         self._write_favorites_file(i)
Ejemplo n.º 27
0
 def _convert_old_favorites(self):
     for i in range(desktop.get_number_of_views()):
         for key in self._favorite_bundles[i].keys():
             data = self._favorite_bundles[i][key]
             if data is None:
                 data = {}
             if 'favorite' not in data:
                 data['favorite'] = True
             self._favorite_bundles[i][key] = data
         self._write_favorites_file(i)
Ejemplo n.º 28
0
    def __desktop_view_icons_changed_cb(self):
        number_of_views = desktop.get_number_of_views()
        self.assertTrue(number_of_views == len(self.target))

        view_icons = desktop.get_view_icons()
        self.assertTrue(len(view_icons) == len(self.target))

        for i in range(len(view_icons)):
            self.assertTrue(view_icons[i] in self.target)

        favorite_icons = desktop.get_favorite_icons()
        self.assertTrue(len(favorite_icons) >= len(self.target))
Ejemplo n.º 29
0
    def __desktop_view_icons_changed_cb(self):
        number_of_views = desktop.get_number_of_views()
        self.assertTrue(number_of_views == len(self.target))

        view_icons = desktop.get_view_icons()
        self.assertTrue(len(view_icons) == len(self.target))

        for i in range(len(view_icons)):
            self.assertTrue(view_icons[i] in self.target)

        favorite_icons = desktop.get_favorite_icons()
        self.assertTrue(len(favorite_icons) >= len(self.target))
Ejemplo n.º 30
0
def get_settings(favorite_view=0):
    global _favorites_settings

    number_of_views = desktop.get_number_of_views()
    if _favorites_settings is None:
        _favorites_settings = []
        for i in range(number_of_views):
            _favorites_settings.append(FavoritesSetting(i))
    elif len(_favorites_settings) < number_of_views:
        for i in range(number_of_views - len(_favorites_settings)):
            _favorites_settings.append(
                FavoritesSetting(len(_favorites_settings)))
    return _favorites_settings[favorite_view]
Ejemplo n.º 31
0
    def __desktop_view_icons_changed_cb(self, model):
        number_of_views = desktop.get_number_of_views()
        self.assertTrue(number_of_views == len(self.target))

        view_icons = desktop.get_view_icons()
        self.assertTrue(len(view_icons) == len(self.target))

        right_view_icons = [view['view-icon'] for view in self.target]
        for i in range(len(view_icons)):
            self.assertTrue(view_icons[i] in right_view_icons)

        favorite_icons = desktop.get_favorite_icons()
        self.assertTrue(len(favorite_icons) >= len(self.target))
Ejemplo n.º 32
0
    def __init__(self, activity_info):
        ActivityPalette.__init__(self, activity_info)

        self._bundle_id = activity_info.get_bundle_id()
        self._version = activity_info.get_activity_version()

        registry = bundleregistry.get_registry()

        self._favorites = []
        self._favorite_items = []
        self._favorite_icons = []

        for i in range(desktop.get_number_of_views()):
            self._favorites.append(
                registry.is_bundle_favorite(self._bundle_id, self._version, i))
            self._favorite_items.append(PaletteMenuItem())
            self._favorite_icons.append(
                Icon(icon_name=desktop.get_favorite_icons()[i],
                     pixel_size=style.SMALL_ICON_SIZE))
            self._favorite_items[i].set_image(self._favorite_icons[i])
            self._favorite_icons[i].show()
            self._favorite_items[i].connect('activate',
                                            self.__change_favorite_activate_cb,
                                            i)
            self.menu_box.append_item(self._favorite_items[i])
            self._favorite_items[i].show()

        if activity_info.is_user_activity():
            self._add_erase_option(registry, activity_info)

        registry = bundleregistry.get_registry()
        self._activity_changed_sid = []
        for i in range(desktop.get_number_of_views()):
            self._activity_changed_sid.append(
                registry.connect('bundle-changed', self.__activity_changed_cb,
                                 i))
            self._update_favorite_item(i)

        self.menu_box.connect('destroy', self.__destroy_cb)
Ejemplo n.º 33
0
    def __desktop_view_icons_changed_cb(self, model):
        number_of_views = desktop.get_number_of_views()
        self.assertTrue(number_of_views == len(self.target))

        view_icons = desktop.get_view_icons()
        self.assertTrue(len(view_icons) == len(self.target))

        right_view_icons = [view['view-icon'] for view in self.target]
        for i in range(len(view_icons)):
            self.assertTrue(view_icons[i] in right_view_icons)

        favorite_icons = desktop.get_favorite_icons()
        self.assertTrue(len(favorite_icons) >= len(self.target))
Ejemplo n.º 34
0
def get_settings(favorite_view=0):
    global _favorites_settings

    number_of_views = desktop.get_number_of_views()
    if _favorites_settings is None:
        _favorites_settings = []
        for i in range(number_of_views):
            _favorites_settings.append(FavoritesSetting(i))
    elif len(_favorites_settings) < number_of_views:
        for i in range(number_of_views - len(_favorites_settings)):
            _favorites_settings.append(
                FavoritesSetting(len(_favorites_settings)))
    return _favorites_settings[favorite_view]
Ejemplo n.º 35
0
    def __init__(self):
        logging.debug('STARTUP: Loading the bundle registry')
        GObject.GObject.__init__(self)

        self._mime_defaults = self._load_mime_defaults()

        # Queue of bundles to be installed/upgraded
        self._install_queue = _InstallQueue(self)

        # Bundle installation happens in a separate thread, which needs
        # access to _bundles. Protect all _bundles access with a lock.
        self._lock = Lock()
        self._bundles = []

        # hold a reference to the monitors so they don't get disposed
        self._gio_monitors = []

        dirs = [env.get_user_activities_path(), env.get_user_library_path()]

        for data_dir in GLib.get_system_data_dirs():
            dirs.append(os.path.join(data_dir, "sugar", "activities"))

        for activity_dir in dirs:
            self._scan_directory(activity_dir)
            directory = Gio.File.new_for_path(activity_dir)
            monitor = directory.monitor_directory(
                flags=Gio.FileMonitorFlags.NONE, cancellable=None)
            monitor.connect('changed', self.__file_monitor_changed_cb)
            self._gio_monitors.append(monitor)

        self._favorite_bundles = []
        for i in range(desktop.get_number_of_views()):
            self._favorite_bundles.append({})

        settings = Gio.Settings('org.sugarlabs')
        self._protected_activities = settings.get_strv('protected-activities')

        try:
            self._load_favorites()
        except Exception:
            logging.exception('Error while loading favorite_activities.')

        self._hidden_activities = []
        self._load_hidden_activities()

        self._convert_old_favorites()
        self._scan_new_favorites()

        self._desktop_model = desktop.get_model()
        self._desktop_model.connect('desktop-view-icons-changed',
                                    self.__desktop_view_icons_changed_cb)
Ejemplo n.º 36
0
    def __init__(self):
        logging.debug('STARTUP: Loading the bundle registry')
        GObject.GObject.__init__(self)

        self._mime_defaults = self._load_mime_defaults()

        # Queue of bundles to be installed/upgraded
        self._install_queue = _InstallQueue(self)

        # Bundle installation happens in a separate thread, which needs
        # access to _bundles. Protect all _bundles access with a lock.
        self._lock = Lock()
        self._bundles = []

        # hold a reference to the monitors so they don't get disposed
        self._gio_monitors = []

        dirs = [env.get_user_activities_path(), env.get_user_library_path()]

        for data_dir in GLib.get_system_data_dirs():
            dirs.append(os.path.join(data_dir, "sugar", "activities"))

        for activity_dir in dirs:
            self._scan_directory(activity_dir)
            directory = Gio.File.new_for_path(activity_dir)
            monitor = directory.monitor_directory(
                flags=Gio.FileMonitorFlags.NONE, cancellable=None)
            monitor.connect('changed', self.__file_monitor_changed_cb)
            self._gio_monitors.append(monitor)

        self._favorite_bundles = []
        for i in range(desktop.get_number_of_views()):
            self._favorite_bundles.append({})

        settings = Gio.Settings('org.sugarlabs')
        self._protected_activities = settings.get_strv('protected-activities')

        try:
            self._load_favorites()
        except Exception:
            logging.exception('Error while loading favorite_activities.')

        self._hidden_activities = []
        self._load_hidden_activities()

        self._convert_old_favorites()
        self._scan_new_favorites()

        self._desktop_model = desktop.get_model()
        self._desktop_model.connect('desktop-view-icons-changed',
                                    self.__desktop_view_icons_changed_cb)
Ejemplo n.º 37
0
    def __init__(self):
        self.column_bundle_id = 0
        self.column_favorites = []
        for i in range(desktop.get_number_of_views()):
            self.column_favorites.append(self.column_bundle_id + i + 1)
        self.column_icon = self.column_favorites[-1] + 1
        self.column_title = self.column_icon + 1
        self.column_version = self.column_title + 1
        self.column_version_text = self.column_version + 1
        self.column_date = self.column_version_text + 1
        self.column_date_text = self.column_date + 1

        column_types = [str, str, str, str, str, int, str]
        for i in range(desktop.get_number_of_views()):
            column_types.insert(1, bool)

        self._model = Gtk.ListStore()
        self._model.set_column_types(column_types)
        self._model_filter = self._model.filter_new()
        Gtk.TreeModelSort.__init__(self, model=self._model_filter)
        self.set_sort_column_id(self.column_title, Gtk.SortType.ASCENDING)

        GLib.idle_add(self.__connect_to_bundle_registry_cb)
Ejemplo n.º 38
0
    def __desktop_view_icons_changed_cb(self, model):
        number_of_views = desktop.get_number_of_views()

        if len(self._favorites_views_indicies) < number_of_views:
            for i in range(number_of_views - len(self._favorites_views_indicies)):
                self._favorites_views_indicies.append(len(self._favorites_views_indicies) + i)
                self._favorites_boxes.append(favoritesview.FavoritesBox(len(self._favorites_views_indicies) - 1))
        elif number_of_views < len(self._favorites_views_indicies):
            for i in range(len(self._favorites_views_indicies) - number_of_views):
                self._favorites_boxes.remove(self._favorites_boxes[-1])
                self._favorites_views_indicies.remove(self._favorites_views_indicies[-1])

        self._list_view_index = number_of_views
        logging.debug("homebox: reassigning list view index to %d" % (self._list_view_index))
Ejemplo n.º 39
0
    def __init__(self):
        self.column_bundle_id = 0
        self.column_favorites = []
        for i in range(desktop.get_number_of_views()):
            self.column_favorites.append(self.column_bundle_id + i + 1)
        self.column_icon = self.column_favorites[-1] + 1
        self.column_title = self.column_icon + 1
        self.column_version = self.column_title + 1
        self.column_version_text = self.column_version + 1
        self.column_date = self.column_version_text + 1
        self.column_date_text = self.column_date + 1

        column_types = [str, str, str, str, str, int, str]
        for i in range(desktop.get_number_of_views()):
            column_types.insert(1, bool)

        self._model = Gtk.ListStore()
        self._model.set_column_types(column_types)
        self._model_filter = self._model.filter_new()
        Gtk.TreeModelSort.__init__(self, model=self._model_filter)
        self.set_sort_column_id(self.column_title, Gtk.SortType.ASCENDING)

        GLib.idle_add(self.__connect_to_bundle_registry_cb)
Ejemplo n.º 40
0
    def __toolbar_query_changed_cb(self, toolbar, query):
        self._query = normalize_string(query.decode('utf-8'))
        self._list_view.set_filter(self._query)
        for i in range(desktop.get_number_of_views()):
            self._favorites_boxes[i].set_filter(self._query)
        toolbar.search_entry._icon_selected = \
            self._list_view.get_activities_selected()

        # verify if one off the selected names is a perfect match
        # this is needed by th case of activities with names contained
        # in other activities like 'Paint' and 'MusicPainter'
        for activity in self._list_view.get_activities_selected():
            if activity['name'].upper() == query.upper():
                toolbar.search_entry._icon_selected = [activity]
                break

        if len(toolbar.search_entry._icon_selected) == 1:
            toolbar.search_entry.set_text(
                toolbar.search_entry._icon_selected[0]['name'])
            toolbar.search_entry.set_position(-1)
Ejemplo n.º 41
0
    def __desktop_view_icons_changed_cb(self, model):
        number_of_views = desktop.get_number_of_views()

        if len(self._favorites_views_indicies) < number_of_views:
            for i in range(number_of_views -
                           len(self._favorites_views_indicies)):
                self._favorites_views_indicies.append(
                    len(self._favorites_views_indicies) + i)
                self._favorites_boxes.append(
                    FavoritesBox(len(self._favorites_views_indicies) - 1))
        elif number_of_views < len(self._favorites_views_indicies):
            for i in range(
                    len(self._favorites_views_indicies) - number_of_views):
                self._favorites_boxes.remove(self._favorites_boxes[-1])
                self._favorites_views_indicies.remove(
                    self._favorites_views_indicies[-1])

        self._list_view_index = number_of_views
        logging.debug('homebox: reassigning list view index to %d' %
                      (self._list_view_index))
Ejemplo n.º 42
0
    def __toolbar_query_changed_cb(self, toolbar, query):
        self._query = normalize_string(query.decode("utf-8"))
        self._list_view.set_filter(self._query)
        for i in range(desktop.get_number_of_views()):
            self._favorites_boxes[i].set_filter(self._query)
        toolbar.search_entry._icon_selected = self._list_view.get_activities_selected()

        # verify if one off the selected names is a perfect match
        # this is needed by th case of activities with names contained
        # in other activities like 'Paint' and 'MusicPainter'
        for activity in self._list_view.get_activities_selected():
            if activity["name"].upper() == query.upper():
                toolbar.search_entry._icon_selected = [activity]
                break

        # Don't change the selection if the entry has been autocompleted
        if len(toolbar.search_entry._icon_selected) == 1 and not toolbar.search_entry.get_text() == activity["name"]:
            pos = toolbar.search_entry.get_position()
            toolbar.search_entry.set_text(toolbar.search_entry._icon_selected[0]["name"])
            toolbar.search_entry.select_region(pos, -1)
    def __toolbar_query_changed_cb(self, toolbar, query):
        self._query = normalize_string(query.decode('utf-8'))
        self._list_view.set_filter(self._query)
        for i in range(desktop.get_number_of_views()):
            self._favorites_boxes[i].set_filter(self._query)
        toolbar.search_entry._icon_selected = \
            self._list_view.get_activities_selected()

        # verify if one off the selected names is a perfect match
        # this is needed by th case of activities with names contained
        # in other activities like 'Paint' and 'MusicPainter'
        for activity in self._list_view.get_activities_selected():
            if activity['name'].upper() == query.upper():
                toolbar.search_entry._icon_selected = [activity]
                break

        if len(toolbar.search_entry._icon_selected) == 1:
            toolbar.search_entry.set_text(
                toolbar.search_entry._icon_selected[0]['name'])
            toolbar.search_entry.set_position(-1)
Ejemplo n.º 44
0
    def __init__(self):
        Gtk.TreeView.__init__(self)
        self.set_can_focus(False)

        self._query = ''

        self.set_headers_visible(False)
        self.add_events(Gdk.EventMask.BUTTON_PRESS_MASK |
                        Gdk.EventMask.TOUCH_MASK |
                        Gdk.EventMask.BUTTON_RELEASE_MASK)
        selection = self.get_selection()
        selection.set_mode(Gtk.SelectionMode.NONE)

        self._model = ListModel()
        self._model.set_visible_func(self.__model_visible_cb)
        self.set_model(self._model)

        self._favorite_columns = []
        for i in range(desktop.get_number_of_views()):
            self.fav_column = Gtk.TreeViewColumn()
            self.cell_favorite = CellRendererFavorite(i)
            self.cell_favorite.connect('clicked', self.__favorite_clicked_cb)
            self.fav_column.pack_start(self.cell_favorite, True)
            self.fav_column.set_cell_data_func(self.cell_favorite,
                                               self.__favorite_set_data_cb)
            self.append_column(self.fav_column)

            self._favorite_columns.append(self.fav_column)

        self.cell_icon = CellRendererActivityIcon()

        column = Gtk.TreeViewColumn()
        column.pack_start(self.cell_icon, True)
        column.add_attribute(self.cell_icon, 'file-name',
                             self._model.column_icon)
        self.append_column(column)

        self._icon_column = column

        cell_text = Gtk.CellRendererText()
        cell_text.props.ellipsize = style.ELLIPSIZE_MODE_DEFAULT
        cell_text.props.ellipsize_set = True

        column = Gtk.TreeViewColumn()
        column.props.sizing = Gtk.TreeViewColumnSizing.GROW_ONLY
        column.props.expand = True
        column.set_sort_column_id(self._model.column_title)
        column.pack_start(cell_text, True)
        column.add_attribute(cell_text, 'markup', self._model.column_title)
        self.append_column(column)

        cell_text = Gtk.CellRendererText()
        cell_text.props.xalign = 1

        self.version_column = Gtk.TreeViewColumn()
        self.version_column.set_alignment(1)
        self.version_column.props.sizing = Gtk.TreeViewColumnSizing.GROW_ONLY
        self.version_column.props.resizable = True
        self.version_column.props.reorderable = True
        self.version_column.props.expand = True
        self.version_column.set_sort_column_id(self._model.column_version)
        self.version_column.pack_start(cell_text, True)
        self.version_column.add_attribute(cell_text, 'text',
                                          self._model.column_version_text)
        self.append_column(self.version_column)

        cell_text = Gtk.CellRendererText()
        cell_text.props.xalign = 1

        self.date_column = Gtk.TreeViewColumn()
        self.date_column.set_alignment(1)
        self.date_column.props.sizing = Gtk.TreeViewColumnSizing.GROW_ONLY
        self.date_column.props.resizable = True
        self.date_column.props.reorderable = True
        self.date_column.props.expand = True
        self.date_column.set_sort_column_id(self._model.column_date)
        self.date_column.pack_start(cell_text, True)
        self.date_column.add_attribute(cell_text, 'text',
                                       self._model.column_date_text)
        self.append_column(self.date_column)

        self.set_search_column(self._model.column_title)
        self.set_enable_search(False)
        self._activity_selected = None
        self._invoker = TreeViewInvoker()
        self._invoker.attach_treeview(self)

        self.button_press_handler = None
        self.button_reslease_handler = None
        self.icon_clicked_handler = None
        self.row_activated_handler = None
        if hasattr(self.props, 'activate_on_single_click'):
            # Gtk+ 3.8 and later
            self.props.activate_on_single_click = True
            self.row_activated_handler = self.connect('row-activated',
                                                      self.__row_activated_cb)
        else:
            self.icon_clicked_handler = self.cell_icon.connect(
                'clicked', self.__icon_clicked_cb)
            self.button_press_handler = self.connect(
                'button-press-event', self.__button_press_cb)
            self.button_reslease_handler = self.connect(
                'button-release-event', self.__button_release_cb)
            self._row_activated_armed_path = None
Ejemplo n.º 45
0
    def __init__(self):
        Gtk.TreeView.__init__(self)
        self.set_can_focus(False)

        self._query = ''

        self.set_headers_visible(False)
        self.add_events(Gdk.EventMask.BUTTON_PRESS_MASK
                        | Gdk.EventMask.TOUCH_MASK
                        | Gdk.EventMask.BUTTON_RELEASE_MASK)
        selection = self.get_selection()
        selection.set_mode(Gtk.SelectionMode.NONE)

        self._model = ListModel()
        self._model.set_visible_func(self.__model_visible_cb)
        self.set_model(self._model)

        self._favorite_columns = []
        for i in range(desktop.get_number_of_views()):
            self.fav_column = Gtk.TreeViewColumn()
            self.cell_favorite = CellRendererFavorite(i)
            self.cell_favorite.connect('clicked', self.__favorite_clicked_cb)
            self.fav_column.pack_start(self.cell_favorite, True)
            self.fav_column.set_cell_data_func(self.cell_favorite,
                                               self.__favorite_set_data_cb)
            self.append_column(self.fav_column)

            self._favorite_columns.append(self.fav_column)

        self.cell_icon = CellRendererActivityIcon()

        column = Gtk.TreeViewColumn()
        column.pack_start(self.cell_icon, True)
        column.add_attribute(self.cell_icon, 'file-name',
                             self._model.column_icon)
        self.append_column(column)

        self._icon_column = column

        cell_text = Gtk.CellRendererText()
        cell_text.props.ellipsize = style.ELLIPSIZE_MODE_DEFAULT
        cell_text.props.ellipsize_set = True

        column = Gtk.TreeViewColumn()
        column.props.sizing = Gtk.TreeViewColumnSizing.GROW_ONLY
        column.props.expand = True
        column.set_sort_column_id(self._model.column_title)
        column.pack_start(cell_text, True)
        column.add_attribute(cell_text, 'markup', self._model.column_title)
        self.append_column(column)

        cell_text = Gtk.CellRendererText()
        cell_text.props.xalign = 1

        self.version_column = Gtk.TreeViewColumn()
        self.version_column.set_alignment(1)
        self.version_column.props.sizing = Gtk.TreeViewColumnSizing.GROW_ONLY
        self.version_column.props.resizable = True
        self.version_column.props.reorderable = True
        self.version_column.props.expand = True
        self.version_column.set_sort_column_id(self._model.column_version)
        self.version_column.pack_start(cell_text, True)
        self.version_column.add_attribute(cell_text, 'text',
                                          self._model.column_version_text)
        self.append_column(self.version_column)

        cell_text = Gtk.CellRendererText()
        cell_text.props.xalign = 1

        self.date_column = Gtk.TreeViewColumn()
        self.date_column.set_alignment(1)
        self.date_column.props.sizing = Gtk.TreeViewColumnSizing.GROW_ONLY
        self.date_column.props.resizable = True
        self.date_column.props.reorderable = True
        self.date_column.props.expand = True
        self.date_column.set_sort_column_id(self._model.column_date)
        self.date_column.pack_start(cell_text, True)
        self.date_column.add_attribute(cell_text, 'text',
                                       self._model.column_date_text)
        self.append_column(self.date_column)

        self.set_search_column(self._model.column_title)
        self.set_enable_search(False)
        self._activity_selected = None
        self._invoker = TreeViewInvoker()
        self._invoker.attach_treeview(self)

        self.button_press_handler = None
        self.button_reslease_handler = None
        self.icon_clicked_handler = None
        self.row_activated_handler = None
        if hasattr(self.props, 'activate_on_single_click'):
            # Gtk+ 3.8 and later
            self.props.activate_on_single_click = True
            self.row_activated_handler = self.connect('row-activated',
                                                      self.__row_activated_cb)
        else:
            self.icon_clicked_handler = self.cell_icon.connect(
                'clicked', self.__icon_clicked_cb)
            self.button_press_handler = self.connect('button-press-event',
                                                     self.__button_press_cb)
            self.button_reslease_handler = self.connect(
                'button-release-event', self.__button_release_cb)
            self._row_activated_armed_path = None
Ejemplo n.º 46
0
 def show_view_buttons(self):
     for i in range(desktop.get_number_of_views()):
         self._favorites_buttons[i].show()
     self._list_button.show()
Ejemplo n.º 47
0
    def __init__(self):
        Gtk.TreeView.__init__(self)

        self._query = ''

        self.set_headers_visible(False)
        self.add_events(Gdk.EventMask.BUTTON_PRESS_MASK |
                        Gdk.EventMask.TOUCH_MASK |
                        Gdk.EventMask.BUTTON_RELEASE_MASK)
        selection = self.get_selection()
        selection.set_mode(Gtk.SelectionMode.NONE)

        self._model = ListModel()
        self._model.set_visible_func(self.__model_visible_cb)
        self.set_model(self._model)

        column = Gtk.TreeViewColumn()

        cell_favorites = []
        for i in range(desktop.get_number_of_views()):
            cell_favorites.append(CellRendererFavorite(i))
            cell_favorites[i].connect('clicked', self.__favorite_clicked_cb)
            column.pack_start(cell_favorites[i], True)
            column.set_cell_data_func(cell_favorites[i],
                                      self.__favorite_set_data_cb)

        self.append_column(column)

        cell_icon = CellRendererActivityIcon()
        cell_icon.connect('clicked', self.__icon_clicked_cb)

        column = Gtk.TreeViewColumn()
        column.pack_start(cell_icon, True)
        column.add_attribute(cell_icon, 'file-name', self._model.column_icon)
        self.append_column(column)

        self._icon_column = column

        cell_text = Gtk.CellRendererText()
        cell_text.props.ellipsize = style.ELLIPSIZE_MODE_DEFAULT
        cell_text.props.ellipsize_set = True

        column = Gtk.TreeViewColumn()
        column.props.sizing = Gtk.TreeViewColumnSizing.GROW_ONLY
        column.props.expand = True
        column.set_sort_column_id(self._model.column_title)
        column.pack_start(cell_text, True)
        column.add_attribute(cell_text, 'markup', self._model.column_title)
        self.append_column(column)

        cell_text = Gtk.CellRendererText()
        cell_text.props.xalign = 1

        column = Gtk.TreeViewColumn()
        column.set_alignment(1)
        column.props.sizing = Gtk.TreeViewColumnSizing.GROW_ONLY
        column.props.resizable = True
        column.props.reorderable = True
        column.props.expand = True
        column.set_sort_column_id(self._model.column_version)
        column.pack_start(cell_text, True)
        column.add_attribute(cell_text, 'text',
                             self._model.column_version_text)
        self.append_column(column)

        cell_text = Gtk.CellRendererText()
        cell_text.props.xalign = 1

        column = Gtk.TreeViewColumn()
        column.set_alignment(1)
        column.props.sizing = Gtk.TreeViewColumnSizing.GROW_ONLY
        column.props.resizable = True
        column.props.reorderable = True
        column.props.expand = True
        column.set_sort_column_id(self._model.column_date)
        column.pack_start(cell_text, True)
        column.add_attribute(cell_text, 'text', self._model.column_date_text)
        self.append_column(column)

        self.set_search_column(self._model.column_title)
        self.set_enable_search(False)
        self._activity_selected = None
        self._invoker = TreeViewInvoker()
        self._invoker.attach_treeview(self)
Ejemplo n.º 48
0
 def __toolbar_query_changed_cb(self, toolbar, query):
     self._query = normalize_string(query.decode('utf-8'))
     self._list_view.set_filter(self._query)
     for i in range(desktop.get_number_of_views()):
         self._favorites_boxes[i].set_filter(self._query)
Ejemplo n.º 49
0
 def __destroy_cb(self, palette):
     registry = bundleregistry.get_registry()
     for i in range(desktop.get_number_of_views()):
         registry.disconnect(self._activity_changed_sid[i])
Ejemplo n.º 50
0
    def __init__(self):
        Gtk.TreeView.__init__(self)

        self._query = ""

        self.set_headers_visible(False)
        self.add_events(Gdk.EventMask.BUTTON_PRESS_MASK | Gdk.EventMask.TOUCH_MASK | Gdk.EventMask.BUTTON_RELEASE_MASK)
        selection = self.get_selection()
        selection.set_mode(Gtk.SelectionMode.NONE)

        self._model = ListModel()
        self._model.set_visible_func(self.__model_visible_cb)
        self.set_model(self._model)

        column = Gtk.TreeViewColumn()

        cell_favorites = []
        for i in range(desktop.get_number_of_views()):
            cell_favorites.append(CellRendererFavorite(self, i))
            cell_favorites[i].connect("clicked", self.__favorite_clicked_cb)
            column.pack_start(cell_favorites[i], True)
            column.set_cell_data_func(cell_favorites[i], self.__favorite_set_data_cb)

        self.append_column(column)

        cell_icon = CellRendererActivityIcon(self)
        cell_icon.connect("erase-activated", self.__erase_activated_cb)
        cell_icon.connect("clicked", self.__icon_clicked_cb)

        column = Gtk.TreeViewColumn()
        column.pack_start(cell_icon, True)
        column.add_attribute(cell_icon, "file-name", self._model.column_icon)
        self.append_column(column)

        self._icon_column = column

        cell_text = Gtk.CellRendererText()
        cell_text.props.ellipsize = Pango.EllipsizeMode.MIDDLE
        cell_text.props.ellipsize_set = True

        column = Gtk.TreeViewColumn()
        column.props.sizing = Gtk.TreeViewColumnSizing.GROW_ONLY
        column.props.expand = True
        column.set_sort_column_id(self._model.column_title)
        column.pack_start(cell_text, True)
        column.add_attribute(cell_text, "markup", self._model.column_title)
        self.append_column(column)

        cell_text = Gtk.CellRendererText()
        cell_text.props.xalign = 1

        column = Gtk.TreeViewColumn()
        column.set_alignment(1)
        column.props.sizing = Gtk.TreeViewColumnSizing.GROW_ONLY
        column.props.resizable = True
        column.props.reorderable = True
        column.props.expand = True
        column.set_sort_column_id(self._model.column_version)
        column.pack_start(cell_text, True)
        column.add_attribute(cell_text, "text", self._model.column_version_text)
        self.append_column(column)

        cell_text = Gtk.CellRendererText()
        cell_text.props.xalign = 1

        column = Gtk.TreeViewColumn()
        column.set_alignment(1)
        column.props.sizing = Gtk.TreeViewColumnSizing.GROW_ONLY
        column.props.resizable = True
        column.props.reorderable = True
        column.props.expand = True
        column.set_sort_column_id(self._model.column_date)
        column.pack_start(cell_text, True)
        column.add_attribute(cell_text, "text", self._model.column_date_text)
        self.append_column(column)

        self.set_search_column(self._model.column_title)
        self.set_enable_search(False)
Ejemplo n.º 51
0
 def hide_view_buttons(self):
     for i in range(desktop.get_number_of_views()):
         self._favorites_buttons[i].hide()
     self._list_button.hide()
Ejemplo n.º 52
0
 def hide_view_buttons(self):
     for i in range(desktop.get_number_of_views()):
         self._favorites_buttons[i].hide()
     self._list_button.hide()
Ejemplo n.º 53
0
 def __toolbar_query_changed_cb(self, toolbar, query):
     self._query = normalize_string(query.decode('utf-8'))
     self._list_view.set_filter(self._query)
     for i in range(desktop.get_number_of_views()):
         self._favorites_boxes[i].set_filter(self._query)
Ejemplo n.º 54
0
 def show_view_buttons(self):
     for i in range(desktop.get_number_of_views()):
         self._favorites_buttons[i].show()
     self._list_button.show()