Show names of dictionary & field for current field in context menu
This commit is contained in:
		
							parent
							
								
									cfec6a5294
								
							
						
					
					
						commit
						81d662048a
					
				@ -23,9 +23,10 @@ from anki.hooks import addHook, wrap
 | 
				
			|||||||
from aqt.addcards import AddCards
 | 
					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, inspect_note
 | 
				
			||||||
from .context import config, APP_ICON
 | 
					from .context import config, APP_ICON
 | 
				
			||||||
from .lang import _
 | 
					from .lang import _
 | 
				
			||||||
 | 
					from .service import service_pool
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
__all__ = [
 | 
					__all__ = [
 | 
				
			||||||
@ -126,14 +127,30 @@ def context_menu():
 | 
				
			|||||||
        """
 | 
					        """
 | 
				
			||||||
        add context menu to webview
 | 
					        add context menu to webview
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
 | 
					        word, word_ord, maps = inspect_note(web_view.editor.note)
 | 
				
			||||||
 | 
					        current_field = u''
 | 
				
			||||||
 | 
					        if web_view.editor.currentField != word_ord:
 | 
				
			||||||
 | 
					            each = maps[web_view.editor.currentField]
 | 
				
			||||||
 | 
					            ignore = each.get('ignore', False)
 | 
				
			||||||
 | 
					            if not ignore:
 | 
				
			||||||
 | 
					                dict_unique = each.get('dict_unique', '').strip()
 | 
				
			||||||
 | 
					                dict_fld_ord = each.get('dict_fld_ord', -1)
 | 
				
			||||||
 | 
					                fld_ord = each.get('fld_ord', -1)
 | 
				
			||||||
 | 
					                if dict_unique and dict_fld_ord != -1 and fld_ord != -1:
 | 
				
			||||||
 | 
					                    s = service_pool.get(dict_unique)
 | 
				
			||||||
 | 
					                    if s and s.support:
 | 
				
			||||||
 | 
					                        current_field = ' (' + s.title + ' -> ' + s.fields[dict_fld_ord] + ')'
 | 
				
			||||||
 | 
					                    service_pool.put(s)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        submenu = menu.addMenu(_('QUERY'))
 | 
					        submenu = menu.addMenu(_('QUERY'))
 | 
				
			||||||
        submenu.addAction(_('ALL_FIELDS'), lambda: query_from_editor_fields(web_view.editor), QKeySequence(my_shortcut))
 | 
					        submenu.addAction(_('ALL_FIELDS'), lambda: query_from_editor_fields(web_view.editor), QKeySequence(my_shortcut))
 | 
				
			||||||
        submenu.addAction(_('CURRENT_FIELDS'), 
 | 
					        if current_field:
 | 
				
			||||||
            lambda: query_from_editor_fields(
 | 
					            submenu.addAction(_('CURRENT_FIELDS') + current_field, 
 | 
				
			||||||
                web_view.editor,
 | 
					                lambda: query_from_editor_fields(
 | 
				
			||||||
                fields=[web_view.editor.currentField]
 | 
					                    web_view.editor,
 | 
				
			||||||
 | 
					                    fields=[web_view.editor.currentField]
 | 
				
			||||||
 | 
					                )
 | 
				
			||||||
            )
 | 
					            )
 | 
				
			||||||
        )
 | 
					 | 
				
			||||||
        submenu.addAction(_("OPTIONS"), lambda: show_options(web_view, web_view.editor.note.model()['id']))
 | 
					        submenu.addAction(_("OPTIONS"), lambda: show_options(web_view, web_view.editor.note.model()['id']))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    addHook('EditorWebView.contextMenuEvent', on_setup_menus)
 | 
					    addHook('EditorWebView.contextMenuEvent', on_setup_menus)
 | 
				
			||||||
 | 
				
			|||||||
@ -23,9 +23,10 @@ from anki.hooks import addHook, wrap
 | 
				
			|||||||
from aqt.addcards import AddCards
 | 
					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, inspect_note
 | 
				
			||||||
from .context import config, APP_ICON
 | 
					from .context import config, APP_ICON
 | 
				
			||||||
from .lang import _
 | 
					from .lang import _
 | 
				
			||||||
 | 
					from .service import service_pool
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
__all__ = [
 | 
					__all__ = [
 | 
				
			||||||
@ -126,14 +127,30 @@ def context_menu():
 | 
				
			|||||||
        """
 | 
					        """
 | 
				
			||||||
        add context menu to webview
 | 
					        add context menu to webview
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
 | 
					        word, word_ord, maps = inspect_note(web_view.editor.note)
 | 
				
			||||||
 | 
					        current_field = u''
 | 
				
			||||||
 | 
					        if web_view.editor.currentField != word_ord:
 | 
				
			||||||
 | 
					            each = maps[web_view.editor.currentField]
 | 
				
			||||||
 | 
					            ignore = each.get('ignore', False)
 | 
				
			||||||
 | 
					            if not ignore:
 | 
				
			||||||
 | 
					                dict_unique = each.get('dict_unique', '').strip()
 | 
				
			||||||
 | 
					                dict_fld_ord = each.get('dict_fld_ord', -1)
 | 
				
			||||||
 | 
					                fld_ord = each.get('fld_ord', -1)
 | 
				
			||||||
 | 
					                if dict_unique and dict_fld_ord != -1 and fld_ord != -1:
 | 
				
			||||||
 | 
					                    s = service_pool.get(dict_unique)
 | 
				
			||||||
 | 
					                    if s and s.support:
 | 
				
			||||||
 | 
					                        current_field = ' (' + s.title + ' -> ' + s.fields[dict_fld_ord] + ')'
 | 
				
			||||||
 | 
					                    service_pool.put(s)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        submenu = menu.addMenu(_('QUERY'))
 | 
					        submenu = menu.addMenu(_('QUERY'))
 | 
				
			||||||
        submenu.addAction(_('ALL_FIELDS'), lambda: query_from_editor_fields(web_view.editor), QKeySequence(my_shortcut))
 | 
					        submenu.addAction(_('ALL_FIELDS'), lambda: query_from_editor_fields(web_view.editor), QKeySequence(my_shortcut))
 | 
				
			||||||
        submenu.addAction(_('CURRENT_FIELDS'), 
 | 
					        if current_field:
 | 
				
			||||||
            lambda: query_from_editor_fields(
 | 
					            submenu.addAction(_('CURRENT_FIELDS') + current_field, 
 | 
				
			||||||
                web_view.editor,
 | 
					                lambda: query_from_editor_fields(
 | 
				
			||||||
                fields=[web_view.editor.currentField]
 | 
					                    web_view.editor,
 | 
				
			||||||
 | 
					                    fields=[web_view.editor.currentField]
 | 
				
			||||||
 | 
					                )
 | 
				
			||||||
            )
 | 
					            )
 | 
				
			||||||
        )
 | 
					 | 
				
			||||||
        submenu.addAction(_("OPTIONS"), lambda: show_options(web_view, web_view.editor.note.model()['id']))
 | 
					        submenu.addAction(_("OPTIONS"), lambda: show_options(web_view, web_view.editor.note.model()['id']))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    addHook('EditorWebView.contextMenuEvent', on_setup_menus)
 | 
					    addHook('EditorWebView.contextMenuEvent', on_setup_menus)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user