From e080cd8d3a45ceafe23067307373127b0a24081c Mon Sep 17 00:00:00 2001 From: Manuel QuiƱones Date: Wed, 15 May 2013 03:48:53 +0000 Subject: Make zoom buttons sensitivity work --- diff --git a/ImageView.py b/ImageView.py index 23105f4..e74f3e9 100644 --- a/ImageView.py +++ b/ImageView.py @@ -54,20 +54,28 @@ class ImageViewer(Gtk.DrawingArea): self.queue_draw() def set_zoom(self, zoom): + if zoom < ZOOM_MIN or zoom > ZOOM_MAX: + return self._zoom = zoom self.queue_draw() def get_zoom(self): return self._zoom + def can_zoom_in(self): + return self._zoom + ZOOM_STEP < ZOOM_MAX + + def can_zoom_out(self): + return self._zoom - ZOOM_STEP > ZOOM_MIN + def zoom_in(self): - if self._zoom + ZOOM_STEP > ZOOM_MAX: + if not self.can_zoom_in(): return self._zoom += ZOOM_STEP self.queue_draw() def zoom_out(self): - if self._zoom - ZOOM_STEP < ZOOM_MIN: + if not self.can_zoom_out(): return self._zoom -= ZOOM_MIN self.queue_draw() @@ -90,7 +98,7 @@ class ImageViewer(Gtk.DrawingArea): self._zoom = 1.0 self.queue_draw() - def zoom_equal(self): + def zoom_original(self): self._zoom = 1 self.queue_draw() diff --git a/ImageViewerActivity.py b/ImageViewerActivity.py index 1a92015..7d73d42 100644 --- a/ImageViewerActivity.py +++ b/ImageViewerActivity.py @@ -273,19 +273,25 @@ class ImageViewerActivity(activity.Activity): toolbar_box.toolbar.insert(stop_button, -1) stop_button.show() + def _update_zoom_buttons(self): + self._zoom_in_button.set_sensitive(self.view.can_zoom_in()) + self._zoom_out_button.set_sensitive(self.view.can_zoom_out()) + def __zoom_in_cb(self, button): - self._zoom_in_button.set_sensitive(self.view.zoom_in()) - self._zoom_out_button.set_sensitive(True) + self.view.zoom_in() + self._update_zoom_buttons() def __zoom_out_cb(self, button): - self._zoom_out_button.set_sensitive(self.view.zoom_out()) - self._zoom_in_button.set_sensitive(True) + self.view.zoom_out() + self._update_zoom_buttons() def __zoom_tofit_cb(self, button): self.view.zoom_to_fit() + self._update_zoom_buttons() def __zoom_original_cb(self, button): - self.view.zoom_equal() + self.view.zoom_original() + self._update_zoom_buttons() def __rotate_anticlockwise_cb(self, button): angle = self.view.angle - math.pi / 2 -- cgit v0.9.1