コード例 #1
0
 def update_preview(self, focus_widget=None):
     fact_data = {}
     for fact_key, name in self.card_type.fact_keys_and_names:
         if name == "Text" and \
            "{{cloze:Text}}" in self.front_template.toPlainText():
             fact_data[
                 fact_key] = "This is a {{c1::sample}} cloze deletion."
         else:
             fact_data[fact_key] = "(" + name + ")"
     fact = Fact(fact_data)
     fact_view = copy.deepcopy(self.fact_view)
     fact_view.extra_data["qfmt"] = self.front_template.toPlainText()
     fact_view.extra_data["afmt"] = self.back_template.toPlainText()
     # We cannot deepcopy a card type because of card_type.name = _("foo").
     card_type = copy.copy(self.card_type)
     card_type.extra_data = copy.copy(self.card_type.extra_data)
     card_type.extra_data["css"] = self.css.toPlainText()
     card = Card(card_type, fact, fact_view)
     card.extra_data["ord"] = 0
     self.front_preview.setHtml(card.question())
     self.back_preview.setHtml(card.answer())
     # The html widget seems to grab the focus, so we need to restore the
     # focus to the editor if needed.
     if focus_widget:
         focus_widget.setFocus()