Add options button in AddCards window
This commit is contained in:
parent
09787be647
commit
19dc8c91fe
@ -21,7 +21,7 @@ from aqt import mw
|
|||||||
from aqt.qt import *
|
from aqt.qt import *
|
||||||
from anki.hooks import addHook, wrap
|
from anki.hooks import addHook, wrap
|
||||||
from aqt.addcards import AddCards
|
from aqt.addcards import AddCards
|
||||||
from aqt.utils import showInfo, shortcut
|
from aqt.utils import showInfo, shortcut, downArrow
|
||||||
from .gui import show_options, show_about_dialog, check_updates
|
from .gui import show_options, show_about_dialog, check_updates
|
||||||
from .query import query_from_browser, query_from_editor_all_fields
|
from .query import query_from_browser, query_from_editor_all_fields
|
||||||
from .context import config, APP_ICON
|
from .context import config, APP_ICON
|
||||||
@ -39,29 +39,6 @@ have_setup = False
|
|||||||
my_shortcut = ''
|
my_shortcut = ''
|
||||||
|
|
||||||
|
|
||||||
def wrap_method(func, *args, **kwargs):
|
|
||||||
'''
|
|
||||||
wrap a function with params when it's called
|
|
||||||
'''
|
|
||||||
def callback():
|
|
||||||
return func(*args, **kwargs)
|
|
||||||
return callback
|
|
||||||
|
|
||||||
|
|
||||||
def add_query_button(self):
|
|
||||||
'''
|
|
||||||
add a button in add card window
|
|
||||||
'''
|
|
||||||
bb = self.form.buttonBox
|
|
||||||
ar = QDialogButtonBox.ActionRole
|
|
||||||
self.queryButton = bb.addButton(_(u"Query"), ar)
|
|
||||||
self.queryButton.clicked.connect(wrap_method(
|
|
||||||
query_from_editor_all_fields, self.editor))
|
|
||||||
self.queryButton.setShortcut(QKeySequence(my_shortcut))
|
|
||||||
self.queryButton.setToolTip(
|
|
||||||
shortcut(_(u"Query (shortcut: %s)" % my_shortcut)))
|
|
||||||
|
|
||||||
|
|
||||||
def browser_menu():
|
def browser_menu():
|
||||||
"""
|
"""
|
||||||
add add-on's menu to browser window
|
add add-on's menu to browser window
|
||||||
@ -75,7 +52,7 @@ def browser_menu():
|
|||||||
browser.form.menubar.addMenu(menu)
|
browser.form.menubar.addMenu(menu)
|
||||||
# Query Selected
|
# Query Selected
|
||||||
action = QAction("Query Selected", browser)
|
action = QAction("Query Selected", browser)
|
||||||
action.triggered.connect(wrap_method(query_from_browser, browser))
|
action.triggered.connect(lambda: query_from_browser(browser))
|
||||||
action.setShortcut(QKeySequence(my_shortcut))
|
action.setShortcut(QKeySequence(my_shortcut))
|
||||||
menu.addAction(action)
|
menu.addAction(action)
|
||||||
# Options
|
# Options
|
||||||
@ -91,7 +68,7 @@ def browser_menu():
|
|||||||
menu.addAction(action)
|
menu.addAction(action)
|
||||||
# About
|
# About
|
||||||
action = QAction("About", browser)
|
action = QAction("About", browser)
|
||||||
action.triggered.connect(wrap_method(show_about_dialog, browser))
|
action.triggered.connect(lambda: show_about_dialog(browser))
|
||||||
menu.addAction(action)
|
menu.addAction(action)
|
||||||
|
|
||||||
addHook('browser.setupMenus', on_setup_menus)
|
addHook('browser.setupMenus', on_setup_menus)
|
||||||
@ -101,8 +78,38 @@ def customize_addcards():
|
|||||||
"""
|
"""
|
||||||
add button to addcards window
|
add button to addcards window
|
||||||
"""
|
"""
|
||||||
|
def add_query_button(self):
|
||||||
|
'''
|
||||||
|
add a button in add card window
|
||||||
|
'''
|
||||||
|
bb = self.form.buttonBox
|
||||||
|
ar = QDialogButtonBox.ActionRole
|
||||||
|
# button
|
||||||
|
fastwqBtn = QPushButton(_("Query") + u" " + downArrow())
|
||||||
|
fastwqBtn.setShortcut(QKeySequence(my_shortcut))
|
||||||
|
fastwqBtn.setToolTip(
|
||||||
|
_(u"Shortcut: %s") % shortcut(my_shortcut)
|
||||||
|
)
|
||||||
|
bb.addButton(fastwqBtn, ar)
|
||||||
|
# signal
|
||||||
|
def onQuery(e):
|
||||||
|
if isinstance(e, QMouseEvent):
|
||||||
|
if e.buttons() & Qt.LeftButton:
|
||||||
|
menu = QMenu(self)
|
||||||
|
menu.addAction(_("Query"), lambda: query_from_editor_all_fields(self.editor), QKeySequence(my_shortcut))
|
||||||
|
menu.addAction(_("Options"), lambda: show_options(self))
|
||||||
|
menu.exec_(fastwqBtn.mapToGlobal(QPoint(0, fastwqBtn.height())))
|
||||||
|
else:
|
||||||
|
query_from_editor_all_fields(self.editor)
|
||||||
|
|
||||||
|
fastwqBtn.mousePressEvent = onQuery
|
||||||
|
fastwqBtn.clicked.connect(onQuery)
|
||||||
|
|
||||||
AddCards.setupButtons = wrap(
|
AddCards.setupButtons = wrap(
|
||||||
AddCards.setupButtons, add_query_button, "before")
|
AddCards.setupButtons,
|
||||||
|
add_query_button,
|
||||||
|
"before"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def config_menu():
|
def config_menu():
|
||||||
@ -110,5 +117,5 @@ def config_menu():
|
|||||||
add menu to anki window menebar
|
add menu to anki window menebar
|
||||||
"""
|
"""
|
||||||
action = QAction(APP_ICON, "FastWQ...", mw)
|
action = QAction(APP_ICON, "FastWQ...", mw)
|
||||||
action.triggered.connect(wrap_method(show_options))
|
action.triggered.connect(show_options)
|
||||||
mw.form.menuTools.addAction(action)
|
mw.form.menuTools.addAction(action)
|
||||||
|
|||||||
@ -21,7 +21,7 @@ from aqt import mw
|
|||||||
from aqt.qt import *
|
from aqt.qt import *
|
||||||
from anki.hooks import addHook, wrap
|
from anki.hooks import addHook, wrap
|
||||||
from aqt.addcards import AddCards
|
from aqt.addcards import AddCards
|
||||||
from aqt.utils import showInfo, shortcut
|
from aqt.utils import showInfo, shortcut, downArrow
|
||||||
from .gui import show_options, show_about_dialog, check_updates
|
from .gui import show_options, show_about_dialog, check_updates
|
||||||
from .query import query_from_browser, query_from_editor_all_fields
|
from .query import query_from_browser, query_from_editor_all_fields
|
||||||
from .context import config, APP_ICON
|
from .context import config, APP_ICON
|
||||||
@ -39,29 +39,6 @@ have_setup = False
|
|||||||
my_shortcut = ''
|
my_shortcut = ''
|
||||||
|
|
||||||
|
|
||||||
def wrap_method(func, *args, **kwargs):
|
|
||||||
'''
|
|
||||||
wrap a function with params when it's called
|
|
||||||
'''
|
|
||||||
def callback():
|
|
||||||
return func(*args, **kwargs)
|
|
||||||
return callback
|
|
||||||
|
|
||||||
|
|
||||||
def add_query_button(self):
|
|
||||||
'''
|
|
||||||
add a button in add card window
|
|
||||||
'''
|
|
||||||
bb = self.form.buttonBox
|
|
||||||
ar = QDialogButtonBox.ActionRole
|
|
||||||
self.queryButton = bb.addButton(_(u"Query"), ar)
|
|
||||||
self.queryButton.clicked.connect(wrap_method(
|
|
||||||
query_from_editor_all_fields, self.editor))
|
|
||||||
self.queryButton.setShortcut(QKeySequence(my_shortcut))
|
|
||||||
self.queryButton.setToolTip(
|
|
||||||
shortcut(_(u"Query (shortcut: %s)" % my_shortcut)))
|
|
||||||
|
|
||||||
|
|
||||||
def browser_menu():
|
def browser_menu():
|
||||||
"""
|
"""
|
||||||
add add-on's menu to browser window
|
add add-on's menu to browser window
|
||||||
@ -75,7 +52,7 @@ def browser_menu():
|
|||||||
browser.form.menubar.addMenu(menu)
|
browser.form.menubar.addMenu(menu)
|
||||||
# Query Selected
|
# Query Selected
|
||||||
action = QAction("Query Selected", browser)
|
action = QAction("Query Selected", browser)
|
||||||
action.triggered.connect(wrap_method(query_from_browser, browser))
|
action.triggered.connect(lambda: query_from_browser(browser))
|
||||||
action.setShortcut(QKeySequence(my_shortcut))
|
action.setShortcut(QKeySequence(my_shortcut))
|
||||||
menu.addAction(action)
|
menu.addAction(action)
|
||||||
# Options
|
# Options
|
||||||
@ -91,7 +68,7 @@ def browser_menu():
|
|||||||
menu.addAction(action)
|
menu.addAction(action)
|
||||||
# About
|
# About
|
||||||
action = QAction("About", browser)
|
action = QAction("About", browser)
|
||||||
action.triggered.connect(wrap_method(show_about_dialog, browser))
|
action.triggered.connect(lambda: show_about_dialog(browser))
|
||||||
menu.addAction(action)
|
menu.addAction(action)
|
||||||
|
|
||||||
addHook('browser.setupMenus', on_setup_menus)
|
addHook('browser.setupMenus', on_setup_menus)
|
||||||
@ -101,8 +78,38 @@ def customize_addcards():
|
|||||||
"""
|
"""
|
||||||
add button to addcards window
|
add button to addcards window
|
||||||
"""
|
"""
|
||||||
|
def add_query_button(self):
|
||||||
|
'''
|
||||||
|
add a button in add card window
|
||||||
|
'''
|
||||||
|
bb = self.form.buttonBox
|
||||||
|
ar = QDialogButtonBox.ActionRole
|
||||||
|
# button
|
||||||
|
fastwqBtn = QPushButton(_("Query") + u" " + downArrow())
|
||||||
|
fastwqBtn.setShortcut(QKeySequence(my_shortcut))
|
||||||
|
fastwqBtn.setToolTip(
|
||||||
|
_(u"Shortcut: %s") % shortcut(my_shortcut)
|
||||||
|
)
|
||||||
|
bb.addButton(fastwqBtn, ar)
|
||||||
|
# signal
|
||||||
|
def onQuery(e):
|
||||||
|
if isinstance(e, QMouseEvent):
|
||||||
|
if e.buttons() & Qt.LeftButton:
|
||||||
|
menu = QMenu(self)
|
||||||
|
menu.addAction(_("Query"), lambda: query_from_editor_all_fields(self.editor), QKeySequence(my_shortcut))
|
||||||
|
menu.addAction(_("Options"), lambda: show_options(self))
|
||||||
|
menu.exec_(fastwqBtn.mapToGlobal(QPoint(0, fastwqBtn.height())))
|
||||||
|
else:
|
||||||
|
query_from_editor_all_fields(self.editor)
|
||||||
|
|
||||||
|
fastwqBtn.mousePressEvent = onQuery
|
||||||
|
fastwqBtn.clicked.connect(onQuery)
|
||||||
|
|
||||||
AddCards.setupButtons = wrap(
|
AddCards.setupButtons = wrap(
|
||||||
AddCards.setupButtons, add_query_button, "before")
|
AddCards.setupButtons,
|
||||||
|
add_query_button,
|
||||||
|
"before"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def config_menu():
|
def config_menu():
|
||||||
@ -110,5 +117,5 @@ def config_menu():
|
|||||||
add menu to anki window menebar
|
add menu to anki window menebar
|
||||||
"""
|
"""
|
||||||
action = QAction(APP_ICON, "FastWQ...", mw)
|
action = QAction(APP_ICON, "FastWQ...", mw)
|
||||||
action.triggered.connect(wrap_method(show_options))
|
action.triggered.connect(show_options)
|
||||||
mw.form.menuTools.addAction(action)
|
mw.form.menuTools.addAction(action)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user