def __init__(self, parent=None):
     super(QComboBox, self).__init__(parent)
     for i in range(1, 357):
         locale = QLocale(i)
         if locale and QLocale.languageToString(locale.language()) != "C":
             codeName = locale.name().split("_")[0]
             if codeName not in self.codesList:
                 self.codesList.append(codeName)
         self.codesList.sort()
         
     for lang in self.codesList:
         locale = QLocale(lang)
         if locale:
             languageName = QLocale.languageToString(locale.language())
             self.languageList.append(languageName.title())
             self.setIconSize(QSize(32, 22))
             codeIcon = QImage(self.iconSize(), QImage.Format_ARGB32)
             painter = QPainter(codeIcon)
             painter.setBrush(Qt.transparent)
             codeIcon.fill(Qt.transparent)
             font = QFontDatabase().systemFont(QFontDatabase.FixedFont)
             painter.setFont(font)
             painter.setPen(self.palette().color(QPalette.Text))
             painter.drawText(codeIcon.rect(), Qt.AlignCenter,lang)
             painter.end()
             self.addItem(QIcon(QPixmap.fromImage(codeIcon)), languageName.title())
    def __createLanguageString(self, language):
        """
        Private method to create a language string given a language identifier.
        
        @param language language identifier
        @type str
        @return language string
        @rtype str
        """
        loc = QLocale(language)

        if loc.language() == QLocale.C:
            return language

        country = QLocale.countryToString(loc.country())
        lang = QLocale.languageToString(loc.language())
        languageString = "{0}/{1} [{2}]".format(lang, country, language)
        return languageString
Beispiel #3
0
def get_available_translations():
    # Returns a list of tuples: (lanugage_name, language_code) for each available translation
    translations_list = [str(p.stem) for p in Path(TRANSLATIONS_DIR).glob('*.qm')]
    translations_list.append("en_US")

    result = {}
    for lang_code in translations_list:
        loc = QLocale(lang_code)
        lang_name = loc.languageToString(loc.language())
        result[lang_name] = lang_code
    return result
    def __init__(self, parent = None):
        super().__init__(parent)
        self.mUi = Ui_PreferencesDialog()
        self.mLanguages = LanguageManager.instance().availableLanguages()

        self.mUi.setupUi(self)
        self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint)
        self.mUi.openGL.setEnabled(QGLFormat.hasOpenGL())
        for name in self.mLanguages:
            locale = QLocale(name)
            string = "%s (%s)"%(QLocale.languageToString(locale.language()), QLocale.countryToString(locale.country()))
            self.mUi.languageCombo.addItem(string, name)

        self.mUi.languageCombo.model().sort(0)
        self.mUi.languageCombo.insertItem(0, self.tr("System default"))
        self.mObjectTypesModel = ObjectTypesModel(self)
        self.mUi.objectTypesTable.setModel(self.mObjectTypesModel)
        self.mUi.objectTypesTable.setItemDelegateForColumn(1, ColorDelegate(self))
        horizontalHeader = self.mUi.objectTypesTable.horizontalHeader()
        horizontalHeader.setSectionResizeMode(QHeaderView.Stretch)
        Utils.setThemeIcon(self.mUi.addObjectTypeButton, "add")
        Utils.setThemeIcon(self.mUi.removeObjectTypeButton, "remove")
        self.fromPreferences()
        self.mUi.languageCombo.currentIndexChanged.connect(self.languageSelected)
        self.mUi.openGL.toggled.connect(self.useOpenGLToggled)
        self.mUi.gridColor.colorChanged.connect(preferences.Preferences.instance().setGridColor)
        self.mUi.gridFine.valueChanged.connect(preferences.Preferences.instance().setGridFine)
        self.mUi.objectLineWidth.valueChanged.connect(self.objectLineWidthChanged)
        self.mUi.objectTypesTable.selectionModel().selectionChanged.connect(self.selectedObjectTypesChanged)
        self.mUi.objectTypesTable.doubleClicked.connect(self.objectTypeIndexClicked)
        self.mUi.addObjectTypeButton.clicked.connect(self.addObjectType)
        self.mUi.removeObjectTypeButton.clicked.connect(self.removeSelectedObjectTypes)
        self.mUi.importObjectTypesButton.clicked.connect(self.importObjectTypes)
        self.mUi.exportObjectTypesButton.clicked.connect(self.exportObjectTypes)
        self.mObjectTypesModel.dataChanged.connect(self.applyObjectTypes)
        self.mObjectTypesModel.rowsRemoved.connect(self.applyObjectTypes)
        self.mUi.autoMapWhileDrawing.toggled.connect(self.useAutomappingDrawingToggled)
        self.mUi.openLastFiles.toggled.connect(self.openLastFilesToggled)