Commit Graph

25765 Commits

Author SHA1 Message Date
Michael Natterer f65261c8ad Enable simple flip and rotate for group layers
Flipping horizontally and vertically as well as rotating by multiples
of 90° works fine now for group layers, enable it even though they
appear locked. It seems that group == locked idea is not as allmighty
as i thought :(
2009-08-24 20:29:37 +02:00
Michael Natterer 9fd204977d Implement GimpItem's transform methods
Add implementations for GimpItem::translate(), scale(), resize(),
flip(), rotate() and transform(). Simply transform all children, the
group layer will automatically update itself. Also transform the layer
mask.
2009-08-24 19:33:29 +02:00
Michael Natterer c8c6d77c35 Fix finalize() so it doesn't crash 2009-08-24 17:30:41 +02:00
Michael Natterer 4fa06d0405 Add a projection to GimpGroupLayer so we finally have a *visible* layer tree
Implement the GimpProjectable interface and keep a GimpProjection
around that projects the GimpDrawableStack of our children. Propagate
the childrens' "update" signals to our own "update" signal so our
parent projection picks up all changes.
2009-08-24 16:05:39 +02:00
Michael Natterer dd8a7740ab Honor the projectable's offset in the projection
Add/Subtract the projectable's offset whenever we go from coordinates
from our public interface (which are always image coordinates) and
coordinates in out internal tile pyramid (wihch always starts at 0,0).

The Gegl projection still needs an offset node that is missing.

Also, connect to the projectable's "update" signal using
g_signal_connect_closure_by_id() instead of simply g_signal_connect(),
so we really connect to the signal of the GimpProjectable interface
and not to the "update" signal of GimpDrawable (which is a conflict
that will happen on group layers).
2009-08-24 16:05:38 +02:00
Michael Natterer 0f668e411e Add an offset API to the GimpProjectable interface
Add GimpProjectable::get_offset() and gimp_projectable_get_offset()
which returns the offset of the projectable in image coordinates, so
we can have projections that act as a viewport onto things that live
in image coordinates.
2009-08-24 16:05:38 +02:00
Michael Natterer a451eb950c Use gimp_item_stack_get_item_iter() 2009-08-24 16:05:38 +02:00
Michael Natterer ffe1359d84 Add gimp_item_stach_get_item_iter()
Simply an accessor for GIMP_LIST (stack)->list.
2009-08-24 16:05:37 +02:00
Michael Natterer 2ec53512c5 Change local variable names from "layer" to "group" 2009-08-24 16:05:37 +02:00
Denis Arnaud 781e7ead0f Updated breton translation 2009-08-24 13:30:48 +02:00
Alexandre Prokoudine 9570a4c711 Deweirdification of Russian translation, Part I, original/master 2009-08-24 14:55:06 +04:00
Michael Natterer a136d86c54 Automatically adjust the size of group layers
Connect to size and offset of all children and resize/move the
group layer accordingly.
2009-08-23 23:00:32 +02:00
Michael Natterer c6bd3e0570 Add gimp_rectangle_union() 2009-08-23 22:58:36 +02:00
Michael Natterer e2ed81e310 Revert "Revert "Add a button to create a group layer to the layers dialog""
This reverts commit b72e5a35b1.
2009-08-23 20:27:47 +02:00
Michael Natterer 819abf2fa0 Override the "lock-content" property to default to TRUE 2009-08-23 20:02:36 +02:00
Michael Natterer 922375ceca g_return_if_fail() on attempts to set locks that can't be changed 2009-08-23 19:54:19 +02:00
Michael Natterer aa70c13fd6 Keep the PDB from changing locks that can't be changed 2009-08-23 19:51:59 +02:00
Michael Natterer af794539d8 Make the lock actions insensitive according to the new can_lock functions 2009-08-23 19:45:37 +02:00
Michael Natterer d6dd3ea39b Set the lock toggles insensitive if the resp. lock properties can't be changed 2009-08-23 19:45:37 +02:00
Marco Ciampa b58c988c76 Updated italian translation. 2009-08-23 19:10:42 +02:00
Michael Natterer d52d7e77b3 Add API to determine whether "lock" properties can ba changed
Add gimp_item_can_lock_content() and gimp_layer_can_lock_alpha() which
return TRUE unless the item is a grop (has children), because group
items will be considered to have lock_content always TRUE and
lock_alpha always FALSE.
2009-08-23 18:44:05 +02:00
Martin Nordholts 34bccb0876 authors: Tal's real name is Tal Trachtman 2009-08-23 18:17:27 +02:00
Michael Natterer b141bcdb60 Minor plug-in sensitivity refactoring
* app/plug-in/gimppluginprocedure.[ch]
  (gimp_plug_in_procedure_get_sensitive): change GimpImageType
  parameter to GimpDrawable and do the type check internally.

* app/actions/plug-in-actions.c (plug_in_actions_update): pass the
  active drawable instead of its type.
2009-08-22 11:03:05 +02:00
Martin Nordholts f6eed71a5c plug-ins: Register .data as extension for raw data loader
In order to allow raw data files to be loaded without the need to
explicitly select the file type, make the raw data loader use the
extension ".data".
2009-08-22 10:41:03 +02:00
Martin Nordholts ee8b53934b app: Use original layer names when importing multi-layered images
We have no reason to believe that the original layer names when
importing multi-layered images are not good enough, so stop adding the
filename as a prefix to the names.
2009-08-22 10:34:15 +02:00
Martin Nordholts b574ae9275 app: Name layers of imported files to filename
After having imported a single-layered image, rename the layer to the
file name.
2009-08-22 10:24:53 +02:00
Martin Nordholts 92df6ae6cd app: Introduce helper function file_open_get_layers() 2009-08-22 09:00:18 +02:00
Tim Harder 27d5164f3c libgimpbase: Remove trailing comma from GimpTextHintStyle 2009-08-21 23:02:24 +02:00
Martin Nordholts 51cd8c2981 app: Only show 'File->Overwrite' if the source URI has an exporter 2009-08-21 21:40:32 +02:00
Michael Natterer 9040afc0fc Set BAD cursors if the active drawable is locked 2009-08-21 19:34:59 +02:00
Michael Natterer ed2c002fd8 Make the checks in GimpTool::initialize() work reliably
Set tool->display and tool->drawable to NULL in button_release()
so initialize() is actually called before each button_press().
2009-08-21 19:04:45 +02:00
Michael Natterer c9c28be9df Make the checks in GimpTool::initialize() work reliably
Set tool->display and tool->drawable to NULL in button_release()
so initialize() is actually called before each button_press().
2009-08-21 18:27:50 +02:00
Michael Natterer cb8a611e93 Don't PDB-modify locked vectors 2009-08-21 18:06:58 +02:00
Michael Natterer 45aa584b3e Make all vectors PDB manipulation undoable 2009-08-21 17:57:56 +02:00
Michael Natterer 345f88ab04 Make sure we don't PDB-modify locked text layers
* app/pdb/gimppdb-utils.[ch]: add "gboolean writable" to
  gimp_pdb_layer_is_text_layer() because that's called on
  all text layers anyway.

* tools/pdbgen/pdb/text_layer.pdb
* tools/pdbgen/pdb/vectors.pdb: pass TRUE if we want to modify the layer.

* app/pdb/text-layer-cmds.c
* app/pdb/vectors-cmds.c: regenerated.
2009-08-21 14:33:12 +02:00
Michael Natterer 256ac5e62e Add "lock_content" PDB getters and setters for drawables and vectors 2009-08-21 14:30:41 +02:00
Michael Natterer b929a7a67c Don't allow to drop stuff to locked drawables 2009-08-21 14:10:22 +02:00
Michael Natterer a7efe42870 Use a GtkToggleButton instead of GtkCheckButton for "Grab event"
A GtkToggleButton doesn't have to be told that it has no indicator,
because it doesn't have one in the first place.
2009-08-21 13:53:34 +02:00
Michael Natterer b793146bde Remove redundant call to gtk_toggle_button_set_mode()
No need to call that function on an actual GtkToggleButton, because
they never have check indicators anyway.
2009-08-21 13:52:29 +02:00
Michael Natterer b277454760 Don't allow to drop stuff to locked drawables 2009-08-21 13:50:07 +02:00
Michael Natterer cca194ed04 Don't transform the item if it was locked while using the tool
Add additional check to gimp_transform_tool_doit() so it won't
transform an item that was locked while we were adjusting the
transform.
2009-08-21 12:07:55 +02:00
Michael Natterer 7b5e176eee Really don't paint on locked drawables
Remove GimpTool::initialize() implementation again and check for the
drawable being locked in GimpTool::button_press() so we can't paint if
the tool has been used before on the same drawable when it was
unlocked.
2009-08-21 11:55:18 +02:00
Mads Lundby 2d93091463 Updated Danish translation 2009-08-21 01:25:06 +02:00
Marco Ciampa d196e12da4 Updated italian translation 2009-08-20 23:26:15 +02:00
Michael Natterer e95b5d9f72 When cropping the active layer, error out if there is none or it is locked 2009-08-20 22:43:01 +02:00
Michael Natterer 0953146be1 Check if there is an active layer if active_layer_only is TRUE 2009-08-20 22:41:49 +02:00
Michael Natterer de409ea52a Fix sensitivity of the "Merge down" action
The command doesn't simply need the next layer in the stack, it
needs the next *visible* layer.
2009-08-20 22:22:17 +02:00
Michael Natterer 3309c35f18 Fix typo: defualt -> default (spotted by Alexia) 2009-08-20 22:11:33 +02:00
Michael Natterer f42f0e16a9 Add the "drawable-lock-content" action to the layer properties section 2009-08-20 21:20:20 +02:00
Michael Natterer 35a7052b8d Add actions and callbacks to toggle "lock-content" on drawables and vectors 2009-08-20 21:19:43 +02:00