Keep the text position in the epub files - SL #3861
When the zoom level change or the index view to is shown / hidden.
Signed-off-by: Gonzalo Odiard <gonzalo@laptop.org>
Gonzalo Odiard
11 years ago
152 | 152 |
'''
|
153 | 153 |
Sets the current zoom level
|
154 | 154 |
'''
|
|
155 |
scrollbar_pos = self.get_vertical_pos()
|
155 | 156 |
self._view.set_zoom_level(value / 100.0)
|
|
157 |
self.set_vertical_pos(scrollbar_pos)
|
156 | 158 |
|
157 | 159 |
def _get_scale(self):
|
158 | 160 |
'''
|
|
171 | 173 |
Zooms in (increases zoom level by 0.1)
|
172 | 174 |
'''
|
173 | 175 |
if self.can_zoom_in():
|
|
176 |
scrollbar_pos = self.get_vertical_pos()
|
174 | 177 |
self._set_scale(self._get_scale() + 0.1)
|
|
178 |
self.set_vertical_pos(scrollbar_pos)
|
175 | 179 |
return True
|
176 | 180 |
else:
|
177 | 181 |
return False
|
|
181 | 185 |
Zooms out (decreases zoom level by 0.1)
|
182 | 186 |
'''
|
183 | 187 |
if self.can_zoom_out():
|
|
188 |
scrollbar_pos = self.get_vertical_pos()
|
184 | 189 |
self._set_scale(self._get_scale() - 0.1)
|
|
190 |
self.set_vertical_pos(scrollbar_pos)
|
185 | 191 |
return True
|
186 | 192 |
else:
|
187 | 193 |
return False
|
|
194 |
|
|
195 |
def get_vertical_pos(self):
|
|
196 |
"""
|
|
197 |
Used to save the scrolled position and restore when needed
|
|
198 |
"""
|
|
199 |
return self._v_vscrollbar.get_adjustment().get_value()
|
|
200 |
|
|
201 |
def set_vertical_pos(self, position):
|
|
202 |
"""
|
|
203 |
Used to save the scrolled position and restore when needed
|
|
204 |
"""
|
|
205 |
self._v_vscrollbar.get_adjustment().set_value(position)
|
|
206 |
|
188 | 207 |
|
189 | 208 |
def can_zoom_in(self):
|
190 | 209 |
'''
|
431 | 431 |
self._navigator.set_model(model)
|
432 | 432 |
|
433 | 433 |
def __toogle_navigator_cb(self, button, visible):
|
|
434 |
scrollbar_pos = self._view.get_vertical_pos()
|
434 | 435 |
if visible:
|
435 | 436 |
self._toc_visible = True
|
436 | 437 |
self._update_toc_view = True
|
|
443 | 444 |
self._toc_visible = False
|
444 | 445 |
self._toc_scroller.hide()
|
445 | 446 |
self._toc_separator.hide()
|
|
447 |
self._view.set_vertical_pos(scrollbar_pos)
|
446 | 448 |
|
447 | 449 |
def __num_page_entry_insert_text_cb(self, entry, text, length, position):
|
448 | 450 |
if not re.match('[0-9]', text):
|