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