Use viewport margins for all scaling of editor doc margins
This commit is contained in:
+10
-24
@@ -101,6 +101,7 @@ class GuiDocEditor(QTextEdit):
|
|||||||
# Editor State
|
# Editor State
|
||||||
self.hasSelection = False
|
self.hasSelection = False
|
||||||
self.setMinimumWidth(self.mainConf.pxInt(300))
|
self.setMinimumWidth(self.mainConf.pxInt(300))
|
||||||
|
self.setAutoFillBackground(True)
|
||||||
self.setAcceptRichText(False)
|
self.setAcceptRichText(False)
|
||||||
|
|
||||||
# Custom Shortcuts
|
# Custom Shortcuts
|
||||||
@@ -185,12 +186,15 @@ class GuiDocEditor(QTextEdit):
|
|||||||
self.setFont(theFont)
|
self.setFont(theFont)
|
||||||
|
|
||||||
docPalette = self.palette()
|
docPalette = self.palette()
|
||||||
|
docPalette.setColor(QPalette.Window, QColor(*self.theTheme.colBack))
|
||||||
docPalette.setColor(QPalette.Base, QColor(*self.theTheme.colBack))
|
docPalette.setColor(QPalette.Base, QColor(*self.theTheme.colBack))
|
||||||
docPalette.setColor(QPalette.Text, QColor(*self.theTheme.colText))
|
docPalette.setColor(QPalette.Text, QColor(*self.theTheme.colText))
|
||||||
self.setPalette(docPalette)
|
self.setPalette(docPalette)
|
||||||
|
|
||||||
# Set default text margins
|
# Set default text margins
|
||||||
self.qDocument.setDocumentMargin(self.mainConf.getTextMargin())
|
cM = self.mainConf.getTextMargin()
|
||||||
|
self.qDocument.setDocumentMargin(0)
|
||||||
|
self.setViewportMargins(cM, cM, cM, cM)
|
||||||
|
|
||||||
# Also set the document text options for the document text flow
|
# Also set the document text options for the document text flow
|
||||||
theOpt = QTextOption()
|
theOpt = QTextOption()
|
||||||
@@ -326,7 +330,7 @@ class GuiDocEditor(QTextEdit):
|
|||||||
tW = self.mainConf.getZenWidth()
|
tW = self.mainConf.getZenWidth()
|
||||||
else:
|
else:
|
||||||
tW = self.mainConf.getTextWidth()
|
tW = self.mainConf.getTextWidth()
|
||||||
tM = int((wW - sW - tW)/2)
|
tM = (wW - sW - tW)//2
|
||||||
if tM < cM:
|
if tM < cM:
|
||||||
tM = cM
|
tM = cM
|
||||||
else:
|
else:
|
||||||
@@ -335,36 +339,18 @@ class GuiDocEditor(QTextEdit):
|
|||||||
tB = self.frameWidth()
|
tB = self.frameWidth()
|
||||||
tW = wW - 2*tB - sW
|
tW = wW - 2*tB - sW
|
||||||
tH = self.docHeader.height()
|
tH = self.docHeader.height()
|
||||||
tT = cM - tH
|
self.docHeader.setGeometry(tB, tB, tW, tH)
|
||||||
|
|
||||||
if self.docSearch.isVisible():
|
if self.docSearch.isVisible():
|
||||||
rH = self.docSearch.height()
|
rH = self.docSearch.height()
|
||||||
rW = self.docSearch.width()
|
rW = self.docSearch.width()
|
||||||
rL = wW - sW - rW - tB
|
rL = wW - sW - rW - tB
|
||||||
|
self.docSearch.move(rL, tB)
|
||||||
else:
|
else:
|
||||||
rH = 0
|
rH = 0
|
||||||
rL = 0
|
|
||||||
|
|
||||||
self.docHeader.setGeometry(tB, tB, tW, tH)
|
# print(tM, tH, rH, max(tM, tH, rH))
|
||||||
self.docSearch.move(rL, tB)
|
self.setViewportMargins(tM, max(cM, tH, rH), tM, cM)
|
||||||
self.setViewportMargins(0, tH, 0, 0)
|
|
||||||
|
|
||||||
docFormat = self.qDocument.rootFrame().frameFormat()
|
|
||||||
docFormat.setLeftMargin(tM)
|
|
||||||
docFormat.setTopMargin(max(0, tT, rH))
|
|
||||||
|
|
||||||
# Updating root frame triggers a QTextDocument->contentsChange
|
|
||||||
# signal, which we do not want as it re-runs the syntax
|
|
||||||
# highlighter and spell checker, so we block it briefly.
|
|
||||||
# We then emit a signal that does not trigger re-highlighting.
|
|
||||||
self.qDocument.blockSignals(True)
|
|
||||||
self.qDocument.rootFrame().setFrameFormat(docFormat)
|
|
||||||
self.qDocument.blockSignals(False)
|
|
||||||
|
|
||||||
# The line below causes issues with large documents as it
|
|
||||||
# triggers an early repaint that seems to only render a part of
|
|
||||||
# the document. Leaving it here as a warning for now.
|
|
||||||
# self.qDocument.contentsChange.emit(0, 0, 0)
|
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -116,7 +116,6 @@ class GuiMain(QMainWindow):
|
|||||||
self.splitView.setSizes(self.mainConf.getViewPanePos())
|
self.splitView.setSizes(self.mainConf.getViewPanePos())
|
||||||
|
|
||||||
self.splitDocs = QSplitter(Qt.Horizontal)
|
self.splitDocs = QSplitter(Qt.Horizontal)
|
||||||
self.splitDocs.setOpaqueResize(False)
|
|
||||||
self.splitDocs.addWidget(self.docEditor)
|
self.splitDocs.addWidget(self.docEditor)
|
||||||
self.splitDocs.addWidget(self.splitView)
|
self.splitDocs.addWidget(self.splitView)
|
||||||
|
|
||||||
@@ -135,7 +134,6 @@ class GuiMain(QMainWindow):
|
|||||||
xCM = self.mainConf.pxInt(4)
|
xCM = self.mainConf.pxInt(4)
|
||||||
self.splitMain = QSplitter(Qt.Horizontal)
|
self.splitMain = QSplitter(Qt.Horizontal)
|
||||||
self.splitMain.setContentsMargins(xCM, xCM, xCM, xCM)
|
self.splitMain.setContentsMargins(xCM, xCM, xCM, xCM)
|
||||||
self.splitMain.setOpaqueResize(False)
|
|
||||||
self.splitMain.addWidget(self.treePane)
|
self.splitMain.addWidget(self.treePane)
|
||||||
self.splitMain.addWidget(self.tabWidget)
|
self.splitMain.addWidget(self.tabWidget)
|
||||||
self.splitMain.setSizes(self.mainConf.getMainPanePos())
|
self.splitMain.setSizes(self.mainConf.getMainPanePos())
|
||||||
|
|||||||
Reference in New Issue
Block a user