Exemplo n.º 1
0
    def __init__(self, collection, parent=None):
        super(MainSettingsPage, self).__init__(parent)

        settings = Settings()

        layout = QFormLayout()
        layout.setRowWrapPolicy(QFormLayout.WrapLongRows)

        current = 0
        self.languageSelector = QComboBox(self)
        for i, lang in enumerate(self.Languages):
            self.languageSelector.addItem(lang[0], lang[1])
            if settings['locale'] == lang[1]:
                current = i
        self.languageSelector.setCurrentIndex(current)
        self.languageSelector.setSizePolicy(QSizePolicy.Fixed,
                                            QSizePolicy.Fixed)

        layout.addRow(self.tr("Language"), self.languageSelector)

        self.backupFolder = QLineEdit(self)
        self.backupFolder.setMinimumWidth(120)
        self.backupFolder.setText(settings['backup'])
        style = QApplication.style()
        icon = style.standardIcon(QStyle.SP_DirOpenIcon)
        self.backupFolderButton = QPushButton(icon, '', self)
        self.backupFolderButton.clicked.connect(self.backupButtonClicked)

        hLayout = QHBoxLayout()
        hLayout.addWidget(self.backupFolder)
        hLayout.addWidget(self.backupFolderButton)
        hLayout.setContentsMargins(QMargins())

        layout.addRow(self.tr("Backup folder"), hLayout)

        self.reference = QLineEdit(self)
        self.reference.setMinimumWidth(120)
        self.reference.setText(settings['reference'])
        icon = style.standardIcon(QStyle.SP_DialogOpenButton)
        self.referenceButton = QPushButton(icon, '', self)
        self.referenceButton.clicked.connect(self.referenceButtonClicked)

        hLayout = QHBoxLayout()
        hLayout.addWidget(self.reference)
        hLayout.addWidget(self.referenceButton)
        hLayout.setContentsMargins(QMargins())

        layout.addRow(self.tr("Reference"), hLayout)

        self.errorSending = QCheckBox(
                            self.tr("Send error info to author"), self)
        self.errorSending.setChecked(settings['error'])
        layout.addRow(self.errorSending)

        self.checkUpdates = QCheckBox(
                            self.tr("Automatically check for updates"), self)
        self.checkUpdates.setChecked(settings['updates'])
        layout.addRow(self.checkUpdates)

        self.imageSideLen = NumberEdit(self)
        self.imageSideLen.setMaximumWidth(60)
        layout.addRow(self.tr("Max image side len"), self.imageSideLen)
        self.imageSideLen.setText(str(settings['ImageSideLen']))

        self.freeNumeric = QCheckBox(
                            self.tr("Free format numeric fields"), self)
        self.freeNumeric.setChecked(settings['free_numeric'])
        layout.addRow(self.freeNumeric)

        self.storeSorting = QCheckBox(
                            self.tr("Store column sorting"), self)
        self.storeSorting.setChecked(settings['store_sorting'])
        layout.addRow(self.storeSorting)

        self.sortFilter = QCheckBox(
                            self.tr("Sort items in filters (slow)"), self)
        self.sortFilter.setChecked(settings['sort_filter'])
        layout.addRow(self.sortFilter)

        self.sortTree = QCheckBox(
                            self.tr("Sort items in tree (slow)"), self)
        self.sortTree.setChecked(settings['sort_tree'])
        layout.addRow(self.sortTree)

        self.imageName = QCheckBox(
                            self.tr("Point to image file rather than storing image"), self)
        self.imageName.setChecked(settings['image_name'])
        layout.addRow(self.imageName)

        self.imagePath = QLineEdit(self)
        self.imagePath.setMinimumWidth(120)
        self.imagePath.setText(settings['image_path'])
        icon = style.standardIcon(QStyle.SP_DialogOpenButton)
        self.imagePathButton = QPushButton(icon, '', self)
        self.imagePathButton.clicked.connect(self.imagePathButtonClicked)

        hLayout = QHBoxLayout()
        hLayout.addWidget(self.imagePath)
        hLayout.addWidget(self.imagePathButton)
        hLayout.setContentsMargins(QMargins())

        layout.addRow(self.tr("Image Path"), hLayout)

        self.idDates = QCheckBox(
                            self.tr("Tellico import: keep ID and created/modified dates"), self)
        self.idDates.setChecked(settings['id_dates'])
        layout.addRow(self.idDates)

        current = 0
        self.templateSelector = QComboBox(self)
        for i, template in enumerate(Report.scanTemplates()):
            self.templateSelector.addItem(template)
            if settings['template'] == template:
                current = i
        self.templateSelector.setCurrentIndex(current)
        self.templateSelector.setSizePolicy(QSizePolicy.Fixed,
                                            QSizePolicy.Fixed)

        layout.addRow(self.tr("Default template"), self.templateSelector)

        current = 0
        self.titleFormatSelector = QComboBox(self)
        for i, titleFormat in enumerate(['default', 'US']):
            self.titleFormatSelector.addItem(titleFormat)
            if settings['title_format'] == titleFormat:
                current = i
        self.titleFormatSelector.setCurrentIndex(current)
        self.titleFormatSelector.setSizePolicy(QSizePolicy.Fixed,
                                            QSizePolicy.Fixed)

        layout.addRow(self.tr("Title Format"), self.titleFormatSelector)

        self.setLayout(layout)
Exemplo n.º 2
0
    def __init__(self, collection, parent=None):
        super().__init__(parent)

        self.settings = collection.settings
        self.model = collection.model()

        layout = QFormLayout()
        layout.setRowWrapPolicy(QFormLayout.WrapLongRows)

        self.imageSideLen = NumberEdit(self)
        self.imageSideLen.setMaximumWidth(60)
        layout.addRow(self.tr("Max image side len"), self.imageSideLen)
        self.imageSideLen.setText(str(self.settings['ImageSideLen']))
        self.imageSideLen.setToolTip(self.tr("0 for storing in original size"))

        self.imageHeight = QDoubleSpinBox(self)
        self.imageHeight.setRange(1, 3)
        self.imageHeight.setDecimals(1)
        self.imageHeight.setSingleStep(0.1)
        self.imageHeight.setValue(self.settings['image_height'])
        self.imageHeight.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
        layout.addRow(self.tr("Preview image height"), self.imageHeight)

        self.freeNumeric = QCheckBox(self.tr("Free format numeric fields"),
                                     self)
        self.freeNumeric.setChecked(self.settings['free_numeric'])
        layout.addRow(self.freeNumeric)

        self.convertFraction = QCheckBox(
            self.tr("Convert 0.5 to ½ (support ¼, ⅓, ½, ¾, 1¼, 1½, 2½)"), self)
        self.convertFraction.setChecked(self.settings['convert_fraction'])
        layout.addRow(self.convertFraction)

        self.storeSorting = QCheckBox(self.tr("Store column sorting"), self)
        self.storeSorting.setChecked(self.settings['store_sorting'])
        layout.addRow(self.storeSorting)

        self.imagesAtBottom = QCheckBox(self.tr("Images at bottom"), self)
        self.imagesAtBottom.setChecked(self.settings['images_at_bottom'])
        layout.addRow(self.imagesAtBottom)

        self.enableBC = QCheckBox(self.tr("Enable BC"), self)
        self.enableBC.setChecked(self.settings['enable_bc'])
        layout.addRow(self.enableBC)

        self.richText = QCheckBox(self.tr("Use RichText format"), self)
        self.richText.setChecked(self.settings['rich_text'])
        layout.addRow(self.richText)

        vLayout = QVBoxLayout()
        showIcons = QGroupBox(self.tr("Show icons from reference (slow)"),
                              self)
        self.showTreeIcons = QCheckBox(self.tr("in tree"), self)
        self.showTreeIcons.setChecked(self.settings['show_tree_icons'])
        vLayout.addWidget(self.showTreeIcons)
        self.showFilterIcons = QCheckBox(self.tr("in filters"), self)
        self.showFilterIcons.setChecked(self.settings['show_filter_icons'])
        vLayout.addWidget(self.showFilterIcons)
        self.showListIcons = QCheckBox(self.tr("in list"), self)
        self.showListIcons.setChecked(self.settings['show_list_icons'])
        vLayout.addWidget(self.showListIcons)
        showIcons.setLayout(vLayout)
        layout.addRow(showIcons)

        gLayout = QGridLayout()
        statuses = QGroupBox(self.tr("Used statuses"), self)
        self.statusUsed = {}
        statuses_per_col = len(Statuses.Keys) / 4
        for i, status in enumerate(Statuses.Keys):
            statusCheckBox = QCheckBox(Statuses[status], self)
            statusCheckBox.setChecked(self.settings[status + '_status_used'])
            self.statusUsed[status] = statusCheckBox
            gLayout.addWidget(statusCheckBox, i % statuses_per_col,
                              i / statuses_per_col)
        statuses.setLayout(gLayout)
        layout.addRow(statuses)

        self.defaultStatus = QComboBox(self)
        for status in Statuses.Keys:
            self.defaultStatus.addItem(Statuses[status], status)
        index = self.defaultStatus.findData(self.settings['default_status'])
        self.defaultStatus.setCurrentIndex(index)
        self.defaultStatus.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
        layout.addRow(self.tr("Default status for new coin"),
                      self.defaultStatus)

        self.setLayout(layout)
Exemplo n.º 3
0
class MainSettingsPage(QWidget):
    Languages = [("Čeština", 'cs'), ("English", 'en'), ("Ελληνικά", 'el'),
                 ("Español", 'es'), ("Deutsch", 'de'), ("Italiano", 'it'),
                 ("Magyar", 'hu'), ("Polski", 'pl'), ("Português", 'pt'),
                 ("Русский", 'ru'), ("Український", 'uk')]

    def __init__(self, collection, parent=None):
        super(MainSettingsPage, self).__init__(parent)

        settings = Settings()

        layout = QFormLayout()
        layout.setRowWrapPolicy(QFormLayout.WrapLongRows)

        current = 0
        self.languageSelector = QComboBox(self)
        for i, lang in enumerate(self.Languages):
            self.languageSelector.addItem(lang[0], lang[1])
            if settings['locale'] == lang[1]:
                current = i
        self.languageSelector.setCurrentIndex(current)
        self.languageSelector.setSizePolicy(QSizePolicy.Fixed,
                                            QSizePolicy.Fixed)

        layout.addRow(self.tr("Language"), self.languageSelector)

        self.backupFolder = QLineEdit(self)
        self.backupFolder.setMinimumWidth(120)
        self.backupFolder.setText(settings['backup'])
        style = QApplication.style()
        icon = style.standardIcon(QStyle.SP_DirOpenIcon)
        self.backupFolderButton = QPushButton(icon, '', self)
        self.backupFolderButton.clicked.connect(self.backupButtonClicked)

        hLayout = QHBoxLayout()
        hLayout.addWidget(self.backupFolder)
        hLayout.addWidget(self.backupFolderButton)
        hLayout.setContentsMargins(QMargins())

        layout.addRow(self.tr("Backup folder"), hLayout)

        self.reference = QLineEdit(self)
        self.reference.setMinimumWidth(120)
        self.reference.setText(settings['reference'])
        icon = style.standardIcon(QStyle.SP_DialogOpenButton)
        self.referenceButton = QPushButton(icon, '', self)
        self.referenceButton.clicked.connect(self.referenceButtonClicked)

        hLayout = QHBoxLayout()
        hLayout.addWidget(self.reference)
        hLayout.addWidget(self.referenceButton)
        hLayout.setContentsMargins(QMargins())

        layout.addRow(self.tr("Reference"), hLayout)

        self.errorSending = QCheckBox(
                            self.tr("Send error info to author"), self)
        self.errorSending.setChecked(settings['error'])
        layout.addRow(self.errorSending)

        self.checkUpdates = QCheckBox(
                            self.tr("Automatically check for updates"), self)
        self.checkUpdates.setChecked(settings['updates'])
        layout.addRow(self.checkUpdates)

        self.imageSideLen = NumberEdit(self)
        self.imageSideLen.setMaximumWidth(60)
        layout.addRow(self.tr("Max image side len"), self.imageSideLen)
        self.imageSideLen.setText(str(settings['ImageSideLen']))

        self.freeNumeric = QCheckBox(
                            self.tr("Free format numeric fields"), self)
        self.freeNumeric.setChecked(settings['free_numeric'])
        layout.addRow(self.freeNumeric)

        self.storeSorting = QCheckBox(
                            self.tr("Store column sorting"), self)
        self.storeSorting.setChecked(settings['store_sorting'])
        layout.addRow(self.storeSorting)

        self.sortFilter = QCheckBox(
                            self.tr("Sort items in filters (slow)"), self)
        self.sortFilter.setChecked(settings['sort_filter'])
        layout.addRow(self.sortFilter)

        self.sortTree = QCheckBox(
                            self.tr("Sort items in tree (slow)"), self)
        self.sortTree.setChecked(settings['sort_tree'])
        layout.addRow(self.sortTree)

        self.imageName = QCheckBox(
                            self.tr("Point to image file rather than storing image"), self)
        self.imageName.setChecked(settings['image_name'])
        layout.addRow(self.imageName)

        self.imagePath = QLineEdit(self)
        self.imagePath.setMinimumWidth(120)
        self.imagePath.setText(settings['image_path'])
        icon = style.standardIcon(QStyle.SP_DialogOpenButton)
        self.imagePathButton = QPushButton(icon, '', self)
        self.imagePathButton.clicked.connect(self.imagePathButtonClicked)

        hLayout = QHBoxLayout()
        hLayout.addWidget(self.imagePath)
        hLayout.addWidget(self.imagePathButton)
        hLayout.setContentsMargins(QMargins())

        layout.addRow(self.tr("Image Path"), hLayout)

        self.idDates = QCheckBox(
                            self.tr("Tellico import: keep ID and created/modified dates"), self)
        self.idDates.setChecked(settings['id_dates'])
        layout.addRow(self.idDates)

        current = 0
        self.templateSelector = QComboBox(self)
        for i, template in enumerate(Report.scanTemplates()):
            self.templateSelector.addItem(template)
            if settings['template'] == template:
                current = i
        self.templateSelector.setCurrentIndex(current)
        self.templateSelector.setSizePolicy(QSizePolicy.Fixed,
                                            QSizePolicy.Fixed)

        layout.addRow(self.tr("Default template"), self.templateSelector)

        current = 0
        self.titleFormatSelector = QComboBox(self)
        for i, titleFormat in enumerate(['default', 'US']):
            self.titleFormatSelector.addItem(titleFormat)
            if settings['title_format'] == titleFormat:
                current = i
        self.titleFormatSelector.setCurrentIndex(current)
        self.titleFormatSelector.setSizePolicy(QSizePolicy.Fixed,
                                            QSizePolicy.Fixed)

        layout.addRow(self.tr("Title Format"), self.titleFormatSelector)

        self.setLayout(layout)

    def backupButtonClicked(self):
        folder = QFileDialog.getExistingDirectory(self,
                                                self.tr("Backup folder"),
                                                self.backupFolder.text())
        if folder:
            self.backupFolder.setText(folder)

    def referenceButtonClicked(self):
        file, _selectedFilter = QFileDialog.getOpenFileName(self,
                                                self.tr("Select reference"),
                                                self.reference.text(),
                                                "*.ref")
        if file:
            self.reference.setText(file)

    def imagePathButtonClicked(self):
        file, _selectedFilter = QFileDialog.getOpenFileName(self,
                                                self.tr("Select imagePath"),
                                                self.imagePath.text(),
                                                "*.ref")
        if file:
            self.imagePath.setText(file)

    def save(self):
        settings = Settings()

        current = self.languageSelector.currentIndex()
        settings['locale'] = self.languageSelector.itemData(current)
        settings['backup'] = self.backupFolder.text()
        settings['reference'] = self.reference.text()
        settings['error'] = self.errorSending.isChecked()
        settings['updates'] = self.checkUpdates.isChecked()
        settings['free_numeric'] = self.freeNumeric.isChecked()
        settings['store_sorting'] = self.storeSorting.isChecked()
        settings['sort_filter'] = self.sortFilter.isChecked()
        settings['sort_tree'] = self.sortTree.isChecked()
        settings['image_name'] = self.imageName.isChecked()
        settings['image_path'] = self.imagePath.text()
        settings['id_dates'] = self.idDates.isChecked()
        settings['title_format'] = self.titleFormatSelector.currentText()
        settings['template'] = self.templateSelector.currentText()
        settings['ImageSideLen'] = int(self.imageSideLen.text())

        settings.save()
    def __init__(self, collection, parent=None):
        super().__init__(parent)

        self.settings = collection.settings
        self.model = collection.model()

        layout = QFormLayout()
        layout.setRowWrapPolicy(QFormLayout.WrapLongRows)

        self.imageSideLen = NumberEdit(self)
        self.imageSideLen.setMaximumWidth(60)
        layout.addRow(self.tr("Max image side len"), self.imageSideLen)
        self.imageSideLen.setText(str(self.settings['ImageSideLen']))
        self.imageSideLen.setToolTip(self.tr("0 for storing in original size"))

        self.imageHeight = QComboBox(self)
        default_height = ('1', '1.5', '1.8', '2.3')
        for height in default_height:
            self.imageHeight.addItem(height)
        height = str(self.settings['image_height'])
        if height not in default_height:
            self.imageHeight.addItem(height)
        self.imageHeight.setCurrentText(height)
        self.imageHeight.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
        layout.addRow(self.tr("Preview image height"), self.imageHeight)

        self.freeNumeric = QCheckBox(self.tr("Free format numeric fields"),
                                     self)
        self.freeNumeric.setChecked(self.settings['free_numeric'])
        layout.addRow(self.freeNumeric)

        self.convertFraction = QCheckBox(
            self.tr("Convert 0.5 to ½ (support ¼, ⅓, ½, ¾, 1¼, 1½, 2½)"), self)
        self.convertFraction.setChecked(self.settings['convert_fraction'])
        layout.addRow(self.convertFraction)

        self.storeSorting = QCheckBox(self.tr("Store column sorting"), self)
        self.storeSorting.setChecked(self.settings['store_sorting'])
        layout.addRow(self.storeSorting)

        self.imagesAtBottom = QCheckBox(self.tr("Images at bottom"), self)
        self.imagesAtBottom.setChecked(self.settings['images_at_bottom'])
        layout.addRow(self.imagesAtBottom)

        vLayout = QVBoxLayout()
        showIcons = QGroupBox(self.tr("Show icons from reference (slow)"),
                              self)
        self.showTreeIcons = QCheckBox(self.tr("in tree"), self)
        self.showTreeIcons.setChecked(self.settings['show_tree_icons'])
        vLayout.addWidget(self.showTreeIcons)
        self.showFilterIcons = QCheckBox(self.tr("in filters"), self)
        self.showFilterIcons.setChecked(self.settings['show_filter_icons'])
        vLayout.addWidget(self.showFilterIcons)
        self.showListIcons = QCheckBox(self.tr("in list"), self)
        self.showListIcons.setChecked(self.settings['show_list_icons'])
        vLayout.addWidget(self.showListIcons)
        showIcons.setLayout(vLayout)
        layout.addRow(showIcons)

        gLayout = QGridLayout()
        statuses = QGroupBox(self.tr("Used statuses"), self)
        self.statusUsed = {}
        statuses_per_col = len(Statuses.Keys) / 4
        for i, status in enumerate(Statuses.Keys):
            statusCheckBox = QCheckBox(Statuses[status], self)
            statusCheckBox.setChecked(self.settings[status + '_status_used'])
            self.statusUsed[status] = statusCheckBox
            gLayout.addWidget(statusCheckBox, i % statuses_per_col,
                              i / statuses_per_col)
        statuses.setLayout(gLayout)
        layout.addRow(statuses)

        self.setLayout(layout)
Exemplo n.º 5
0
class CollectionSettingsPage(QWidget):
    def __init__(self, collection, parent=None):
        super().__init__(parent)

        self.settings = collection.settings
        self.model = collection.model()

        layout = QFormLayout()
        layout.setRowWrapPolicy(QFormLayout.WrapLongRows)

        self.imageSideLen = NumberEdit(self)
        self.imageSideLen.setMaximumWidth(60)
        layout.addRow(self.tr("Max image side len"), self.imageSideLen)
        self.imageSideLen.setText(str(self.settings['ImageSideLen']))
        self.imageSideLen.setToolTip(self.tr("0 for storing in original size"))

        self.imageHeight = QComboBox(self)
        default_height = ('1', '1.5', '1.8', '2.3')
        for height in default_height:
            self.imageHeight.addItem(height)
        height = str(self.settings['image_height'])
        if height not in default_height:
            self.imageHeight.addItem(height)
        self.imageHeight.setCurrentText(height)
        self.imageHeight.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
        layout.addRow(self.tr("Preview image height"), self.imageHeight)

        self.freeNumeric = QCheckBox(self.tr("Free format numeric fields"),
                                     self)
        self.freeNumeric.setChecked(self.settings['free_numeric'])
        layout.addRow(self.freeNumeric)

        self.convertFraction = QCheckBox(
            self.tr("Convert 0.5 to ½ (support ¼, ⅓, ½, ¾, 1¼, 1½, 2½)"), self)
        self.convertFraction.setChecked(self.settings['convert_fraction'])
        layout.addRow(self.convertFraction)

        self.storeSorting = QCheckBox(self.tr("Store column sorting"), self)
        self.storeSorting.setChecked(self.settings['store_sorting'])
        layout.addRow(self.storeSorting)

        self.imagesAtBottom = QCheckBox(self.tr("Images at bottom"), self)
        self.imagesAtBottom.setChecked(self.settings['images_at_bottom'])
        layout.addRow(self.imagesAtBottom)

        self.enableBC = QCheckBox(self.tr("Enable BC"), self)
        self.enableBC.setChecked(self.settings['enable_bc'])
        layout.addRow(self.enableBC)

        self.richText = QCheckBox(self.tr("Use RichText format"), self)
        self.richText.setChecked(self.settings['rich_text'])
        layout.addRow(self.richText)

        vLayout = QVBoxLayout()
        showIcons = QGroupBox(self.tr("Show icons from reference (slow)"),
                              self)
        self.showTreeIcons = QCheckBox(self.tr("in tree"), self)
        self.showTreeIcons.setChecked(self.settings['show_tree_icons'])
        vLayout.addWidget(self.showTreeIcons)
        self.showFilterIcons = QCheckBox(self.tr("in filters"), self)
        self.showFilterIcons.setChecked(self.settings['show_filter_icons'])
        vLayout.addWidget(self.showFilterIcons)
        self.showListIcons = QCheckBox(self.tr("in list"), self)
        self.showListIcons.setChecked(self.settings['show_list_icons'])
        vLayout.addWidget(self.showListIcons)
        showIcons.setLayout(vLayout)
        layout.addRow(showIcons)

        gLayout = QGridLayout()
        statuses = QGroupBox(self.tr("Used statuses"), self)
        self.statusUsed = {}
        statuses_per_col = len(Statuses.Keys) / 4
        for i, status in enumerate(Statuses.Keys):
            statusCheckBox = QCheckBox(Statuses[status], self)
            statusCheckBox.setChecked(self.settings[status + '_status_used'])
            self.statusUsed[status] = statusCheckBox
            gLayout.addWidget(statusCheckBox, i % statuses_per_col,
                              i / statuses_per_col)
        statuses.setLayout(gLayout)
        layout.addRow(statuses)

        self.setLayout(layout)

    def save(self):
        self.settings['free_numeric'] = self.freeNumeric.isChecked()
        self.settings['convert_fraction'] = self.convertFraction.isChecked()
        self.settings['store_sorting'] = self.storeSorting.isChecked()
        self.settings['show_tree_icons'] = self.showTreeIcons.isChecked()
        self.settings['show_filter_icons'] = self.showFilterIcons.isChecked()
        self.settings['show_list_icons'] = self.showListIcons.isChecked()
        self.settings['ImageSideLen'] = int(self.imageSideLen.text())
        old_image_height = self.settings['image_height']
        self.settings['image_height'] = float(self.imageHeight.currentText())
        self.settings['images_at_bottom'] = self.imagesAtBottom.isChecked()
        self.settings['enable_bc'] = self.enableBC.isChecked()
        self.settings['rich_text'] = self.richText.isChecked()

        for status in Statuses.Keys:
            self.settings[
                status + '_status_used'] = self.statusUsed[status].isChecked()

        self.settings.save()

        if self.settings['image_height'] != old_image_height:
            result = QMessageBox.question(
                self, self.tr("Settings"),
                self.tr(
                    "Preview image height was changed. Recalculate it now?"),
                QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes)
            if result == QMessageBox.Yes:
                self.model.recalculateAllImages(self)
Exemplo n.º 6
0
    def __init__(self, collection, parent=None):
        super(MainSettingsPage, self).__init__(parent)

        settings = Settings()

        layout = QFormLayout()
        layout.setRowWrapPolicy(QFormLayout.WrapLongRows)

        current = 0
        self.languageSelector = QComboBox(self)
        for i, lang in enumerate(self.Languages):
            self.languageSelector.addItem(lang[0], lang[1])
            if settings['locale'] == lang[1]:
                current = i
        self.languageSelector.setCurrentIndex(current)
        self.languageSelector.setSizePolicy(QSizePolicy.Fixed,
                                            QSizePolicy.Fixed)

        layout.addRow(self.tr("Language"), self.languageSelector)

        self.backupFolder = QLineEdit(self)
        self.backupFolder.setMinimumWidth(120)
        self.backupFolder.setText(settings['backup'])
        style = QApplication.style()
        icon = style.standardIcon(QStyle.SP_DirOpenIcon)
        self.backupFolderButton = QPushButton(icon, '', self)
        self.backupFolderButton.clicked.connect(self.backupButtonClicked)

        hLayout = QHBoxLayout()
        hLayout.addWidget(self.backupFolder)
        hLayout.addWidget(self.backupFolderButton)
        hLayout.setContentsMargins(QMargins())

        layout.addRow(self.tr("Backup folder"), hLayout)

        self.reference = QLineEdit(self)
        self.reference.setMinimumWidth(120)
        self.reference.setText(settings['reference'])
        icon = style.standardIcon(QStyle.SP_DialogOpenButton)
        self.referenceButton = QPushButton(icon, '', self)
        self.referenceButton.clicked.connect(self.referenceButtonClicked)

        hLayout = QHBoxLayout()
        hLayout.addWidget(self.reference)
        hLayout.addWidget(self.referenceButton)
        hLayout.setContentsMargins(QMargins())

        layout.addRow(self.tr("Reference"), hLayout)

        self.errorSending = QCheckBox(self.tr("Send error info to author"),
                                      self)
        self.errorSending.setChecked(settings['error'])
        layout.addRow(self.errorSending)

        self.checkUpdates = QCheckBox(
            self.tr("Automatically check for updates"), self)
        self.checkUpdates.setChecked(settings['updates'])
        layout.addRow(self.checkUpdates)

        self.imageSideLen = NumberEdit(self)
        self.imageSideLen.setMaximumWidth(60)
        layout.addRow(self.tr("Max image side len"), self.imageSideLen)
        self.imageSideLen.setText(str(settings['ImageSideLen']))

        self.freeNumeric = QCheckBox(self.tr("Free format numeric fields"),
                                     self)
        self.freeNumeric.setChecked(settings['free_numeric'])
        layout.addRow(self.freeNumeric)

        self.storeSorting = QCheckBox(self.tr("Store column sorting"), self)
        self.storeSorting.setChecked(settings['store_sorting'])
        layout.addRow(self.storeSorting)

        self.sortFilter = QCheckBox(self.tr("Sort items in filters (slow)"),
                                    self)
        self.sortFilter.setChecked(settings['sort_filter'])
        layout.addRow(self.sortFilter)

        self.sortTree = QCheckBox(self.tr("Sort items in tree (slow)"), self)
        self.sortTree.setChecked(settings['sort_tree'])
        layout.addRow(self.sortTree)

        current = 0
        self.templateSelector = QComboBox(self)
        for i, template in enumerate(Report.scanTemplates()):
            self.templateSelector.addItem(template)
            if settings['template'] == template:
                current = i
        self.templateSelector.setCurrentIndex(current)
        self.templateSelector.setSizePolicy(QSizePolicy.Fixed,
                                            QSizePolicy.Fixed)

        layout.addRow(self.tr("Default template"), self.templateSelector)

        self.setLayout(layout)
Exemplo n.º 7
0
class MainSettingsPage(QWidget):
    Languages = [("Čeština", 'cs'), ("English", 'en'), ("Ελληνικά", 'el'),
                 ("Español", 'es'), ("Deutsch", 'de'), ("Français", 'fr'),
                 ("Italiano", 'it'), ("Magyar", 'hu'), ("Polski", 'pl'),
                 ("Português", 'pt'), ("Русский", 'ru'), ("Український", 'uk')]

    def __init__(self, collection, parent=None):
        super(MainSettingsPage, self).__init__(parent)

        settings = Settings()

        layout = QFormLayout()
        layout.setRowWrapPolicy(QFormLayout.WrapLongRows)

        current = 0
        self.languageSelector = QComboBox(self)
        for i, lang in enumerate(self.Languages):
            self.languageSelector.addItem(lang[0], lang[1])
            if settings['locale'] == lang[1]:
                current = i
        self.languageSelector.setCurrentIndex(current)
        self.languageSelector.setSizePolicy(QSizePolicy.Fixed,
                                            QSizePolicy.Fixed)

        layout.addRow(self.tr("Language"), self.languageSelector)

        self.backupFolder = QLineEdit(self)
        self.backupFolder.setMinimumWidth(120)
        self.backupFolder.setText(settings['backup'])
        style = QApplication.style()
        icon = style.standardIcon(QStyle.SP_DirOpenIcon)
        self.backupFolderButton = QPushButton(icon, '', self)
        self.backupFolderButton.clicked.connect(self.backupButtonClicked)

        hLayout = QHBoxLayout()
        hLayout.addWidget(self.backupFolder)
        hLayout.addWidget(self.backupFolderButton)
        hLayout.setContentsMargins(QMargins())

        layout.addRow(self.tr("Backup folder"), hLayout)

        self.reference = QLineEdit(self)
        self.reference.setMinimumWidth(120)
        self.reference.setText(settings['reference'])
        icon = style.standardIcon(QStyle.SP_DialogOpenButton)
        self.referenceButton = QPushButton(icon, '', self)
        self.referenceButton.clicked.connect(self.referenceButtonClicked)

        hLayout = QHBoxLayout()
        hLayout.addWidget(self.reference)
        hLayout.addWidget(self.referenceButton)
        hLayout.setContentsMargins(QMargins())

        layout.addRow(self.tr("Reference"), hLayout)

        self.errorSending = QCheckBox(self.tr("Send error info to author"),
                                      self)
        self.errorSending.setChecked(settings['error'])
        layout.addRow(self.errorSending)

        self.checkUpdates = QCheckBox(
            self.tr("Automatically check for updates"), self)
        self.checkUpdates.setChecked(settings['updates'])
        layout.addRow(self.checkUpdates)

        self.imageSideLen = NumberEdit(self)
        self.imageSideLen.setMaximumWidth(60)
        layout.addRow(self.tr("Max image side len"), self.imageSideLen)
        self.imageSideLen.setText(str(settings['ImageSideLen']))

        self.freeNumeric = QCheckBox(self.tr("Free format numeric fields"),
                                     self)
        self.freeNumeric.setChecked(settings['free_numeric'])
        layout.addRow(self.freeNumeric)

        self.storeSorting = QCheckBox(self.tr("Store column sorting"), self)
        self.storeSorting.setChecked(settings['store_sorting'])
        layout.addRow(self.storeSorting)

        self.sortFilter = QCheckBox(self.tr("Sort items in filters (slow)"),
                                    self)
        self.sortFilter.setChecked(settings['sort_filter'])
        layout.addRow(self.sortFilter)

        self.sortTree = QCheckBox(self.tr("Sort items in tree (slow)"), self)
        self.sortTree.setChecked(settings['sort_tree'])
        layout.addRow(self.sortTree)

        current = 0
        self.templateSelector = QComboBox(self)
        for i, template in enumerate(Report.scanTemplates()):
            self.templateSelector.addItem(template)
            if settings['template'] == template:
                current = i
        self.templateSelector.setCurrentIndex(current)
        self.templateSelector.setSizePolicy(QSizePolicy.Fixed,
                                            QSizePolicy.Fixed)

        layout.addRow(self.tr("Default template"), self.templateSelector)

        self.setLayout(layout)

    def backupButtonClicked(self):
        folder = QFileDialog.getExistingDirectory(self,
                                                  self.tr("Backup folder"),
                                                  self.backupFolder.text())
        if folder:
            self.backupFolder.setText(folder)

    def referenceButtonClicked(self):
        file, _selectedFilter = QFileDialog.getOpenFileName(
            self, self.tr("Select reference"), self.reference.text(), "*.ref")
        if file:
            self.reference.setText(file)

    def save(self):
        settings = Settings()

        current = self.languageSelector.currentIndex()
        settings['locale'] = self.languageSelector.itemData(current)
        settings['backup'] = self.backupFolder.text()
        settings['reference'] = self.reference.text()
        settings['error'] = self.errorSending.isChecked()
        settings['updates'] = self.checkUpdates.isChecked()
        settings['free_numeric'] = self.freeNumeric.isChecked()
        settings['store_sorting'] = self.storeSorting.isChecked()
        settings['sort_filter'] = self.sortFilter.isChecked()
        settings['sort_tree'] = self.sortTree.isChecked()
        settings['template'] = self.templateSelector.currentText()
        settings['ImageSideLen'] = int(self.imageSideLen.text())

        settings.save()
Exemplo n.º 8
0
    def __init__(self, collection, parent=None):
        super().__init__(parent)

        self.settings = collection.settings
        self.model = collection.model()

        layout = QFormLayout()
        layout.setRowWrapPolicy(QFormLayout.WrapLongRows)

        self.imageSideLen = NumberEdit(self)
        self.imageSideLen.setMaximumWidth(60)
        layout.addRow(self.tr("Max image side len"), self.imageSideLen)
        self.imageSideLen.setText(str(self.settings['ImageSideLen']))
        self.imageSideLen.setToolTip(self.tr("0 for storing in original size"))

        self.imageHeight = QDoubleSpinBox(self)
        self.imageHeight.setRange(1, 3)
        self.imageHeight.setDecimals(1)
        self.imageHeight.setSingleStep(0.1)
        self.imageHeight.setValue(self.settings['image_height'])
        self.imageHeight.setSizePolicy(QSizePolicy.Fixed,
                                       QSizePolicy.Fixed)
        layout.addRow(self.tr("Preview image height"), self.imageHeight)

        self.freeNumeric = QCheckBox(
                            self.tr("Free format numeric fields"), self)
        self.freeNumeric.setChecked(self.settings['free_numeric'])
        layout.addRow(self.freeNumeric)

        self.convertFraction = QCheckBox(
            self.tr("Convert 0.5 to ½ (support ¼, ⅓, ½, ¾, 1¼, 1½, 2½)"), self)
        self.convertFraction.setChecked(self.settings['convert_fraction'])
        layout.addRow(self.convertFraction)

        self.storeSorting = QCheckBox(
                            self.tr("Store column sorting"), self)
        self.storeSorting.setChecked(self.settings['store_sorting'])
        layout.addRow(self.storeSorting)

        self.imagesAtBottom = QCheckBox(self.tr("Images at bottom"), self)
        self.imagesAtBottom.setChecked(self.settings['images_at_bottom'])
        layout.addRow(self.imagesAtBottom)

        self.enableBC = QCheckBox(self.tr("Enable BC"), self)
        self.enableBC.setChecked(self.settings['enable_bc'])
        layout.addRow(self.enableBC)

        self.richText = QCheckBox(self.tr("Use RichText format"), self)
        self.richText.setChecked(self.settings['rich_text'])
        layout.addRow(self.richText)

        vLayout = QVBoxLayout()
        showIcons = QGroupBox(self.tr("Show icons from reference (slow)"), self)
        self.showTreeIcons = QCheckBox(self.tr("in tree"), self)
        self.showTreeIcons.setChecked(self.settings['show_tree_icons'])
        vLayout.addWidget(self.showTreeIcons)
        self.showFilterIcons = QCheckBox(self.tr("in filters"), self)
        self.showFilterIcons.setChecked(self.settings['show_filter_icons'])
        vLayout.addWidget(self.showFilterIcons)
        self.showListIcons = QCheckBox(self.tr("in list"), self)
        self.showListIcons.setChecked(self.settings['show_list_icons'])
        vLayout.addWidget(self.showListIcons)
        showIcons.setLayout(vLayout)
        layout.addRow(showIcons)

        gLayout = QGridLayout()
        statuses = QGroupBox(self.tr("Used statuses"), self)
        self.statusUsed = {}
        statuses_per_col = len(Statuses.Keys) / 4
        for i, status in enumerate(Statuses.Keys):
            statusCheckBox = QCheckBox(Statuses[status], self)
            statusCheckBox.setChecked(self.settings[status + '_status_used'])
            self.statusUsed[status] = statusCheckBox
            gLayout.addWidget(statusCheckBox, i % statuses_per_col, i / statuses_per_col)
        statuses.setLayout(gLayout)
        layout.addRow(statuses)

        self.defaultStatus = QComboBox(self)
        for status in Statuses.Keys:
            self.defaultStatus.addItem(Statuses[status], status)
        index = self.defaultStatus.findData(self.settings['default_status'])
        self.defaultStatus.setCurrentIndex(index)
        self.defaultStatus.setSizePolicy(QSizePolicy.Fixed,
                                         QSizePolicy.Fixed)
        layout.addRow(self.tr("Default status for new coin"),
                      self.defaultStatus)

        self.setLayout(layout)