Commit graph

41 commits

Author SHA1 Message Date
Jehan
03af9da83b app: GimpTool multi-drawable aware.
Right now I don't change the logics of any of the tools, except that the
GimpTool class now stores a list of drawables instead of a single
drawable. This can be later used on a case-by-case basis to make various
tools actually work on multiple drawables.
2020-05-26 14:15:17 +02:00
Ell
788b136bbf app: add "clip" parameter to gimp_display_shell_untransform_viewport()
... which specifies whether to clip the viewport to the canvas
(previously, it would always be clipped).  Use the appropriate
value in all callers, depending on the shell's "show all" mode.  In
particular, this commit avoids clipping the image projection's
priority rect to the canvas in "show all" mode.
2019-09-04 20:47:25 +03:00
Ell
2d80d4d138 app: use gimp_gegl_buffer_dup() everywhere
... instead of gegl_buffer_dup().
2019-07-30 20:32:41 +03:00
Michael Natterer
5f700549e7 Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
luz.paz
7fdb963e01 Bug 794996 - Misc. typo fixes in comments in app/
Found via `codespell -q 3 --skip="./po*"`
2018-04-08 21:25:56 +02:00
Michael Natterer
0cb3e75f79 app: use a lot of g_clear_object() and g_clear_pointer()
More than 2000 lines of code less in app/, instead of

if (instance->member)
  {
    g_object_unref/g_free/g_whatever (instance->member);
    instance->member = NULL;
  }

we now simply use

g_clear_object/pointer (&instance->member);
2017-07-15 18:42:44 +02:00
Michael Natterer
91e861adcc libgimpwidgets, *: deprecating stock IDs for good, part one...
Remove all stock items added since 2.8, restore accidentially removed
ones, and rename the newly added GIMP_STOCK_* defines to GIMP_ICON_*.

(will move to having GIMP_ICON_* defines instead of magic hardcoded
strings for all icons).
2017-02-28 19:31:27 +01:00
Jehan
0cccc20c0a app: delete duplicate accelerators.
Redundant accelerators were:
- <Primary><Shift>y on dialogs-mypaint-brushes and edit-strong-redo.
  Since the <Primary>z vs <Primary>y has quite a strong history for
  undo/redo actions, and dialogs-mypaint-brushes is quite new, let's
  unmap the latest.
- <shift>l on tools-seamless-clone and tools-unified-transform.
  Since the Seamless clone tool is still in the playground and we
  don't even know if it will make it out quite soon, let's give
  priority to the Unified Transform tool.
2016-11-21 15:59:20 +01:00
Michael Natterer
9fb70a44f2 app: rename GimpImageMap to GimpDrawableFilter
and gimpdrawable-filter.[ch] to gimpdrawable-filters.[ch] because of
the name clash.
2016-05-12 01:49:53 +02:00
Jehan
43e4256d56 "gegl:seamless-clone" operation's properties "max-refine-steps" changed…
… into "max-refine-scale". See GEGL commit 346139b.
It does not fix the Seamless Clone tool, but at least now the slider
has a meaning.
2015-07-12 19:47:49 +02:00
Michael Natterer
6487d0a26a app: move the seamless clone tool to the playground
It's not release material unless somebody comes and fixes its bugs,
and its speed.
2015-06-14 13:02:31 +02:00
Michael Natterer
36d8431058 icons: add icons for seamless clone contributed by Klaus Staedtler 2014-11-19 21:32:36 +01:00
Michael Natterer
a6601d563b app: some GimpProgress cleanup
- change start() and set_text() to use "format" and "..." instead of
  "message", allowing to format progress messages in place
- s/cancelable/cancellable/
- move "cancellable" to be the second argument of start()
2014-07-12 23:45:20 +02:00
Michael Natterer
f4803af808 app: add boolean "cancelable" API to GimpImageMap and gimpdrawable-filter.[ch]
Return booleans indicating success (FALSE == user has canceled), and
allow canceling only in GimpImageMapTool for now.
2014-06-30 01:06:04 +02:00
Michael Natterer
8aa0019c2e app: clean up inclusion of gegl-plugin.h, mostly removals 2014-06-10 03:13:09 +02:00
Michael Natterer
2068c61a85 Bug 730862 - Preview frozen while dragging selection tools...
...(crop, rectangle, etc) in large image zoomed-to-fit

Default to GIMP_MOTION_MODE_COMPRESS in all tools, and override it to
GIMP_MOTION_MODE_EXACT if the tool really needs the exact path of
motion events. This greatly reduces the events processed by the
rectangle tools and makes them much more responsive.
2014-06-02 20:55:33 +02:00
Jehan
5ca9240d74 app: display a status error when seamless cloning without foreground image. 2014-04-30 09:11:31 +12:00
Jehan
8f410b927a app: optimize and add progress information to seamless clone
Display information when seamless clone is being processed.
Also ensure that I don't compute again when no properties is changed.
2014-04-30 09:10:31 +12:00
Jehan
cb93f2bd27 app: commit seamless clone in progress when switching tools. 2014-04-30 09:08:09 +12:00
Jehan
5077a149f3 app: add correct options for seamless clone operation. 2014-04-30 09:07:03 +12:00
Michael Natterer
88e4d7e468 app: commit ongoing tool operations on tool change instead of cancelling
On tool change, we used to simply halt tools before switching to the
new one, which meant losing ongoing live-previewed tool changes, like
transforms, warps and color corrections. This change makes them being
applied to the image instead before switching to the new tool:

Add enum value GIMP_TOOL_ACTION_COMMIT that is passed to
GimpTool::control() before tool switching. Handle the new enum value
in all tools, and actually commit the previewed stuff. This changes
the behavior of GimpCageTool, GimpImageMapTool, GimpTransformTool and
GimpWarpTool.
2014-04-04 22:34:26 +02:00
Massimo Valentini
b81641e25f app: fix two typos 2013-11-28 19:44:45 +01:00
Michael Natterer
d4bb6e0fe7 app: some general cleanup in seamless clone 2013-05-23 23:12:17 +02:00
Michael Natterer
fb7ae4ba48 app: reorder functions in GimpSeamlessCloneTool to standard order 2013-05-23 22:59:51 +02:00
Michael Natterer
ef917b2c5c app: add an "area" parameter to gimp_image_map_apply()
and only update the drawable in that area if it's not NULL. Useful for
expensive interactive operations like warp, where the tool exactly
knows which area has changed.
2013-05-18 01:45:01 +02:00
Michael Natterer
775ba72d7e app: cleanup in GimpSeamlessCloneTool
- fix some leaks
- actually free the op, seems to cause a crash
- formatting cleanup
- remove lots of comments
2013-05-17 00:53:55 +02:00
Michael Natterer
0b37c9e374 app: some general minor seamless-clone cleanup, and make it build 2013-05-15 00:39:06 +02:00
Clayton Walker
32c129ded7 Update seamless clone tool to use new image map functions 2013-05-15 00:25:32 +02:00
Barak Itkin
a3e136ab7f Fix: The offset for seamless cloning should be relative to the drawable 2013-05-15 00:25:32 +02:00
Barak Itkin
c9134ab55f Make gimp use the all in one seamless clone GEGL operation 2013-05-15 00:25:32 +02:00
Barak Itkin
3f0cb773a6 Make the seamless clone tool compile again (update on API changes) 2013-05-15 00:25:31 +02:00
Barak Itkin
9e4e027ab0 Fix the the preview to redraw correctly! Also clean-up the code 2013-05-15 00:25:31 +02:00
Barak Itkin
ef235c389a Fix the preprocessing. It now works without UV caching.
This gimp commit uses gegl commit 2d2d01d47f84, which still passes the
preprocessing result as a gpointer (and not a GObject*), and still does
not cache the UV cordinates into a buffer.
The result of the preprocessing currently isn't freed!
2013-05-15 00:25:31 +02:00
Barak Itkin
9390247c33 Add work in progress for preprocessing before rendering the op 2013-05-15 00:25:31 +02:00
Barak Itkin
35255505fd Quick-Fix to the previous commit - return the right value on key press 2013-05-15 00:25:31 +02:00
Barak Itkin
a416acfe08 Fix bug in tilemanager unreffing and support committing the result
Unreffing the tilemanager of a GimpBuffer is wrong, since the function
to get the tilemanager of a buffer doesn't ref it.
Also, the operation of the tool can now be saved ("committed") using
the Enter key, and the tool can be halted using the Escape key. Note
however that we should do these in a nicer way, that does not require
restarting the tool to use it afterwards.
Finally, this commit removes the debug printing.
2013-05-15 00:25:31 +02:00
Barak Itkin
cab47522b7 Image map interaction works, and so are movement and drawing 2013-05-15 00:25:31 +02:00
Barak Itkin
8f2de693a7 Another WIP commit. There is a known tile manager leak, rest is OK 2013-05-15 00:25:31 +02:00
Barak Itkin
d745f85293 Another WIP commit. It now compiles, and runs with no runtime errors. 2013-05-15 00:25:31 +02:00
Barak Itkin
cacca4b317 commit of a WIP, introducing some of the actual tool logic 2013-05-15 00:25:31 +02:00
Barak Itkin
5fa0df17dd Add a skeleton for the seamless clone tool, based on the cage tool 2013-05-15 00:25:30 +02:00