Codebase list sugar-read-activity / cafd0b1
Text - fix scrolling * page up button did go to negative page numbers, * scroll bar did not go to page 1, and went beyond end of document, * several integer divisions were not ported, * no longer a need to convert from iso-8859-1, * zoom metadata is to be string, Fixes https://github.com/sugarlabs/read-activity/issues/39 James Cameron 4 years ago
1 changed file(s) with 18 addition(s) and 17 deletion(s). Raw diff Collapse all Expand all
8080 self.font_desc = Pango.FontDescription("mono %d" % self._font_size)
8181 self.textview.modify_font(self.font_desc)
8282 self._zoom = 100
83 self.font_zoom_relation = self._zoom / self._font_size
83 self.font_zoom_relation = self._zoom // self._font_size
8484 self._current_page = 0
8585
8686 self.highlight_tag = self.textview.get_buffer().create_tag()
121121 line = self._etext_file.readline()
122122 if not line:
123123 break
124 line_increment = (len(line) / 80) + 1
124 line_increment = (len(line) // 80) + 1
125125 linecount = linecount + line_increment
126126 if linecount >= PAGE_SIZE:
127127 position = self._etext_file.tell()
130130 pagecount = pagecount + 1
131131 self._pagecount = pagecount + 1
132132 self.set_current_page(0)
133 self._scrollbar.set_range(1.0, self._pagecount - 1.0)
133 self._scrollbar.set_range(0.0, self._pagecount - 1.0)
134134 self._scrollbar.set_increments(1.0, 1.0)
135135
136 # TODO: if ever sugar3.speech has word signals
136 # TODO: now that sugar3.speech has word signals
137137 # call self.highlight_next_word on each word
138138 # call self.reset_text_to_speech at end
139139
148148 break
149149 else:
150150 line = _clean_text(line)
151 label_text = label_text + str(line, "iso-8859-1")
152 line_increment = (len(line) / 80) + 1
151 label_text = label_text + line
152 line_increment = (len(line) // 80) + 1
153153 linecount = linecount + line_increment
154154 textbuffer = self.textview.get_buffer()
155155 label_text = label_text + '\n\n\n'
176176
177177 def _scrollbar_change_value_cb(self, range, scrolltype, value):
178178 """
179 This is the fake scrollbar visible, used to show the lenght of the book
179 This is the fake scrollbar visible, used to show the length of the book
180180 """
181181 old_page = self._current_page
182182 if scrolltype == Gtk.ScrollType.STEP_FORWARD:
189189 scrolltype == Gtk.ScrollType.PAGE_FORWARD or \
190190 scrolltype == Gtk.ScrollType.PAGE_BACKWARD:
191191 if value > self._scrollbar.props.adjustment.props.upper:
192 value = self._pagecount
192 value = self._pagecount - 1
193193 self._show_page(int(value))
194194 self._current_page = int(value)
195195 self.emit('page-changed', old_page, self._current_page)
204204 if event.type == Gdk.EventType.TOUCH_BEGIN:
205205 x = event.touch.x
206206 view_width = widget.get_allocation().width
207 if x > view_width * 3 / 4:
207 if x > view_width * 3 // 4:
208208 self.scroll(Gtk.ScrollType.PAGE_FORWARD, False)
209 elif x < view_width * 1 / 4:
209 elif x < view_width * 1 // 4:
210210 self.scroll(Gtk.ScrollType.PAGE_BACKWARD, False)
211211
212212 def can_highlight(self):
324324 v_adjustment = self._sw.get_vadjustment()
325325 max_pos = v_adjustment.get_upper() - v_adjustment.get_page_size()
326326 max_pos = max_pos * word_count
327 max_pos = max_pos / len(self.word_tuples)
327 max_pos = max_pos // len(self.word_tuples)
328328 v_adjustment.set_value(max_pos)
329329 self.current_word = word_count
330330 return True
331331
332332 def update_metadata(self, activity):
333333 self.metadata = activity.metadata
334 self.metadata['Read_zoom'] = self.get_zoom()
334 self.metadata['Read_zoom'] = str(self.get_zoom())
335335
336336 def load_metadata(self, activity):
337337 self.metadata = activity.metadata
400400 v_adjustment = self._sw.get_vadjustment()
401401 v_adjustment.set_value(v_adjustment.get_upper() -
402402 v_adjustment.get_page_size())
403 self.set_current_page(self.get_current_page() - 1)
403 self.set_current_page(max(0, self.get_current_page() - 1))
404404
405405 def next_page(self):
406406 v_adjustment = self._sw.get_vadjustment()
407407 v_adjustment.set_value(v_adjustment.get_lower())
408 self.set_current_page(self.get_current_page() + 1)
408 self.set_current_page(
409 min(self._pagecount - 1, self.get_current_page() + 1))
409410
410411 def get_current_page(self):
411412 return self._current_page
475476
476477 def set_zoom(self, value):
477478 self._zoom = value
478 self._font_size = int(self._zoom / self.font_zoom_relation)
479 self._font_size = self._zoom // self.font_zoom_relation
479480 self.font_desc.set_size(self._font_size * 1024)
480481 self.textview.modify_font(self.font_desc)
481482
589590 self._current_found_item = -1
590591 self.obj._text_file.seek(0)
591592 while self.obj._text_file:
592 line = str(self.obj._text_file.readline(), "iso-8859-1")
593 line = self.obj._text_file.readline()
593594 line = _clean_text(line)
594595 line_length = len(line)
595596 if not line:
596597 break
597 line_increment = (len(line) / 80) + 1
598 line_increment = (len(line) // 80) + 1
598599 linecount = linecount + line_increment
599600 positions = self._allindices(line.lower(), self.obj._text.lower())
600601 for position in positions: