Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/toolbox.py
diff options
context:
space:
mode:
authorManuel QuiƱones <manuel.por.aca@gmail.com>2011-05-25 06:58:40 (GMT)
committer Gonzalo Odiard <godiard@sugarlabs.org>2011-05-26 14:57:24 (GMT)
commite309ff19583c4d4674d539d823eb12808560c466 (patch)
tree166c04706b792db9f03accb305a12ae4ecb2c706 /toolbox.py
parent200e2d208e8bd61181762b00020934159c813ee7 (diff)
Fix: buttons insensitive when no selection
Diffstat (limited to 'toolbox.py')
-rw-r--r--toolbox.py60
1 files changed, 41 insertions, 19 deletions
diff --git a/toolbox.py b/toolbox.py
index 5783bd5..81324bd 100644
--- a/toolbox.py
+++ b/toolbox.py
@@ -276,7 +276,11 @@ class ToolsToolbarBuilder():
is_selected = self._activity.area.is_selected()
self._tool_stamp.set_sensitive(is_selected)
+ self._activity.area.connect('undo', self._on_signal_undo_cb)
+ self._activity.area.connect('redo', self._on_signal_redo_cb)
self._activity.area.connect('select', self._on_signal_select_cb)
+ self._activity.area.connect('action-saved',
+ self._on_signal_action_saved_cb)
self._tool_marquee_rectangular = \
DrawToolButton('tool-marquee-rectangular',
@@ -327,7 +331,19 @@ class ToolsToolbarBuilder():
self._activity.area.set_stroke_color(new_color)
self.properties['stroke color'] = new_color
+ def _on_signal_undo_cb(self, widget, data=None):
+ self._verify_sensitive_buttons()
+
+ def _on_signal_redo_cb(self, widget, data=None):
+ self._verify_sensitive_buttons()
+
def _on_signal_select_cb(self, widget, data=None):
+ self._verify_sensitive_buttons()
+
+ def _on_signal_action_saved_cb(self, widget, data=None):
+ self._verify_sensitive_buttons()
+
+ def _verify_sensitive_buttons(self):
is_selected = self._activity.area.is_selected()
self._tool_stamp.set_sensitive(is_selected)
@@ -693,22 +709,22 @@ class ImageToolbar(gtk.Toolbar):
self.insert(self._object_height, -1)
self._object_height.set_tooltip(_('Height'))
- height_spinButton = self._create_spinButton(self._object_height,
+ self.height_spinButton = self._create_spinButton(self._object_height,
'object-height', activity)
item = gtk.ToolItem()
- item.add(height_spinButton)
+ item.add(self.height_spinButton)
self.insert(item, -1)
self._object_width = ToolButton('object-width')
self.insert(self._object_width, -1)
self._object_width.set_tooltip(_('Width'))
- width_spinButton = self._create_spinButton(self._object_width,
+ self.width_spinButton = self._create_spinButton(self._object_width,
'object-width', activity)
item = gtk.ToolItem()
- item.add(width_spinButton)
+ item.add(self.width_spinButton)
self.insert(item, -1)
separator = gtk.SeparatorToolItem()
@@ -735,7 +751,11 @@ class ImageToolbar(gtk.Toolbar):
self._mirror_vertical.connect('clicked', self.mirror_vertical)
self._mirror_horizontal.connect('clicked', self.mirror_horizontal)
+ self._activity.area.connect('undo', self._on_signal_undo_cb)
+ self._activity.area.connect('redo', self._on_signal_redo_cb)
self._activity.area.connect('select', self._on_signal_select_cb)
+ self._activity.area.connect('action-saved',
+ self._on_signal_action_saved_cb)
self._effect_grayscale.connect('clicked', self.grayscale)
self._effect_rainbow.connect('clicked', self.rainbow)
@@ -743,20 +763,6 @@ class ImageToolbar(gtk.Toolbar):
self.show_all()
- def _selected(self, widget, spin, activity):
- if not activity.area.is_selected():
- spin.set_value(100)
- self.width_percent = 1.
- self.height_percent = 1.
-
- # get active only if something is selected
- spin.set_sensitive(self._activity.area.is_selected())
-
- #try:
- #del(activity.area.d.resize_pixbuf)
- #del(activity.area.d.resized)
- #except: pass
-
def rotate_left(self, widget, activity):
activity.area.rotate_left(activity.area)
@@ -805,7 +811,6 @@ class ImageToolbar(gtk.Toolbar):
spin.set_sensitive(self._activity.area.is_selected())
spin.connect('value-changed', self.resize, tool, activity)
- activity.area.connect('select', self._selected, spin, activity)
return spin
@@ -848,13 +853,30 @@ class ImageToolbar(gtk.Toolbar):
chooser.destroy()
del chooser
+ def _on_signal_undo_cb(self, widget, data=None):
+ self._verify_sensitive_buttons()
+
+ def _on_signal_redo_cb(self, widget, data=None):
+ self._verify_sensitive_buttons()
+
def _on_signal_select_cb(self, widget, data=None):
self._verify_sensitive_buttons()
+ def _on_signal_action_saved_cb(self, widget, data=None):
+ self._verify_sensitive_buttons()
+
def _verify_sensitive_buttons(self):
is_selected = self._activity.area.is_selected()
self._object_rotate_right.set_sensitive(is_selected)
self._object_rotate_left.set_sensitive(is_selected)
+ self.width_spinButton.set_sensitive(is_selected)
+ self.height_spinButton.set_sensitive(is_selected)
+
+ if not is_selected:
+ self.width_spinButton.set_value(100)
+ self.height_spinButton.set_value(100)
+ self.width_percent = 1.
+ self.height_percent = 1.
##Make the colors be in grayscale
def grayscale(self, widget):