From ae7b06052a443f3cd2901f4cc468a2d3891f2d80 Mon Sep 17 00:00:00 2001 From: Andrey Golovizin Date: Fri, 12 Sep 2014 13:15:23 +0200 Subject: [PATCH] Add an option to make Bold and Italic buttons mutually exclusive. --- pixelocr/config.py | 2 ++ pixelocr/gui/glyphedit.py | 21 +++++++++++++++++---- pixelocr/gui/window.py | 2 +- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/pixelocr/config.py b/pixelocr/config.py index 5d54d31..ebb68bb 100644 --- a/pixelocr/config.py +++ b/pixelocr/config.py @@ -18,6 +18,8 @@ from confire import Configuration as BaseConfiguration class Configuration(BaseConfiguration): + allow_bold_italic = True + min_body_height = 10 diacritic_box_left = -3 diff --git a/pixelocr/gui/glyphedit.py b/pixelocr/gui/glyphedit.py index 9e8a489..cc0fa76 100644 --- a/pixelocr/gui/glyphedit.py +++ b/pixelocr/gui/glyphedit.py @@ -39,9 +39,12 @@ class StyleButton(QToolButton): class GlyphEdit(QWidget): glyphEntered = signal([str, bool, bool]) + allowBoldItalic = True + + def __init__(self, parent, document): + super().__init__(parent) + self.document = document - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) self.layout = QHBoxLayout(self) self.layout.setSpacing(0) self.layout.setContentsMargins(0, 0, 0, 0) @@ -54,10 +57,10 @@ class GlyphEdit(QWidget): self.italic.setText('I') self.italic.setShortcut('Ctrl+i') + self.setAllowBoldItalic(self.document.config.allow_bold_italic) + self.text = QLineEdit(self) self.text.returnPressed.connect(self.sendGlyph) - self.italic.pressed.connect(self.bold.release) - self.bold.pressed.connect(self.italic.release) self.layout.addWidget(self.bold) self.layout.addWidget(self.italic) @@ -65,3 +68,13 @@ class GlyphEdit(QWidget): def sendGlyph(self): self.glyphEntered.emit(self.text.text(), self.bold.isChecked(), self.italic.isChecked()) + + def setAllowBoldItalic(self, allow=True): + if not allow and self.allowBoldItalic: + self.italic.pressed.connect(self.bold.release) + self.bold.pressed.connect(self.italic.release) + self.allowBoldItalic = False + elif allow and not self.allowBoldItalic: + self.italic.pressed.disconnect(self.bold.release) + self.bold.pressed.disconnect(self.italic.release) + self.allowBoldItalic = True diff --git a/pixelocr/gui/window.py b/pixelocr/gui/window.py index e52727f..fa98353 100644 --- a/pixelocr/gui/window.py +++ b/pixelocr/gui/window.py @@ -52,7 +52,7 @@ class MainWindow(QMainWindow): self.setCentralWidget(centralWidget) self.pageScene = PageScene(self) self.page = PageView(self.pageScene, centralWidget) - self.glyphEdit = GlyphEdit(centralWidget) + self.glyphEdit = GlyphEdit(centralWidget, document) self.glyphEdit.setEnabled(False) self.glyphDBEdit = GlyphDBEdit(self.document.glyphdb)