def update_recent_files(self): self._clear_recent_actions() if not len(KnechtSettings.app.get('recent_files', list())): no_entries_dummy = QAction(_("Keine Einträge vorhanden"), self) no_entries_dummy.setEnabled(False) self.recent_actions.append(no_entries_dummy) recent_directories = set() for idx, entry in enumerate(KnechtSettings.app.get('recent_files')): if idx >= 20: break file, file_type = entry file = Path(file) if file.is_file(): directory = file.parent else: directory = file if not path_exists(directory): # Skip non existing files/dirs continue recent_directories.add(directory) if recent_directories: KnechtSettings.app['recent_files'] = [(d.as_posix(), 'directory') for d in recent_directories] for directory in recent_directories: if len(str(directory)) > 95: name = f'...{str(directory)[-95:]}' else: name = str(directory) recent_action = QAction(name, self.recent_section) recent_action.setFont(self.small_font) recent_action.file = directory recent_action.setIcon(IconRsc.get_icon('img')) recent_action.triggered.connect(self.open_recent_dir) self.recent_actions.append(recent_action) self.addActions(self.recent_actions)
def update_recent_files_menu(self): self.recent_menu.clear() if not len(KnechtSettings.app['recent_files']): no_entries_dummy = QAction(_("Keine Einträge vorhanden"), self.recent_menu) no_entries_dummy.setEnabled(False) self.recent_menu.addAction(no_entries_dummy) for idx, entry in enumerate(KnechtSettings.app['recent_files']): if idx >= 20: break file, file_type = entry file_name = Path(file).stem if not path_exists(file): # Skip and remove non existing files KnechtSettings.app['recent_files'].pop(idx) continue recent_action = QAction(f'{file_name} - {file_type}', self.recent_menu) recent_action.file = Path(file) if file_type == 'xml': recent_action.setText(f'{file_name} - Xml Presets') recent_action.setIcon(IconRsc.get_icon('document')) recent_action.triggered.connect(self._open_recent_xml_file) elif file_type == 'xlsx': recent_action.setText(f'{file_name} - Excel Import') recent_action.setIcon(IconRsc.get_icon('excel')) recent_action.triggered.connect(self._open_recent_xlsx_file) elif file_type == 'rksession': recent_action.setText(f'{file_name} - Preset Wizard Session') recent_action.setIcon(IconRsc.get_icon('qub_button')) recent_action.triggered.connect(self._open_recent_rksession) self.recent_menu.addAction(recent_action) self.recent_files_changed.emit()