mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Update read percent on content load
This commit is contained in:
parent
f3c371a254
commit
2089449769
@ -250,9 +250,9 @@ class IframeBoss:
|
||||
if si:
|
||||
self.length_before += files[si]?.length or 0
|
||||
self.onscroll()
|
||||
self.send_message('content_loaded')
|
||||
self.send_message('content_loaded', progress_frac=self.get_progress_frac())
|
||||
|
||||
def get_progress_frac(self, current_name, spine_index):
|
||||
def calculate_progress_frac(self, current_name, spine_index):
|
||||
files = self.book.manifest.files
|
||||
file_length = files[current_name]?.length or 0
|
||||
if self.length_before is None:
|
||||
@ -261,6 +261,14 @@ class IframeBoss:
|
||||
ans = (self.length_before + (file_length * frac)) / self.book.manifest.spine_length
|
||||
return ans
|
||||
|
||||
def get_progress_frac(self):
|
||||
spine = self.book.manifest.spine
|
||||
current_name = current_spine_item().name
|
||||
index = spine.indexOf(current_name)
|
||||
if index < 0:
|
||||
return 0
|
||||
return self.calculate_progress_frac(current_name, index)
|
||||
|
||||
def update_cfi(self):
|
||||
cfi = at_current()
|
||||
if cfi:
|
||||
@ -272,7 +280,7 @@ class IframeBoss:
|
||||
if cfi != self.last_cfi:
|
||||
self.last_cfi = cfi
|
||||
self.send_message('update_cfi', cfi=cfi, replace_history=self.replace_history_on_next_cfi_update,
|
||||
progress_frac=self.get_progress_frac(current_name, index))
|
||||
progress_frac=self.calculate_progress_frac(current_name, index))
|
||||
self.replace_history_on_next_cfi_update = True
|
||||
|
||||
def update_toc_position(self):
|
||||
|
@ -452,8 +452,10 @@ class View:
|
||||
)
|
||||
self.encrypted_communications = True
|
||||
|
||||
def on_content_loaded(self):
|
||||
def on_content_loaded(self, data):
|
||||
self.hide_loading()
|
||||
frac = data.progress_frac or 0
|
||||
self.update_read_percent(frac)
|
||||
# self.overlay.show()
|
||||
|
||||
def update_font_size(self):
|
||||
|
Loading…
x
Reference in New Issue
Block a user