~ubuntu-branches/ubuntu/lucid/anki/lucid-updates

« back to all changes in this revision

Viewing changes to ankiqt/ui/modelproperties.py

  • Committer: Bazaar Package Importer
  • Author(s): Mackenzie Morgan
  • Date: 2010-05-31 15:55:50 UTC
  • mfrom: (7.1.2 sid)
  • Revision ID: james.westby@ubuntu.com-20100531155550-wj3tag8bvp6fwhpo
Tags: 0.9.9.8.6-2~lucid1
Backport from maverick to fix FTBFS (LP: #550145)

Show diffs side-by-side

added added

removed removed

Lines of Context:
10
10
from ankiqt import ui
11
11
 
12
12
tabs = ("General",
13
 
        "Fields",
14
13
        "Cards")
15
14
 
16
15
class ModelProperties(QDialog):
23
22
        self.deck = deck
24
23
        self.origModTime = self.deck.modified
25
24
        self.m = model
 
25
        self.needRebuild = False
26
26
        self.onFinish = onFinish
27
27
        self.dialog = ankiqt.forms.modelproperties.Ui_ModelProperties()
28
28
        self.dialog.setupUi(self)
42
42
        self.dialog.tags.setText(self.m.tags)
43
43
        self.dialog.spacing.setText(str(self.m.spacing))
44
44
        self.dialog.initialSpacing.setText(str(self.m.initialSpacing/60))
 
45
        self.dialog.mediaURL.setText(unicode(self.m.features))
45
46
 
46
47
    # Fields
47
48
    ##########################################################################
147
148
        self.ignoreFieldUpdate = False
148
149
 
149
150
    def addField(self):
150
 
        f = FieldModel()
 
151
        f = FieldModel(required=False, unique=False)
151
152
        f.name = _("Field %d") % (len(self.m.fieldModels) + 1)
152
153
        self.deck.addFieldModel(self.m, f)
153
154
        self.updateFields()
332
333
        card = self.currentCard
333
334
        newname = unicode(self.dialog.cardName.text())
334
335
        if not newname:
335
 
            newname = _("Card %d") % (self.m.cardModels.index(card) + 1)
 
336
            newname = _("Card-%d") % (self.m.cardModels.index(card) + 1)
336
337
        self.updateField(card, 'name', newname)
337
338
        s = unicode(self.dialog.cardQuestion.toPlainText())
338
339
        s = s.replace("<br>\n", "<br>")
340
341
        s = unicode(self.dialog.cardAnswer.toPlainText())
341
342
        s = s.replace("<br>\n", "<br>")
342
343
        changed2 = self.updateField(card, 'aformat', s)
343
 
        changed = changed or changed2
 
344
        self.needRebuild = self.needRebuild or changed or changed2
344
345
        self.updateField(card, 'questionInAnswer', self.dialog.questionInAnswer.isChecked())
345
346
        self.updateField(card, 'allowEmptyAnswer', self.dialog.allowEmptyAnswer.isChecked())
346
347
        idx = self.dialog.typeAnswer.currentIndex()
348
349
            self.updateField(card, 'typeAnswer', u"")
349
350
        else:
350
351
            self.updateField(card, 'typeAnswer', self.fieldNames[idx-1])
351
 
        if changed:
352
 
            # need to generate all question/answers for this card
353
 
            self.deck.updateCardsFromModel(self.m)
354
352
        self.ignoreCardUpdate = True
355
353
        self.updateCards()
356
354
        self.ignoreCardUpdate = False
471
469
        self.updateField(self.m, 'name', mname)
472
470
        self.updateField(self.m, 'tags',
473
471
                         unicode(self.dialog.tags.text()))
 
472
        url = unicode(self.dialog.mediaURL.text())
 
473
        if url:
 
474
            if not re.match("^(http|https|ftp)://", url, re.I):
 
475
                url = "http://" + url
 
476
            if not url.endswith("/"):
 
477
                url += "/"
 
478
        self.updateField(self.m, 'features', url)
474
479
        try:
475
480
            self.updateField(self.m, 'spacing',
476
481
                             float(self.dialog.spacing.text()))
491
496
            self.m.setModified()
492
497
            self.deck.setModified()
493
498
        # if changed, reset deck
 
499
        reset = False
494
500
        if self.origModTime != self.deck.modified:
495
501
            self.deck.updateTagsForModel(self.m)
 
502
            reset = True
 
503
        if self.needRebuild:
 
504
            # need to generate q/a templates
 
505
            self.deck.updateCardsFromModel(self.m)
 
506
            reset = True
 
507
        if reset:
496
508
            ankiqt.mw.reset()
497
509
        if self.onFinish:
498
510
            self.onFinish()
499
511
        self.deck.setUndoEnd(self.undoName)
500
512
        # check again
501
 
        self.deck.haveJapanese = None
502
513
        self.deck.finishProgress()
503
514
        QDialog.reject(self)