From ab19f676e0f1b60a6c6c92da889da8b9aa997e5a Mon Sep 17 00:00:00 2001 From: Alexandre Antonino Gonçalves Martinazzo Date: Wed, 08 Aug 2007 14:09:03 +0000 Subject: Minor changes when using signals 'undo' and 'redo' in module Area Added a new signal: 'action-saved'. It is used in Area.enableUndo --- diff --git a/Area.py b/Area.py index 879ca13..a2f8f06 100644 --- a/Area.py +++ b/Area.py @@ -72,6 +72,7 @@ class Area(gtk.DrawingArea): __gsignals__ = { 'undo' : (gobject.SIGNAL_ACTION, gobject.TYPE_NONE, ([])), 'redo' : (gobject.SIGNAL_ACTION, gobject.TYPE_NONE, ([])), + 'action-saved' : (gobject.SIGNAL_ACTION, gobject.TYPE_NONE, ([])), #TODO: these signals still not used. # 'copy' : (gobject.SIGNAL_ACTION, gobject.TYPE_NONE, ([])), # 'selected' : (gobject.SIGNAL_ACTION, gobject.TYPE_NONE, ([])), @@ -488,7 +489,7 @@ class Area(gtk.DrawingArea): # if self.redo_times <= 1: # self.emit('redo') self.emit('undo') - self.emit('redo') + #self.emit('redo') def redo(self): """Redo the last undo operation. @@ -519,7 +520,7 @@ class Area(gtk.DrawingArea): # self.emit('undo') # if self.redo_times <= 1: # self.emit('redo') - self.emit('undo') + #self.emit('undo') self.emit('redo') def enableUndo(self,widget): @@ -556,8 +557,9 @@ class Area(gtk.DrawingArea): # self.emit('undo') # if self.redo_times <= 1: # self.emit('redo') - self.emit('undo') - self.emit('redo') + #self.emit('undo') + #self.emit('redo') + self.emit('action-saved') def copy(self): diff --git a/OficinaActivity.py b/OficinaActivity.py index 4169554..cf8b56e 100644 --- a/OficinaActivity.py +++ b/OficinaActivity.py @@ -149,5 +149,6 @@ class OficinaActivity(activity.Activity): width, height = self._area.window.get_size() pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, False, 8, width, height) pixbuf.get_from_drawable(self._area.pixmap, gtk.gdk.colormap_get_system(), 0, 0, 0, 0, -1, -1) + self.metadata['mime_type'] = 'image/png' pixbuf.save(file_path, 'png', {}) diff --git a/activity/activity.info b/activity/activity.info index d30d8c6..98824fc 100644 --- a/activity/activity.info +++ b/activity/activity.info @@ -1,7 +1,7 @@ [Activity] name = Paint -activity_version = 1 +activity_version = 4 service_name = org.laptop.Oficina icon = activity-rgbpaint class = OficinaActivity.OficinaActivity - +mime_types = image/svg+xml; image/svg; image/svg-xml; image/vnd.adobe.svg+xml; text/xml-svg; image/png; image/jpeg; image/gif; image/x-icon; image/x-ico; application/x-navi-animation; image/x-cmu-raster; image/x-sun-raster; image/x-xpixmap; image/tiff; image/x-portable-anymap; image/x-portable-bitmap; image/x-portable-graymap; image/x-portable-pixmap; image/bmp; image/x-bmp; image/x-MS-bmp; image/vnd.wap.wbmp; image/x-xbitmap; image/x-tga; image/x-pcx; image/x-wmf diff --git a/toolbox.py b/toolbox.py index aae342a..300102c 100644 --- a/toolbox.py +++ b/toolbox.py @@ -110,8 +110,9 @@ class DrawEditToolbar(EditToolbar): self.copy.connect('clicked', self._copy_cb) self.paste.connect('clicked', self._paste_cb) - self._activity._area.connect('undo', self._enable_undo_button_cb) - self._activity._area.connect('redo', self._enable_redo_button_cb) + self._activity._area.connect('undo', self._on_signal_undo_cb) + self._activity._area.connect('redo', self._on_signal_redo_cb) + self._activity._area.connect('action-saved', self._on_signal_action_saved_cb) def _undo_cb(self, widget, data=None): self._activity._area.undo() @@ -125,12 +126,21 @@ class DrawEditToolbar(EditToolbar): def _paste_cb(self, widget, data=None): self._activity._area.past() - def _enable_undo_button_cb(self, widget, data=None): - self.undo.set_sensitive( self._activity._area.can_undo() ) + def _on_signal_undo_cb(self, widget, data=None): + self._verify_sensitive_buttons() - def _enable_redo_button_cb(self, widget, data=None): - self.redo.set_sensitive( self._activity._area.can_redo() ) + def _on_signal_redo_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): + self.undo.set_sensitive( self._activity._area.can_undo() ) + self.redo.set_sensitive( self._activity._area.can_redo() ) + #TODO: it is not possible to verify these yet. + #self.copy.set_sensitive( self._activity._area.can_copy() ) + #self.paste.set_sensitive( self._activity._area.can_paste() ) class ToolsToolbar(gtk.Toolbar): -- cgit v0.9.1