# -*- coding:utf-8 -*- # # Copyright (C) 2018 sthoo # # Support: Report an issue at https://github.com/sth2018/FastWordQuery/issues # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # any later version; http://www.gnu.org/copyleft/gpl.html. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . from aqt.qt import * from ..context import config from ..lang import _, _sl from .base import WIDGET_SIZE, Dialog __all__ = ['FoldersManageDialog'] class FoldersManageDialog(Dialog): ''' Dictionary folder manager window. add or remove dictionary folders. ''' def __init__(self, parent, title=u'Dictionary Folder Manager'): super(FoldersManageDialog, self).__init__(parent, title) # self._dict_paths = [] self.build() def build(self): layout = QVBoxLayout() btn_layout = QHBoxLayout() add_btn = QPushButton("+") remove_btn = QPushButton("-") btn_layout.addWidget(add_btn) btn_layout.addWidget(remove_btn) add_btn.clicked.connect(self.add_folder) remove_btn.clicked.connect(self.remove_folder) self.folders_lst = QListWidget() self.folders_lst.addItems(config.dirs) self.chk_use_filename = QCheckBox(_('CHECK_FILENAME_LABEL')) self.chk_export_media = QCheckBox(_('EXPORT_MEDIA')) self.chk_use_filename.setChecked(config.use_filename) self.chk_export_media.setChecked(config.export_media) chk_layout = QHBoxLayout() chk_layout.addWidget(self.chk_use_filename) chk_layout.addWidget(self.chk_export_media) btnbox = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok, Qt.Orientation.Horizontal, self) btnbox.accepted.connect(self.accept) layout.addLayout(btn_layout) layout.addWidget(self.folders_lst) layout.addLayout(chk_layout) layout.addWidget(btnbox) self.setLayout(layout) def add_folder(self): dir_ = QFileDialog.getExistingDirectory( self, caption=u"Select Folder", directory=config.last_folder, options=QFileDialog.Option.ShowDirsOnly | QFileDialog.Option.DontResolveSymlinks) if dir_: self.folders_lst.addItem(dir_) config.update({'last_folder': dir_}) def remove_folder(self): item = self.folders_lst.takeItem(self.folders_lst.currentRow()) del item @property def dirs(self): '''dictionary folders list''' return [ self.folders_lst.item(i).text() for i in range(self.folders_lst.count()) ] def accept(self): '''ok button clicked''' self.save() super(FoldersManageDialog, self).accept() def save(self): '''save config to file''' data = { 'dirs': self.dirs, 'use_filename': self.chk_use_filename.isChecked(), 'export_media': self.chk_export_media.isChecked() } config.update(data)