Advertisement
Guest User

Untitled

a guest
Jun 30th, 2012
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.64 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. # it's called "kanagen" because this is a quick hack based on another plugin I made
  3. import kanagen
  4.  
  5. from PyQt4.QtCore import *
  6. from PyQt4.QtGui import *
  7.  
  8. from anki.hooks import addHook
  9. from anki.facts import Fact
  10. from anki.utils import canonifyTags
  11. from ankiqt import mw
  12.  
  13. print 'K: MODULE LOADING'
  14.  
  15. def onReload(editor):
  16.     reload(kanagen)
  17.  
  18. def onLessonTags(editor):
  19.     n = 'Create lesson tags'
  20.     editor.parent.setProgressParent(editor)
  21.     editor.deck.setUndoStart(n)
  22.    
  23.     addTags(editor.selectedFacts())
  24.    
  25.     editor.deck.setUndoEnd(n)
  26.     editor.parent.setProgressParent(None)
  27.     editor.updateSearch()
  28.  
  29. def addTags(factIds):
  30.     mw.deck.startProgress(max=len(factIds))
  31.     for c, id in enumerate(factIds):
  32.         mw.deck.updateProgress(label='Generating tags...', value=c)
  33.         fact = mw.deck.s.query(Fact).get(id)
  34.         lesson = fact['Lesson']
  35.        
  36.         fact.tags = canonifyTags('lesson%s' % lesson)
  37.  
  38.     mw.deck.updateCardQACacheFromIds(factIds, type='facts')
  39.     mw.deck.finishProgress()
  40.  
  41. def setupMenu(editor):
  42.     print 'K: setupMenu'
  43.  
  44.     editor.dialog.menuActions.addSeparator()
  45.    
  46.     a = QAction('Create lesson tags', editor)
  47.     editor.connect(a, SIGNAL('triggered()'), lambda e=editor: onLessonTags(e))
  48.     editor.dialog.menuActions.addAction(a)
  49.  
  50.     a = QAction('Reload Kana plugin', editor)
  51.     editor.connect(a, SIGNAL('triggered()'), lambda e=editor: onReload(e))
  52.     editor.dialog.menuActions.addAction(a)
  53.  
  54. def init():
  55.     print 'K: init'
  56.     addHook('editor.setupMenus', setupMenu)
  57.  
  58. mw.registerPlugin('RTK lesson tagger', 1)
  59. addHook('init', init)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement