mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Merge branch 'master' of https://github.com/cbhaley/calibre
Fixes #1920574 [Enhancement Request: Setting a different font for template editor](https://bugs.launchpad.net/calibre/+bug/1920574)
This commit is contained in:
commit
bdceb78923
@ -9,7 +9,8 @@ import json, os, traceback
|
|||||||
|
|
||||||
from qt.core import (Qt, QDialog, QDialogButtonBox, QSyntaxHighlighter, QFont,
|
from qt.core import (Qt, QDialog, QDialogButtonBox, QSyntaxHighlighter, QFont,
|
||||||
QRegExp, QApplication, QTextCharFormat, QColor, QCursor,
|
QRegExp, QApplication, QTextCharFormat, QColor, QCursor,
|
||||||
QIcon, QSize, QPalette, QLineEdit, QByteArray)
|
QIcon, QSize, QPalette, QLineEdit, QByteArray,
|
||||||
|
QFontInfo, QFontDatabase)
|
||||||
|
|
||||||
from calibre import sanitize_file_name
|
from calibre import sanitize_file_name
|
||||||
from calibre.constants import config_dir
|
from calibre.constants import config_dir
|
||||||
@ -81,8 +82,15 @@ class TemplateHighlighter(QSyntaxHighlighter):
|
|||||||
self.highlighted_paren = False
|
self.highlighted_paren = False
|
||||||
|
|
||||||
def initializeFormats(self):
|
def initializeFormats(self):
|
||||||
|
font_name = gprefs.get('gpm_template_editor_font', None)
|
||||||
|
size = gprefs['gpm_template_editor_font_size']
|
||||||
|
if font_name is None:
|
||||||
|
font = QFont()
|
||||||
|
font.setFixedPitch(True)
|
||||||
|
font.setPointSize(size)
|
||||||
|
font_name = font.family()
|
||||||
Config = self.Config
|
Config = self.Config
|
||||||
Config["fontfamily"] = "monospace"
|
Config["fontfamily"] = font_name
|
||||||
pal = QApplication.instance().palette()
|
pal = QApplication.instance().palette()
|
||||||
for name, color, bold, italic in (
|
for name, color, bold, italic in (
|
||||||
("normal", None, False, False),
|
("normal", None, False, False),
|
||||||
@ -98,7 +106,7 @@ class TemplateHighlighter(QSyntaxHighlighter):
|
|||||||
Config["%sfontitalic" % name] = italic
|
Config["%sfontitalic" % name] = italic
|
||||||
baseFormat = QTextCharFormat()
|
baseFormat = QTextCharFormat()
|
||||||
baseFormat.setFontFamily(Config["fontfamily"])
|
baseFormat.setFontFamily(Config["fontfamily"])
|
||||||
Config["fontsize"] = gprefs['gpm_template_editor_font_size']
|
Config["fontsize"] = size
|
||||||
baseFormat.setFontPointSize(Config["fontsize"])
|
baseFormat.setFontPointSize(Config["fontsize"])
|
||||||
|
|
||||||
for name in ("normal", "keyword", "builtin", "comment",
|
for name in ("normal", "keyword", "builtin", "comment",
|
||||||
@ -408,8 +416,7 @@ class TemplateDialog(QDialog, Ui_TemplateDialog):
|
|||||||
'<a href="%s">%s</a>' % (
|
'<a href="%s">%s</a>' % (
|
||||||
localize_user_manual_link('https://manual.calibre-ebook.com/generated/en/template_ref.html'), tt))
|
localize_user_manual_link('https://manual.calibre-ebook.com/generated/en/template_ref.html'), tt))
|
||||||
|
|
||||||
self.font_size_box.setValue(gprefs['gpm_template_editor_font_size'])
|
self.set_up_font_boxes()
|
||||||
self.font_size_box.valueChanged.connect(self.font_size_changed)
|
|
||||||
self.textbox.setFocus()
|
self.textbox.setFocus()
|
||||||
# Now geometry
|
# Now geometry
|
||||||
try:
|
try:
|
||||||
@ -419,6 +426,31 @@ class TemplateDialog(QDialog, Ui_TemplateDialog):
|
|||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def set_up_font_boxes(self):
|
||||||
|
font_name = gprefs.get('gpm_template_editor_font', None)
|
||||||
|
size = gprefs['gpm_template_editor_font_size']
|
||||||
|
if font_name is None:
|
||||||
|
font = QFont()
|
||||||
|
font.setFixedPitch(True)
|
||||||
|
font.setPointSize(size)
|
||||||
|
else:
|
||||||
|
font = QFont(font_name, pointSize=size)
|
||||||
|
self.font_box.setWritingSystem(QFontDatabase.Latin)
|
||||||
|
self.font_box.setCurrentFont(font)
|
||||||
|
self.font_box.setEditable(False)
|
||||||
|
gprefs['gpm_template_editor_font'] = unicode_type(font.family())
|
||||||
|
self.font_size_box.setValue(size)
|
||||||
|
self.font_box.currentFontChanged.connect(self.font_changed)
|
||||||
|
self.font_size_box.valueChanged.connect(self.font_size_changed)
|
||||||
|
self.highlighter.initializeFormats()
|
||||||
|
self.highlighter.rehighlight()
|
||||||
|
|
||||||
|
def font_changed(self, font):
|
||||||
|
fi = QFontInfo(font)
|
||||||
|
gprefs['gpm_template_editor_font'] = unicode_type(fi.family())
|
||||||
|
self.highlighter.initializeFormats()
|
||||||
|
self.highlighter.rehighlight()
|
||||||
|
|
||||||
def font_size_changed(self, toWhat):
|
def font_size_changed(self, toWhat):
|
||||||
gprefs['gpm_template_editor_font_size'] = toWhat
|
gprefs['gpm_template_editor_font_size'] = toWhat
|
||||||
self.highlighter.initializeFormats()
|
self.highlighter.initializeFormats()
|
||||||
|
@ -380,32 +380,45 @@
|
|||||||
<layout class="BoxLayout" name="user_layout_9" dir="TopToBottom">
|
<layout class="BoxLayout" name="user_layout_9" dir="TopToBottom">
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item row="20" column="0">
|
<item row="20" column="0" colspan="2">
|
||||||
<widget class="QLabel" name="label">
|
<layout class="QHBoxLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="font_name_label">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Font size:</string>
|
<string>Current font:</string>
|
||||||
|
</property>
|
||||||
|
<property name="buddy">
|
||||||
|
<cstring>font_box</cstring>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="20" column="1" colspan="3">
|
<item>
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<widget class="QFontComboBox" name="font_box">
|
||||||
<item row="1" column="0">
|
<property name="toolTip">
|
||||||
<widget class="QSpinBox" name="font_size_box"/>
|
<string>Select the font for the Template box</string>
|
||||||
</item>
|
|
||||||
<item row="1" column="1">
|
|
||||||
<spacer>
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeHint" stdset="0">
|
</widget>
|
||||||
<size>
|
|
||||||
<width>0</width>
|
|
||||||
<height>0</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="2">
|
<item>
|
||||||
|
<widget class="QLabel" name="font_size_label">
|
||||||
|
<property name="text">
|
||||||
|
<string>Size:</string>
|
||||||
|
</property>
|
||||||
|
<property name="buddy">
|
||||||
|
<cstring>font_size_box</cstring>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QSpinBox" name="font_size_box">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Select the font size for the Template box</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item row="20" column="3">
|
||||||
<widget class="QDialogButtonBox" name="buttonBox">
|
<widget class="QDialogButtonBox" name="buttonBox">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
@ -415,8 +428,6 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item row="21" column="0" colspan="4">
|
<item row="21" column="0" colspan="4">
|
||||||
<widget class="QFrame">
|
<widget class="QFrame">
|
||||||
<property name="frameShape">
|
<property name="frameShape">
|
||||||
@ -424,17 +435,16 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="22" column="0" colspan="2">
|
<item row="22" column="0" colspan="4">
|
||||||
|
<layout class="QGridLayout">
|
||||||
|
<item row="0" column="0" colspan="2">
|
||||||
<widget class="QLabel" name="label">
|
<widget class="QLabel" name="label">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Template Function Reference</string>
|
<string>Template Function Reference</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="buddy">
|
|
||||||
<cstring>function</cstring>
|
|
||||||
</property>
|
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="23" column="0">
|
<item row="1" column="0">
|
||||||
<widget class="QLabel" name="label">
|
<widget class="QLabel" name="label">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Function &name:</string>
|
<string>Function &name:</string>
|
||||||
@ -444,10 +454,10 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="23" column="1" colspan="3">
|
<item row="1" column="1">
|
||||||
<widget class="QComboBox" name="function"/>
|
<widget class="QComboBox" name="function"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="24" column="0">
|
<item row="2" column="0">
|
||||||
<widget class="QLabel" name="label_22">
|
<widget class="QLabel" name="label_22">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>&Function type:</string>
|
<string>&Function type:</string>
|
||||||
@ -460,14 +470,14 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="24" column="1" colspan="3">
|
<item row="2" column="1">
|
||||||
<widget class="QLineEdit" name="func_type">
|
<widget class="QLineEdit" name="func_type">
|
||||||
<property name="readOnly">
|
<property name="readOnly">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="25" column="0">
|
<item row="3" column="0">
|
||||||
<widget class="QLabel" name="label_2">
|
<widget class="QLabel" name="label_2">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>&Documentation:</string>
|
<string>&Documentation:</string>
|
||||||
@ -480,7 +490,17 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="26" column="0">
|
<item row="3" column="1">
|
||||||
|
<widget class="QPlainTextEdit" name="documentation">
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>75</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0">
|
||||||
<widget class="QLabel" name="label_3">
|
<widget class="QLabel" name="label_3">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>&Code:</string>
|
<string>&Code:</string>
|
||||||
@ -493,17 +513,7 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="25" column="1" colspan="3">
|
<item row="4" column="1">
|
||||||
<widget class="QPlainTextEdit" name="documentation">
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>16777215</width>
|
|
||||||
<height>75</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="26" column="1" colspan="3">
|
|
||||||
<widget class="QPlainTextEdit" name="source_code">
|
<widget class="QPlainTextEdit" name="source_code">
|
||||||
<property name="maximumSize">
|
<property name="maximumSize">
|
||||||
<size>
|
<size>
|
||||||
@ -513,6 +523,8 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
<item row="27" column="1">
|
<item row="27" column="1">
|
||||||
<widget class="QLabel" name="template_tutorial">
|
<widget class="QLabel" name="template_tutorial">
|
||||||
<property name="openExternalLinks">
|
<property name="openExternalLinks">
|
||||||
|
Loading…
x
Reference in New Issue
Block a user