Quick change configuration using the FastWQ menu
This commit is contained in:
parent
fe87ab2829
commit
1b6465039b
@ -17,6 +17,7 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
from operator import itemgetter
|
||||||
from aqt import mw
|
from aqt import mw
|
||||||
from aqt.qt import *
|
from aqt.qt import *
|
||||||
from anki.hooks import addHook, wrap
|
from anki.hooks import addHook, wrap
|
||||||
@ -24,9 +25,10 @@ from aqt.addcards import AddCards
|
|||||||
from aqt.utils import showInfo, shortcut, downArrow
|
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_fields
|
from .query import query_from_browser, query_from_editor_fields
|
||||||
from .context import config, APP_ICON
|
from .context import config, APP_ICON, Config
|
||||||
from .lang import _
|
from .lang import _
|
||||||
from .service import service_pool
|
from .service import service_pool
|
||||||
|
from .utils import get_icon
|
||||||
|
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
@ -38,6 +40,10 @@ __all__ = [
|
|||||||
have_setup = False
|
have_setup = False
|
||||||
my_shortcut = ''
|
my_shortcut = ''
|
||||||
|
|
||||||
|
_wraps = []
|
||||||
|
_OK_ICON = get_icon('ok.png')
|
||||||
|
_NULL_ICON = get_icon('null.png')
|
||||||
|
|
||||||
|
|
||||||
def browser_menu():
|
def browser_menu():
|
||||||
"""
|
"""
|
||||||
@ -47,9 +53,23 @@ def browser_menu():
|
|||||||
"""
|
"""
|
||||||
on browser setupMenus was called
|
on browser setupMenus was called
|
||||||
"""
|
"""
|
||||||
|
#
|
||||||
# main menu
|
# main menu
|
||||||
menu = QMenu("FastWQ", browser.form.menubar)
|
menu = QMenu("FastWQ", browser.form.menubar)
|
||||||
browser.form.menubar.addMenu(menu)
|
browser.form.menubar.addMenu(menu)
|
||||||
|
|
||||||
|
def set_options_def(mid, i):
|
||||||
|
conf = config.get_maps(mid)
|
||||||
|
conf = {'list': [conf], 'def': 0} if isinstance(conf, list) else conf
|
||||||
|
if conf['def'] != i:
|
||||||
|
conf['def'] = i
|
||||||
|
data = dict()
|
||||||
|
data[mid] = conf
|
||||||
|
config.update(data)
|
||||||
|
# end set_options_def
|
||||||
|
|
||||||
|
def init_fastwq_menu(*args, **kwargs):
|
||||||
|
menu.clear()
|
||||||
# Query Selected
|
# Query Selected
|
||||||
action = QAction(_('QUERY_SELECTED'), browser)
|
action = QAction(_('QUERY_SELECTED'), browser)
|
||||||
action.triggered.connect(lambda: query_from_browser(browser))
|
action.triggered.connect(lambda: query_from_browser(browser))
|
||||||
@ -66,11 +86,41 @@ def browser_menu():
|
|||||||
show_options(browser, model_id)
|
show_options(browser, model_id)
|
||||||
action.triggered.connect(_show_options)
|
action.triggered.connect(_show_options)
|
||||||
menu.addAction(action)
|
menu.addAction(action)
|
||||||
|
|
||||||
|
# Default configs
|
||||||
|
menu.addSeparator()
|
||||||
|
b = False
|
||||||
|
for m in sorted(browser.mw.col.models.all(), key=itemgetter("name")):
|
||||||
|
conf = config.get_maps(m['id'])
|
||||||
|
conf = {'list': [conf], 'def': 0} if isinstance(conf, list) else conf
|
||||||
|
maps_list = conf['list']
|
||||||
|
if len(maps_list) > 1:
|
||||||
|
submenu = menu.addMenu(m['name'])
|
||||||
|
for i, maps in enumerate(maps_list):
|
||||||
|
submenu.addAction(
|
||||||
|
_OK_ICON if i==conf['def'] else _NULL_ICON,
|
||||||
|
_('CONFIG_INDEX') % (i+1) if isinstance(maps, list) else maps['name'],
|
||||||
|
lambda mid=m['id'], i=i: set_options_def(mid, i)
|
||||||
|
)
|
||||||
|
b = True
|
||||||
|
if b:
|
||||||
|
menu.addSeparator()
|
||||||
|
|
||||||
# About
|
# About
|
||||||
action = QAction(_('ABOUT'), browser)
|
action = QAction(_('ABOUT'), browser)
|
||||||
action.triggered.connect(lambda: show_about_dialog(browser))
|
action.triggered.connect(lambda: show_about_dialog(browser))
|
||||||
menu.addAction(action)
|
menu.addAction(action)
|
||||||
|
|
||||||
|
# end init_fastwq_menu
|
||||||
|
init_fastwq_menu()
|
||||||
|
# wrap config.update
|
||||||
|
if Config.update not in _wraps:
|
||||||
|
Config.update = wrap(
|
||||||
|
Config.update,
|
||||||
|
init_fastwq_menu,
|
||||||
|
"after"
|
||||||
|
)
|
||||||
|
_wraps.append(Config.update)
|
||||||
addHook('browser.setupMenus', on_setup_menus)
|
addHook('browser.setupMenus', on_setup_menus)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -17,6 +17,7 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
from operator import itemgetter
|
||||||
from aqt import mw
|
from aqt import mw
|
||||||
from aqt.qt import *
|
from aqt.qt import *
|
||||||
from anki.hooks import addHook, wrap
|
from anki.hooks import addHook, wrap
|
||||||
@ -24,9 +25,10 @@ from aqt.addcards import AddCards
|
|||||||
from aqt.utils import showInfo, shortcut, downArrow
|
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_fields
|
from .query import query_from_browser, query_from_editor_fields
|
||||||
from .context import config, APP_ICON
|
from .context import config, APP_ICON, Config
|
||||||
from .lang import _
|
from .lang import _
|
||||||
from .service import service_pool
|
from .service import service_pool
|
||||||
|
from .utils import get_icon
|
||||||
|
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
@ -38,6 +40,10 @@ __all__ = [
|
|||||||
have_setup = False
|
have_setup = False
|
||||||
my_shortcut = ''
|
my_shortcut = ''
|
||||||
|
|
||||||
|
_wraps = []
|
||||||
|
_OK_ICON = get_icon('ok.png')
|
||||||
|
_NULL_ICON = get_icon('null.png')
|
||||||
|
|
||||||
|
|
||||||
def browser_menu():
|
def browser_menu():
|
||||||
"""
|
"""
|
||||||
@ -47,9 +53,23 @@ def browser_menu():
|
|||||||
"""
|
"""
|
||||||
on browser setupMenus was called
|
on browser setupMenus was called
|
||||||
"""
|
"""
|
||||||
|
#
|
||||||
# main menu
|
# main menu
|
||||||
menu = QMenu("FastWQ", browser.form.menubar)
|
menu = QMenu("FastWQ", browser.form.menubar)
|
||||||
browser.form.menubar.addMenu(menu)
|
browser.form.menubar.addMenu(menu)
|
||||||
|
|
||||||
|
def set_options_def(mid, i):
|
||||||
|
conf = config.get_maps(mid)
|
||||||
|
conf = {'list': [conf], 'def': 0} if isinstance(conf, list) else conf
|
||||||
|
if conf['def'] != i:
|
||||||
|
conf['def'] = i
|
||||||
|
data = dict()
|
||||||
|
data[mid] = conf
|
||||||
|
config.update(data)
|
||||||
|
# end set_options_def
|
||||||
|
|
||||||
|
def init_fastwq_menu(*args, **kwargs):
|
||||||
|
menu.clear()
|
||||||
# Query Selected
|
# Query Selected
|
||||||
action = QAction(_('QUERY_SELECTED'), browser)
|
action = QAction(_('QUERY_SELECTED'), browser)
|
||||||
action.triggered.connect(lambda: query_from_browser(browser))
|
action.triggered.connect(lambda: query_from_browser(browser))
|
||||||
@ -66,11 +86,41 @@ def browser_menu():
|
|||||||
show_options(browser, model_id)
|
show_options(browser, model_id)
|
||||||
action.triggered.connect(_show_options)
|
action.triggered.connect(_show_options)
|
||||||
menu.addAction(action)
|
menu.addAction(action)
|
||||||
|
|
||||||
|
# Default configs
|
||||||
|
menu.addSeparator()
|
||||||
|
b = False
|
||||||
|
for m in sorted(browser.mw.col.models.all(), key=itemgetter("name")):
|
||||||
|
conf = config.get_maps(m['id'])
|
||||||
|
conf = {'list': [conf], 'def': 0} if isinstance(conf, list) else conf
|
||||||
|
maps_list = conf['list']
|
||||||
|
if len(maps_list) > 1:
|
||||||
|
submenu = menu.addMenu(m['name'])
|
||||||
|
for i, maps in enumerate(maps_list):
|
||||||
|
submenu.addAction(
|
||||||
|
_OK_ICON if i==conf['def'] else _NULL_ICON,
|
||||||
|
_('CONFIG_INDEX') % (i+1) if isinstance(maps, list) else maps['name'],
|
||||||
|
lambda mid=m['id'], i=i: set_options_def(mid, i)
|
||||||
|
)
|
||||||
|
b = True
|
||||||
|
if b:
|
||||||
|
menu.addSeparator()
|
||||||
|
|
||||||
# About
|
# About
|
||||||
action = QAction(_('ABOUT'), browser)
|
action = QAction(_('ABOUT'), browser)
|
||||||
action.triggered.connect(lambda: show_about_dialog(browser))
|
action.triggered.connect(lambda: show_about_dialog(browser))
|
||||||
menu.addAction(action)
|
menu.addAction(action)
|
||||||
|
|
||||||
|
# end init_fastwq_menu
|
||||||
|
init_fastwq_menu()
|
||||||
|
# wrap config.update
|
||||||
|
if Config.update not in _wraps:
|
||||||
|
Config.update = wrap(
|
||||||
|
Config.update,
|
||||||
|
init_fastwq_menu,
|
||||||
|
"after"
|
||||||
|
)
|
||||||
|
_wraps.append(Config.update)
|
||||||
addHook('browser.setupMenus', on_setup_menus)
|
addHook('browser.setupMenus', on_setup_menus)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user