Commit Graph

3430 Commits

Author SHA1 Message Date
Michael Muré c24029c230 gimpcage: fix of a bug in the bounding box computation 2010-08-08 13:23:56 +02:00
Michael Muré df842ba87c gimpcage: add a missing update of the scaling factor 2010-08-08 13:23:45 +02:00
Michael Muré 2ef73c356e GimpCage: now reverse the cage before computation if needed 2010-08-08 13:23:12 +02:00
Michael Muré 1b67742e4f gimpcage: add a function to compute the bounding box of the deformed cage. Computing of the coefficient is done accordingly. Update of the gegl op. Also add a wip function to compute if the cage is clockwise or not. 2010-08-08 13:22:24 +02:00
Michael Muré 81f9e6019b gimpcage: add a second series of point for the deformed cage, with access function. Also add the computing of the scaling factor and a function to reverse the cage. 2010-08-08 13:22:04 +02:00
Michael Muré 3715837edf gimpcage: add a function that return the normal to an edge of the cage 2010-08-08 13:21:30 +02:00
Michael Muré f994d57732 gimpcage data structure:
- fix of the iteration of the buffers
- missing term in the computing
- expose the compute coefficient function
2010-08-08 13:20:58 +02:00
Michael Muré 2157a67cea app/core/gimpcage: add access functions to the cage data structure (add a vertice, remove the last, move a vertice, check if a point is near a vertice)
app/tools/gimpcagetool: The tool can now draw a cage, add vertices, remove the last, close the cage
2010-08-08 13:20:24 +02:00
Michael Muré 1856516547 Beginning of GimpCage data structure, with the computation of the coefficient (test needed) 2010-08-08 13:20:00 +02:00
Michael Muré f6316285be structure of the cage tool, with an options object 2010-08-08 13:17:10 +02:00
Michael Muré 24652b4fbd empty gobject for GimpCage (data structure), GimpOperationCage (Gegl op) and GimpCageTool (frontend) 2010-08-08 13:16:57 +02:00
Sven Neumann 8cf801c8e0 app: allow to delete curve points
Pressing Delete in the Curve view now deletes the selected point
on the curve.
2010-07-26 01:08:44 +02:00
Michael Natterer 3184c440b3 app: introduce GimpItem::to_selection()
Which replaces all the deparate functions to turn layers, channels,
layer masks and vectors into selections. Use the new virtual function
all over the place instead of calling the functions in
gimpchannel-select.c manually.
2010-07-20 23:09:19 +02:00
Michael Natterer 31d7061e20 app: remove "item_type" parameter from gimp_param_spec_item_id()
and from gimp_value_get_item(). The functions are used nowhere, and
the parameter is now in the way of adding item support to the PDB.
2010-07-08 22:40:48 +02:00
Michael Natterer 314a6ab926 app: merge the layer, channel and vectors repositioning APIs
into an API based on GimpItem.
2010-07-08 18:08:13 +02:00
Michael Natterer 70a3addcb9 app: harden precondition checks in GimpItemTree
Instead of checking if the item is attached and belon's to the tree's
image (which did miss e.g. passing a channel to the layer tree), we
now check if gimp_item_get_tree(item) returns right tree.
2010-07-08 15:06:19 +02:00
Martin Nordholts 706900c4f6 Bug 589010 - Don't make Alt-Clicked layers active
Add a "pre-clicked" signal to GimpCellRendererViewable that can
prevent a selection from happening. Move the Alt-Click code in
GimpLayerTreeView to this signal and if a layer is Alt-Clicked, don't
go ahead and make the layer active. Also add a test for this use case.
2010-06-27 21:46:53 +02:00
Michael Natterer 2813fce0b8 Bug 613838 - Error in gimp-hue-saturation PDB call
The "hue" parameter from the PDB is in a [-180..180] range, not in
[-100..100]. Note that unlike stated in the bug, this is not an
incompatible change, because it simply got broken between 2.4 and
2.6.
2010-06-27 01:15:46 +02:00
Michael Natterer d596695afc app: run dispose explicitely on the paint_options before unrefing them 2010-06-26 23:22:53 +02:00
Michael Natterer 324fa432b6 app: free the tag_ref_counts hash table in dispose() 2010-06-26 18:25:44 +02:00
Michael Natterer e24c2d2249 app: add a local "container" variable to make the code more readable 2010-06-26 15:49:10 +02:00
Michael Natterer e0d5bab077 app: remove the static variables for the "standard_foo" fallback members
Instead, call gimp_foo_get_standard() when a fallback object is
needed (keeping them around as static variables was a silly
micro-optimization).
2010-06-24 22:33:33 +02:00
Michael Natterer b2b1cb135b app: move the instance debug facility to the new file app/gimp-debug.c
Build it unconditionally but enable it via GIMP_DEBUG=instances
2010-06-24 19:11:56 +02:00
Michael Natterer 44e6acbef8 app: the name of the standard paint is "gimp-paintbrush" not "GimpPaintbrush" 2010-06-24 18:38:19 +02:00
Michael Natterer 67590c04d1 app: unref tool options and presets in dispose() instead of finalize() 2010-06-24 18:38:18 +02:00
Michael Natterer bfbdf1cfb8 app: unref the paint options in dispose() instead of finalize() 2010-06-24 18:38:18 +02:00
Michael Natterer 5db9d31498 app: drop all object references in dispose() insatead of finalize() 2010-06-24 18:38:18 +02:00
Michael Natterer 06bf098fa9 app: run dispose on the tool infos before unrefing their container
because they contain reference cycles with the tool options
2010-06-24 18:38:18 +02:00
Michael Natterer a5b6544b6e app: unref options->tool_info in dispose() instead of finalize() 2010-06-24 18:38:17 +02:00
Michael Natterer c9bde335f0 app: don't additionally ref the standard data objects
Instead, set their statically remembered pointer as a weak pointer so
it's nullified automatically if they are ever finalized. Doesn't
actually get rid of them upon exit yet, this is just a preparation.
2010-06-24 18:38:16 +02:00
Michael Natterer e44d81bd4b app: add a debug facility that keeps track of allocated GimpObjects 2010-06-23 22:32:14 +02:00
Michael Natterer 09ebdcb06b app: don't leak each transformed brush mask 2010-06-22 23:06:35 +02:00
Barak Itkin 5930b13084 app: add context to all undo descriptions
Description of undo actions should be marked as action descriptions,
and not as commands. This is required for translation for some
language (like Hebrew) that require a different grammatical tense for
describing actions
2010-06-09 18:50:23 +02:00
Michael Natterer 5dd9e4bbc3 app: remove member GimpDrawable::has_alpha
because it is always the same as GIMP_IMAGE_TYPE_HAS_ALPHA(drawable->type),
so simply use that instead.
2010-06-08 10:10:04 +02:00
Michael Natterer 8a27702ac3 app: add simple macros GIMP_TIMER_START() and GIMP_TIMER_END()
which measure the time taken between them and print out a message.
Use it for projection benchmarking and add timing to scaling.
2010-06-06 20:24:27 +02:00
Michael Natterer 17961941fc app: use gegl:scale for scaling if use-gegl is TRUE 2010-06-06 19:54:44 +02:00
Michael Natterer 301b990a46 app: add gimp_drawable_apply_operation_to_tiles()
which uses a passed-in tile manager instead of
the drawable's shadow tiles as sink.
2010-06-06 19:52:39 +02:00
Michael Natterer 8cefb2913e app: use g_strcmp0() where strings can be NULL instead of checking manually 2010-06-06 19:15:49 +02:00
Michael Natterer 6d67ffd6f0 app: some cleanup in GimpFilteredContainer 2010-06-06 18:55:07 +02:00
Michael Natterer 72bcb72c44 app: rename gimp_template_create_image() to gimp_image_new_from_template()
and move it from gimptemplate.c to gimpimage-new.c
2010-06-05 22:42:00 +02:00
Michael Natterer 649bd8f678 Bug 619131 - Attempting to flip FG/BG hard-edge gradient locks up GIMP
Don't have the "prev" pointer of the right gradient segment point to
itself, causing an infinite loop when iterating the gradient reversed.
2010-05-20 10:11:18 +02:00
Alexia Death b0d02666a3 app: A few more generic aspect ratio fixes 2010-05-14 20:58:27 +03:00
Alexia Death 74f907ca33 app: Fix curve application to tilt aspect ratio maping 2010-05-10 00:22:39 +03:00
Alexia Death 4816a61dcb app: Aspect ratio fixes 2010-05-10 00:21:55 +03:00
Alexia Death 0cb1ada818 app: convert aspect ratio to scale_x&scale_y just before matrix transform 2010-05-10 00:11:07 +03:00
Michael Natterer 506469f9f9 app: minor formatting cleanup 2010-04-26 18:52:49 +02:00
Alexia Death 5e1c9d228c app: Fix tool preset editor init 2010-04-24 18:51:42 +03:00
Alexia Death 06c1b290d0 app: Add tool preset editor to controll what elements get applied
I had to remove the asserrt in tool preset constructor, because with it
it wasnt possible to initalize an empty model object for the editor.
At init time the gimp object passed to the constructor is not yet available.
2010-04-24 17:55:54 +03:00
Alexia Death 93ab387fb4 app: add use flags to tool preset 2010-04-24 15:54:35 +03:00
Michael Natterer 8f813ec52b app: print a warning if a wrong tool is set on a GimpToolOptions object
Use a real g_warning() because this is a programming error. Please
report all warnings.
2010-04-21 20:53:16 +02:00
Michael Natterer bb00c53bf5 app: make sure tool options are created with the right tool set 2010-04-20 20:04:24 +02:00
Michael Natterer c835fad2c9 app: make sure GimpToolOptions always have the right GimpToolInfo set
Override GimpContext's "tool" property and add an evil function that
makes sure we don't set a tool that doesn't match the options. Needed
because tool options are read from disk and thus unreliable per se,
additional we were stupid and wrote wrong tool options to disk.
2010-04-20 20:00:34 +02:00
Michael Natterer 5c3cf19095 Revert "app: Make drawable updates happen at fixed framerate"
This reverts commit 32aca3c8b6.
Clearly needs more review, thinking and discussion.
2010-04-18 15:03:16 +02:00
Alexia Death 32aca3c8b6 app: Make drawable updates happen at fixed framerate 2010-04-18 15:53:22 +03:00
Michael Natterer 4c4c861aa1 app: make sure GimpToolPreset got the "gimp" construct property passed
and pass a Gimp when creating the preset editor's local model.
2010-04-11 16:18:21 +02:00
Michael Natterer b676a1add0 app: make tool preset loading work
- add "Gimp" property to GimpToolPreset
- implement GimpConfigInterface::deserialize_property() and deserialize
  the "tool-options" locally so we can pass the required "gimp" construct
  property.
2010-04-11 15:43:29 +02:00
Michael Natterer caad58d203 app: add a GimpContext parameter to GimpDataLoadFunc 2010-04-11 13:12:41 +02:00
Michael Natterer 4fcf34699f app: flip context and name parameters in GimpDataNewFunc 2010-04-10 19:55:42 +02:00
Alexia Death 78a4cae2d5 app: Rewire the the feature formely known as harndess back to gui as force 2010-04-09 00:44:52 +03:00
Alexia Death 9ed712ddc4 app: Fix ceil/floor amplifying errors in transform size calculation 2010-04-08 00:31:40 +03:00
Michael Natterer 430b0e5517 app: add a GimpContext parameter to all functions which create GimpData
and pass a context whereever needed. Fix up gimp_tool_preset_new()
to actually make a copy of the context's active tool's options.
2010-04-05 13:26:31 +02:00
Michael Natterer 98a5e77200 app: formatting 2010-04-04 18:56:40 +02:00
Michael Natterer efed2bf623 app: some cleanup and fixes in the tool preset infrastructure 2010-04-04 13:58:55 +02:00
Alexia Death 29f7fe87b0 Base infra for tool presets. 2010-04-03 21:06:15 +03:00
Michael Natterer 4da60dd1b3 app: add context->dynamics_name to the context's memsize 2010-04-01 20:46:31 +02:00
Michael Natterer 021a49ce73 Add tile_manager_duplicate() which does quick tile-by-tile COW copy
and use it instead of duplicating the same code twice less efficiently.
2010-03-19 19:18:18 +01:00
Michael Natterer de583d4c28 Make gimp_buffer_new() ref the passed tiles
and clean up gimp-edit.c a bit as a result.
2010-03-19 19:18:18 +01:00
Michael Natterer 8688037a58 Optionally make a copy of the drawable's tiles in GimpDrawableModUndo
instead of simply reffing drawable->tiles. Add boolean property "copy-tiles"
and a boolean parameter to gimp_image_undo_push_drawable_mod() to control
the new feature. However, pass FALSE in gimp_drawable_real_set_tiles() (which
currently is the undo's only user)
2010-03-18 10:25:18 +01:00
Øyvind Kolås e30cdddeb0 app: include gegl-plugin.h in gimpdrawable.c
GimpDrawable uses gegl_operation_invalidate () which is part of the
plug-in/operation API, not the core GEGL API.
2010-03-17 22:26:40 +00:00
Alexia Death 3607a73744 app: Make sure outline and brush transform use the same kind of matrix 2010-03-17 19:49:21 +02:00
Alexia Death 336de7935f app: Add dynamics to airbrush Flow 2010-03-14 19:09:55 +02:00
Alexia Death f1a1114ed7 app: Order dynamics in editor a bit more sensibly 2010-03-14 18:12:24 +02:00
Alexia Death 5fda650281 app: Support for wheel input found in highend wacom tablets&tools 2010-03-09 22:23:44 +02:00
Alexia Death 20d77451fd app: Fix brush tools behavior at very small scale values
Tiny scale value now results in no stamp.
2010-03-07 15:56:38 +02:00
Michael Natterer 6650693d29 app: move gimp_image_pick_layer() to its own file
and add a (still unused) text layer picking function.
2010-03-07 01:55:31 +01:00
Aurimas Juška 73b86bd9c9 app: Fix GimpTag reference handling 2010-03-03 23:35:20 +02:00
Michael Natterer e9abde75ee app: if there is no "text", generate the layer name from "markup"
Add gimp_markup_extract_text() which does just what it says (includes
code stolen from gmarkup.c), and use it if the layer's text object
doesn't have any text set.
2010-03-02 21:19:57 +01:00
Alexia Death 15081a3a73 app: Make catmul-rom coords intepolation clamp pressure 2010-02-24 02:15:50 +02:00
Michael Natterer 7ea07c884b app: some code cleanup
- move curve creation and signal connection to a utility function
- formatting cleanup
2010-02-23 20:59:10 +01:00
Alexia Death ced0c1af79 app: Fix some code ugliness intoduced by my last commit 2010-02-23 21:16:35 +02:00
Alexia Death 0e1715fae2 app: Make the curve changes have immedate effect and have a working curve 2010-02-23 20:16:28 +02:00
Alexia Death 3a8c234261 app: Make all inputs for an output respect curves 2010-02-23 17:41:01 +02:00
Alexia Death 902e49fcc8 app: Make dynamics output curve getting work right. 2010-02-23 17:41:01 +02:00
rubikcube 62c0472ca5 Bug 600316 - Animated brushes, angle calculation
This was just a small bug in the angle->index calculation.
2010-02-23 14:32:24 +01:00
Alexia Death bdf4269e30 app: Add props for curves 2010-02-22 20:34:11 +02:00
Michael Natterer 652c6756c4 app: cosmetic cleanups in the new dynamics stuff in core/ 2010-02-22 08:53:50 +01:00
Alexia Death 468b30b585 app: Add type for dynamics output 2010-02-22 01:00:16 +02:00
Michael Natterer 0908e53148 app: use the new unit conversion functions
and get rid of the brainfuck idea that app/ has to use _gimp_unit_foo()
functions, passing a gimp pointer. Instead, simply use the libgimpbase
API all over the place. Should we ever allow more than one gimp instance,
they will simply have to share one unit database.
2010-02-21 16:46:39 +01:00
Michael Natterer 592fce0f7b app: properly implement GimpData::duplicate() 2010-02-16 19:58:06 +01:00
Michael Natterer 12aa801441 app: protect against calling a subclass' GimpItem::get_node() impl directly
gimp_drawable_get_mode_node() was calling gimp_drawable_get_node()
instead of gimp_item_get_node() if the mode_node didn't already exist.
Fortunately that was never the case i nthe current code. Added
warnings in the GimpItem::get_node() impls that would go off in such a
situation.
2010-02-14 20:26:16 +01:00
Michael Natterer 5f46061830 app: add gimp_item_peek_node() and use it
so we can avoid peeking into the GimpItem struct if we want to get to
the item's node without implicitly creating it if it doesn't already
exist.
2010-02-14 13:55:45 +01:00
Michael Natterer f9cb5fbc10 app: derive GimpContext from GimpViewable instead of GimpObject
because the device info container wants to be displayed in a container
view soon. Also we are about to get lists of tool presets and stuff,
which are also contexts.
2010-02-13 15:04:32 +01:00
Michael Natterer c4562c5a93 core: use g_param_spec_boxed() for tile managers, not g_param_spec_pointer() 2010-02-10 12:42:30 +01:00
Michael Natterer 8afdbd8053 Let gimp_item_tree_get_insert_pos() return a boolean indicating success
and move more precondition checks there. Remove lots and lots of
checks from all its callers and simply bail out if it returns FALSE.
2010-02-09 22:32:54 +01:00
Michael Natterer e83954c49a Add more precondition checks to gimp_item_tree_get_insert_pos() 2010-02-09 22:32:53 +01:00
Michael Natterer 37d10415df Make sure all items of a subtree get added to / removed from the name hash
when whole item hierarchies are added or removed, like when a layer
group goes to the undo stack and back.
2010-02-09 22:32:51 +01:00
Michael Natterer 6e49a0fa5d Move gimp_edit_paste_as_new() to gimp_image_new_from_buffer()
because it better fits there, and it's never actually been a "paste"
from the implementation point of view.
2010-02-09 22:32:49 +01:00
Michael Natterer 903604113f Add utility function to create images to gimpimage-new.[ch]
Add gimp_image_new_from_drawable(), from_component() and from_pixbuf()
and remove that duplicated code from gimptoolbox-dnd.c and
gimpdisplayshell-dnd.c
2010-02-09 22:32:48 +01:00
Michael Natterer 9a561646c2 Move the undo disable/freeze APIs to gimpimage-undo.[ch] 2010-02-09 22:32:48 +01:00
Michael Natterer 052dcd0164 Update the layer stack in gimp_image_active_layer_notify()
instead of in gimp_image_set_active_layer()
2010-02-09 22:32:47 +01:00