mirror of
https://github.com/ankitects/anki.git
synced 2025-09-19 06:22:22 -04:00
use group box instead of tabs in card layout screen
This commit is contained in:
parent
5167bb57be
commit
c5d574e9f4
5 changed files with 233 additions and 185 deletions
|
@ -29,13 +29,13 @@ from aqt.utils import (
|
||||||
showInfo,
|
showInfo,
|
||||||
showWarning,
|
showWarning,
|
||||||
tooltip,
|
tooltip,
|
||||||
|
TR, tr, shortcut
|
||||||
)
|
)
|
||||||
from aqt.webview import AnkiWebView
|
from aqt.webview import AnkiWebView
|
||||||
|
|
||||||
# fixme: previewing with empty fields
|
# fixme: previewing with empty fields
|
||||||
# fixme: deck name on new cards
|
# fixme: deck name on new cards
|
||||||
# fixme: card count when removing
|
# fixme: card count when removing
|
||||||
# fixme: i18n
|
|
||||||
# fixme: change tracking and tooltip in fields
|
# fixme: change tracking and tooltip in fields
|
||||||
# fixme: replay suppression
|
# fixme: replay suppression
|
||||||
|
|
||||||
|
@ -106,17 +106,9 @@ class CardLayout(QDialog):
|
||||||
self.topAreaForm.templatesBox.currentIndexChanged,
|
self.topAreaForm.templatesBox.currentIndexChanged,
|
||||||
self.update_current_ordinal_and_redraw,
|
self.update_current_ordinal_and_redraw,
|
||||||
)
|
)
|
||||||
|
self.topAreaForm.card_type_label.setText(tr(TR.CARD_TEMPLATES_CARD_TYPE))
|
||||||
|
|
||||||
def updateTopArea(self):
|
def updateTopArea(self):
|
||||||
cnt = self.mw.col.models.useCount(self.model)
|
|
||||||
self.topAreaForm.changesLabel.setText(
|
|
||||||
ngettext(
|
|
||||||
"Changes below will affect the %(cnt)d note that uses this card type.",
|
|
||||||
"Changes below will affect the %(cnt)d notes that use this card type.",
|
|
||||||
cnt,
|
|
||||||
)
|
|
||||||
% dict(cnt=cnt)
|
|
||||||
)
|
|
||||||
self.updateCardNames()
|
self.updateCardNames()
|
||||||
|
|
||||||
def updateCardNames(self):
|
def updateCardNames(self):
|
||||||
|
@ -162,16 +154,21 @@ class CardLayout(QDialog):
|
||||||
return s
|
return s
|
||||||
|
|
||||||
def setupShortcuts(self):
|
def setupShortcuts(self):
|
||||||
for i in range(1, 9):
|
self.tform.front_button.setToolTip(shortcut("Ctrl+1"))
|
||||||
|
self.tform.back_button.setToolTip(shortcut("Ctrl+2"))
|
||||||
|
self.tform.style_button.setToolTip(shortcut("Ctrl+3"))
|
||||||
QShortcut(
|
QShortcut(
|
||||||
QKeySequence("Ctrl+%d" % i),
|
QKeySequence("Ctrl+1"),
|
||||||
self,
|
self,
|
||||||
activated=lambda i=i: self.selectCard(i),
|
activated=lambda: self.tform.front_button.setChecked(True))
|
||||||
) # type: ignore
|
QShortcut(
|
||||||
|
QKeySequence("Ctrl+2"),
|
||||||
def selectCard(self, n):
|
self,
|
||||||
self.ord = n - 1
|
activated=lambda: self.tform.back_button.setChecked(True))
|
||||||
self.redraw_everything()
|
QShortcut(
|
||||||
|
QKeySequence("Ctrl+3"),
|
||||||
|
self,
|
||||||
|
activated=lambda: self.tform.style_button.setChecked(True))
|
||||||
|
|
||||||
# Main area
|
# Main area
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
@ -185,22 +182,35 @@ class CardLayout(QDialog):
|
||||||
# template area
|
# template area
|
||||||
tform = self.tform = aqt.forms.template.Ui_Form()
|
tform = self.tform = aqt.forms.template.Ui_Form()
|
||||||
tform.setupUi(left)
|
tform.setupUi(left)
|
||||||
# tform.groupBox_3.setTitle(_("Styling (shared between cards)"))
|
qconnect(tform.edit_area.textChanged, self.write_edits_to_template_and_redraw)
|
||||||
qconnect(tform.front.textChanged, self.write_edits_to_template_and_redraw)
|
tform.front_button.setText(tr(TR.CARD_TEMPLATES_FRONT_TEMPLATE))
|
||||||
qconnect(tform.css.textChanged, self.write_edits_to_template_and_redraw)
|
qconnect(tform.front_button.toggled, self.on_editor_toggled)
|
||||||
qconnect(tform.back.textChanged, self.write_edits_to_template_and_redraw)
|
tform.back_button.setText(tr(TR.CARD_TEMPLATES_BACK_TEMPLATE))
|
||||||
qconnect(tform.tabWidget.currentChanged, self.on_editor_changed)
|
qconnect(tform.back_button.toggled, self.on_editor_toggled)
|
||||||
|
tform.style_button.setText(tr(TR.CARD_TEMPLATES_TEMPLATE_STYLING))
|
||||||
|
qconnect(tform.style_button.toggled, self.on_editor_toggled)
|
||||||
|
tform.groupBox.setTitle(tr(TR.CARD_TEMPLATES_TEMPLATE_BOX))
|
||||||
|
|
||||||
|
cnt = self.mw.col.models.useCount(self.model)
|
||||||
|
self.tform.changes_affect_label.setText(self.col.tr(
|
||||||
|
TR.CARD_TEMPLATES_CHANGES_WILL_AFFECT_NOTES, count=cnt))
|
||||||
|
|
||||||
l.addWidget(left, 5)
|
l.addWidget(left, 5)
|
||||||
self.search_box = search = QLineEdit()
|
|
||||||
search.setPlaceholderText("Search")
|
self.setup_edit_area()
|
||||||
qconnect(search.textChanged, self.on_search_changed)
|
|
||||||
qconnect(search.returnPressed, self.on_search_next)
|
widg = tform.search_edit
|
||||||
tform.tabWidget.setCornerWidget(search)
|
widg.setPlaceholderText("Search")
|
||||||
|
qconnect(widg.textChanged, self.on_search_changed)
|
||||||
|
qconnect(widg.returnPressed, self.on_search_next)
|
||||||
# preview area
|
# preview area
|
||||||
right = QWidget()
|
right = QWidget()
|
||||||
self.pform: Any = aqt.forms.preview.Ui_Form()
|
self.pform: Any = aqt.forms.preview.Ui_Form()
|
||||||
pform = self.pform
|
pform = self.pform
|
||||||
pform.setupUi(right)
|
pform.setupUi(right)
|
||||||
|
pform.preview_front.setText(tr(TR.CARD_TEMPLATES_FRONT_PREVIEW))
|
||||||
|
pform.preview_back.setText(tr(TR.CARD_TEMPLATES_BACK_PREVIEW))
|
||||||
|
pform.preview_box.setTitle(tr(TR.CARD_TEMPLATES_PREVIEW_BOX))
|
||||||
|
|
||||||
if self._isCloze():
|
if self._isCloze():
|
||||||
nums = self.note.cloze_numbers_in_fields()
|
nums = self.note.cloze_numbers_in_fields()
|
||||||
|
@ -218,6 +228,15 @@ class CardLayout(QDialog):
|
||||||
l.addWidget(right, 5)
|
l.addWidget(right, 5)
|
||||||
w.setLayout(l)
|
w.setLayout(l)
|
||||||
|
|
||||||
|
def setup_edit_area(self):
|
||||||
|
self.current_editor_index = 0
|
||||||
|
self.tform.edit_area.setAcceptRichText(False)
|
||||||
|
if qtminor < 10:
|
||||||
|
self.tform.edit_area.setTabStopWidth(30)
|
||||||
|
else:
|
||||||
|
tab_width = self.fontMetrics().width(" " * 4)
|
||||||
|
self.tform.edit_area.setTabStopDistance(tab_width)
|
||||||
|
|
||||||
def setup_cloze_number_box(self):
|
def setup_cloze_number_box(self):
|
||||||
names = (_("Cloze %d") % n for n in self.cloze_numbers)
|
names = (_("Cloze %d") % n for n in self.cloze_numbers)
|
||||||
self.pform.cloze_number_combo.addItems(names)
|
self.pform.cloze_number_combo.addItems(names)
|
||||||
|
@ -231,27 +250,24 @@ class CardLayout(QDialog):
|
||||||
self.pform.cloze_number_combo.currentIndexChanged, self.on_change_cloze
|
self.pform.cloze_number_combo.currentIndexChanged, self.on_change_cloze
|
||||||
)
|
)
|
||||||
|
|
||||||
def current_editor(self) -> QTextEdit:
|
|
||||||
idx = self.tform.tabWidget.currentIndex()
|
|
||||||
if idx == 0:
|
|
||||||
return self.tform.front
|
|
||||||
elif idx == 1:
|
|
||||||
return self.tform.back
|
|
||||||
else:
|
|
||||||
return self.tform.css
|
|
||||||
|
|
||||||
def on_change_cloze(self, idx: int) -> None:
|
def on_change_cloze(self, idx: int) -> None:
|
||||||
self.ord = self.cloze_numbers[idx] - 1
|
self.ord = self.cloze_numbers[idx] - 1
|
||||||
self._renderPreview()
|
self._renderPreview()
|
||||||
|
|
||||||
def on_editor_changed(self, idx: int) -> None:
|
def on_editor_toggled(self):
|
||||||
if idx == 0:
|
if self.tform.front_button.isChecked():
|
||||||
|
self.current_editor_index = 0
|
||||||
self.pform.preview_front.setChecked(True)
|
self.pform.preview_front.setChecked(True)
|
||||||
elif idx == 1:
|
elif self.tform.back_button.isChecked():
|
||||||
|
self.current_editor_index = 1
|
||||||
self.pform.preview_back.setChecked(True)
|
self.pform.preview_back.setChecked(True)
|
||||||
|
else:
|
||||||
|
self.current_editor_index = 2
|
||||||
|
|
||||||
|
self.fill_fields_from_template()
|
||||||
|
|
||||||
def on_search_changed(self, text: str):
|
def on_search_changed(self, text: str):
|
||||||
editor = self.current_editor()
|
editor = self.tform.edit_area
|
||||||
if not editor.find(text):
|
if not editor.find(text):
|
||||||
# try again from top
|
# try again from top
|
||||||
cursor = editor.textCursor()
|
cursor = editor.textCursor()
|
||||||
|
@ -260,16 +276,10 @@ class CardLayout(QDialog):
|
||||||
editor.find(text)
|
editor.find(text)
|
||||||
|
|
||||||
def on_search_next(self):
|
def on_search_next(self):
|
||||||
self.on_search_changed(self.search_box.text())
|
text = self.tform.search_edit.text()
|
||||||
|
self.on_search_changed(text)
|
||||||
|
|
||||||
def setupWebviews(self):
|
def setupWebviews(self):
|
||||||
if theme_manager.night_mode and not theme_manager.macos_dark_mode():
|
|
||||||
# the grouping box renders incorrectly in the fusion theme. 5.9+
|
|
||||||
# 5.13 behave differently to 5.14, but it looks bad in either case,
|
|
||||||
# and adjusting the top margin makes the 'save PDF' button show in
|
|
||||||
# the wrong place, so for now we just disable the border instead
|
|
||||||
self.setStyleSheet("QGroupBox { border: 0; }")
|
|
||||||
|
|
||||||
pform = self.pform
|
pform = self.pform
|
||||||
pform.frontWeb = AnkiWebView(title="card layout")
|
pform.frontWeb = AnkiWebView(title="card layout")
|
||||||
pform.verticalLayout.addWidget(pform.frontWeb)
|
pform.verticalLayout.addWidget(pform.frontWeb)
|
||||||
|
@ -350,31 +360,32 @@ class CardLayout(QDialog):
|
||||||
def fill_fields_from_template(self):
|
def fill_fields_from_template(self):
|
||||||
t = self.current_template()
|
t = self.current_template()
|
||||||
self.ignore_change_signals = True
|
self.ignore_change_signals = True
|
||||||
self.tform.front.setPlainText(t["qfmt"])
|
|
||||||
self.tform.css.setPlainText(self.model["css"])
|
if self.current_editor_index == 0:
|
||||||
self.tform.back.setPlainText(t["afmt"])
|
text = t["qfmt"]
|
||||||
self.tform.front.setAcceptRichText(False)
|
elif self.current_editor_index == 1:
|
||||||
self.tform.css.setAcceptRichText(False)
|
text = t["afmt"]
|
||||||
self.tform.back.setAcceptRichText(False)
|
|
||||||
if qtminor < 10:
|
|
||||||
self.tform.front.setTabStopWidth(30)
|
|
||||||
self.tform.css.setTabStopWidth(30)
|
|
||||||
self.tform.back.setTabStopWidth(30)
|
|
||||||
else:
|
else:
|
||||||
tab_width = self.fontMetrics().width(" " * 4)
|
text = self.model["css"]
|
||||||
self.tform.front.setTabStopDistance(tab_width)
|
|
||||||
self.tform.css.setTabStopDistance(tab_width)
|
self.tform.edit_area.setPlainText(text)
|
||||||
self.tform.back.setTabStopDistance(tab_width)
|
|
||||||
self.ignore_change_signals = False
|
self.ignore_change_signals = False
|
||||||
|
|
||||||
def write_edits_to_template_and_redraw(self):
|
def write_edits_to_template_and_redraw(self):
|
||||||
if self.ignore_change_signals:
|
if self.ignore_change_signals:
|
||||||
return
|
return
|
||||||
|
|
||||||
self.changed = True
|
self.changed = True
|
||||||
t = self.current_template()
|
|
||||||
t["qfmt"] = self.tform.front.toPlainText()
|
text = self.tform.edit_area.toPlainText()
|
||||||
t["afmt"] = self.tform.back.toPlainText()
|
|
||||||
self.model["css"] = self.tform.css.toPlainText()
|
if self.current_editor_index == 0:
|
||||||
|
self.current_template()['qfmt'] = text
|
||||||
|
elif self.current_editor_index == 1:
|
||||||
|
self.current_template()['afmt'] = text
|
||||||
|
else:
|
||||||
|
self.model["css"] = text
|
||||||
|
|
||||||
self.renderPreview()
|
self.renderPreview()
|
||||||
|
|
||||||
# Preview
|
# Preview
|
||||||
|
|
|
@ -17,7 +17,16 @@
|
||||||
<property name="spacing">
|
<property name="spacing">
|
||||||
<number>3</number>
|
<number>3</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="margin">
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
<item>
|
||||||
|
@ -26,9 +35,9 @@
|
||||||
<number>12</number>
|
<number>12</number>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="label">
|
<widget class="QLabel" name="card_type_label">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Card Type:</string>
|
<string notr="true">CARD TYPE:</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -73,16 +82,6 @@
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="changesLabel">
|
|
||||||
<property name="text">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<resources/>
|
<resources/>
|
||||||
|
|
|
@ -14,25 +14,24 @@
|
||||||
<string notr="true">Form</string>
|
<string notr="true">Form</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
<item>
|
<property name="leftMargin">
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
<number>0</number>
|
||||||
<item>
|
</property>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
<property name="topMargin">
|
||||||
<property name="sizeConstraint">
|
<number>0</number>
|
||||||
<enum>QLayout::SetMinimumSize</enum>
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QGroupBox" name="front_back_box">
|
<widget class="QGroupBox" name="preview_box">
|
||||||
<property name="title">
|
<property name="title">
|
||||||
<string/>
|
<string notr="true">GroupBox</string>
|
||||||
</property>
|
|
||||||
<property name="flat">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
|
||||||
<property name="sizeConstraint">
|
|
||||||
<enum>QLayout::SetMinimumSize</enum>
|
|
||||||
</property>
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
<item>
|
<item>
|
||||||
|
@ -52,11 +51,6 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<spacer name="horizontalSpacer">
|
<spacer name="horizontalSpacer">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
|
@ -76,6 +70,7 @@
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>525</width>
|
<width>786</width>
|
||||||
<height>721</height>
|
<height>1081</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>Form</string>
|
<string>Form</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
<property name="leftMargin">
|
<property name="leftMargin">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
|
@ -32,49 +32,79 @@
|
||||||
<property name="bottomMargin">
|
<property name="bottomMargin">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox">
|
||||||
|
<property name="title">
|
||||||
|
<string notr="true">GroupBox</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>12</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>12</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>12</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>12</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="front_button">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string notr="true"/>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">FRONT</string>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="back_button">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string notr="true"/>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">BACK</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="style_button">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string notr="true"/>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">STYLE</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLineEdit" name="search_edit"/>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="changes_affect_label">
|
<widget class="QLabel" name="changes_affect_label">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string notr="true">CHANGES_WILL_AFFECT</string>
|
<string notr="true">CHANGES_WILL_AFFECT</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
<property name="wordWrap">
|
||||||
</item>
|
<bool>true</bool>
|
||||||
<item>
|
|
||||||
<widget class="QTabWidget" name="tabWidget">
|
|
||||||
<property name="currentIndex">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="tab">
|
</widget>
|
||||||
<attribute name="title">
|
</item>
|
||||||
<string notr="true">FRONT</string>
|
|
||||||
</attribute>
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
|
||||||
<item>
|
<item>
|
||||||
<widget class="QTextEdit" name="front"/>
|
<widget class="QTextEdit" name="edit_area"/>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QWidget" name="tab_2">
|
|
||||||
<attribute name="title">
|
|
||||||
<string notr="true">BACK</string>
|
|
||||||
</attribute>
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
|
||||||
<item>
|
|
||||||
<widget class="QTextEdit" name="back"/>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<widget class="QWidget" name="tab_3">
|
|
||||||
<attribute name="title">
|
|
||||||
<string notr="true">STYLING</string>
|
|
||||||
</attribute>
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_5">
|
|
||||||
<item>
|
|
||||||
<widget class="QTextEdit" name="css"/>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
|
|
13
rslib/ftl/card-templates.ftl
Normal file
13
rslib/ftl/card-templates.ftl
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
card-templates-changes-will-affect-notes =
|
||||||
|
{ $count ->
|
||||||
|
[one] Changes below will affect the { $count } note that uses this card type.
|
||||||
|
*[other] Changes below will affect the { $count } notes that use this card type.
|
||||||
|
}
|
||||||
|
card-templates-card-type = Card Type:
|
||||||
|
card-templates-front-template = Front Template
|
||||||
|
card-templates-back-template = Back Template
|
||||||
|
card-templates-template-styling = Styling
|
||||||
|
card-templates-front-preview = Front Preview
|
||||||
|
card-templates-back-preview = Back Preview
|
||||||
|
card-templates-preview-box = Preview
|
||||||
|
card-templates-template-box = Template
|
Loading…
Reference in a new issue