mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Add a listener event for notes changing
This commit is contained in:
parent
b868167d50
commit
6359c0593f
@ -716,7 +716,9 @@ class Cache:
|
|||||||
references resources their hashes must be present in resource_hashes. Set remove_unused_resources to True to cleanup unused
|
references resources their hashes must be present in resource_hashes. Set remove_unused_resources to True to cleanup unused
|
||||||
resources, note that updating a note automatically cleans up resources pertaining to that note anyway.
|
resources, note that updating a note automatically cleans up resources pertaining to that note anyway.
|
||||||
'''
|
'''
|
||||||
return self.backend.set_notes_for(field, item_id, doc, searchable_text, resource_hashes, remove_unused_resources)
|
ans = self.backend.set_notes_for(field, item_id, doc, searchable_text, resource_hashes, remove_unused_resources)
|
||||||
|
self.event_dispatcher(EventType.notes_changed, field, item_id)
|
||||||
|
return ans
|
||||||
|
|
||||||
@write_api
|
@write_api
|
||||||
def add_notes_resource(self, path_or_stream_or_data, name: str, mtime: float = None) -> int:
|
def add_notes_resource(self, path_or_stream_or_data, name: str, mtime: float = None) -> int:
|
||||||
@ -736,7 +738,9 @@ class Cache:
|
|||||||
@write_api
|
@write_api
|
||||||
def unretire_note_for(self, field, item_id) -> int:
|
def unretire_note_for(self, field, item_id) -> int:
|
||||||
' Unretire a previously retired note for the specified item. Notes are retired when an item is removed from the database '
|
' Unretire a previously retired note for the specified item. Notes are retired when an item is removed from the database '
|
||||||
return self.backend.unretire_note_for(field, item_id)
|
ans = self.backend.unretire_note_for(field, item_id)
|
||||||
|
self.event_dispatcher(EventType.notes_changed, field, item_id)
|
||||||
|
return ans
|
||||||
|
|
||||||
@read_api
|
@read_api
|
||||||
def export_note(self, field, item_id) -> str:
|
def export_note(self, field, item_id) -> str:
|
||||||
@ -756,7 +760,9 @@ class Cache:
|
|||||||
st = os.stat(f.fileno())
|
st = os.stat(f.fileno())
|
||||||
ctime, mtime = st.st_ctime, st.st_mtime
|
ctime, mtime = st.st_ctime, st.st_mtime
|
||||||
basedir = os.path.dirname(os.path.abspath(path_to_html_file))
|
basedir = os.path.dirname(os.path.abspath(path_to_html_file))
|
||||||
return self.backend.import_note(field, item_id, html, basedir, ctime, mtime)
|
ans = self.backend.import_note(field, item_id, html, basedir, ctime, mtime)
|
||||||
|
self.event_dispatcher(EventType.notes_changed, field, item_id)
|
||||||
|
return ans
|
||||||
|
|
||||||
@write_api # we need to use write locking as SQLITE gives a locked table error if multiple FTS queries are made at the same time
|
@write_api # we need to use write locking as SQLITE gives a locked table error if multiple FTS queries are made at the same time
|
||||||
def search_notes(
|
def search_notes(
|
||||||
|
@ -43,6 +43,9 @@ class EventType(Enum):
|
|||||||
#: When the indexing progress changes
|
#: When the indexing progress changes
|
||||||
indexing_progress_changed = auto()
|
indexing_progress_changed = auto()
|
||||||
|
|
||||||
|
#: When the notes associated with an item are changed, with arguments: (field_name, item_id)
|
||||||
|
notes_changed = auto()
|
||||||
|
|
||||||
|
|
||||||
class EventDispatcher(Thread):
|
class EventDispatcher(Thread):
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user