Adds optimization of fullscreen's theme thumbnail generation in settings, and corrects a small stylesheet bug

This commit is contained in:
Olivier Keshavjee 2017-10-19 12:27:11 +02:00
parent b81a571b2e
commit eb89d2f309
3 changed files with 28 additions and 17 deletions

View file

@ -236,6 +236,10 @@ class settingsWindow(QWidget, Ui_Settings):
self.btnThemeAdd.clicked.connect(self.newTheme)
self.btnThemeEdit.clicked.connect(self.editTheme)
self.btnThemeRemove.clicked.connect(self.removeTheme)
self.timerUpdateFSPreview = QTimer()
self.timerUpdateFSPreview.setSingleShot(True)
self.timerUpdateFSPreview.setInterval(250)
self.timerUpdateFSPreview.timeout.connect(self.updatePreview)
def setTab(self, tab):
@ -700,7 +704,7 @@ class settingsWindow(QWidget, Ui_Settings):
def setSetting(self, key, val):
self._themeData[key] = val
self.updatePreview()
self.timerUpdateFSPreview.start()
def updateUIFromTheme(self):
self.txtThemeName.setText(self._themeData["Name"])
@ -765,7 +769,7 @@ class settingsWindow(QWidget, Ui_Settings):
f.setPointSize(int(s))
self._themeData["Text/Font"] = f.toString()
self.updatePreview()
self.timerUpdateFSPreview.start()
def updateLineSpacing(self, i):
if i == 0:
@ -777,7 +781,7 @@ class settingsWindow(QWidget, Ui_Settings):
elif i == 3:
self._themeData["Spacings/LineSpacing"] = self.spnThemeLineSpacing.value()
self.spnThemeLineSpacing.setEnabled(i == 3)
self.updatePreview()
self.timerUpdateFSPreview.start()
def updateThemeBackground(self, i):
img = self.cmbCorkImage.itemData(i)

View file

@ -2,7 +2,7 @@
# Form implementation generated from reading ui file 'manuskript/ui/settings_ui.ui'
#
# Created: Thu Oct 19 12:06:37 2017
# Created: Thu Oct 19 12:16:24 2017
# by: PyQt5 UI code generator 5.2.1
#
# WARNING! All changes made in this file will be lost!
@ -1102,14 +1102,7 @@ class Ui_Settings(object):
font.setWeight(50)
self.label_54.setFont(font)
self.label_54.setObjectName("label_54")
self.formLayout_11.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_54)
self.label_55 = QtWidgets.QLabel(self.groupBox_16)
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
self.label_55.setFont(font)
self.label_55.setObjectName("label_55")
self.formLayout_11.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_55)
self.formLayout_11.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_54)
self.spnEditorMarginsLR = QtWidgets.QSpinBox(self.groupBox_16)
font = QtGui.QFont()
font.setBold(False)
@ -1117,7 +1110,14 @@ class Ui_Settings(object):
self.spnEditorMarginsLR.setFont(font)
self.spnEditorMarginsLR.setMaximum(2048)
self.spnEditorMarginsLR.setObjectName("spnEditorMarginsLR")
self.formLayout_11.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.spnEditorMarginsLR)
self.formLayout_11.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.spnEditorMarginsLR)
self.label_55 = QtWidgets.QLabel(self.groupBox_16)
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
self.label_55.setFont(font)
self.label_55.setObjectName("label_55")
self.formLayout_11.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_55)
self.spnEditorMarginsTB = QtWidgets.QSpinBox(self.groupBox_16)
font = QtGui.QFont()
font.setBold(False)
@ -1125,7 +1125,7 @@ class Ui_Settings(object):
self.spnEditorMarginsTB.setFont(font)
self.spnEditorMarginsTB.setMaximum(2048)
self.spnEditorMarginsTB.setObjectName("spnEditorMarginsTB")
self.formLayout_11.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.spnEditorMarginsTB)
self.formLayout_11.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.spnEditorMarginsTB)
self.verticalLayout_21.addWidget(self.groupBox_16)
self.horizontalLayout_4.addLayout(self.verticalLayout_21)
self.groupBox_13 = QtWidgets.QGroupBox(self.tab_4)
@ -1933,8 +1933,8 @@ class Ui_Settings(object):
self.chkEditorMaxWidth.setText(_translate("Settings", "Max width"))
self.spnEditorMaxWidth.setSuffix(_translate("Settings", " px"))
self.label_54.setText(_translate("Settings", "Left/Right margins:"))
self.label_55.setText(_translate("Settings", "Top/Bottom margins:"))
self.spnEditorMarginsLR.setSuffix(_translate("Settings", " px"))
self.label_55.setText(_translate("Settings", "Top/Bottom margins:"))
self.spnEditorMarginsTB.setSuffix(_translate("Settings", " px"))
self.groupBox_13.setTitle(_translate("Settings", "Paragraphs"))
self.label_40.setText(_translate("Settings", "Line spacing:"))

View file

@ -4,7 +4,7 @@ import re
from PyQt5.QtCore import QTimer, QModelIndex, Qt, QEvent, pyqtSignal, QRegExp
from PyQt5.QtGui import QTextBlockFormat, QTextCharFormat, QFont, QColor, QIcon, QMouseEvent, QTextCursor
from PyQt5.QtWidgets import QTextEdit, qApp, QAction, QMenu
from PyQt5.QtWidgets import QWidget, QTextEdit, qApp, QAction, QMenu
from manuskript import settings
from manuskript.enums import Outline
@ -201,7 +201,14 @@ class textEditView(QTextEdit):
)
)
self.parent().setStyleSheet("background: {bg};".format(bg=opt["background"]))
# We set the parent background to the editor's background in case
# there are margins. We check that the parent class is a QWidget because
# if textEditView is used in fullScreenEditor, then we don't want to
# set the background
if self.parent().__class__ == QWidget:
self.parent().setStyleSheet("background: {bg};".format(
bg=opt["background"]))
cf = QTextCharFormat()
# cf.setFont(f)
# cf.setForeground(QColor(opt["fontColor"]))