mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Refactoring
This commit is contained in:
parent
ab3cfe7f0e
commit
2309a0cca5
@ -11,9 +11,10 @@ from collections import namedtuple
|
|||||||
|
|
||||||
from PyQt5.Qt import QObject, pyqtSignal, Qt
|
from PyQt5.Qt import QObject, pyqtSignal, Qt
|
||||||
|
|
||||||
from calibre.ebooks.oeb.polish.container import OEB_STYLES, OEB_FONTS
|
from calibre.ebooks.oeb.polish.container import OEB_STYLES, OEB_FONTS, name_to_href
|
||||||
from calibre.gui2 import is_gui_thread
|
from calibre.gui2 import is_gui_thread
|
||||||
from calibre.gui2.tweak_book import current_container
|
from calibre.gui2.tweak_book import current_container
|
||||||
|
from calibre.gui2.tweak_book.completion.utils import control, data, DataError
|
||||||
from calibre.utils.ipc import eintr_retry_call
|
from calibre.utils.ipc import eintr_retry_call
|
||||||
from calibre.utils.matcher import Matcher
|
from calibre.utils.matcher import Matcher
|
||||||
|
|
||||||
@ -21,14 +22,6 @@ Request = namedtuple('Request', 'id type data query')
|
|||||||
|
|
||||||
names_cache = {}
|
names_cache = {}
|
||||||
|
|
||||||
def control(func):
|
|
||||||
func.function_type = 'control'
|
|
||||||
return func
|
|
||||||
|
|
||||||
def data(func):
|
|
||||||
func.function_type = 'data'
|
|
||||||
return func
|
|
||||||
|
|
||||||
@control
|
@control
|
||||||
def clear_caches(cache_type, data_conn):
|
def clear_caches(cache_type, data_conn):
|
||||||
global names_cache
|
global names_cache
|
||||||
@ -40,12 +33,6 @@ def names_data(request_data):
|
|||||||
c = current_container()
|
c = current_container()
|
||||||
return c.mime_map, {n for n, is_linear in c.spine_names}
|
return c.mime_map, {n for n, is_linear in c.spine_names}
|
||||||
|
|
||||||
class DataError(Exception):
|
|
||||||
|
|
||||||
def __init__(self, tb, msg=None):
|
|
||||||
Exception.__init__(self, msg or _('Failed to get completion data'))
|
|
||||||
self.tb = tb
|
|
||||||
|
|
||||||
def get_data(data_conn, data_type, data=None):
|
def get_data(data_conn, data_type, data=None):
|
||||||
eintr_retry_call(data_conn.send, Request(None, data_type, data, None))
|
eintr_retry_call(data_conn.send, Request(None, data_type, data, None))
|
||||||
result, tb = eintr_retry_call(data_conn.recv)
|
result, tb = eintr_retry_call(data_conn.recv)
|
||||||
@ -62,7 +49,7 @@ class Name(unicode):
|
|||||||
return ans
|
return ans
|
||||||
|
|
||||||
@control
|
@control
|
||||||
def complete_names(names_type, data_conn):
|
def complete_names(names_data, data_conn):
|
||||||
if not names_cache:
|
if not names_cache:
|
||||||
mime_map, spine_names = get_data(data_conn, 'names_data')
|
mime_map, spine_names = get_data(data_conn, 'names_data')
|
||||||
names_cache[None] = frozenset(Name(name, mt, spine_names) for name, mt in mime_map.iteritems())
|
names_cache[None] = frozenset(Name(name, mt, spine_names) for name, mt in mime_map.iteritems())
|
||||||
@ -70,7 +57,9 @@ def complete_names(names_type, data_conn):
|
|||||||
names_cache['stylesheet'] = frozenset(n for n in names_cache if n.mime_type in OEB_STYLES)
|
names_cache['stylesheet'] = frozenset(n for n in names_cache if n.mime_type in OEB_STYLES)
|
||||||
names_cache['image'] = frozenset(n for n in names_cache if n.mime_type.startswith('image/'))
|
names_cache['image'] = frozenset(n for n in names_cache if n.mime_type.startswith('image/'))
|
||||||
names_cache['font'] = frozenset(n for n in names_cache if n.mime_type in OEB_FONTS)
|
names_cache['font'] = frozenset(n for n in names_cache if n.mime_type in OEB_FONTS)
|
||||||
ans = names_cache.get(names_type, names_cache[None])
|
names_type, base, root = names_data
|
||||||
|
names = names_cache.get(names_type, names_cache[None])
|
||||||
|
ans = frozenset(name_to_href(name, root, base) for name in names)
|
||||||
return ans, {}
|
return ans, {}
|
||||||
|
|
||||||
_current_matcher = (None, None, None)
|
_current_matcher = (None, None, None)
|
||||||
|
23
src/calibre/gui2/tweak_book/completion/utils.py
Normal file
23
src/calibre/gui2/tweak_book/completion/utils.py
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# vim:fileencoding=utf-8
|
||||||
|
from __future__ import (unicode_literals, division, absolute_import,
|
||||||
|
print_function)
|
||||||
|
|
||||||
|
__license__ = 'GPL v3'
|
||||||
|
__copyright__ = '2014, Kovid Goyal <kovid at kovidgoyal.net>'
|
||||||
|
|
||||||
|
|
||||||
|
def control(func):
|
||||||
|
func.function_type = 'control'
|
||||||
|
return func
|
||||||
|
|
||||||
|
def data(func):
|
||||||
|
func.function_type = 'data'
|
||||||
|
return func
|
||||||
|
|
||||||
|
|
||||||
|
class DataError(Exception):
|
||||||
|
|
||||||
|
def __init__(self, tb, msg=None):
|
||||||
|
Exception.__init__(self, msg or _('Failed to get completion data'))
|
||||||
|
self.tb = tb
|
Loading…
x
Reference in New Issue
Block a user