Add an option for monospace font

Julien LepillerThu May 10 14:54:38+0200 2018

86b3362

Add an option for monospace font

offlate/window.py

3030
        return self.value
3131
3232
class ProjectView(QWidget):
33-
    def __init__(self, project, showTranslated = True, showUntranslated = True, showFuzzy = True, parent = None):
33+
    def __init__(self, project, showTranslated = True, showUntranslated = True,
34+
                showFuzzy = True, monospace = False, parent = None):
3435
        super(ProjectView, self).__init__(parent)
3536
        self.project = project
3637
        self.content = self.project.content()

3839
        self.showTranslated = showTranslated
3940
        self.showUntranslated = showUntranslated
4041
        self.showFuzzy = showFuzzy
42+
        self.monospace = monospace
4143
        self.initUI()
4244
4345
    def updateContent(self):

100102
        self.msgid.deleteLater()
101103
        self.msgstr.deleteLater()
102104
105+
        font = "monospace" if self.monospace else "sans-serif"
106+
103107
        if len(data.msgstrs) > 1:
104108
            self.msgid = QTabWidget();
105109
            self.msgstr = QTabWidget();
106110
            singular = QTextEdit()
111+
            singular.setFont(QFont(font))
107112
            singular.setReadOnly(True)
108113
            singular.setText(data.msgids[0])
109114
            plural = QTextEdit()
115+
            plural.setFont(QFont(font))
110116
            plural.setReadOnly(True)
111117
            plural.setText(data.msgids[1])
112118
            self.msgid.addTab(singular, self.tr("Singular"))

114120
            i = 0
115121
            for msgstr in data.msgstrs:
116122
                form = SpellCheckEdit(self.project.lang)
123+
                form.setFont(QFont(font))
117124
                form.setText(msgstr)
118125
                form.textChanged.connect(self.modify)
119126
                self.msgstr.addTab(form, str(i))
120127
                i=i+1
121128
        else:
122129
            self.msgid = QTextEdit()
130+
            self.msgid.setFont(QFont(font))
123131
            self.msgid.setReadOnly(True)
124-
            self.msgstr = SpellCheckEdit(self.project.lang)
125132
            self.msgid.setText(data.msgids[0])
133+
            self.msgstr = SpellCheckEdit(self.project.lang)
134+
            self.msgstr.setFont(QFont(font))
126135
            self.msgstr.setText(data.msgstrs[0])
127136
            self.msgstr.textChanged.connect(self.modify)
128137
        self.hbox.addWidget(self.msgid)

165174
        self.showFuzzy = showFuzzy
166175
        self.updateContent()
167176
177+
    def setFont(self, monospace):
178+
        self.monospace = monospace
179+
        current = self.treeWidget.currentItem()
180+
        self.selectItem(current, current)
181+
168182
class NewWindow(QDialog):
169183
    def __init__(self, manager, parent = None):
170184
        super().__init__(parent)

414428
415429
    def open(self, name):
416430
        project = self.manager.getProject(name)
417-
        self.tabs.addTab(ProjectView(project), name)
431+
        self.tabs.addTab(ProjectView(project,
432+
            showTranslated = self.showTranslatedAct.isChecked(),
433+
            showUntranslated = self.showUntranslatedAct.isChecked(),
434+
            showFuzzy = self.showFuzzyAct.isChecked(),
435+
            monospace = self.monospaceAct.isChecked()), name)
418436
419437
    def save(self):
420438
        self.tabs.currentWidget().save()

450468
                self.showUntranslatedAct.isChecked(),
451469
                self.showFuzzyAct.isChecked())
452470
471+
    def setFont(self):
472+
        for i in range(0, self.tabs.count()):
473+
            self.tabs.widget(i).setFont(self.monospaceAct.isChecked())
474+
453475
    def initUI(self):
454476
        # Build menu
455477
        exitAct = QAction(QIcon('exit.png'), self.tr('Exit'), self)

495517
        self.showUntranslatedAct = QAction(self.tr('Show Empty Translation'), self, checkable=True)
496518
        self.showUntranslatedAct.setChecked(True)
497519
        self.showUntranslatedAct.triggered.connect(self.filter)
520+
        self.monospaceAct = QAction(self.tr('Use a monospace font'), self, checkable=True)
521+
        self.monospaceAct.setChecked(False)
522+
        self.monospaceAct.triggered.connect(self.setFont)
498523
499524
        self.statusBar()
500525

522547
        viewMenu.addAction(self.showTranslatedAct)
523548
        viewMenu.addAction(self.showUntranslatedAct)
524549
        viewMenu.addAction(self.showFuzzyAct)
550+
        viewMenu.addSeparator()
551+
        viewMenu.addAction(self.monospaceAct)
525552
526553
        self.tabs = ProjectTab()
527554

setup.py

22
33
setup (
44
    name="offlate",
5-
    version="0.1",
5+
    version="0.1.1.dev",
66
    packages=find_packages(exclude=['.guix-profile*']),
77
    python_requires = '>=3',
88
    install_requires=['polib', 'ruamel.yaml', 'python-dateutil'],