def create_editor_switcher(self): """Populate switcher with open files.""" self._switcher.set_placeholder_text( _('Start typing the name of an open file')) editorstack = self._editorstack() paths = [data.filename.lower() for data in editorstack.data] save_statuses = [data.newly_created for data in editorstack.data] short_paths = shorten_paths(paths, save_statuses) for idx, data in enumerate(editorstack.data): path = data.filename title = osp.basename(path) icon = get_file_icon(path) # TODO: Handle of shorten paths based on font size # and available space per item if len(paths[idx]) > 75: path = short_paths[idx] else: path = osp.dirname(data.filename.lower()) last_item = idx + 1 == len(editorstack.data) self._switcher.add_item(title=title, description=path, icon=icon, section=self._section, data=data, last_item=last_item)
def handle_switcher_modes(self, mode): """ Populate switcher with opened notebooks. List the file names of the opened notebooks with their directories in the switcher. Only handle file mode, where `mode` is empty string. """ if mode != '': return paths = [client.get_filename() for client in self.clients] is_unsaved = [False for client in self.clients] short_paths = shorten_paths(paths, is_unsaved) icon = QIcon(os.path.join(PACKAGE_PATH, 'images', 'icon.svg')) section = self.get_plugin_title() for path, short_path, client in zip(paths, short_paths, self.clients): title = osp.basename(path) description = osp.dirname(path) if len(path) > 75: description = short_path is_last_item = (client == self.clients[-1]) self.switcher.add_item(title=title, description=description, icon=icon, section=section, data=client, last_item=is_last_item)