mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-06-14 00:44:34 +12:00
Moves textedit scrollbar outside the margins
This commit is contained in:
parent
0f49bc7517
commit
59742accfa
|
@ -2,7 +2,8 @@
|
||||||
# --!-- coding: utf8 --!--
|
# --!-- coding: utf8 --!--
|
||||||
from PyQt5.QtCore import pyqtSignal, QModelIndex
|
from PyQt5.QtCore import pyqtSignal, QModelIndex
|
||||||
from PyQt5.QtGui import QPalette
|
from PyQt5.QtGui import QPalette
|
||||||
from PyQt5.QtWidgets import QWidget, QFrame, QSpacerItem, QSizePolicy, QVBoxLayout
|
from PyQt5.QtWidgets import QWidget, QFrame, QSpacerItem, QSizePolicy
|
||||||
|
from PyQt5.QtWidgets import QVBoxLayout, qApp, QStyle
|
||||||
|
|
||||||
from manuskript import settings
|
from manuskript import settings
|
||||||
from manuskript.functions import AUC, mainWindow
|
from manuskript.functions import AUC, mainWindow
|
||||||
|
@ -60,10 +61,37 @@ class editorWidget(QWidget, Ui_editorWidget_ui):
|
||||||
|
|
||||||
self._model = None
|
self._model = None
|
||||||
|
|
||||||
|
# Capture textEdit scrollbar, so that we can put it outside the margins.
|
||||||
|
self.txtEditScrollBar = self.txtRedacText.verticalScrollBar()
|
||||||
|
self.txtEditScrollBar.setParent(self)
|
||||||
|
self.stack.currentChanged.connect(self.setScrollBarVisibility)
|
||||||
|
|
||||||
# def setModel(self, model):
|
# def setModel(self, model):
|
||||||
# self._model = model
|
# self._model = model
|
||||||
# self.setView()
|
# self.setView()
|
||||||
|
|
||||||
|
def resizeEvent(self, event):
|
||||||
|
"""
|
||||||
|
textEdit's scrollBar has been reparented to self. So we need to
|
||||||
|
update it's geomtry when self is resized, and put it where we want it
|
||||||
|
to be.
|
||||||
|
"""
|
||||||
|
# Update scrollbar geometry
|
||||||
|
r = self.geometry()
|
||||||
|
w = 10 # Cf. style.mainEditorTabSS
|
||||||
|
r.setWidth(w)
|
||||||
|
r.moveRight(self.geometry().width())
|
||||||
|
self.txtEditScrollBar.setGeometry(r)
|
||||||
|
|
||||||
|
QWidget.resizeEvent(self, event)
|
||||||
|
|
||||||
|
def setScrollBarVisibility(self):
|
||||||
|
"""
|
||||||
|
Since the texteEdit scrollBar has been reparented to self, it is not
|
||||||
|
hidden when stack changes. We have to do it manually.
|
||||||
|
"""
|
||||||
|
self.txtEditScrollBar.setVisible(self.stack.currentIndex() == 0)
|
||||||
|
|
||||||
def setFolderView(self, v):
|
def setFolderView(self, v):
|
||||||
oldV = self.folderView
|
oldV = self.folderView
|
||||||
if v == "cork":
|
if v == "cork":
|
||||||
|
@ -214,7 +242,12 @@ class editorWidget(QWidget, Ui_editorWidget_ui):
|
||||||
w = QWidget()
|
w = QWidget()
|
||||||
w.setObjectName("editorWidgetFolderText")
|
w.setObjectName("editorWidgetFolderText")
|
||||||
l = QVBoxLayout(w)
|
l = QVBoxLayout(w)
|
||||||
w.setStyleSheet("background: {};".format(settings.textEditor["background"]))
|
opt = settings.textEditor
|
||||||
|
background = (opt["background"] if not opt["backgroundTransparent"]
|
||||||
|
else "transparent")
|
||||||
|
w.setStyleSheet("background: {};".format(background))
|
||||||
|
self.stack.widget(1).setStyleSheet("background: {}"
|
||||||
|
.format(background))
|
||||||
# self.scroll.setWidgetResizable(False)
|
# self.scroll.setWidgetResizable(False)
|
||||||
|
|
||||||
self.txtEdits = []
|
self.txtEdits = []
|
||||||
|
|
|
@ -388,7 +388,8 @@ class textEditView(QTextEdit):
|
||||||
self.sizeChange()
|
self.sizeChange()
|
||||||
|
|
||||||
def sizeChange(self):
|
def sizeChange(self):
|
||||||
docHeight = self.document().size().height()
|
opt = settings.textEditor
|
||||||
|
docHeight = self.document().size().height() + 2 * opt["marginsTB"]
|
||||||
if self.heightMin <= docHeight <= self.heightMax:
|
if self.heightMin <= docHeight <= self.heightMax:
|
||||||
self.setMinimumHeight(docHeight)
|
self.setMinimumHeight(docHeight)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue