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)
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
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