Commit Graph

17997 Commits

Author SHA1 Message Date
Michael Natterer 167262408d Bug 749756 - Unable to pick an ICC profile from disk
Block the config's "notify" signal when setting a NULL filename from a
GimpColorProfileComboBox. The notify callback was only introduced
because GimpColorConfig is now validating the profiles. Validation of
a NULL profile never fails, but the NULL notify from the config
prevented the profile file chooser dialog from appearing.
2015-05-24 18:39:18 +02:00
Michael Natterer 7e443df00e app: fix some includes in actions/ 2015-05-21 11:30:18 +02:00
Michael Natterer 32a7cafc10 app: sync the prefs dialog's profile combos with the color config
so they update when the config changes. Should move this to
propwidgets next.
2015-05-20 12:18:54 +02:00
Michael Natterer 5e591eb232 app, libgimp: add log handlers for all LibGimp* log domains
Looks like they were forgotten so messages from libs went to stdout
instead of being routed through the log handlers, which would show
them in a dialog, or in the error console.
2015-05-20 11:05:45 +02:00
Simon Budig c344a0950e app: add absolute actions to the display rotation 2015-05-17 04:13:43 +02:00
Simon Budig 6ce2a2b3ad app: more actions for display rotation 2015-05-17 04:13:43 +02:00
Thomas Manni 912289dbdd Bug 749341 - Gradient Editor corrupts gradient
Check for valid GimpGradientSegmentType and GimpGradientSegmentColor
enum values before updating gradient segment.
2015-05-14 01:53:46 +02:00
Michael Natterer abef515ef8 app: use gimp_color_config_get_rgb_profile() in gimp_image_get_profile() 2015-05-13 00:42:31 +02:00
Thomas Manni 7d0f63917e Bug 749133 - Named buffer: "Paste selected buffer as a new image" does not work when there is no image
Enable pasting a named buffer when there is no image.
2015-05-08 20:21:50 +02:00
Alexandre Prokoudine 1ac8f750ff Improve Foreground Select tooltips 2015-05-07 15:42:00 +03:00
Adrian Likins c3387fcf67 Bug 748472 - Velocity Parameter on .GIH Brushes don't works
The pipe index for velocity was being multiplied
by 3.0 and rounded, making it larger than the
available rank and always clamped to the last
brush image in velocity ranks.
2015-05-07 09:37:22 +02:00
Michael Natterer 6b0b774302 libgimpwidgets: add gimpwidgetsutils.[ch]
Move some functions from libgimpwidgets/gimpwidgets.[ch]
and from app/widgets/gimpwidgets-utils.[ch]. Newly add
gimp_widget_get_color_profile() which is extracted from
modules/display-filter-lcms.c.
2015-05-06 22:15:30 +02:00
Michael Natterer 6c800db1cc Use the newly added profile utility functions all over the place 2015-05-06 16:38:57 +02:00
Mikael Magnusson 9b30b1d744 gimptransformoptions: Mark strings for translation 2015-05-03 01:24:55 +02:00
Alexandre Prokoudine 3d4d3b793e Fix a user-visible typo 2015-05-02 23:43:06 +03:00
Ville Pätsi c4cd3c6562 app/tools/gimpgegltool.c: blacklist lcms-from-profile 2015-05-02 10:15:41 -04:00
Ville Pätsi d6f916a3c2 app/tools/gimpgegltool.c: blacklist linear-gradient and radial-gradient 2015-05-02 00:23:42 -04:00
Michael Natterer 93414342c3 Bug 748762 - GIMP crashes when a selection is outside a layer boundary...
...and % is selected in rotate Tool

Refuse to start any transform tool (with an error message) if the
selection doesn't intersect with the layer.
2015-05-02 00:00:39 -04: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 e6703aa6b8 plug-ins, pdb: remove the papertile plug-in and add a PDB compat proc 2015-04-30 17:18:01 -04:00
Michael Natterer a110639233 app, menus: add gegl:tile-paper to Filters -> Map 2015-04-30 11:59:49 -04:00
Michael Natterer 2480d69341 Bug 748505 - Don't do nothing and report no error when trying to open a fifo
Remove the check for opening a regular file from
file_open_dialog_response() and call the functions in file-open
unconditionally. This is the actual fix because the check was simply
bailing out with no message or anything when trying to open a
non-regular file, whereas the checks in file-open return proper error
messsages.

In file_open_image(), do the checks for being a regular and readable
file first, so we don't run into reading from other files when trying
to figure the file format.
2015-04-29 19:01:36 -04:00
Michael Natterer bc4cf9918f Bug 673501 - Issue with Overlay
GIMP's OVERLAY mode was identical to SOFTLIGHT. This commit fixes the
issue and introduces a NEW_OVERLAY mode and enum value.

- change gimp:overlay-mode to be a real (svg-ish) overlay mode
- when compositing, map OVERLAY to gimp:softlight-mode
- when compisiting, map NEW_OVERLAY to gimp:overlay-mode
- bump the XCF version when NEW_OVERLAY is used
- map OVERLAY to SOFTLIGHT when loading and saving XCF
- map OVERLAY to softlight in all PDB setters
- map OVERLAY to softlight when deserializing a GimpContext
- change all paint mode menus to show an entry for NEW_OVERLAY
  instead of OVERLAY
- change PSP, PSD and OpenRaster to use NEW_OVERLAY

These changes should (redundantly) make sure that no OVERLAY enum
value is used in the core any longer because it gets mapped to
SOFTLIGHT at all entry points, with the downside of introducing a
setter/getter asymmetry when OVERLAY was set in a PDB api.
2015-04-29 13:32:58 -04:00
Michael Natterer 83be97405c app: don't use a NULL blurb for GimpCoreConfig::mypaint-brush-path-writable 2015-04-26 15:52:15 -04:00
Michael Natterer 9d510d8fff app: make the MyPaint brush path configurable in Prefs -> Folders
Keep the config values around even if compiled without MyPaint brush
support, so we remember the values between sessions of differently
compiled GIMP versions.
2015-04-25 21:14:22 -04:00
Michael Natterer fcf7a0f9f5 app: port MyPaint brush loading to GFileEnumerator 2015-04-22 11:31:31 +02:00
Michael Natterer 957471604f icons, app, libgimpwidgets: use GResource for the compiled-in icons
And a small improvement in cursors/Makefile.am
2015-04-21 21:57:08 +02:00
Michael Natterer 7449316898 app: add gimp_dynamics_is_output_enabled()
and use it to further simplify stuff. Almost no place needs to use a
GimpDynamicsOutput directly now.
2015-04-19 21:58:36 +02:00
Michael Natterer f65bef9c11 app: change the enum values of internal paint modes to 1000, 1001 etc.
and separate them from the PDB-available ones with a comment.
2015-04-19 21:28:29 +02:00
Michael Natterer ca07026642 app: simplify handling of the force output in paint methods 2015-04-19 21:27:48 +02:00
Michael Natterer 4ea6f6dd28 app: minor formatting cleanup in gimpdisplayshell-tool-events.c 2015-04-18 08:40:31 +02:00
Michael Natterer 8fd282dd28 app: fix typo in "cursor-side-top.png" to make that cursor work again 2015-04-15 21:51:45 +02:00
Michael Natterer b4f85a0022 app: link tests to Z_LIBS 2015-04-15 13:13:47 +02:00
Michael Natterer 7c36f94f7f cursors,app,libgimpwidgets: include cursors using GResource
instead of deprecated inline pixbufs. Require on gdk-pixbuf >= 2.30.8.
2015-04-14 22:55:10 +02:00
Mukund Sivaraman 60197c227d windows: Call SetDLLDirectory() in the app
With this patch, there should be no more need to set PATH on Windows
before running GIMP.

This patch was tested by me and drawoc, but there could be some
undetected issues lurking. Revert if any problems arise.
2015-04-13 15:45:58 +05:30
Michael Natterer 02fd23e3b8 app: link tests against LIBMYPAINTGEGL_LIBS 2015-04-13 02:14:28 +02:00
Michael Natterer 109d568b46 app: remove GimpOperationTool's "config" member
The same object is kept around by the GimpImageMapTool parent class.
2015-04-10 14:10:19 +02:00
Michael Natterer 8a95f32473 app: hide the region combo for operations which do not depend on the region
This fixes commit 62cbd3eac3.
2015-04-10 13:20:26 +02:00
Michael Natterer 81fa953ccb Bug 746649 - Duplicate auto-saved presets for color tools
Implement GimpConfigInterface::equal() for the brightness-contrast,
colorize, and threshold config objects, to prevent the parent class'
timestamp being compared by the generic default implementation.
2015-04-09 01:14:41 +02:00
Michael Natterer 744eeb8e1a Bug 686862 - Seek less when saving XCF files
Get rid of most seeking by writing the tile offsets to a table in
memory, instead of directly to the file after each tile. Only seek
back after writing all tiles, in order to save the entire table at
once.
2015-04-06 20:01:39 +02:00
Michael Natterer 6f104ff2ac Bug 747224 - Too easy to accidentially close an image tab
Show the close button only on the active tab, so it's not
accidentially hit when changing between images.
2015-04-03 20:28:57 +02:00
Michael Natterer 81cf8aa601 app: improve usability of the handle transform tool
Reorganize tool modes to be { ADD_TRANSFORM, MOVE, REMOVE }, where
ADD_TRANSFORM is the default and allows to add handles *and* transform
the image in one click-drag. MOVE moves handles without transforming
(shift) and REMOVE removes handles (control). Also improve cursors to
accurately show the result of a click.
2015-04-02 23:31:41 +02:00
Michael Henning 7f67c431b7 Revert "app: force the action search dialog above its parent window..."
That commit causes crashes on Windows and OSX (and likely anything
that isn't X11).

This reverts commit 23de02b8c2.
2015-04-01 13:52:02 -04:00
Jehan 13dd855107 app: indentation fixes. 2015-04-01 00:00:26 +02:00
Michael Natterer aa3cb40600 app: fix warnings in GimpTileHandlerIscissors 2015-03-30 22:51:13 +02:00
Jehan 5217900748 configure/app: libmypaint becomes an optional dependency. 2015-03-30 22:38:35 +02:00
Jehan 5460c414db app: move the MyPaint brush into the playground. 2015-03-30 22:38:35 +02:00
Jehan 77b04551c8 app: clean compilation with external libmypaint.
The work-in-progress was using a source tree of libmypaint embedded
into GIMP tree. This is a cleaning with pkg-config test in configure,
and correct includes.
2015-03-30 22:38:35 +02:00
Michael Natterer 2594c09e41 app: make the mypaint tool brush outline size follow the settings instantly 2015-03-30 22:38:35 +02:00
Michael Natterer 6ea9b5c3cf app: connect the MyPaint brush radius to the tool tip size action 2015-03-30 22:38:35 +02:00
Michael Natterer 5ccea24952 app: let gimppaintoptions-gui.c know about the MyPaint brush tool
and disable stuff accordingly.
2015-03-30 22:38:35 +02:00
Michael Natterer 628593ae5a app: port the MyPaint brush to GimpPaintTool::get_outline() 2015-03-30 22:38:35 +02:00
Michael Natterer dd767bca37 app: use gimp_paint_tool_set_draw_circle() in the MyPaint brush tool 2015-03-30 22:38:34 +02:00
Michael Natterer 9629befec6 app: make a copy of the drawable's buffer in MyPaint native format 2015-03-30 22:38:34 +02:00
Michael Natterer 071ede915a app: first draft of GimpMybrushTool, which uses MyPaint brushes 2015-03-30 22:38:34 +02:00
Michael Natterer 974ce0b6d1 app: GimpHandleTransformTool: remove shortcuts in is_handle_position_valid()
The check should not depend on trans_info[NUM] because the code that
has the division by zero to avoid doesn't either. Closes bug #721009.
2015-03-30 00:12:16 +02:00
Michael Natterer 2e316a342e app: change the image window icon size from 32x32 to 64x64, because it's 2015 2015-03-29 21:50:34 +02:00
Michael Natterer a5edc76c76 app: Iscissors: actually set the state to REMOVE so the right cursor appears 2015-03-28 22:46:49 +01:00
Michael Natterer f2c4b9317f app: Iscissors: allow to remove points with Control-Click 2015-03-28 22:41:43 +01:00
Michael Natterer bd75ed6bf0 app: Iscissors: don't crash when cancelling the initial point 2015-03-28 21:52:26 +01:00
Michael Natterer 4842e2a14f Bug 670031 - Would like to undo intelligent scissors selections in progress
Add undo to the Isissors tool, along with some refactoring:

- Always modify the actual curve, instead of a set of obscure states
  kept around in the tool instance
- On cancel, simply go back to the curve on the undo stack
- Draw handles on top of curve segments
- Draw the currently edited segments and handles in the highlight color
2015-03-28 21:31:03 +01:00
Michael Natterer 565b0af74d app: IScissors: add struct ICurve for the entire curve and its state 2015-03-27 21:37:57 +01:00
Michael Natterer e6fe3ed3b0 app: Iscissors: rename struct ICurve to ISegment 2015-03-27 10:45:28 +01:00
Michael Natterer 36ca4d03f1 app: some cleanup in GimpTransformTool and subclasses
- formatting
- rename some GimpTransformTool members
- add member "does_persoective" and don't include subclasses
- handle drawing cleanup
2015-03-23 23:18:28 +01:00
Michael Natterer 94a872f051 app: some cleanup in the Iscissors tool
Create utility functions to create and free ICurve segments, improves
readability. And some random code cleanup.
2015-03-20 21:18:23 +01:00
Michael Henning ef08e6934b app: Fix gimp_gegl_convolve to not abuse gegl_buffer_iterator
Iterators might only give us a small chunk of the source buffer,
but until now convolve assumed it gave us the entire buffer at once.
This simply switches to gegl_buffer_get so we always have the
entire buffer.

This fixes iscissors.
2015-03-18 02:59:26 -04:00
Michael Natterer d11f83a640 app: resurrect the Iscissors tool to a zombie state
The interaction is fully restored, it's also ported to the new halt()
and commit() API of tools and semi-properly GEGLized: the gradient map
is now constructed on the fly using a GimpTileHandlerValidate
subclass.

The only problem is that it doesn't find any edges in the image and is
totally useless. Pushing anyway to put an end to the bitrot, any help
with debugging is greatly appreciated...
2015-03-17 22:24:56 +01:00
Michael Natterer 8c6e890835 app: rename GimpTileHandlerProjection to GimpTileHandlerValidate
Add virtual function validate() so subclasses can construct arbitrary
buffers on-the-fly. The default implementation blits from the
projection graph like before. Add boolean property "whole-tile" which
allows for switching between always validating entire tiles, and
validating the parts of the tile that are actually dirty.
2015-03-15 22:09:04 +01:00
Mukund Sivaraman 2c80affe4c app: Include commit hash in display shell message 2015-03-12 12:07:45 +05:30
Hartmut Kuhse ef66ea296d app: don't assign variable before checking the validity 2015-03-09 08:28:33 +01:00
Michael Natterer 4dcd48fff2 app: move the handle transform tool to the playground 2015-03-08 17:21:11 +01:00
Michael Natterer 8f4fe89309 app: some more cleanup in the handle transform tool 2015-03-08 17:12:13 +01: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
Michael Natterer 67673e0b09 app: oops, fix last commit 2015-03-05 10:28:50 +01:00
Michael Natterer 8236068982 app: add struct GimpTransformOptionsClass
instead of simply typedefing it to the parent class struct.
2015-03-05 09:57:23 +01:00
Michael Natterer 573f0f69bb plug-ins, pdb: remove the edge plug-in and add a PDB compat procedure 2015-03-03 23:18:53 +01:00
Michael Natterer e44e738267 app: add gegl:edge to Filters -> Edge-Detect 2015-03-03 22:55:39 +01:00
Michael Natterer b27c5b0985 app: move the N-Point Deformation tool to the playground
It has to be enabled via Prefs -> Playground. The menu entry is always
disabled until it leaves the playground, for reasons worth fixing.
2015-03-03 20:26:58 +01:00
Michael Natterer 825d4ab185 app: make sure there is always a tool selected on startup
"No tool on startup" can happen if a tool has disappeared between
sessions, or by broken manual config file editing.
2015-03-03 20:24:40 +01:00
Michael Natterer 3f523dc88b app: some cosmetic cleanup in the cage tool 2015-03-02 01:02:06 +01:00
Michael Natterer c194c5d8c2 app: simplify npd tool motion event handling
by getting rid of the complicated "previous selected points" handling
and simply keeping around the last motion event's coords for
calculating the deltas to move the selected points.
2015-03-01 23:57:10 +01:00
Michael Natterer 06797982ba app: fix crash and cleanup in gimp_n_point_deformation_tool_key_press() 2015-03-01 20:30:17 +01:00
Michael Natterer 87ee494f79 app: npd: no CAPS in property and member names
This commit should also fix setting the tool's options on the GEGL op;
and it gets rid of one more member of the npd options.
2015-03-01 18:21:17 +01:00
Michael Natterer 1d196bbb2e app: require gegl:npd in sanity_check_gegl_ops() 2015-03-01 16:53:36 +01:00
Michael Natterer c3b6b3273c app: lots of cleanup in the N-Point Deformation tool
- Formatting and indentation
- Handle GIMP_TOOL_ACTION_COMMIT
- Fix calls to gimp_tool_control_activate()/halt()
- Move variables to local scopes
- Remove and reorder includes
- Remove redundant members from the tool struct
- Set members to NULL after freeing them
- And whatnot...
2015-03-01 16:49:22 +01:00
Michael Natterer ce29043315 app: some cleanup in GimpCanvasBufferPreview 2015-03-01 00:18:10 +01:00
Marek Dvoroznak 8a56234c9a app: npd-tool: let GEGL NPD operation destroy the model 2015-02-27 20:21:52 +01:00
Marek Dvoroznak 415d7f2781 app: npd-tool: remove option to pause the deformation process 2015-02-27 20:21:52 +01:00
Marek Dvoroznak 129c826d49 app: npd-tool: draw lattice using GimpDrawTool's functions 2015-02-27 20:21:52 +01:00
Marek Dvoroznak f80b126563 app: npd-tool: fix tool's options 2015-02-27 20:21:52 +01:00
Marek Dvoroznak ffc6024ee4 app: npd-tool: show only a preview (hide the image) when the deformation is in progress
and show the image again when the deformation is done
2015-02-27 20:21:52 +01:00
Marek Dvoroznak 10255eddbb app: npd-tool: add option to apply or cancel the deformation 2015-02-27 20:21:52 +01:00
Marek Dvoroznak c4e12fdd7c app: npd-tool: use canvas buffer preview 2015-02-27 20:21:52 +01:00
Marek Dvoroznak 781f0b79f8 app: add canvas buffer preview
It is used by n-point deformation tool to preview a deformation process.
2015-02-27 20:21:52 +01:00
Marek Dvoroznak c1f8784ae3 app: npd-tool: deal with drawable's offset 2015-02-27 20:21:51 +01:00
Marek Dvoroznak b6b1d3c27a app: npd-tool: add option to pause/unpause deformation process 2015-02-27 20:21:51 +01:00
Marek Dvoroznak 8fcf1e0015 app: npd-tool: update tool's start function 2015-02-27 20:21:51 +01:00
Marek Dvoroznak 4af9bd5981 app: npd-tool: deformation runs in its own thread 2015-02-27 20:21:51 +01:00
Marek Dvoroznak 2654fadc6c app: npd-tool: scale radius of a control point according to display shell's scale 2015-02-27 20:21:51 +01:00
Marek Dvoroznak ccc83296e7 app: npd-tool: start and stop the tool more correctly
Don't add a control point after the first click on the drawable,
just start the tool. Don't stop the tool if it hasn't been started.
2015-02-27 20:21:51 +01:00
Marek Dvoroznak a90159a3ef app: npd-tool: remove control points using proper keys
BACKSPACE removes last added control point, DELETE removes selected control points.
2015-02-27 20:21:51 +01:00
Marek Dvoroznak ffecedf223 app: npd-tool: add option to remove selected control points 2015-02-27 20:21:51 +01:00
Marek Dvoroznak 80adf02de8 app: npd-tool: add rubber band selection 2015-02-27 20:21:51 +01:00
Marek Dvoroznak 6ea27ea690 app: npd-tool: add option to show mesh 2015-02-27 20:21:51 +01:00
Marek Dvoroznak b1059d9461 app: npd-tool: add provisional tool's options 2015-02-27 20:21:51 +01:00
Marek Dvoroznak b4ae7c7f61 app: npd-tool: display cursor and cursor modifiers 2015-02-27 20:21:51 +01:00
Marek Dvoroznak fe193f5d57 app: npd-tool: move (multi)selected control points 2015-02-27 20:21:51 +01:00
Marek Dvoroznak 433194ee20 app: npd-tool: remove last added control point using backspace 2015-02-27 20:21:51 +01:00
Marek Dvoroznak 1a0c8d5cb2 NPD tool uses GEGL NPD operation 2015-02-27 20:21:51 +01:00
Marek Dvoroznak f15a7bc71d app: add NPD tool basics 2015-02-27 20:21:51 +01:00
Michael Natterer 9be16e00bc app: make sure name references to GimpData objects are serialized correctly
They were also serialized correctly before, but only because many
GimpData objects were (bogusly) always dirty after loading, which
caused them to always be written do disk on exit. This commit fixes
this problem and updates by-name references explicitly as things are
renamed, instead of relying on bugs.

Add gimp_data_factory_data_clean() which clears the dirty flags from
all a factory's objects. Call the new function on all factories at the
end of gimp_restore(), when all data has been loaded. This might be
total overkill, but ensures that everything is clean in the beginning.

Add new signal GimpContext::prop_name_changed() which is emitted when
any of the context's object properties (brush, gradient etc) is
renamed.

In GimpToolPreset, connect to the new signal and dirty the preset if a
relevant object propery was renamed, making sure the preset is saved
to disk later. Also optmize updates quite a bit by ignoring
notifications on tool option properties that are irrelevant to the
preset.

This might or might not address the issues discussed in bug #739487.
2015-02-26 22:31:58 +01:00
Michael Natterer dcfe0b8925 app: fix uninitialized boolean in gimp_paned_box_drag_drop() 2015-02-24 23:29:39 +01:00
Michael Natterer afc3d4281e app: don't let updating the gradient editor actions dirty the gradient
...at least not most of the time, gradients are beasts. Also some
unrelated minor cleanup.
2015-02-24 20:58:19 +01:00
Michael Natterer f425f539f8 app: fix the brush editor to not dirty every brush set on it
gimp_brush_editor_update_brush(): only set the brush property whose
GtkAdjustment has changed, and only set it if it is different from the
current value. Before, simply setting a brush on the editor would
cause all properties to be written back to the brush unconditionally.

gimp_brush_editor_notify_brush(): unrelated cleanup: use brush
accessors instead of direct struct access, remove an update of the
radius property from the shape updating code that was probably left
over from copy and paste.
2015-02-24 20:23:55 +01:00
Michael Natterer 1af244b39c app: same fix as below in GimpDataFactoryView
gimp_data_factory_view_tree_name_edited(): change the GimpData's name
only if it actually changed.
2015-02-24 19:17:50 +01:00
Michael Natterer 1105e6455e app: change a GimpData's name only if it actually changed
gimp_data_editor_name_activate(): don't set a new name if it's the
same as the old one.
2015-02-24 19:07:39 +01:00
Michael Natterer 29456b96f9 Bug 744127 - Restore tab hover delay during drag-n-drops
Fix the return values of drag_motion() and drag_drop() callbacks.

Commit 7b85cf4de8 started mixing up
the two unrelated concepts

- the widgets has handled the event
- a drop here would do something / did something successfully

into one boolean value being both the function's return value and
a success indicator for the DND operation.

Untangle the concepts again by returning FALSE when
gimp_paned_box_will_handle_drag() returns TRUE (indicating that the
docking DND mechanism will kick in), and always returning TRUE
otherwise; and by using the state "drop was / would be successful"
only for calling gdk_drag_status() and gtk_drag_finish().

This way we make sure that:

- drag_leave() is called reliably again (because we return TRUE if no
  other widget will handle the event)
- drag data is freed reliably again (because we always call
  gtk_drag_finish())
2015-02-19 22:42:18 +01:00
Michael Natterer d3600ab379 app: add File -> Copy Image Location 2015-02-17 13:33:10 +01:00
Michael Natterer b6eba9bd1f app: consistent labels and tooltips for the "Show in File Manager" actions 2015-02-17 13:05:21 +01:00
Michael Natterer 39db88d0a5 app: add much more "Show in file manager" menu items
Brushes, patterns, documents, ...
2015-02-16 20:29:31 +01:00
Michael Natterer 4c7338c097 app: link against -lm, whatever new linker version seems to need is 2015-02-16 19:35:00 +01:00
Michael Natterer e448cc3173 libgimpbase, app: implement File -> Show in File Manager
Add gimp_file_show_in_file_manager() to libgimpbase and a menu item
in app which shows the image's file (if any) in the file manager.

Implemented calling the org.freedesktop.FileManager1 interface
and dropped snippets found on stackoverflow for somebody to
turn into working code for OSX and Windows.
2015-02-16 18:40:26 +01:00
Michael Natterer a75a479d81 app: #include "core/gimpdynamicsoutput.c" in some files in paint/ 2015-02-15 20:05:30 +01:00
Thomas Manni ea5adf4ac0 Bug 692349: Poor placement of "Floating selection" entry in Layers dialog 2015-02-14 18:20:55 +01:00
Thomas Manni 678b61a3ac Bug 742623: Equalize operation fills buffer with nan values in floating point precision
Use histogram bins count to process equalization instead of "256" hard-coded value.
2015-02-10 12:08:04 +01:00
Michael Natterer b856a8ba76 plug-ins, pdb: remove the value-propagate plug-in and add PDB compat procedures 2015-02-08 23:09:06 +01:00
Michael Natterer c2371a2de9 app: implement Dilate and Erode as wrappers around gegl:value-propagate
Add them to the "drawable" actions. Remove menu registration for
the value-propagate plug-in's dilate and erode procedures.
2015-02-08 19:56:45 +01:00
Michael Natterer 431f65a7a8 configure.ac: require babl 0.1.12 2015-02-08 18:30:07 +01:00
Michael Natterer 9d75844b7a app: add a custom GUI for gegl:diffraction-patterns 2015-02-06 19:43:49 +01:00
Michael Natterer a71d64f701 app: add gegl:value-propagate to Filters -> Distorts 2015-02-06 19:26:52 +01:00
Massimo Valentini 09c5fcc32b Bug 742775: Crash when editing text with certain fonts 2015-02-03 18:33:12 +01:00
Joao S. O. Bueno 2746544328 Add new codes for title bar: '%e' for offsets, '%r' for rotation 2015-01-29 11:06:54 -02:00
Michael Natterer ba69862a44 Bug 742159 - Empty gradient in loaded tool preset
gimp_tool_preset_deserialize_property(): initialize all object
properties (brush, pattern, gradient, ...) of the preset's
GimpToolOptions with non-NULL values from the user context,
so loading a broken preset never results in NULL objects being
used.
2015-01-25 16:13:04 +01:00
Michael Natterer 9be37aaa91 plug-ins, pdb: remove the diffraction plug-in and add a PDB compat procedure 2015-01-21 22:51:49 +01:00
Alexandre Prokoudine 931f4581b7 app: add gegl:diffraction-patterns Filters -> Render -> Pattern 2015-01-21 00:47:11 +03:00
Alexia Death ace4234a98 app: make all tools capable of dynamic force respect the options slider 2015-01-19 10:55:56 +02:00
Michael Natterer de8a7972fb app: make gegl:color-enhance insensitive on grayscale drawables 2015-01-13 23:32:56 +01:00
Alexandre Prokoudine fdaed22911 app: add gegl:color-enhance to Color -> Auto 2015-01-13 22:40:13 +03:00
Alexia Death b0dbb2edf2 Bug 741200 - paint options spacing differs from brush spacing
Add "link" buttons to the tool options that are duplicates of brush
properties, so the tool options values can be set to change along with
the current brush.
2015-01-11 23:20:31 +01:00
Kristian Rietveld e2d2bdf65c app: ifdef out functions that are unused
Silences compiler warnings.
2015-01-10 00:03:04 +01:00
Kristian Rietveld cea42c73d8 app: fix implicit enum casting
Silences clang.
2015-01-10 00:02:28 +01:00
Kristian Rietveld 6b6baa6b91 app: fix function signature 2015-01-09 23:47:13 +01:00
Kristian Rietveld dd7d332fb8 Bug 736746 - Alt+Number only switches to lower-numbered windows
Add "action-group" signal to GimpActionGroup, such that we can
properly set the accel group and connect the accelerator on actions
that are created after the initial setup of the menus.
2015-01-09 23:02:24 +01:00
Michael Natterer b87d97ae68 plug-ins, pdb: remove the lens-flare plug-in and add a PDB compat procedure 2015-01-08 23:39:03 +01:00
Alexandre Prokoudine 27ec429b43 app: add gegl:lens-flare to Filters -> Light and Shadow 2014-12-31 13:12:53 +03:00
Michael Natterer bbde1c48bd app: don't use g_free() as key_destroy_func in a GType-keyed hash table
This would have crashed if we ever replaced or removed something in
that hash table. Instead, use g_object_unref() as value_destroy_func
because the table keeps GimpContainers which we would leak if we ever
removed anything from the table.
2014-12-23 01:18:23 +01:00
Michael Natterer 4d5e42ac1a plug-ins, pdb: remove the engrave plug-in and add a PDB compat procedure 2014-12-15 23:54:35 +01:00
Michael Natterer be5e2e6991 app: add gegl:engrave to Filters -> Distorts 2014-12-15 23:42:57 +01:00
Massimo Valentini af64a104c3 Bug 741352: Cage tool crashes pressing Enter after Esc 2014-12-11 18:37:49 +01:00
Thomas Manni 960f54360f gimpoperationtool: add support for aux2 input buffer 2014-12-11 08:28:14 +01:00
Alexia Death 6f582ba527 pdb: make channel-mixer compat function use mono-mixer for monochrome mode
This is preparation of removing monochrome mode from the channel
mixer op, as there is already mono mixer doing the exact same thing
2014-12-11 00:30:23 +02:00
Michael Natterer 221db7ac94 Revert "pdb: make channel mixer compat function use mono-mixer for monochrome case"
This reverts commit fc8a2185a5 because
it only changed the generated file.
2014-12-10 19:29:46 +01:00
Alexia Death fc8a2185a5 pdb: make channel mixer compat function use mono-mixer for monochrome case 2014-12-10 19:43:11 +02:00
Michael Natterer 77b816791a app: fix test sessionrc files to expect the new "Color History" palette
it's now the default palette for --no-data because it's generated
and always exists.
2014-12-07 22:31:00 +01:00
Michael Natterer 47595b5615 app: use GimpFrames in _gimp_prop_gui_new_channel_mixer() 2014-12-07 20:12:29 +01:00
Alexia Death 44be17a8c1 app: Custom gui for channel mixer 2014-12-07 19:57:28 +02:00
Michael Natterer 7313cb559e plug-ins, pdb: remove the illusion plug-in and add a PDB compat procedure 2014-12-04 20:42:15 +01:00
Michael Natterer 41e61719c4 app: add gegl:illusion to Filters -> Map 2014-12-04 20:30:57 +01:00
Michael Natterer 16d2031136 Bug 739369 - Rendering artifacts in the tool in-canvas UI with opacity
Don't disable double buffering in GimpOverlayBox, we don't do it for
the canvas any longer, and removing that code fixes the artifacts.
2014-12-01 21:50:57 +01:00
Michael Natterer 3a6962e0bd app: some cosmetic code cleanup in the color picker tools 2014-12-01 13:49:40 +01:00
E.S. Quinn 2fe1a0f5c1 Bug 677914 - Allow keyboard shortcuts for Rate and Flow on airbrush tool
Implement actions to control airbrush rate and flow.
2014-11-30 16:31:17 +01:00
Jehan 23de02b8c2 app: force the action search dialog above its parent window...
... and set it modal to prevent interaction with other GIMP windows.
2014-11-29 23:54:49 +01:00
Michael Natterer 73e4828556 app: use g_signal_connect_object() to connect the history to the color dialog
It crashed when the history changed after a dialog way destroyed.
2014-11-29 13:48:00 +01:00
Michael Natterer bf6e396f28 app: remove the int return value from gimp_palette_mru_add()
It's not needed any longer and was confusing anyway.
2014-11-29 13:38:12 +01:00
Michael Natterer c0365c04e7 app: connect GimpColorDialog to the history palette's "dirty" signal
instead of having a ton of convoluted legacy code doing the same
manually. Simpler and more obvious code.
2014-11-29 13:33:56 +01:00
Michael Natterer 293e5bde9e Bug 740059 - Text tool changes from "Dynamic" to "Fixed"...
after text box moved using Alt key

In gimp_text_tool_button_release(), handle the "moving" case
separately instead of running into the default else branch that
assumes the user clicked outside and made a new text layer.
2014-11-28 23:57:06 +01:00
Michael Natterer bebdcbe0bf app: change enum GimpColorPickState to { START, UPDATE, END }
It used to be { NEW, UPDATE } but that didn't allow to distinguish the
final END update, which we will soon need for automatic color history
updating. Make sure all places that handle motion events on colors
(pick from canvas, gradient editor) correctly send and handle END
events.
2014-11-28 12:00:53 +01:00
Michael Henning a94aa72d93 app: Use g_return_val_if_fail in gimp_palette_mru_add.
It's a non-void function.
2014-11-27 11:51:28 -05:00
Thomas Manni d36b18d7dc fix typo on commit 5ae6c8b1b3 2014-11-27 15:44:58 +01:00
Thomas Manni 5ae6c8b1b3 Bug 740778 - fix transformtools
Do not enable transform tools in selection mode when no selection exists.
2014-11-27 08:30:56 +01:00
Michael Natterer ac90ba1dc4 app: move color history loading/saving to core/gimp-palettes.c
and remove gui/color-history.[ch] completely.
2014-11-27 01:10:46 +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
Jehan 47a165dc6c app: select the second item on hitting down in action search entry.
Since the first action of the list can be run directly with Enter while
the entry is focused, hitting "Down" means one wants to select the next
item of the list. So let's jump directly to the second item on the first
"Down" key pressed.
2014-11-23 01:40:33 +01:00
Michael Natterer 212b44cf2f plug-ins, pdb: remove the Solid Noise plug-in and add a PDB compat procedure 2014-11-22 21:04:31 +01:00
Michael Natterer 01c79a2661 app: add gegl:noise-solid to Filters -> Render -> Noise 2014-11-22 20:45:40 +01:00
Michael Natterer b49e8098d4 plug-ins, pdb: remove the sinus plug-in and add a PDB compat procedure 2014-11-21 22:11:15 +01:00
Michael Natterer 3a5eaeb3af app: add gegl:sinus to Filters -> Render -> Pattern 2014-11-21 20:49:15 +01:00
Alexia Death c1dc0893bd app: handle preview generation for generated brushes separatley 2014-11-19 23:19:42 +02:00
Alexia Death d27030413d app: make generated brushes draw at given hardness
Old behavior drew brushes at native * given making the new slider
inefective.
2014-11-19 23:07:21 +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 ecaf485f85 app: draw the paint tool fallback crosshair only as last resort
if there was no outline drawn, no line preview, no circle, and no
cursor is shown. All these cases, if drawn, never need a crosshair.
2014-11-19 19:55:22 +01:00
Alexia Death 59364ea76d app: separate fallback cursor from primary indicator cursor
Separate fallback use of a cursor from using a plain size
indicator cursor. Ink tool uses a plain circle as primary
drawing indicator instead of outline, totally different
use than a fallback, when brush is too small to be drawn.

Conflicts:
	app/tools/gimppainttool.c
2014-11-19 00:41:43 +02:00
Michael Natterer c17e8b0412 app: add crosshair drawing to GimpCanvasAnchor and use it in GimpPaintTool
instead of drawing the crosshair cursor manually.
2014-11-18 23:06:43 +01:00
Michael Natterer dd169a6a36 app: extend array in xcf_load_vector() for the new members of GimpCoords 2014-11-18 23:05:47 +01:00
Michael Natterer b94ba871ac plug-ins, pdb: remove the nova plug-in and add a PDB compat procedure 2014-11-18 21:05:32 +01:00
Alexia Death 5442421a34 app: crosshairs type fallback brush cursor
Replaces circular fallback cursor with a less distracting
crosshairs type cursor.
2014-11-18 21:18:29 +02:00
Michael Natterer 6c590ac083 app: add gegl:supernova to Filters -> Lights & Shadows 2014-11-18 20:01:09 +01:00
Michael Natterer a101ed2aef app, pdb: change range of brush-spacing to 0.01..5.0
And only use percent in the GUI.
2014-11-17 23:56:16 +01:00
Michael Natterer 7c2e226566 app: simplify logic in gimp_paint_options_get_brush_mode() 2014-11-17 23:35:10 +01:00
Michael Natterer b4f721cdfb pdb: set value ranges on PDB brush parameters/return values
Also fix a few glitches and spelling.
2014-11-17 23:18:22 +01:00
Michael Natterer 548df1fa32 app: change brush-hardness and brush-force range to [0.0..1.0]
and set a factor of 100 on the GUI.
2014-11-17 23:17:13 +01:00
Michael Natterer c9e75b1fa0 app: some cleanup in the new paint options code 2014-11-17 21:45:01 +01:00
Alexia Death 6247d8978f pdb: missed generated file 2014-11-17 22:25:59 +02:00
Alexia Death 7c00dcd71d app: use variable buffer length for a more stable direction 2014-11-17 21:36:06 +02:00
Alexia Death 2a7dbbd438 app: fix force slider dynamics interacttion to just dynamics when activated 2014-11-17 17:05:54 +02:00
Alexia Death d0862180c4 app: fix force default handling 2014-11-17 15:40:33 +02:00
Alexia Death 60cf10f581 pdb: add pdb calls for hardness and force 2014-11-17 15:29:45 +02:00
Alexia Death 32e545277b app: fixes for force and hardness 2014-11-17 15:24:59 +02:00
Alexia Death 4421070a6a app: add explicit paint options sliders for hardness and force 2014-11-17 13:13:18 +02:00
Alexia Death 6ef522b38b app: fix spacing to copy between paint tools 2014-11-17 00:03:15 +02:00
Alexia Death b161253939 app: refactor all motion managment to use scale factors passed with coords 2014-11-17 00:03:13 +02:00
Alexia Death 9a953a9239 app: locking brush size to zoom 2014-11-17 00:03:10 +02:00
Michael Natterer e78540e581 plug-ins, pdb: remove the video plug-in and add a PDB compat procedure 2014-11-16 22:08:51 +01:00
Michael Natterer 0aaee2a0e0 app: coding style and tooltip fixes 2014-11-15 22:23:14 +01:00
Alexia Death 7f6cdf635a Revert "app: apply a cap on brush scaling"
This reverts commit 5a22fb5799.
2014-11-15 22:25:59 +02:00
Alexia Death 5a22fb5799 app: apply a cap on brush scaling 2014-11-15 21:56:51 +02:00
Alexia Death 0ac4dc5ac1 app: ajust paint options gui refactoring 2014-11-15 11:24:13 +02:00
Alexia Death d205ca2b50 app: refactor paint options spinscale creation into helper function 2014-11-14 23:37:05 +02:00
Alexia Death 6f4fb84645 pdb: pdb definitions for spacing in tool options 2014-11-13 14:49:12 +02:00
Michael Natterer 9f492273cb Revert "app: reorder spacing after size in the new spacing override code/ui"
This reverts commit 492e1ab560,
but keeps the code cleanups, and adds some more.
2014-11-13 00:37:19 +01:00
Michael Natterer 492e1ab560 app: reorder spacing after size in the new spacing override code/ui 2014-11-12 23:55:46 +01:00
Alexia Death 0c6848e79e app: make spacing override part of paint options 2014-11-13 00:08:40 +02:00
Alexia Death 69e09e0775 app: whitespace fix 2014-11-13 00:08:38 +02:00
Michael Natterer a8853801a0 app: add gegl:video-degradation to Filters -> Distorts 2014-11-12 22:20:11 +01:00
Alexia Death 8cfabf7e60 app: fix gegl convolve to actually write back the result when not in alpha weighted mode 2014-11-12 15:27:11 +02:00
Michael Natterer effeefb84a plug-ins, pdb: remove the color-exchange plug-in
and add a PDB compat procedure.
2014-11-10 22:40:58 +01:00
Michael Natterer 488998031e app: add gegl:color-exchange to Colors -> Map 2014-11-10 22:23:54 +01:00
Michael Natterer dfcbc23cac app: implement creating an animation from a warp tool transform
like in the iwarp plug-in. I consider the plug-in obsolete now.
2014-11-08 00:47:39 +01:00
Michael Natterer e629f4c14b app: add GimpOperationScalarMultiply
which multiplies each float in a gegl_format_n(float, n) input
by a factor.
2014-11-07 00:42:58 +01:00
Jehan 56f0dc06fc Win32 has a gdk_test_simulate_key() implementation since GTK+ 2.24.25.
See bug 734879: commits c87c5cd in GTK+ master, and 03c5335 in gtk-2-24
branch.
2014-11-06 16:47:57 +01:00
Michael Natterer 6f3ee00963 Bug 735424 - Save Tag Filter Options
Save the active tag filter in sessionrc.
2014-11-05 21:14:31 +01:00
Michael Natterer 225a0ce27c Bug 567333 - Using tab to toggle docked "utility windows" does not...
...bring focus back to GIMP image window

When showing docks in multi-window-mode, try to set the keyboard focus
back to the active display because it might have been stolen by a dock.
2014-10-29 23:34:41 +01:00
Mikael Magnusson c889e68d8d app: fix gimp_file_is_executable check to not return true for directories 2014-10-29 19:14:56 +01:00
Michael Natterer 9dc13116ae Bug 419256 - Optimize mask buffer size for VBR generated brushes
Change gimp_brush_generated_get_half_size() to get_size() and
calculate its exact size in float. This is really a minor change that
seems to work well.
2014-10-21 12:54:30 +02:00
Michael Natterer 950f753ede Bug 736907 - Compat mode for XCF
- add gimp_image_get,get_xcf_compat_mode()
- add a compat toggle to GimpFileDialog which is shown and sensitive
  only for a save (not export), and if the image structure allows
  to save an old version at all. The button also has a tooltip
  which explains why it is sensitive and what it does
- add "gboolean xcf_compat" to file_save_dialog_save_image()
- in file_save_dialog_save_image(), call image_set_xcf_compat_mode(TRUE)
  only around the call to file_save() and set it to FALSE after saving
- in xcf_save_invoker(), honor the image's XCF compat flag and save an
  RLE-compressed XCF if possible

The above is very convoluted and doesn't pass the "xcf_compat" boolean
directly because we can't change the parameters of gimp-xcf-save, and
because the gimp-xcf-save might be called indirectly.
2014-10-20 22:54:11 +02:00
Michael Henning 8f20b09ecf app: Animate blend tool handles appearing/disappearing 2014-10-18 21:07:18 -04:00
Michael Henning c298485ba4 Revert "app: Refactor GimpBlendTool to not use update methods."
This reverts commit 8a2a9775b9.

Conflicts:
	app/tools/gimpblendtool.c
2014-10-18 19:05:56 -04:00
Michael Natterer f5df5bee93 app: register file-xcf-load and file-xcf-save as GIO-ported
because the reason we didn't (seek errors) is gone now.
2014-10-18 01:17:01 +02:00
Michael Natterer e47ded9420 pdb: fix gimp-file-open and gimp-file-save for GIO-ported file procedures
Pass URIs instead of filenames to the procedures if they are ported to GIO.
2014-10-18 01:14:58 +02:00
Michael Natterer 5a4d865358 Bug 738329 - xcf_seek_pos() can cause unexpected OS behavior
Change XCF saving to never seek past the end of the partially written
file. The only places where we still did this was when skipping the
offset tables for layers, channels, levels and tiles.

Now we write an all-zero offset table first, and then only seek around
in areas of the file that already exist. This also simplifies the code
a bit. Changed comments to make it clear what happens.
2014-10-17 19:12:05 +02:00
Michael Natterer 0d435f11b7 app: allocate the RLE buffer only if we save an RLE-compressed XCF 2014-10-15 23:53:59 +02:00
Michael Natterer 7b6c66159a app: use xcf_write_int32_check_error() for all XCF property writing
Some (copy/paste I guess) places used xcf_write_int32() plus manual
error checking for no reason.
2014-10-15 23:36:06 +02:00
Michael Natterer b9ff01306e app: remove xcf_seek_end(), it's unused, and should not be used any longer 2014-10-15 23:21:34 +02:00
Massimo Valentini 1368f73354 Bug 730211 - Extra zeroes appear in XCF files
Don't use xcf_seek_end() because that seems to be broken on certain
file systems / operating systems / FUSE mounts / whatever. Instead,
seek to explicitly calculated file offsets.

Ported Massimo's patch to master and added comments --Mitch

The same commit in gimp-2-8 is a57e49b1bb
2014-10-15 23:18:37 +02:00
Michael Natterer 5d8824f42e app: move all GimpBrush members to a private struct
Add and use accessors for width, height, x_axis and y_axis.
2014-10-12 01:16:32 +02:00
Michael Natterer 13a626a304 app: add gegl:oilify to Filters -> Artistic 2014-10-11 20:32:31 +02:00
Michael Natterer e4171c5bff plug-ins, PDB: remove edge-sobel and add a PDB compat procedure 2014-10-11 19:41:49 +02:00
Michael Natterer 69f6d7fc8a app: don't ref the tool options GUI in gimp_tool_options_editor_dispose()
They are kept alive by a ref owned by GimpToolOptions, refing them
here made them all being leaked on exit.
2014-10-09 00:35:57 +02:00
Michael Natterer 88e8fbce17 app: remove unclear fix from gimp_tool_options_editor_tool_changed()
It was introduced in e7ade3f8ec. The
g_return_if_fail() is IMO useless, the actual fix (which I kept) was
pulling the call to gimp_tool_options_editor_presets_update() inside
the if().
2014-10-09 00:33:33 +02:00
Michael Natterer ba065a31ec app: don't leak the GFileInfo in file_open_image() and file_save() 2014-10-07 15:23:19 +02:00
Michael Natterer cd505dbd02 app: don't leak "display_file" in gimp_image_format_display_uri() 2014-10-07 15:22:49 +02:00
Michael Natterer e6ce0dda9d app: free the default brush, pattern etc in gimp_finalize()
and print a warning if there are any contexts left in gimp->context_list.
2014-10-06 20:35:24 +02:00
Michael Natterer 2aec36a899 app: don't leak "buffer" in gimp_interpreter_db_add_binfmt_misc() 2014-10-06 20:34:56 +02:00
Michael Natterer aa6024dc93 app: don't leak all results from separate_uline_pattern() in GimpSpinScale 2014-10-06 20:34:22 +02:00
Michael Natterer 230e03ac40 app: don't leak the gimpdir GFile in app_run() 2014-10-06 20:33:47 +02:00
Michael Natterer 849481a861 Clean up code around calls to g_file_replace()
- use G_FILE_CREATE_NONE instead of 0
- don't put "Could not open <file> for writing: <error>" around the
  returned error, the returned message is already verbose
2014-10-04 02:44:54 +02:00
Thomas Manni dbfbc221a5 Bug 736232 - Strange result using transparent layer, blending modes...
...and layer opacity

Use a temporary variable to store intermediate result instead of
writting 2 times to the output buffer, because input and output
buffer might be the same.
2014-10-03 00:17:49 +02:00
Michael Natterer 7ee69c3053 Bug 737583 - Fix static placement of Chinese IME window
Call gtk_im_context_set_cursor_location() whenever we draw the text
tool cursor or start a preedit sequence.
2014-10-03 00:04:24 +02:00
Jehan 56c2e19733 Removes various easy compilation warnings. 2014-09-28 18:18:00 +02:00
Michael Natterer c5ed3e56c9 Bug 735505 - Weird Characters in Zoom Button
On windows, use a normal space instead of U+2009 THIN SPACE for
separating the scale percentage from the percent sign.
2014-09-27 23:48:39 +02:00