Commit Graph

17997 Commits

Author SHA1 Message Date
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
Michael Natterer 4fdfe10b29 app: move the XCF version logic to gimpimage.[ch]
Add gimp_image_get_xcf_version() and use it when saving XCFs. The
function also returns GIMP versions in integer (comparable) and string
form to be used by GUI logic that allows to save compatible files.
2014-09-27 20:38:43 +02:00
Michael Natterer 1671955655 app: allow to change the affected channels on a running filter
Connect GimpImageMap to the GimpImage's "component-active-changed" signal
and update the channels affected by the filter.
2014-09-25 23:40:05 +02:00
Michael Natterer fe3c0e4020 Bug 732787 - Posterize doesn't work as expected with alpha channel
GimpOperationPosterize: also posterize the alpha channel. Seems like a
no-brainer to me, and is actually useful (see bug). The old behavior
is still available by simply disabling the alpha channel in the
channels dialog.
2014-09-25 23:12:35 +02:00
Michael Natterer 90c967a39f Bug 737008 - Curve color always black
Don't hardcode "black" for the "Value" curve in GimpCurvesTool.
Instead, pass a NULL color to GimpCurveView, which is then interpreted
as the theme's text color (the curve's background is the theme's text
background color). We still hardcode pure red, green and blue for the
other curves.
2014-09-21 12:32:23 +02:00
Michael Natterer e2630ae322 app: argh, fix last fix... 2014-09-17 22:31:43 +02:00
Michael Natterer 16f6b57a5d app: link test-config against Z_LIBS 2014-09-17 12:57:55 +02:00
Michael Natterer 0cceaff828 Bug 721482 - Make language codes relocatable
Manually picked one line of ef0ef921b8
that makes parse_iso_codes() find the iso-codes package in the bundle
on OS X.
2014-09-17 12:47:21 +02:00
Michael Natterer 98dddc3866 app: OS X specific "About" menu label
Manally picked that change from commit 7a75d4df from gimp-2-8.
2014-09-17 12:22:25 +02:00
Michael Natterer 9095f8998d app: link against Z_LIBS 2014-09-17 00:21:41 +02:00
Jehan ce2bb29605 app: do not use g_error() for non-fatale errors...
and g_warning() for programming errors only.
Use g_printerr() for "normal" errors which may happen in a program
lifetime (in particular corrupted XCF file errors are not necessarily
programming errors).
2014-09-17 00:18:15 +02:00
Michael Natterer 7b69b3b60e Bug 733390 - Picking a color should also change the active color...
...in the opened Color Modify window

Connect to the toolbox' context's foreground-changed and
background-changed signals and update the color dialog.
2014-09-16 23:56:50 +02:00
Jehan 128baab2b6 Bug 735026: Enable zlib compression in XCF for GIMP 2.10
XCF file format bumped to version 8 when compressing with zlib.
2014-09-16 23:54:07 +02:00
Jehan b9a9169656 app: update action search to use glib API.
I now normalize with g_str_tokenize_and_fold() which uses standard
Unicode normalization.
I don't use g_str_match_string() directly though, because I want to
run additional checks to order the results by relevance. For instance
I still want actions whose labels starts with the search string to be
at the top, and results with same order as search token before those
with a different order. Then results with match in the tooltip. Finally
I also returns results with partial match in the label, and the rest in
the tooltip, though at the bottom of the list.
Other than that, this returns the same results as g_str_match_string()
with a similar algorithm. In particular now we only match the start of
tokens (a substring in the middle of a token won't match anymore).
I kept the small 2-character trick matching the first letters of the
first 2 words of the label, but I got rid of the fuzzy search (that none
really found ever relevant anyway).
2014-09-16 04:03:43 +02:00
Michael Natterer aec8faf56e configure.ac, docs: use the correct gimpdir in the manual pages
It's now either $XDG_CONFIG_HOME/$gimpdir/2.9 or directly $gimpdir,
depending on whether $gimpdir is a relative or absolute path. Build
the resulting string in configure and put it into the manpage_gimprc
variable so it can be used in the manpage sources.
2014-09-15 23:54:06 +02:00
Jehan d4dba427ac app: do not crash when opening a file with unimplemented compression
Our code was planning zlib and fractal compressions for eons, but would
crash against a file which would be actually using these. It means that
if we implement one of these compressions for 2.10, anyone with GIMP 2.8
(and likely earlier too) would crash when opening a legit file using the
new compressions. That's very bad.
Never use g_error() in non-fatale, expected, situations!
2014-09-15 16:17:13 +02:00
Michael Natterer 0c33499b7b Bug 736437 - Ignore unknown file extensions when loading palettes and gradients
Don't try to load palettes and gradients with unknown extension. We
introduced extensions for these files a *lot* of years ago, so we're
dropping this legacy feature now, everybody can just rename their old
files to have the right extensions (the file formats have not
changed).
2014-09-14 23:29:58 +02:00
Michael Natterer 0bf1f22b01 app: add a "Playground" perfs page and a --show-playground command line option
The page is shown by default in unstable but needs --show-playground
in stable versions. There is nothing yet on that page. Also, the icon
needs improvement...
2014-09-14 01:08:25 +02:00
Michael Henning 8a2a9775b9 app: Refactor GimpBlendTool to not use update methods.
Simply call draw_tool_pause/resume instead.
2014-09-08 17:08:36 -04:00
Michael Natterer 1db5c06f54 Bug 735902 - Drawing a gradient should never produce negative RGB channel values
Use MAX(value, 0.0) on the result of dithering.
2014-09-08 22:49:51 +02:00
Michael Natterer 77482620b4 Bug 736199 - Precision Conversion Dithering doesn't work at >16-bit precision
Don't allow to select dithering != "none" in the convert precision
dialog if the precision has more than 16 bits.
2014-09-07 23:28:48 +02:00
Michael Natterer 14978bfe5d Simplify calls to g_output_stream_write_all()
It returns TRUE only if all bytes were written, so there is no need to
get and check the bytes_written return value.
2014-09-07 20:30:14 +02:00
su-v 97d6629d66 Bug 731446 - Files opened twice via command line
Prevent Cocoa command line argument parsing for files, using
same fix as in Gedit commit 86e7dd7b72fc35c6d9b19a75bbc715aee19304b4
2014-09-06 01:06:43 +02:00
Michael Natterer 53f4dda3b4 Bug 735894 - Option to display the image ICC profile...
...on the title bar and status bar

Implement %o for the title and status format strings, which expands
to the image profile's label.
2014-09-03 22:20:36 +02:00
Mukund Sivaraman 1dc873b860 app: Fix return types 2014-09-03 09:09:00 +05:30
Michael Henning 36d719c986 app: In GimpBlendTool, don't start the draw tool too early.
Also simplify some related logic and rename related functions to
be clearer.
2014-09-02 18:57:14 -04:00
Michael Natterer bda1cd049d Bug 735516 - Crop to content fails
Return a new enum GimpAutoShrink { SHRINK, EMPTY, UNSHRINKABLE } from
gimp_pickable_auto_shrink() because a simply boolean FALSE doesn't
distinguish between "not further shrinkable" and "no content". Change
the callers accordingly add a special "already cropped" message where
we only had a "no content" message before.
2014-08-31 17:41:54 +02:00
Hartmut Kuhse 50463d8d5a app: erroneously dereferencing paint_options
fixing commit 4d6640ff79
2014-08-31 15:27:12 +02:00
Michael Natterer 1326cc5562 pdb: fix uninitialized variable warning in the convmatrix compat wrapper 2014-08-29 21:37:17 +02:00
Michael Natterer de1b416c9f app: forgot a s/const gchar*/GFile*/ in tests.[ch] 2014-08-29 21:36:31 +02:00
Michael Natterer b6eb88dbf9 Bug 735513 - Fuzzy select (magic wand) freeze w/select transparent areas
gimp_pickable_contiguous_region_by_seed(): don't call
find_contiguous_region() with start coords outside the buffer, or it
will run into an infinite loop.
2014-08-27 21:12:46 +02:00
Michael Natterer f38d3a1672 app: don't try to draw a NULL boundary in gimp_region_select_tool_draw() 2014-08-27 21:10:55 +02:00
Mukund Sivaraman a805f8426a app: Use gint64 for dirty_time 2014-08-25 19:55:29 +05:30
Jehan da4247d87c app: interpreter arguments for plugins not returned.
When a plugin file's shebang would start with "/usr/bin/env", the
interpreter's arguments were not returned by resolve_sh_bang().
2014-08-19 15:04:30 +02:00
Jehan 23245d2788 app: set win32 only code between #ifdef G_OS_WIN32
PATHEXT environment variable to determine whether a file is executable
or not is a Windows-only concept.
2014-08-19 02:12:56 +02:00
Jehan cd0b2f61c0 app: g_file_new_for_uri() return object not freed with g_object_unref().
Non-freed GFile object when saving or exporting the first time, i.e.
with default extensions.
2014-08-19 01:38:13 +02:00
Michael Natterer a0a7e713b4 Bug 706275 - "View/Snap to active path" doesn't snap to layer center...
...with the Move tool

Add the missing code to snap to the rectangle's center in
gimp_image_snap_rectangle().
2014-08-17 22:12:44 +02:00
Jehan c4dbb34199 Fix make distcheck.
Use srcdir/abs_srcdir in Makefile.am for dealing with VPATH builds.
2014-08-16 18:59:30 +02:00
Mikael Magnusson 16637900b6 app: initialize variable 2014-08-16 02:54:57 +02:00
Mikael Magnusson 45a9519cec app: Don't do integer division before saving to gdouble, remove stray ; 2014-08-16 02:38:55 +02:00
Mikael Magnusson 541de6ed9c plug-ins, pdb: Add missing break statements to switch 2014-08-16 02:25:49 +02:00
Simon Budig a102690145 remove unnecessary if()
Spotted by Andrey Karpov using static code analysis:
   http://www.viva64.com/en/b/0273/
2014-08-16 00:37:14 +02:00
Simon Budig e0e29889b0 fix bogus use of g_strlcpy
Spotted by Andrey Karpov using static code analysis:
   http://www.viva64.com/en/b/0273/
2014-08-16 00:37:14 +02:00
Simon Budig 56fa168ec3 fix parser for plugin image types
Spotted by Andrey Karpov using static code analysis:
   http://www.viva64.com/en/b/0273/
2014-08-16 00:37:14 +02:00
Simon Budig 40c06ab685 fix some copy&paste errors
Spotted by Andrey Karpov using static code analysis:
   http://www.viva64.com/en/b/0273/
2014-08-16 00:37:13 +02:00
Simon Budig 99abc566d4 fix some precedence errors
Spotted by Andrey Karpov using static code analysis:
   http://www.viva64.com/en/b/0273/
2014-08-16 00:37:13 +02:00
Simon Budig 9a8d2f577e fix some pieces of nonsensical code
Spotted by Andrey Karpov using static code analysis:
   http://www.viva64.com/en/b/0273/
2014-08-16 00:37:13 +02:00
Simon Budig 9a245989c0 fix bogus checks against unsigned variables.
Spotted by Andrey Karpov using static code analysis:
   http://www.viva64.com/en/b/0273/
2014-08-16 00:37:13 +02:00
Jehan a83ba26f42 tests: make warnings non fatal for tests on win32.
g_test_init() makes any warning message fatale by default. While it
makes sense for the main OS that we build on (Linux), I believe that
our tests on Windows are more useful when they finish, even with some
warnings, than stopping because some stupid font warning would occur
(case I encountered, did not know the solution of, and is not really
relevant to the rest of the test).
2014-08-15 21:26:26 +00:00
Jehan 2b64efc11d tests: gimp_test_utils_synthesize_key_event() not working for win32.
gdk_test_simulate_key() has currently no win32 implementation.
Add this implementation in our code until a patch to GTK+ for this is
merged. This fixes 2 `make check` tests for win32.
2014-08-15 21:23:02 +00:00
Jehan b1fc539f6c tests: build the test icon theme for all platforms.
In particular, we were not building these for win32, which has no
symbolic link concept. So let's use $(LN_S) defined by autoconf for this
purpose, as it will copy files for platforms without ln support.
Moreover this way, we don't create one such folder for each and every
test run and fill up the tmp directory with countless directories, that
we never clean up.
On Win32, this fixes 3 tests which were failing because of the missing
icons.
2014-08-15 21:21:41 +00:00
Michael Natterer b663b8058f Bug 734705 - v2.9.1 crashes when scaling an image in indexed colors mode
Use gimp_image_get_format() instead of gimp_babl_format() in
gimp_drawable_real_estimate_memsize() because the latter can't handle
indexed formats and returns NULL.
2014-08-15 09:23:02 +02:00
Jehan b8aabcac5c Do not use g_io_channel_unix_new() for the win32 platforms.
It is advised to use the more accurate g_io_channel_win32_new_fd() or
g_io_channel_win32_new_socket() because GLib can't differentiate between
file descriptors and sockets on Windows, which outputs a warning when
there is ambiguity.
2014-08-12 23:56:10 +00:00
Michael Natterer 4d15f219a7 app: don't use GLIB_CHECK_VERSION (2, 39, 90) for win32 argv parsing
Instead, use the new APIs unconditionally.
2014-08-12 15:37:46 +02:00
Michael Natterer dae366bb6e configure.ac, *: require GLib 2.40.0
Remove gimp_output_stream_[v]printf() and use the new functions from
GLib instead. Use memmove() instead of the deprecated g_memmove().
2014-08-12 15:30:19 +02:00
Michael Natterer 980ba7f85a app: move memsize functions into their own files gimp-memsize.[ch] 2014-08-12 13:57:57 +02:00
Michael Natterer cafc316a47 app: port gimp_interpreter_db_resolve() to GIO 2014-08-12 13:15:44 +02:00
Michael Natterer 26f45822e7 app: port gimpconfig-dump.c to GIO 2014-08-12 12:59:12 +02:00
Jehan 66ea9e7ebd app: double free when plugin fails to execute. 2014-08-10 01:26:09 +00:00
Michael Henning 59dfa2e6e6 app: If the user makes a new gradient, commit the old one 2014-08-04 17:20:58 -04:00
Michael Henning 41e2a01976 app: Tweak the blend tool UI for shapebursts 2014-08-04 12:32:45 -04:00
Michael Natterer 9d54a94f53 app: port plug-in loading to GFileEnumerator 2014-08-04 02:39:52 +02:00
Michael Natterer 9bb3aee163 app: add gimp_file_is_executable() to gimp-utils.[ch]
including PATHEXT magic for windows.
2014-08-04 02:38:24 +02:00
Michael Natterer 50568ae258 app: add gegl:distance-transform to Filters->Generic as "Distance Map" 2014-08-03 21:34:32 +02:00
Michael Natterer 6209b1f571 libgimpbase, app: move gimp_file_has_extension() to libgimpbase
and use it in GimpModuleDB.
2014-08-03 20:47:37 +02:00
Simon Budig 8af3fec689 app: use the new distance-transform operation in the blend tool 2014-08-03 20:12:01 +02:00
Michael Natterer a0b9e5c702 libgimpmodule, app: port GimpModuleDB to GFileEnumerator
this implies passing the UTF-8 encoded raw module path from gimprc to
gimp_module_db_load() and gimp_module_db_refresh(), which is strictly
speaking an API break, but I seriously doubt that anyone but GIMP is
actually using libgimpmodule.
2014-08-03 18:30:02 +02:00
Michael Natterer da26597467 app: add gimp_file_has_extension() and use it in GimpDataFactory 2014-08-02 23:29:00 +02:00
Michael Natterer 81aaa1decd app: use g_str_has_suffix() in file_utils_file_get_ext()
g_strrstr() is wrong for checking for suffixes.
2014-08-02 15:55:32 +02:00
Michael Natterer ab2afa0c1f app: don't check for a writable dir for each loaded GimpData
Instead, do the check once for each element of the data path, and pass
the result to the load functions.
2014-08-02 15:09:33 +02:00
Michael Natterer 2b1735f784 app: move gimp_file_compare() to gimp-utils.[ch]
It's a GCompareFunc to be used for finding GFiles in lists.
2014-08-02 15:07:26 +02:00
Michael Natterer 6821eb298c app: port GimpDataFactory file loading to GFileEnumerator
Also slightly change the semantics of gimp_data_set_folder_tags()
to be less complicated.
2014-08-01 20:30:45 +02:00
Jehan 2567a2d1fd app: typo s/fomat/format/ 2014-08-01 18:38:25 +00:00
Michael Natterer 7d7180dcaa app: s/uri/file/ in a comment in file-open.c 2014-07-31 12:22:27 +02:00
Michael Natterer ebdb803c33 app: port GimpAppleEventHandler to GFile too, it made opening files crash 2014-07-30 21:34:27 +02:00
Michael Natterer c077fb8dad app: add --verbose output when parsing and writing the action history 2014-07-29 18:13:57 +02:00
Michael Natterer 1155b9c7a7 app: more GFile stuff in gimp_get_temp_file() 2014-07-29 16:32:29 +02:00
Michael Natterer 85668c8e69 app: filename -> GFile in parse_iso_codes() 2014-07-29 16:32:29 +02:00
Michael Natterer 035c6717e7 app: port menus_clear() to GIO 2014-07-29 14:53:27 +02:00
Michael Natterer 9751d04b47 app: more filename -> GFile in gimp-fonts.c 2014-07-29 14:40:25 +02:00
Michael Natterer e84ef0d7cc app: use GIO to find the locally installed user manual 2014-07-29 13:04:16 +02:00
Michael Natterer 969e2b60f1 app: port about_dialog_load_logo() to GIO 2014-07-29 12:48:57 +02:00
Michael Natterer 0856382713 app: use gimp_directory_file() in gimp_plug_in_manager_get_pluginrc() 2014-07-29 12:37:08 +02:00
Michael Natterer 50ca9068da app: more cleanup in the action history code, mostly general consistency 2014-07-29 12:28:18 +02:00
Michael Natterer 7149a5ac6c app: use g_file_query_file_type() to check for the GIMP directory 2014-07-29 12:04:17 +02:00
Michael Natterer b200345a98 app: change GimpImageMapTool::get_settings_ui()'s "default_folder" to GFile 2014-07-29 11:56:49 +02:00
Michael Natterer 9a90bfa26a app: more gimp_directory() -> gimp_directory_file() 2014-07-29 11:56:49 +02:00
Jehan fccf7174ab app: typo s/Premission/Permission/ 2014-07-28 19:03:39 +00:00
Michael Natterer b81f46185e app: port the action history to GimpConfigWriter, GimpScanner and to GIO
which means the file format has changed, but it will silently ignore
the parse error when encountering the old format.
2014-07-28 16:44:44 +02:00
Michael Natterer 3e85deefb5 app: manage the system and user gimprc paths as GFiles 2014-07-28 15:03:06 +02:00
Michael Natterer 6b6ba7b456 app: port gimptagcache.c to GIO 2014-07-28 12:22:52 +02:00
Michael Natterer afc469446f app: port gimp_tags_user_install() to GIO 2014-07-28 12:12:21 +02:00
Michael Natterer 57cecb54fb app: some serious cleanup in gimpaction-history.c, still a lot to do 2014-07-28 11:22:20 +02:00
Michael Natterer 1c7a2db9e4 app: use gimp_directory_file() in session.c 2014-07-28 11:05:56 +02:00
Michael Natterer b03d69dd40 libgimpbase, app: add variants of gimp_$foo_directory() which return GFiles
gimp_directory_file(), gimp_data_directory_file() etc. The new
functions take a variable list of path elements to the file,
the list has to be NULL-terminated. Remove the newly added
gimp_personal_rc_gfile(). Start using the new functions in app/.
2014-07-28 02:04:01 +02:00
Michael Natterer b328bd3087 app: don't leak a GFileInfo in gimp_data_set_file() 2014-07-26 16:52:56 +02:00
Michael Natterer 58c3b7661f app: port gimp_data_create_filename() to GFile
implies also porting gimp_data_factory_get_save_dir().
2014-07-26 16:37:30 +02:00
Michael Natterer 1aa5a85d2a app: don't drop the last reference to "file" in gimp_data_set_file(), argh
also improve precondition check in gimp_data_save().
2014-07-26 16:33:40 +02:00
Michael Natterer dc347c3039 app: fix opening multiple files in file_open_dialog_response()
Don't loop infinitely around the list's second file.
2014-07-26 15:24:52 +02:00
Michael Natterer e618a2866c app: simplify handling of a GimpDataFactory's writable_path
Simply keep it around in GimpDataLoadContext during loading, instead
of g_object_set/getting it on the factory.
2014-07-26 14:21:39 +02:00
Michael Natterer 583be797a1 app: use gimp_config_path_expand_to_files() for the font path 2014-07-24 21:23:11 +02:00