mirror of
https://github.com/ankitects/anki.git
synced 2025-09-19 06:22:22 -04:00
browser work
This commit is contained in:
parent
4d66969318
commit
77dd9eea14
8 changed files with 39 additions and 51 deletions
|
@ -343,8 +343,7 @@ class Browser(QMainWindow):
|
||||||
# actions
|
# actions
|
||||||
c = self.connect; f = self.form; s = SIGNAL("triggered()")
|
c = self.connect; f = self.form; s = SIGNAL("triggered()")
|
||||||
c(f.actionAddItems, s, self.mw.onAddCard)
|
c(f.actionAddItems, s, self.mw.onAddCard)
|
||||||
c(f.actionDelete, s, self.deleteCards)
|
c(f.actionDeleteNotes, s, self.deleteNotes)
|
||||||
#c(f.actionSetGroup, s, self.setGroup)
|
|
||||||
c(f.actionAddTag, s, self.addTags)
|
c(f.actionAddTag, s, self.addTags)
|
||||||
c(f.actionDeleteTag, s, self.deleteTags)
|
c(f.actionDeleteTag, s, self.deleteTags)
|
||||||
c(f.actionReposition, s, self.reposition)
|
c(f.actionReposition, s, self.reposition)
|
||||||
|
@ -593,7 +592,7 @@ class Browser(QMainWindow):
|
||||||
def setColumnSizes(self):
|
def setColumnSizes(self):
|
||||||
hh = self.form.tableView.horizontalHeader()
|
hh = self.form.tableView.horizontalHeader()
|
||||||
for c, i in enumerate(self.model.activeCols):
|
for c, i in enumerate(self.model.activeCols):
|
||||||
if i in ("question", "answer", "noteFld"):
|
if c == len(self.model.activeCols) - 1:
|
||||||
hh.setResizeMode(c, QHeaderView.Stretch)
|
hh.setResizeMode(c, QHeaderView.Stretch)
|
||||||
else:
|
else:
|
||||||
hh.setResizeMode(c, QHeaderView.Interactive)
|
hh.setResizeMode(c, QHeaderView.Interactive)
|
||||||
|
@ -841,11 +840,6 @@ where id in %s""" % ids2str(sf))
|
||||||
# Misc menu options
|
# Misc menu options
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
def genCards(self):
|
|
||||||
nids = self.oneModelNotes()
|
|
||||||
if nids:
|
|
||||||
GenCards(self, nids)
|
|
||||||
|
|
||||||
def onChangeModel(self):
|
def onChangeModel(self):
|
||||||
nids = self.oneModelNotes()
|
nids = self.oneModelNotes()
|
||||||
if nids:
|
if nids:
|
||||||
|
@ -859,11 +853,11 @@ where id in %s""" % ids2str(sf))
|
||||||
# Card deletion
|
# Card deletion
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
def deleteCards(self):
|
def deleteNotes(self):
|
||||||
self.mw.checkpoint(_("Delete Cards"))
|
self.mw.checkpoint(_("Delete Notes"))
|
||||||
self.model.beginReset()
|
self.model.beginReset()
|
||||||
oldRow = self.form.tableView.selectionModel().currentIndex().row()
|
oldRow = self.form.tableView.selectionModel().currentIndex().row()
|
||||||
self.col.remCards(self.selectedCards())
|
self.col.remNotes(self.selectedNotes())
|
||||||
self.onSearch(reset=False)
|
self.onSearch(reset=False)
|
||||||
if len(self.model.cards):
|
if len(self.model.cards):
|
||||||
new = min(oldRow, len(self.model.cards) - 1)
|
new = min(oldRow, len(self.model.cards) - 1)
|
||||||
|
@ -926,15 +920,13 @@ where id in %s""" % ids2str(self.selectedCards()), mod)
|
||||||
return
|
return
|
||||||
if func is None:
|
if func is None:
|
||||||
func = self.col.tags.bulkAdd
|
func = self.col.tags.bulkAdd
|
||||||
self.model.beginReset()
|
|
||||||
if label is None:
|
if label is None:
|
||||||
label = _("Add Tags")
|
label = _("Add Tags")
|
||||||
if label:
|
if label:
|
||||||
self.mw.checkpoint(label)
|
self.mw.checkpoint(label)
|
||||||
func(self.selectedNotes(), tags)
|
func(self.selectedNotes(), tags)
|
||||||
self.onSearch(reset=False)
|
self.model.reset()
|
||||||
self.mw.requireReset()
|
self.mw.requireReset()
|
||||||
self.model.endReset()
|
|
||||||
|
|
||||||
def deleteTags(self, tags=None, label=None):
|
def deleteTags(self, tags=None, label=None):
|
||||||
if label is None:
|
if label is None:
|
||||||
|
@ -1276,16 +1268,16 @@ class ChangeModel(QDialog):
|
||||||
self.form.templateMap.setLayout(self.tlayout)
|
self.form.templateMap.setLayout(self.tlayout)
|
||||||
# model chooser
|
# model chooser
|
||||||
import aqt.modelchooser
|
import aqt.modelchooser
|
||||||
self.oldCurrentModel = self.browser.col.conf['currentModelId']
|
self.oldModel = self.browser.col.decks.current()
|
||||||
self.browser.col.conf['currentModelId'] = self.oldModel.id
|
self.form.oldModelLabel.setText(self.oldModel['name'])
|
||||||
self.form.oldModelLabel.setText(self.oldModel.name)
|
|
||||||
self.modelChooser = aqt.modelchooser.ModelChooser(
|
self.modelChooser = aqt.modelchooser.ModelChooser(
|
||||||
self.browser.mw, self.form.modelChooserWidget, cards=False, label=False)
|
self.browser.mw, self.form.modelChooserWidget, label=False)
|
||||||
self.modelChooser.models.setFocus()
|
self.modelChooser.models.setFocus()
|
||||||
self.connect(self.form.buttonBox, SIGNAL("helpRequested()"),
|
self.connect(self.form.buttonBox, SIGNAL("helpRequested()"),
|
||||||
self.onHelp)
|
self.onHelp)
|
||||||
self.modelChanged(self.oldModel)
|
self.modelChanged(self.oldModel)
|
||||||
self.pauseUpdate = False
|
self.pauseUpdate = False
|
||||||
|
print "make sure we start with the model's old model"
|
||||||
|
|
||||||
def onReset(self):
|
def onReset(self):
|
||||||
self.modelChanged(self.browser.col.currentModel())
|
self.modelChanged(self.browser.col.currentModel())
|
||||||
|
@ -1378,7 +1370,6 @@ class ChangeModel(QDialog):
|
||||||
def cleanup(self):
|
def cleanup(self):
|
||||||
removeHook("reset", self.onReset)
|
removeHook("reset", self.onReset)
|
||||||
removeHook("currentModelChanged", self.onReset)
|
removeHook("currentModelChanged", self.onReset)
|
||||||
self.oldCurrentModel = self.browser.col.conf['currentModelId']
|
|
||||||
self.modelChooser.cleanup()
|
self.modelChooser.cleanup()
|
||||||
saveGeom(self, "changeModel")
|
saveGeom(self, "changeModel")
|
||||||
|
|
||||||
|
@ -1422,28 +1413,30 @@ class BrowserToolbar(Toolbar):
|
||||||
|
|
||||||
def _centerLinks(self):
|
def _centerLinks(self):
|
||||||
links = [
|
links = [
|
||||||
["setDeck", _("Move to Deck"), ""],
|
["add", _("Add Notes"), ""],
|
||||||
["addTags", _("Add Tags"), ""],
|
["delete", _("Delete Notes"), ""],
|
||||||
["remTags", _("Remove Tags"), ""],
|
["setDeck", _("Change Deck"), ""],
|
||||||
]
|
]
|
||||||
return self._linkHTML(links)
|
return self._linkHTML(links)
|
||||||
|
|
||||||
def draw(self):
|
def draw(self):
|
||||||
mark = self.browser.isMarked()
|
mark = self.browser.isMarked()
|
||||||
pause = self.browser.isSuspended()
|
pause = self.browser.isSuspended()
|
||||||
def borderImg(link, icon, on):
|
def borderImg(link, icon, on, title):
|
||||||
if on:
|
if on:
|
||||||
fmt = '''\
|
fmt = '''\
|
||||||
<a class=hitem href="%s">
|
<a class=hitem title="%s" href="%s">
|
||||||
<img style='background: #000;' src="qrc:/icons/%s.png"></a>'''
|
<img style='background: #000;' src="qrc:/icons/%s.png"></a>'''
|
||||||
else:
|
else:
|
||||||
fmt = '''\
|
fmt = '''\
|
||||||
<a class=hitem href="%s"><img src="qrc:/icons/%s.png"></a>'''
|
<a class=hitem title="%s" href="%s"><img src="qrc:/icons/%s.png"></a>'''
|
||||||
return fmt % (link, icon)
|
return fmt % (title, link, icon)
|
||||||
right = ""
|
right = ""
|
||||||
right += borderImg("info", "info", False)
|
right += borderImg("info", "info", False, _("Card Info"))
|
||||||
right += borderImg("mark", "star16", mark)
|
right += borderImg("mark", "star16", mark, _("Mark Note"))
|
||||||
right += borderImg("pause", "pause16", pause)
|
right += borderImg("pause", "pause16", pause, _("Suspend Cards"))
|
||||||
|
right += borderImg("addtag", "addtag16", False, _("Bulk Tag Add"))
|
||||||
|
right += borderImg("deletetag", "deletetag16", False, _("Bulk Tag Delete"))
|
||||||
self.web.stdHtml(self._body % (
|
self.web.stdHtml(self._body % (
|
||||||
"<span style='display:inline-block; width: 100px;'></span>",
|
"<span style='display:inline-block; width: 100px;'></span>",
|
||||||
self._centerLinks(),
|
self._centerLinks(),
|
||||||
|
@ -1455,16 +1448,20 @@ class BrowserToolbar(Toolbar):
|
||||||
def _linkHandler(self, l):
|
def _linkHandler(self, l):
|
||||||
if l == "anki":
|
if l == "anki":
|
||||||
self.showMenu()
|
self.showMenu()
|
||||||
|
elif l == "add":
|
||||||
|
self.browser.mw.onAddCard()
|
||||||
|
elif l == "delete":
|
||||||
|
self.browser.deleteNotes()
|
||||||
elif l == "setDeck":
|
elif l == "setDeck":
|
||||||
self.browser.setDeck()
|
self.browser.setDeck()
|
||||||
elif l == "addTags":
|
# icons
|
||||||
self.browser.addTags()
|
|
||||||
elif l == "remTags":
|
|
||||||
self.browser.deleteTags()
|
|
||||||
elif l == "info":
|
elif l == "info":
|
||||||
self.browser.showCardInfo()
|
self.browser.showCardInfo()
|
||||||
# icons
|
|
||||||
elif l == "mark":
|
elif l == "mark":
|
||||||
self.browser.onMark()
|
self.browser.onMark()
|
||||||
elif l == "pause":
|
elif l == "pause":
|
||||||
self.browser.onSuspend()
|
self.browser.onSuspend()
|
||||||
|
elif l == "addtag":
|
||||||
|
self.browser.addTags()
|
||||||
|
elif l == "deletetag":
|
||||||
|
self.browser.deleteTags()
|
||||||
|
|
|
@ -52,7 +52,7 @@ class Overview(object):
|
||||||
but = self.mw.button
|
but = self.mw.button
|
||||||
deck = self.mw.col.decks.current()
|
deck = self.mw.col.decks.current()
|
||||||
sid = deck.get("sharedFrom")
|
sid = deck.get("sharedFrom")
|
||||||
if True: # sid:
|
if sid:
|
||||||
shareLink = '<a class=smallLink href="review">Reviews and Updates</a>'
|
shareLink = '<a class=smallLink href="review">Reviews and Updates</a>'
|
||||||
else:
|
else:
|
||||||
shareLink = ""
|
shareLink = ""
|
||||||
|
|
|
@ -229,7 +229,6 @@
|
||||||
<addaction name="actionReposition"/>
|
<addaction name="actionReposition"/>
|
||||||
<addaction name="actionReschedule"/>
|
<addaction name="actionReschedule"/>
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
<addaction name="actionDelete"/>
|
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QMenu" name="menuJump">
|
<widget class="QMenu" name="menuJump">
|
||||||
<property name="title">
|
<property name="title">
|
||||||
|
@ -268,18 +267,6 @@
|
||||||
<addaction name="menuJump"/>
|
<addaction name="menuJump"/>
|
||||||
<addaction name="menu_Help"/>
|
<addaction name="menu_Help"/>
|
||||||
</widget>
|
</widget>
|
||||||
<action name="actionDelete">
|
|
||||||
<property name="icon">
|
|
||||||
<iconset resource="icons.qrc">
|
|
||||||
<normaloff>:/icons/editdelete.png</normaloff>:/icons/editdelete.png</iconset>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Delete</string>
|
|
||||||
</property>
|
|
||||||
<property name="shortcut">
|
|
||||||
<string>Ctrl+Shift+Backspace</string>
|
|
||||||
</property>
|
|
||||||
</action>
|
|
||||||
<action name="actionAddTag">
|
<action name="actionAddTag">
|
||||||
<property name="icon">
|
<property name="icon">
|
||||||
<iconset resource="icons.qrc">
|
<iconset resource="icons.qrc">
|
||||||
|
@ -337,7 +324,7 @@
|
||||||
</action>
|
</action>
|
||||||
<action name="actionFind">
|
<action name="actionFind">
|
||||||
<property name="icon">
|
<property name="icon">
|
||||||
<iconset resource="icons.qrc">
|
<iconset>
|
||||||
<normaloff>:/icons/document-preview.png</normaloff>:/icons/document-preview.png</iconset>
|
<normaloff>:/icons/document-preview.png</normaloff>:/icons/document-preview.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
@ -349,7 +336,7 @@
|
||||||
</action>
|
</action>
|
||||||
<action name="actionNote">
|
<action name="actionNote">
|
||||||
<property name="icon">
|
<property name="icon">
|
||||||
<iconset resource="icons.qrc">
|
<iconset>
|
||||||
<normaloff>:/icons/Anki_Fact.png</normaloff>:/icons/Anki_Fact.png</iconset>
|
<normaloff>:/icons/Anki_Fact.png</normaloff>:/icons/Anki_Fact.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
@ -521,7 +508,7 @@
|
||||||
</action>
|
</action>
|
||||||
<action name="actionCardList">
|
<action name="actionCardList">
|
||||||
<property name="icon">
|
<property name="icon">
|
||||||
<iconset resource="icons.qrc">
|
<iconset>
|
||||||
<normaloff>:/icons/generate_07.png</normaloff>:/icons/generate_07.png</iconset>
|
<normaloff>:/icons/generate_07.png</normaloff>:/icons/generate_07.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
|
|
@ -102,5 +102,9 @@
|
||||||
<file>icons/pause16.png</file>
|
<file>icons/pause16.png</file>
|
||||||
<file>icons/pause_off16.png</file>
|
<file>icons/pause_off16.png</file>
|
||||||
<file>icons/info.png</file>
|
<file>icons/info.png</file>
|
||||||
|
<file>icons/add16.png</file>
|
||||||
|
<file>icons/delete16.png</file>
|
||||||
|
<file>icons/addtag16.png</file>
|
||||||
|
<file>icons/deletetag16.png</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
|
BIN
designer/icons/add16.png
Normal file
BIN
designer/icons/add16.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3 KiB |
BIN
designer/icons/addtag16.png
Normal file
BIN
designer/icons/addtag16.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.1 KiB |
BIN
designer/icons/delete16.png
Normal file
BIN
designer/icons/delete16.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.1 KiB |
BIN
designer/icons/deletetag16.png
Normal file
BIN
designer/icons/deletetag16.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.1 KiB |
Loading…
Reference in a new issue