mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-05-16 10:52:29 +12:00
Fixes highlighter colors, should work in most themes
This commit is contained in:
parent
da62b823c7
commit
c4d4f61702
|
@ -64,15 +64,15 @@ textEditor = {
|
|||
"misspelled": "#F00",
|
||||
"lineSpacing": 100,
|
||||
"tabWidth": 20,
|
||||
"indent": True,
|
||||
"indent": False,
|
||||
"spacingAbove": 5,
|
||||
"spacingBelow": 5,
|
||||
"textAlignment": 0, # 0: left, 1: center, 2: right, 3: justify
|
||||
"cursorWidth": 1,
|
||||
"cursorNotBlinking": False,
|
||||
"maxWidth": 0,
|
||||
"maxWidth": 600,
|
||||
"marginsLR": 0,
|
||||
"marginsTB": 0,
|
||||
"marginsTB": 20,
|
||||
"backgroundTransparent": False,
|
||||
}
|
||||
|
||||
|
@ -185,6 +185,8 @@ def load(string, fromString=False, protocol=None):
|
|||
#print("Loading:")
|
||||
#pp.pprint(allSettings)
|
||||
|
||||
# FIXME: use dict.update(dict) to update settings in newer versions.
|
||||
|
||||
if "viewSettings" in allSettings:
|
||||
global viewSettings
|
||||
viewSettings = allSettings["viewSettings"]
|
||||
|
@ -267,9 +269,9 @@ def load(string, fromString=False, protocol=None):
|
|||
"textAlignment": 0, # Added in 0.5.0
|
||||
"cursorWidth": 1,
|
||||
"cursorNotBlinking": False, # Added in 0.6.0
|
||||
"maxWidth": 0,
|
||||
"maxWidth": 600,
|
||||
"marginsLR": 0,
|
||||
"marginsTB": 0,
|
||||
"marginsTB": 20,
|
||||
"backgroundTransparent": False, # Added in 0.6.0
|
||||
}
|
||||
|
||||
|
|
|
@ -174,18 +174,21 @@ class MarkdownHighlighter(BasicHighlighter):
|
|||
|
||||
def defaultTheme(self):
|
||||
|
||||
markup = self.markupColor
|
||||
dark = qApp.palette().color(QPalette.Dark)
|
||||
if dark == Qt.black:
|
||||
dark = QColor(Qt.gray)
|
||||
darker = dark.darker(150)
|
||||
|
||||
# Text background
|
||||
# Colors
|
||||
background = self.backgroundColor
|
||||
text = self.defaultTextColor
|
||||
lightBackground = F.mixColors(background, text, .4)
|
||||
veryLightBackground = F.mixColors(background, text, .7)
|
||||
light = F.mixColors(text, background, .75)
|
||||
markup = F.mixColors(text, background, .5)
|
||||
veryLight = F.mixColors(text, background, .25)
|
||||
|
||||
highlightedText = QColor(S.highlightedText)
|
||||
highlightedTextDark = QColor(S.highlightedTextDark)
|
||||
highlightedTextLight = QColor(S.highlightedTextLight)
|
||||
highlight = QColor(S.highlight)
|
||||
listToken = F.mixColors(highlight, background, .4)
|
||||
|
||||
link = self.linkColor
|
||||
linkVisited = QColor(S.linkVisited)
|
||||
|
||||
theme = {
|
||||
"markup": markup}
|
||||
|
@ -208,49 +211,66 @@ class MarkdownHighlighter(BasicHighlighter):
|
|||
#"super":True,
|
||||
#"sub":True
|
||||
|
||||
# color = QColor(S.highlightedTextDark)
|
||||
titleColor = highlight
|
||||
titleMarkupColor = F.mixColors(titleColor, background, .3)
|
||||
|
||||
for i in MTT.TITLES:
|
||||
theme[i] = {
|
||||
"formatMarkup":True,
|
||||
"bold": True,
|
||||
"monospace": True,
|
||||
# "monospace": True,
|
||||
"markupColor": titleMarkupColor
|
||||
}
|
||||
|
||||
color = QColor(S.highlightedTextDark)
|
||||
theme[MTT.TokenAtxHeading1]["color"] = color
|
||||
theme[MTT.TokenAtxHeading2]["color"] = F.mixColors(color, background, .9)
|
||||
theme[MTT.TokenAtxHeading3]["color"] = F.mixColors(color, background, .8)
|
||||
theme[MTT.TokenAtxHeading4]["color"] = F.mixColors(color, background, .7)
|
||||
theme[MTT.TokenAtxHeading5]["color"] = F.mixColors(color, background, .6)
|
||||
theme[MTT.TokenAtxHeading6]["color"] = F.mixColors(color, background, .5)
|
||||
theme[MTT.TokenAtxHeading1]["color"] = titleColor
|
||||
theme[MTT.TokenAtxHeading2]["color"] = F.mixColors(titleColor,
|
||||
background, .9)
|
||||
theme[MTT.TokenAtxHeading3]["color"] = F.mixColors(titleColor,
|
||||
background, .8)
|
||||
theme[MTT.TokenAtxHeading4]["color"] = F.mixColors(titleColor,
|
||||
background, .7)
|
||||
theme[MTT.TokenAtxHeading5]["color"] = F.mixColors(titleColor,
|
||||
background, .6)
|
||||
theme[MTT.TokenAtxHeading6]["color"] = F.mixColors(titleColor,
|
||||
background, .5)
|
||||
|
||||
theme[MTT.TokenSetextHeading1Line1]["color"] = titleColor
|
||||
theme[MTT.TokenSetextHeading2Line1]["color"] = F.mixColors(titleColor,
|
||||
background,
|
||||
.9)
|
||||
|
||||
for i in [MTT.TokenSetextHeading1Line1, MTT.TokenSetextHeading2Line1]:
|
||||
theme[i]["monospace"] = True
|
||||
|
||||
for i in [MTT.TokenSetextHeading1Line2, MTT.TokenSetextHeading2Line2]:
|
||||
theme[i] = {
|
||||
"color": markup,
|
||||
"color": titleMarkupColor,
|
||||
"monospace":True}
|
||||
|
||||
# Beautifiers
|
||||
theme[MTT.TokenEmphasis] = {
|
||||
"italic":True,}
|
||||
"italic":True}
|
||||
theme[MTT.TokenStrong] = {
|
||||
"bold":True}
|
||||
theme[MTT.TokenStrikethrough] = {
|
||||
"strike":True}
|
||||
theme[MTT.TokenVerbatim] = {
|
||||
"monospace":True,
|
||||
"background": veryLightBackground,
|
||||
"background": veryLight,
|
||||
"formatMarkup": True,
|
||||
"markupColor": markup}
|
||||
"markupColor": markup,
|
||||
"deltaSize": -1}
|
||||
theme[MTT.TokenSuperScript] = {
|
||||
"super":True,
|
||||
"formatMarkup":True}
|
||||
theme[MTT.TokenSubScript] = {
|
||||
"sub":True,
|
||||
"formatMarkup":True}
|
||||
|
||||
theme[MTT.TokenHtmlTag] = {
|
||||
"color":Qt.red}
|
||||
theme[MTT.TokenHtmlEntity] = {
|
||||
"color":Qt.red}
|
||||
"color": linkVisited}
|
||||
theme[MTT.TokenHtmlEntity] = { #
|
||||
"color": linkVisited}
|
||||
theme[MTT.TokenAutomaticLink] = {
|
||||
"color": link}
|
||||
theme[MTT.TokenInlineLink] = {
|
||||
|
@ -260,15 +280,15 @@ class MarkdownHighlighter(BasicHighlighter):
|
|||
theme[MTT.TokenReferenceDefinition] = {
|
||||
"color": link}
|
||||
theme[MTT.TokenImage] = {
|
||||
"color": Qt.green}
|
||||
"color": highlightedTextDark}
|
||||
theme[MTT.TokenHtmlComment] = {
|
||||
"color": dark}
|
||||
"color": markup}
|
||||
theme[MTT.TokenNumberedList] = {
|
||||
"markupColor": QColor(Qt.red).lighter(),
|
||||
"markupColor": listToken,
|
||||
"markupBold": True,
|
||||
"markupMonospace": True,}
|
||||
theme[MTT.TokenBulletPointList] = {
|
||||
"markupColor": QColor(Qt.red).lighter(),
|
||||
"markupColor": listToken,
|
||||
"markupBold": True,
|
||||
"markupMonospace": True,}
|
||||
theme[MTT.TokenHorizontalRule] = {
|
||||
|
@ -279,13 +299,15 @@ class MarkdownHighlighter(BasicHighlighter):
|
|||
theme[MTT.TokenLineBreak] = {
|
||||
"background": markup}
|
||||
theme[MTT.TokenBlockquote] = {
|
||||
"color": darker,
|
||||
"markupColor": lightBackground,
|
||||
"markupBackground": lightBackground}
|
||||
"color": light,
|
||||
"markupColor": veryLight,
|
||||
"markupBackground": veryLight}
|
||||
theme[MTT.TokenCodeBlock] = {
|
||||
"color": darker,
|
||||
"markupBackground": veryLightBackground,
|
||||
"monospace":True}
|
||||
"color": light,
|
||||
"markupBackground": veryLight,
|
||||
"formatMarkup": True,
|
||||
"monospace":True,
|
||||
"deltaSize":-1}
|
||||
theme[MTT.TokenGithubCodeFence] = {
|
||||
"color": markup}
|
||||
theme[MTT.TokenPandocCodeFence] = {
|
||||
|
@ -294,7 +316,7 @@ class MarkdownHighlighter(BasicHighlighter):
|
|||
"color": markup}
|
||||
theme[MTT.TokenMention] = {} # FIXME
|
||||
theme[MTT.TokenTableHeader] = {
|
||||
"color": darker, "monospace":True}
|
||||
"color": light, "monospace":True}
|
||||
theme[MTT.TokenTableDivider] = {
|
||||
"color": markup, "monospace":True}
|
||||
theme[MTT.TokenTablePipe] = {
|
||||
|
@ -362,9 +384,11 @@ class MarkdownHighlighter(BasicHighlighter):
|
|||
if theme.get("color"):
|
||||
format.setForeground(theme["color"])
|
||||
if theme.get("deltaSize"):
|
||||
f = format.font()
|
||||
f.setPointSize(format.font().pointSize() + theme["deltaSize"])
|
||||
format.setFont(f)
|
||||
size = self.editor._defaultFontSize + theme["deltaSize"]
|
||||
if size >= 0:
|
||||
f = format.font()
|
||||
f.setPointSize(size)
|
||||
format.setFont(f)
|
||||
if theme.get("background"):
|
||||
format.setBackground(theme["background"])
|
||||
if theme.get("monospace"):
|
||||
|
|
|
@ -29,8 +29,8 @@ linkVisited = p.color(QPalette.LinkVisited).name() # Link visited
|
|||
|
||||
light = p.color(QPalette.Light).name() # Lighter than Button color
|
||||
midlight = p.color(QPalette.Midlight).name() # Between Button and Light
|
||||
dark = p.color(QPalette.Dark).name() # Darker than Button
|
||||
mid = p.color(QPalette.Mid).name() # Between Button and Dark
|
||||
dark = p.color(QPalette.Dark).name() # Darker than Button
|
||||
shadow = p.color(QPalette.Shadow).name() # A very dark color
|
||||
|
||||
highlightLight = F.mixColors(highlight, window, .3)
|
||||
|
|
|
@ -230,6 +230,7 @@ class textEditView(QTextEdit):
|
|||
maxWidth = "max-width: {}px;".format(opt["maxWidth"]) if opt["maxWidth"] else "",
|
||||
)
|
||||
)
|
||||
self._defaultFontSize = f.pointSize()
|
||||
|
||||
# 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
|
||||
|
|
Loading…
Reference in a new issue