Commit Graph

528 Commits

Author SHA1 Message Date
Jehan 6ebff7b3c5 configure, desktop: update the bug report URL.
Also make so that the metadata URL is taken from the one of the package
set with configure.
2018-05-25 15:05:47 +02:00
Michael Natterer 10e3a968c1 app: remove the unused GimpContainerGridView 2018-05-20 21:06:30 +02:00
Michael Natterer f180a171cd pdb: remove all deprecated procedures 2018-05-20 21:06:29 +02:00
Piotr Drąg 45b9da92f7 Update POTFILES.in 2018-04-29 19:56:38 +02:00
Piotr Drąg b1df7d5497 Update POTFILES.in 2018-04-19 19:52:20 +02:00
Michael Natterer 428110f63f app: remove non-cut/copy/paste functions from gimp-edit.[ch]
Move them to the new files gimpdrawable-edit.[ch] and
gimpimage-fade.[ch].
2018-04-18 23:48:33 +02:00
Michael Natterer 50536e1c38 Bug 795230 - Rename Blend tool and provide PDB compatibility
Add new PDB group "drawable_edit" which has all procedures from the
"edit" group which are not cut/copy/paste.

The new group's procedures don't have opacity, paint_mode
etc. arguments but take them from the context instead. Unlike the old
gimp-edit-fill, gimp-drawable-edit-fill now uses the context's opacity
and paint_mode.

The new gimp-drawable-edit-gradient-fill procedure uses even more
context properties which are also newly added with this commit
(gradient_color_space, gradient_repeat_mode, gradient_reverse).

And some cleanup in context.pdb.

This is still WIP, nothing in the edit group is depcreated yet.
2018-04-15 15:28:50 +02:00
Michael Natterer 4705684b0e po: fix typo in POTFILES.in 2018-04-14 02:18:56 +02:00
Michael Natterer b0beb0197a Bug 795230 - Rename Blend tool and provide PDB compatibility
Rename the tool and its options, and the gradient sub-struct of paint
options.
2018-04-14 00:52:20 +02:00
Michael Natterer 4f2e078ccb Bug 795230 - Rename Blend tool and provide PDB compatibility
Rename gimpdrawable-blend.[ch] to gimpdrawable-gradient.[ch]
2018-04-13 23:43:27 +02:00
Ell 6982533292 app: add custom GUI for gegl:panorama-projection
... which uses a gyroscope controller to control the op's rotation
angles and zoom.
2018-04-10 10:18:49 -04:00
Ell 634d5ae57d app: add GimpToolGyroscope
GimpToolGyroscope is a tool widget providing canvas interaction for
3D rotation.  The widget doesn't preset a UI, but rather
facilitates panning, rotation, and zoom, by dragging the canvas, or
using the keyboard.

Rotation is expressed using yaw/pitch/roll angles (performed in
this order).  A zoom factor can be specified, which affects the
magnitude of the rotation per distance traveled.  The widget can
operate in inverse mode, performing an inverse transformation.
2018-04-10 10:18:48 -04:00
Ell c2c5fedd13 po: update gimp-debug-tool.c path in POTFILES.in 2018-03-10 18:28:14 -05:00
Ell 0f2df18dde app: add gimp_spawn_async()
gimp_spawn_async() is similar to, but more limited than,
g_spawn_sync().  Unlike the latter, gimp_spawn_async() uses
vfork(), instead of fork(), when possible.

On Linux, a process that uses large amounts of memory (as GIMP may)
can hang during a fork() if overcommitting is enabled, and there's
not enough memroy.  Using vfork() avoids that, since it doesn't
duplicate the parent's address space.
2018-03-05 01:55:40 -05:00
Ell 8039582df0 app: add custom GUI for gegl:recursive-transform
gegl:recursive-transform applies a transformation recursively to
an image.  The custom GUI allows controlling the transformation
matrix using a transform-grid controller, added in the previous
commit.
2018-03-01 02:26:54 -05:00
Michael Natterer 614b81ffb4 app, tools: rename "gimpdebug" to "gimp-debug-tool"
and use GIMP_TOOL_VERSION instead of hardcoding "2.0" in both
tools/Makefile.am and app/errors.c
2018-02-04 14:09:22 +01:00
Piotr Drąg 6945e10b53 Update POTFILES.in 2018-01-29 02:35:27 +01:00
Piotr Drąg 0ac29c0b61 Update POTFILES.in and POTFILES.skip 2018-01-28 19:06:13 +01:00
Ell 4c71ee8e7a app: add GimpGenericTransformTool
A subclass of GimpTransformTool, to be used as a base class for
transform tools that calculate their matrix based on 4 pairs of
input/output points, and that display the transform matrix as their
GUI (this includes the unified, perspective, and handle transform
tools; the next commit ports them over to
GimpGenericTransformTool).

When the resulting matrix of the input/output mapping sends any of
the output points to, or past, infinity, GimpGenericTransformTool
sets GimpTransformTool::transform_valid to FALSE, and displays an
appropriate message in the tool GUI, instead of showing the matrix.
2018-01-27 07:30:29 -05:00
Michael Natterer b23f231a1a Bug 792470 - Some filters e.g. "Levels" are not added to "Repeat last" history
The four remaining "classic" color tools (Brightness-Contrast, Curves,
Levels and Threshold) are in fact just special UIs for otherwise
completely normal filter ops.

Add normal filter actions for them and invoke them like all
other filters, which makes them show up in the filter history
automatically.

The only small hack needed is to special case them in
gimp_gegl_procedure_execute_async() so the right tools are created
instead of the default GimpOperationTool. Also, blacklist the
automatically generated tools actions from action search and the
shortcut editor.
2018-01-14 15:42:29 +01:00
Jehan 458e313000 Rename gimp.appdata.xml.in to org.gimp.GIMP.appdata.xml.in.in.
I completely forgot to rename the appstream file according to the new
ID. While doing so, I also make it a .in.in file, with initial
processing by the autotools. Indeed I need @GIMP_COMMAND@ to be replaced
by AC_CONFIG_FILES().
Finally I fix a badly closed XML tag (which reminds me I should always
test a commit, even when it's a simple non-C 1-liner change!).
2018-01-14 03:54:17 +01:00
Alexandre Prokoudine a16a31ab51 Make bits of Shadows-Highlights translatable 2018-01-05 21:09:15 +03:00
Piotr Drąg 09035bc3f5 Update POTFILES.in 2017-12-23 00:09:33 +01:00
Ell 981e8dcdfe app, menus, icons: add dashboard dockable
The dashboard dockable shows the current GEGL cache and swap sizes,
and their recent history.  It has options to control the update
rate and history duration of the data, and an option to warn (by
raising/blinking the dialog) when the swap size approaches its
limit.
2017-12-18 19:42:23 -05:00
Ell e4440e3fdb app: save custom gradient across sessions
Add a framework for saving and restoring internal data objects, in
gimp-internal-data.c.  Internal data objects are saved in separate
files under a new "internal-data" subdirectory of the user's gimp
directory.  The internal data is saved, restored, and cleared
together with the tool options.

Use this to save and restore the custom gradient.  In the future,
we might add similar writable internal data objects that we'd want
to save.
2017-10-29 10:19:07 -04:00
Ell d4d8dbbc1b app: add custom gui for gegl:color-to-alpha(-plus)
Add a specialized propgui constructor for gegl:color-to-alpha-plus.
This op is currently in the workshop, but is set to be merged with
the existing gegl:color-to-alpha, so we omit the '-plus' from file-
and function-names.

The new op adds a pair of properties to control the radii, relative
to the selected color, below which colors become fully transparent,
and above which colors remain fully opaque.  Allow these properties
to be set by picking a color from the image, and calculating the
radius accordingly.
2017-10-16 12:38:38 -04:00
Ell 92cd4d4619 app: s/diffration-patterns/diffraction-patterns/ 2017-10-15 13:35:05 -04:00
Ell 4f1195be29 app: add "modify active gradient" option to the blend tool
Add a boolean "modify active gradient" option to the blend tool.
when checked, the active gradient is modified in-place while edited.
When unchecked, the active gradient is copied to the internal
"custom" gradient upon editing, and the custom gradient becomes
subsequently active.

Show a hint when the option is checked, but the active gradient is
non-writable, and can't be edited directly.

This commit adds the new gimpblendtool-editor.[hc] files, which are
where the gradient-editing related functionality of the blend tool
is going to go.
2017-10-09 12:48:53 -04:00
Michael Natterer 723c4d7f87 app: remove GimpColorizeConfig, merge its props into GimpOperationColorize
Colorize doesn't need a config object just because it has a generated
property for the GUI only.
2017-09-05 21:26:59 +02:00
Michael Natterer bef155ef30 app: prepend "Last used: " to the names of the automatic filter presets
and add a tooltip about renaming them in order to save them
permanently.
2017-07-18 00:29:45 +02:00
Michael Natterer cb0757e1c5 app: split some utils out of gimppropgui.[ch] to gimppropgui-utils.[ch] 2017-07-16 20:14:18 +02:00
Michael Natterer 76644b7367 app: add a "status_title" to GimpCreateControllerFunc
so the status bar now says "Spiral:" or "Supernova:" instead of just
"Line:".
2017-07-04 12:51:05 +02:00
Michael Natterer e8ee5475b7 app: move all propgui files from app/widgets/ to new folder app/propgui/
We are getting more and app/widgets/ is already too large.
2017-07-03 12:29:41 +02:00
Michael Natterer e11cb1edf3 app: remove GimpRectangleTool, all users were ported to tool widgets 2017-06-28 15:42:02 +02:00
Michael Natterer a3acb7422d app: move status message setting from GimpBlendTool to GimpToolLine 2017-06-26 21:48:43 +02:00
Michael Natterer be63a4a836 app: add new GimpToolWidget subclass GimpToolRectangle
which is a replacement for GimpRectangleTool. It's a massive piece of
code and I'm not sure everyting works as it should, but it seems to do
crop stuff without any glitches.
2017-06-26 19:19:16 +02:00
Michael Natterer 2192f520da app: add new GimpToolWidget subclass GimpToolPolygon
which is the free select curve.
2017-06-23 01:57:21 +02:00
Michael Natterer 3ab92c7290 app: add GimpToolWidget subclass GimpToolPath, a complete vectors editor 2017-06-21 23:27:20 +02:00
Piotr Drąg 163d46682d Update POTFILES.in 2017-06-20 16:59:42 +02:00
Jehan 60f09c3482 desktop: make the appstream metainfo file translatable.
To have the name and summary translatable, rename as .in file, add
underscore on localizable tags and add to POTFILES.in.
Also clean out trailing whitespace and weird characters, add indentation
and fix tag s/updatecontact/update_contact/.
Finally add an appstream-util validation so that the file syntax is
checked during a `make check`.
2017-06-17 04:31:22 +02:00
Michael Natterer dc17194fca po: add gimptooltransformgrid.c to POTFILES.in 2017-06-17 03:04:06 +02:00
Michael Natterer 18fe8f61a5 app: add GimpToolCompass, which is the entire canvas GUI of the measure tool 2017-06-11 23:38:55 +02:00
Michael Natterer 109f23af39 app: replace the hue-saturation tool by a generic filter action
Move the GUI to a custom gimppropgui function.
2017-06-05 18:35:05 +02:00
Michael Natterer 85aab2a0f5 app: restore color balance's tooltip 2017-06-05 13:16:59 +02:00
Michael Natterer 5abf0c2e5b app: rename gimppropgui-constructors.[ch] to gimppropgui-generic.[ch] 2017-06-05 12:05:39 +02:00
Michael Natterer 9e1aee48c5 app: move all custom gimppropgui constructors to their own files 2017-06-05 02:26:30 +02:00
Michael Natterer 757ca64e58 app: replace the color balance tool by a generic filter action
Move the color balance GUI to a custom gimppropgui function.
2017-06-05 01:20:37 +02:00
Michael Natterer ecfec4103b app: remove the colorize tool and replace it by a generic filter action 2017-06-04 21:21:43 +02:00
Michael Natterer 7e239901dd app: add new GtkTreeView subclass GimpPlugInView
which takes a list of GimpPlugInProcedures and allows to choose
between the plug-ins that implement these procedures.
2017-05-04 20:35:41 +02:00
Piotr Drąg 7d8976ad5b Update POTFILES.in 2017-03-11 12:08:44 +01:00
Michael Natterer 7da7bab09c app: get rid of icons in dialog buttons (use labels not stock IDs)
Nobody has them anymore, and they are deprecated in GTK+ 3.x. This
also fixes all conflicting mnemonics except those I missed, but we can
fix them now.
2017-02-12 16:18:54 +01:00
Michael Natterer 2a96d598c3 app: add internal and PDB API and UI to control a layer's composite mode
Largely based on a patch by Ell, with the enum type renamed and
various small changes. Adds another axis of configurability to the
existing layer mode madness, and is WIP too.
2017-02-02 00:38:25 +01:00
Piotr Drąg a842217049 Update POTFILES.in 2017-01-30 01:24:33 +01:00
Michael Natterer 76f9e0ca2d po: add items-commands.c to POTFILES.in 2016-10-30 17:05:55 +01:00
Michael Natterer b81b60950b app: bring the "Switches" column to the channel and path properties dialogs
Introduce item-options-dialog.[ch] which abstracts this away and use
it from the layer, channel, vectors options dialogs. This is all
pretty ugly but better than duplicating that code three times. The
vector-options-dialog is now completely pointless but I kept it anyway
for now, let's see what unique path options we come up with.
2016-10-26 16:51:56 +02:00
Michael Natterer ca2156ee35 app: language.c contains no translatable strings, remove "gimp-intl.h" 2016-10-21 18:44:39 +02:00
Michael Natterer 3d1c5641f7 Bug 731279 - Tool Preset Editor not working correctly
Have "Save" and "Restore" buttons in both the tool preset list/grid
and the tool preset editor. The save button stores the active tool's
options in the preset, if possible.
2016-10-12 23:51:24 +02:00
Michael Natterer 64a2c395d1 app: add gimp-data-factories.[ch] with some code from gimp.c
This should improve readability in gimp.c, and moves all data factory
handling code to a common place.
2016-09-12 02:55:49 +02:00
Piotr Drąg 6790938b1d Update POTFILES.in 2016-08-24 21:09:19 +02:00
Michael Natterer 2ef8719cbe app: rename more stuff from "floating sel" to "floating selection" 2016-05-20 16:46:26 +02:00
Michael Natterer 81fd3e9c3f app: move GimpDrawable's FS to gimpdrawable-floating-selection.[ch]
and refactor it a bit to have separate functions for adding, removing
and updating the FS' drawable filter. Should be a lot more
understandable now.
2016-05-19 17:40:33 +02:00
Michael Natterer 6a9ce551cb app: rename GimpImageMapTool to GimpFilterTool 2016-05-10 13:52:24 +02:00
Michael Natterer 5aff776a8a app: rename convert-type-dialog.[ch] to convert-indexed-dialog.[ch] 2016-04-30 18:49:02 +02:00
Michael Natterer ef8b802032 app: move indexed conversion to gimpimage-convert-indexed.[ch]
It's so much code and takes so many additional parameters over RGB and
GRAY conversion, it got its own place and function now.
2016-04-30 18:35:52 +02:00
Michael Natterer 7889ec08f7 Bug 668016 - Accidentally clicking ruler loses active tool's state
Add two new tools, GimpGuideTool and GimpSamplePointTool. They are
one-trick-ponies and can only create new or move existing guides and
sample points. They can't be selected from the toolbox, only
temporarily pushed as active tools on top of any active tool using
their public start() APIs.

Use that API to enable them when the rulers are clicked, and replace
the entire guide and sample point moving code in GimpMoveTool and
GimpColorTool by simple calls to that API.

This might look like overkill but can easily be used for other
features like moving guides from within the paint tools (mirror
painting) or gegl filters (preview curtain).
2016-04-03 16:41:42 +02:00
Michael Natterer 49ffbbbbc0 app: add menu items and a dialog for GimpItem::fill()
which are essentially a copy of the stroking GUI. We now can fill the
exact shape outlined by stroking selections and paths. Suggestions for
the menu item labels are welcome.
2016-03-15 21:07:59 +01:00
Michael Natterer c77955e434 po: add app/core/gimpdrawable-fill.c to POTFILES.in 2016-03-07 21:40:33 +01:00
Piotr Drąg 1067869d64 Updated POTFILES.in 2016-02-13 21:24:21 +01:00
Jehan eb25d0cead po: add symmetries to POTFILES.in. 2016-02-02 21:15:13 +01:00
Michael Natterer cd47aac435 app: remove GimpThresholdConfig
The new more general GimpImageMapTool code handles this case
completely automatically now.
2016-01-22 22:37:23 +01:00
Michael Natterer 149d3f441f app: turn the desaturate tool into a normal GEGL filter 2016-01-16 22:38:12 +01:00
Michael Natterer 7b009c6900 app: turn the posterize tool into an ordinary GEGL filter
which means replacing the whole thing by a few lines.
2016-01-16 21:41:00 +01:00
Michael Natterer d7bf9de526 Bug 759104 - Allow coordinates of sample points to be accessed from scripts
Add PDB sample point API similar to how the guide API works. Add core
API similar to the core guide API to make guide and sample point APIs
as similar as possible.
2016-01-04 21:24:44 +01:00
Michael Natterer 96339dd674 po: POTFILES.in it's gimpgeglprocedure.c not gimpgeglprocedure.h 2016-01-04 21:16:13 +01:00
Michael Natterer a0c1d72be6 Bug 759316 - "Recently used" menu not updated with gegl filters
Implement RUN_WITH_LAST_VALS in GimpGeglProcedure, using the first
item in the MRU list of the op's gimp-gegl-config-proxy container.
2016-01-04 17:28:48 +01:00
Michael Natterer 3831f62495 Bug 759316 - "Recently used" menu not updated with gegl filters
Add GimpGeglProceure to keep track of recently used GEGL operations in
the filter history. The new procedure also takes care of running the
op in the GEGL tool, so filters-commands.c is almost empty now.

Change gimp-filter-history.c to find procedures by name instead of
comparing pointers.

The only thing missing now is rerunning a GEGL op with the last
settings (not just showing its UI).
2016-01-04 15:07:30 +01:00
Michael Natterer 5455b8bfd0 app: move some stuff out of app/file/
file-procedure.[ch] is gone and its functions moved to
GimpPlugInManager where they belong (the manager keeps around the
lists of load, save and export procedures).

Utility functions from file-utils.[ch] that have nothing to do with
image files moved to core/gimp-utils.[ch].
2016-01-03 23:38:08 +01:00
Michael Natterer b249de6187 po: add gimpmybrush-load.c to POTFILES.in 2015-12-28 22:06:31 +01:00
Jehan 4b6d4f1fd7 Bug 750546 - Include recently used colors in the Dockable Colors Dialog
New GimpColorHistory widget, replacing the code in GimpColorDialog, and
added to GimpColorEditor to have the color history accessible in the
color dock as well.
Thanks to Thomas Manni for the initial implementation attempt.
2015-12-23 13:25:26 +01:00
Piotr Drąg c6be8c60cc Updated POTFILES.in 2015-12-21 00:00:50 +01:00
Michael Natterer c6586ec6e4 app: rename GimpMybrush to GimpMybrushCore
so GimpMybrush can be used for the actual brush object.
2015-12-20 01:03:56 +01:00
Michael Natterer 0c784559c8 app: improve the layout of GimpBufferSourceBox
and add a label with the selected pickable's name.
2015-11-30 02:46:22 +01:00
Michael Natterer cb8e16aae8 app: move app/batch.[ch] to app/core/gimp-batch.[ch]
There is no reason batch processing should be considered "glue code".
2015-09-30 01:57:33 +02:00
Jehan 2b369f09b9 po: update POTFILES.in for gimpsearchpopup.c. 2015-09-06 20:57:25 +02:00
Jehan df24d3d025 po: update POTFILES.in for gimp(open|save|export)dialog.c. 2015-09-02 20:14:29 +02:00
Michael Natterer b51ee77ec0 app: implement the "Convert to RGB Working Space" import dialog in the core
Add gimp_image_import_color_profile(), a GUI vtable entry
query_profile_policy() and a new dialog which returns the profile
policy and the profile to convert to. Get rid of the wrapper that
calls the lcms plug-in for that dialog, the plug-in is now completely
unused.

This commit doesn't add any new features, it's just the former lcms
plug-in dialog implemented in app/ (except the little fix that it is
now aware of linear vs. gamma images).
2015-08-23 12:59:12 +02:00
Michael Natterer d71cd602a8 app: add color-profile-dialog.c as replacement for the lcms plug-in's GUI
Uncomment and implement the menu items and actions to invoke the
dialog. This new code also does the (alomst) right thing to linear
images, unlike the lcms plug-in.
2015-08-04 22:20:32 +02:00
Michael Natterer 1ca3812396 app: rename gimpimage-profile.[ch] to gimpimage-color-profile.[ch] 2015-08-02 22:18:43 +02:00
Piotr Drąg 9877b50765 Updated POTFILES.in 2015-06-25 18:11:44 +02:00
Michael Natterer 25a696c7f8 Bug 735906 - Transform tools give unexpected results when transforming...
...certain sets of linked layers

Fix this bug for flip, rotate and general transforms (not for move yet):

gimp_item_linked_flip,rotate,transform(): always transform the passed
item too (do not filter it out of the list of items), so these functions
do the entire job of transforming a linked group now. Transforming the
active item separately didn't work (and is not implementable) if both
a layer and its parent layer group were linked.

flip tool, transform tool, layer->transform callbacks: don't call
gimp_item_foo() *and* (if the item is linked) gimp_item_linked_foo().
Instead call gimp_item_linked_foo() if the item is linked, and
gimp_item_foo() otherwise.

This commit also kills the mis-feature of transforming the selected
pixels of the active layer, and then the linked items completely. We
now either only transform the selected area *or* the linked group.
2015-06-25 12:25:41 +02:00
Michael Natterer 4ef3c918a0 pdb, app, libgimp: move the image transform procedures to their own PDB group
because image.pdb is way too large.
2015-05-30 23:55:58 +02:00
Michael Natterer b9773efa5e pdb, app, libgimp: rename the "guides" PDB group to "imageguides"
This only renames files, no code changes.
2015-05-30 15:27:16 +02:00
Michael Natterer b34ed029ac pdb, app, libgimp: rename the "convert" PDB group to "imageconvert"
This only renames files, no code changes.
2015-05-30 15:09:57 +02:00
Michael Natterer f269651cc6 pdb, app, libgimp: rename the "undo" PDB group to "imageundo"
This only renames files, no code changes.
2015-05-30 15:01:50 +02:00
Michael Natterer 072cb068b2 app: add a "detach" button to all on-canvas tool dialogs
which turns them from being automatically attached/detached (depending
on canvas size) into always being a separate window.
2015-05-01 18:00:05 -04:00
Michael Natterer 6730966380 po: add the MyPaint brush files to POTFILES.in 2015-03-30 23:21:08 +02:00
Johannes Matschke 2989bad35a Bug 721009 - new transform tool with freely placeable handles
Add new tool GimpHandleTransformTool which allows to freely place up
to 4 handles on the image, then move any one of them, which transforms
the image so that the remaining handles keep their position.

Did quite some cleanup on the code before pushing --Mitch
2015-03-05 12:36:59 +01:00
Marek Dvoroznak 45b89ae1db po: update POTFILES.in 2015-02-27 20:21:52 +01:00
Michael Natterer 09628cfa4c Bug 739489 - Add palette of recently used colors
Add a generated palette which contains the color history. For now it's
only updated when the color dialog's color history gets updated, but
should be updated whenever a color is chosen in any way.
2014-11-26 23:48:19 +01:00
Michael Natterer 0ac3c56ce8 po: add gimptagcache.c to POTFILES.in 2014-07-28 15:39:52 +02:00