Beispiel #1
0
    def attach(self, display_manager, display):  # pylint: disable=W0613
        """Given a GdkDisplayManager and a GdkDisplay, call L{scrub_entries} on
        all screens and attach it as a change listener.

        @todo: Do I need to find a way to listen for the addition of new
               screens or is that impossible?

        @todo: When a display emits the "closed" signal, does that display's
               manager also stop listening or is my "only once per filename"
               optimization safe?
        """
        for screen in range(0, display.get_n_screens()):
            manager = gtk.recent_manager_get_for_screen(
                display.get_screen(screen))

            manager_fname = manager.get_property('filename')
            if manager_fname in self.watched_files:
                log.debug("Already watched. Skipping: %s", manager_fname)
                continue
            else:
                log.debug("Watching recent files store: %s", manager_fname)
                self.scrub(manager)
                manager.connect('changed', self.scrub)
                self.watched_files[manager_fname] = manager

            if not os.stat(manager_fname).st_mode & 0777 == 0600:
                log.warning("Bad file permissions on recent list. Fixing: %s",
                            manager_fname)
                try:
                    os.chmod(manager_fname, 0600)
                except OSError:
                    log.error("Failed to chmod %s", manager_fname)
    def attach(self, display_manager, display):  # pylint: disable=W0613
        """Given a GdkDisplayManager and a GdkDisplay, call L{scrub_entries} on
        all screens and attach it as a change listener.

        @todo: Do I need to find a way to listen for the addition of new
               screens or is that impossible?

        @todo: When a display emits the "closed" signal, does that display's
               manager also stop listening or is my "only once per filename"
               optimization safe?
        """
        for screen in range(0, display.get_n_screens()):
            manager = gtk.recent_manager_get_for_screen(
                        display.get_screen(screen))

            manager_fname = manager.get_property('filename')
            if manager_fname in self.watched_files:
                log.debug("Already watched. Skipping: %s", manager_fname)
                continue
            else:
                log.debug("Watching recent files store: %s", manager_fname)
                self.scrub(manager)
                manager.connect('changed', self.scrub)
                self.watched_files[manager_fname] = manager

            if not os.stat(manager_fname).st_mode & 0777 == 0600:
                log.warning("Bad file permissions on recent list. Fixing: %s",
                        manager_fname)
                try:
                    os.chmod(manager_fname, 0600)
                except OSError:
                    log.error("Failed to chmod %s", manager_fname)
Beispiel #3
0
        def fill(self, screen):
                if screen:
                        manager = gtk.recent_manager_get_for_screen(screen)
                else:
                        manager = gtk.recent_manager_get_default()

                items = manager.get_items()
                items.sort(lambda a, b: cmp(b.get_visited(), a.get_visited()))

                added = 0

                for item in items:
                        if item.has_group('gedit'):
                                self.append(gio.File(item.get_uri()))
                                added += 1

                                if added >= self._maxitems:
                                        break
Beispiel #4
0
    def fill(self, screen):
        if screen:
            manager = gtk.recent_manager_get_for_screen(screen)
        else:
            manager = gtk.recent_manager_get_default()

        items = manager.get_items()
        items.sort(lambda a, b: cmp(b.get_visited(), a.get_visited()))

        added = 0

        for item in items:
            if item.has_group('pluma'):
                self.append(gio.File(item.get_uri()))
                added += 1

                if added >= self._maxitems:
                    break