'add field' button

This commit is contained in:
Damien Elmes 2012-10-25 21:17:10 +09:00
parent b9db940ae3
commit efa1b54c2e
2 changed files with 156 additions and 1 deletions

View file

@ -150,8 +150,12 @@ Please create a new card type first."""))
l.addWidget(help)
c(help, SIGNAL("clicked()"), self.onHelp)
l.addStretch()
addField = QPushButton(_("Add Field"))
addField.setAutoDefault(False)
l.addWidget(addField)
c(addField, SIGNAL("clicked()"), self.onAddField)
if self.model['type'] != MODEL_CLOZE:
flip = QPushButton(_("Flip Front/Back"))
flip = QPushButton(_("Flip"))
flip.setAutoDefault(False)
l.addWidget(flip)
c(flip, SIGNAL("clicked()"), self.onFlip)
@ -369,6 +373,33 @@ Enter deck to place new %s cards in, or leave blank:""") %
else:
t['did'] = self.col.decks.id(te.text())
def onAddField(self):
obj = self.mw.app.focusWidget()
if obj not in (self.tab['tform'].front, self.tab['tform'].back):
return showInfo(_("Please click in the front or back template first."))
diag = QDialog(self)
form = aqt.forms.addfield.Ui_Dialog()
form.setupUi(diag)
fields = [f['name'] for f in self.model['flds']]
form.fields.addItems(fields)
form.font.setCurrentFont(QFont("Arial"))
form.size.setValue(20)
diag.show()
form.fields.showPopup()
if not diag.exec_():
return
self._addField(obj,
fields[form.fields.currentIndex()],
form.font.currentFont().family(),
form.size.value())
def _addField(self, widg, field, font, size):
t = widg.toPlainText()
t +="\n<div style='font-family: %s; font-size: %s;'>{{%s}}</div>\n" % (
font, size, field)
widg.setPlainText(t)
self.saveCard()
# Closing & Help
######################################################################

124
designer/addfield.ui Normal file
View file

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>434</width>
<height>122</height>
</rect>
</property>
<property name="windowTitle">
<string>Add Field</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="2" column="1">
<widget class="QSpinBox" name="size">
<property name="minimum">
<number>6</number>
</property>
<property name="maximum">
<number>200</number>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Field:</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Font:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QFontComboBox" name="font"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Size:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="fields"/>
</item>
<item row="3" column="1">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<tabstops>
<tabstop>fields</tabstop>
<tabstop>font</tabstop>
<tabstop>size</tabstop>
<tabstop>buttonBox</tabstop>
</tabstops>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>Dialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>Dialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>