Add a function to convert QColor to CSS rgba format

This commit is contained in:
Veronica Berglyd Olsen
2024-03-27 13:11:37 +01:00
parent 3e66968387
commit 2d9b57b534
6 changed files with 67 additions and 62 deletions
+19 -28
View File
@@ -41,6 +41,7 @@ from PyQt5.QtWidgets import (
)
from novelwriter import CONFIG, SHARED
from novelwriter.common import cssCol
from novelwriter.constants import nwHeaders, nwUnicode
from novelwriter.core.tohtml import ToHtml
from novelwriter.enum import nwItemType, nwDocAction, nwDocMode
@@ -467,35 +468,25 @@ class GuiDocViewer(QTextBrowser):
"""Generate an appropriate style sheet for the document viewer,
based on the current syntax highlighter theme.
"""
colText = SHARED.theme.colText
colHead = SHARED.theme.colHead
colVals = SHARED.theme.colVal
colMark = SHARED.theme.colMark
colKeys = SHARED.theme.colKey
colHide = SHARED.theme.colHidden
colMods = SHARED.theme.colMod
colOpts = SHARED.theme.colOpt
styleSheet = (
"body {{color: rgb({rT}, {gT}, {bT});}}\n"
"h1, h2, h3, h4 {{color: rgb({rH}, {gH}, {bH});}}\n"
"a {{color: rgb({rA}, {gA}, {bA});}}\n"
"mark {{background-color: rgba({rE}, {gE}, {bE}, {aE});}}\n"
".tags {{color: rgb({rK}, {gK}, {bK});}}\n"
".optional {{color: rgb({rO}, {gO}, {bO});}}\n"
".comment {{color: rgb({rC}, {gC}, {bC});}}\n"
".synopsis {{color: rgb({rM}, {gM}, {bM});}}\n"
".title {{text-align: center;}}\n"
).format(
rT=colText.red(), gT=colText.green(), bT=colText.blue(),
rH=colHead.red(), gH=colHead.green(), bH=colHead.blue(),
rA=colVals.red(), gA=colVals.green(), bA=colVals.blue(),
rE=colMark.red(), gE=colMark.green(), bE=colMark.blue(), aE=colMark.alpha(),
rK=colKeys.red(), gK=colKeys.green(), bK=colKeys.blue(),
rC=colHide.red(), gC=colHide.green(), bC=colHide.blue(),
rM=colMods.red(), gM=colMods.green(), bM=colMods.blue(),
rO=colOpts.red(), gO=colOpts.green(), bO=colOpts.blue(),
colText = cssCol(SHARED.theme.colText)
colHead = cssCol(SHARED.theme.colHead)
colVals = cssCol(SHARED.theme.colVal)
colMark = cssCol(SHARED.theme.colMark)
colKeys = cssCol(SHARED.theme.colKey)
colOpts = cssCol(SHARED.theme.colOpt)
colHide = cssCol(SHARED.theme.colHidden)
colMods = cssCol(SHARED.theme.colMod)
self.document().setDefaultStyleSheet(
f"body {{color: {colText};}}\n"
f"h1, h2, h3, h4 {{color: {colHead};}}\n"
f"a {{color: {colVals};}}\n"
f"mark {{background-color: {colMark};}}\n"
f".tags {{color: {colKeys};}}\n"
f".optional {{color: {colOpts};}}\n"
f".comment {{color: {colHide});}}\n"
f".synopsis {{color: {colMods};}}\n"
".title {text-align: center;}\n"
)
self.document().setDefaultStyleSheet(styleSheet)
return
+1 -1
View File
@@ -565,7 +565,7 @@ class GuiProjectTree(QTreeWidget):
# Auto Scroll
self._scrollMargin = SHARED.theme.baseIconSize
self._scrollDirection = 0
self._scrollTimer = QTimer()
self._scrollTimer = QTimer(self)
self._scrollTimer.timeout.connect(self._doAutoScroll)
self._scrollTimer.setInterval(250)
+13 -13
View File
@@ -38,7 +38,7 @@ from PyQt5.QtGui import (
from novelwriter import CONFIG
from novelwriter.enum import nwItemClass, nwItemLayout, nwItemType
from novelwriter.error import logException
from novelwriter.common import NWConfigParser, minmax
from novelwriter.common import NWConfigParser, cssCol, minmax
from novelwriter.constants import nwLabels
logger = logging.getLogger(__name__)
@@ -440,24 +440,24 @@ class GuiTheme:
# Flat Tab Widget and Tab Bar:
self._styleSheets[STYLES_FLAT_TABS] = (
"QTabWidget::pane {{border: 0;}} "
"QTabWidget QTabBar::tab {{border: 0; padding: {0}px {1}px;}} "
"QTabWidget QTabBar::tab:selected {{color: rgb({2}, {3}, {4});}} "
).format(bPx, dPx, hCol.red(), hCol.green(), hCol.blue())
"QTabWidget::pane {border: 0;} "
f"QTabWidget QTabBar::tab {{border: 0; padding: {bPx}px {dPx}px;}} "
f"QTabWidget QTabBar::tab:selected {{color: {cssCol(hCol)};}} "
)
# Minimal Tool Button
self._styleSheets[STYLES_MIN_TOOLBUTTON] = (
"QToolButton {{padding: {0}px; margin: 0; border: none; background: transparent;}} "
"QToolButton:hover {{border: none; background: rgba({1}, {2}, {3}, 0.2);}} "
"QToolButton::menu-indicator {{image: none;}} "
).format(aPx, tCol.red(), tCol.green(), tCol.blue())
f"QToolButton {{padding: {aPx}px; margin: 0; border: none; background: transparent;}} "
f"QToolButton:hover {{border: none; background: {cssCol(tCol, 48)};}} "
"QToolButton::menu-indicator {image: none;} "
)
# Big Tool Button
self._styleSheets[STYLES_BIG_TOOLBUTTON] = (
"QToolButton {{padding: {0}px; margin: 0; border: none; background: transparent;}} "
"QToolButton:hover {{border: none; background: rgba({1}, {2}, {3}, 0.2);}} "
"QToolButton::menu-indicator {{image: none;}} "
).format(cPx, tCol.red(), tCol.green(), tCol.blue())
f"QToolButton {{padding: {cPx}px; margin: 0; border: none; background: transparent;}} "
f"QToolButton:hover {{border: none; background: {cssCol(tCol, 48)};}} "
"QToolButton::menu-indicator {image: none;} "
)
return