Update read percent on content load

This commit is contained in:
Kovid Goyal 2017-05-11 18:13:50 +05:30
parent f3c371a254
commit 2089449769
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 14 additions and 4 deletions

View File

@ -250,9 +250,9 @@ class IframeBoss:
if si: if si:
self.length_before += files[si]?.length or 0 self.length_before += files[si]?.length or 0
self.onscroll() 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 files = self.book.manifest.files
file_length = files[current_name]?.length or 0 file_length = files[current_name]?.length or 0
if self.length_before is None: if self.length_before is None:
@ -261,6 +261,14 @@ class IframeBoss:
ans = (self.length_before + (file_length * frac)) / self.book.manifest.spine_length ans = (self.length_before + (file_length * frac)) / self.book.manifest.spine_length
return ans 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): def update_cfi(self):
cfi = at_current() cfi = at_current()
if cfi: if cfi:
@ -272,7 +280,7 @@ class IframeBoss:
if cfi != self.last_cfi: if cfi != self.last_cfi:
self.last_cfi = cfi self.last_cfi = cfi
self.send_message('update_cfi', cfi=cfi, replace_history=self.replace_history_on_next_cfi_update, 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 self.replace_history_on_next_cfi_update = True
def update_toc_position(self): def update_toc_position(self):

View File

@ -452,8 +452,10 @@ class View:
) )
self.encrypted_communications = True self.encrypted_communications = True
def on_content_loaded(self): def on_content_loaded(self, data):
self.hide_loading() self.hide_loading()
frac = data.progress_frac or 0
self.update_read_percent(frac)
# self.overlay.show() # self.overlay.show()
def update_font_size(self): def update_font_size(self):