Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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()