Commit Graph

17034 Commits

Author SHA1 Message Date
su-v 1876333531 Bug 724782 - git master fails to build on OS X with gtk-mac-integration
Delete the re-inserted 'ige_mac_menu_add_app_menu_group()' function
call. GIMP has migrated to external gtk-mac-integration for the global
menubar integration - ige_mac_menu* functions are no longer available.
2014-02-21 19:49:38 +01:00
Michael Natterer d739d8ccd7 app: more clean up in the action search dialog 2014-02-19 22:28:33 +01:00
Michael Henning ecf8a15811 app: Do not use strsep() in action-search-dialog.c
It's not available on windows.
2014-02-19 10:58:09 -05:00
Jehan 16282063ef app: add action names as action search tooltips in unstable builds.
This is useful for debugging though current consensus is that the finale
user should not care about the technical name of an action.
I did also some minor code cleanup when setting up the model columns.
2014-02-19 14:25:36 +13:00
Michael Natterer 87df804f8a app: exclude generated submenu actions for plug-ins from the search 2014-02-19 01:24:27 +01:00
Michael Natterer 0d16c328c8 app: use gimp_personal_rc_file() not g_build_filename()
for saving the action history.
2014-02-18 23:31:25 +01:00
Michael Natterer 00348ffc0c app: more action search cleanup
- standard copyright headers
- use gtk_action_is_sensitive() not get_sensitive()
- formatting
2014-02-18 23:24:48 +01:00
Michael Natterer 36f87b5b2b app: clean up the new action search a bit
- order some stuff alphabetically and consistently
- move action from help-actions to dialogs-actions
- fix OS/X menu item fiddling (untested)
2014-02-18 20:10:24 +01:00
Jehan 5903e53d51 Bug 708174 - Improve the original search dialog patch.
Fix various bugs, improve code design and efficiency, change feature
name, update the feature up to our standards (now uses GIMP preferences,
session management, less overwhelming settings...).
Also now action history is tightly tied to GimpAction and logs all
action activation (however it activates, and the show_unavailable
parameter also applies to history).
Search algorithm greatly improved with basic tokenization, better
ordering, filtering, etc.
2014-02-18 19:13:03 +01:00
Srihari fc8f6c127f Bug 708174 - A text based intent driving tool for GIMP (Tito) 2014-02-18 19:13:03 +01:00
Jehan 6af7f47238 Bug 724338: free the GimpImageFile's icon when its contents is updated.
The main consequence was that file icons were stuck to the first
filetype's icon selected in file dialogs.
2014-02-17 12:49:29 +13:00
Michael Natterer 16938bb667 Bug 676522 - Make DND work between images in *one* dockable...
...after in-DND image switching

This was actually two issues:

First, DND data is normally transferred on drop. In this situation the
contents of the source widget change in the middle of DND, so when the
drop happens there is nothing to transfer. Fixed this by attaching the
thing to transfer (image, item, color etc) to the GdkDragContext when
the DND operation starts, and trying to retrieve it on drop. Only when
nothing is attached we fall back to the traditional way of asking the
source widget. This is expected and an obvious fix.

Second, and not so obvious, the source part of the GTK+-internal state
of the DND operation (GtkDragSourceInfo) contains a *reference* (not a
copy) of the source widget's target list. When we change images in the
middle of DND, the source layer view's target list gets modified, and
because GtkDragSourceInfo only references it, the state of the ongoing
DND operation gets destroyed with it. Fixed this by changing
gimp_dnd_data_source_remove() to never change a source widget's target
list but instead create a new list without the removed target and
replace the source widget's list, keeping the ongoing drag's list
unaffected.

Also kept all the GIMP_LOG() stuff I added during debugging there, it
turned out to be quite useful.
2014-02-15 21:29:36 +01:00
Jehan 6208d21979 Bug 622758 - Fix error display for thumbnail creation
Do not stay forever in "Creating Preview..." state during
auto-thumbnailing, and fix error showing when creation fails.
2014-02-14 15:08:45 +13:00
Michael Natterer 3e618320d3 Bug 724295 - multiple svg gradients in a single file not listed correctly
Clear the parsed lis of stops after each gradient, or they will all
look the same.
2014-02-13 22:06:12 +01:00
Daniel Sabo a059c0e7eb app: Fix on canvas widgets ignoring clicks from tablets - bug 614441
Disable extended input events when the cursor moves to a child of
the canvas widget. Otherwise GTK will try and fail to deliver an
extended event to the child widget, and end up sending it to the
canvas instead.
2014-02-10 22:28:08 +01:00
Michael Natterer aabd64e070 Bug 722400 - GIMP segfaults when trying to save a modified, newly created image
If for whatever reason making an uri from the documents folder fails,
return the uri of the home directory.
2014-02-08 10:18:29 +01:00
Michael Natterer 0cc292693d Bug 723649 - Increase/Decrease brush size relative actions don't work
The actions have accidentially been added to the group that changes
the brush's angle not its size.
2014-02-07 21:18:26 +01:00
Michael Natterer 4d6640ff79 Bug 721249 - pdb.gimp_context_set_brush_size() dont't work
Port selection/path stroking to using the PDB-controllable
paint options that live in GimpPDBContext.

Change gimp_item_stroke()'s "use_default_values" boolean which was
introduced at a time where we had no better way by a GimpPaintOptions
parameter. If a non-NULL paint_options is passed (when called from the
PDB), use it for stroking; if NULL is passed, use the actual paint
tool options from the GUI (when called from the menus or the stroke
dialog). In the PDB wrappers, get the right paint options object from
the PDB context associated with the calling plug-in.
2014-02-06 23:26:53 +01:00
Michael Natterer b13c68fda6 Bug 701159 - Wrong name in transform tool dialogs...
...when acting on a path or selection

Factor out the code that checks if an active item exists and if it's
transformable (not locked etc.) and use that function in more places.
This fixes both the wrong dialog labels and the tool running into
broken states when the selection or a path are being transformed.
2014-02-05 00:57:28 +01:00
Michael Natterer 1335bc42c8 app: halt the transform tool when switching layer|selection|path transform 2014-02-04 23:28:59 +01:00
Michael Natterer 651be184b7 Bug 721066 - There is a 2nd, broken, "GEGL Operation" tool in the toolbox
Make the operation tool invisible by default.
2014-02-04 00:19:30 +01:00
Michael Natterer 9fe869236b Bug 721249 - pdb.gimp_context_set_brush_size() dont't work
Don't reset the brush size before each PDB paint stroke.
2014-02-03 23:05:56 +01:00
Michael Natterer 7385e030dd app, libgimp: add increment parameters to gimp_prop_widget_set_factor()
Step and page increments can't be reasonable calculated or guessed
based on the GUI widget's factor, so pass them each time we call
set_factor(). This change reintroduces sane ranges for the levels tool
for != u8 images again.
2014-02-03 22:57:51 +01:00
Michael Natterer 55b299f63d app: tiny formatting fix in drawable-actions.c 2014-02-03 22:33:16 +01:00
Daniel Sabo db52f88308 app: Set Gimp specific TileHandler properties
Remove a dependency on GEGL setting Gimp specific properties
on custom tile handlers.
2014-02-02 02:12:02 -08:00
Michael Natterer fcecafa479 Bug 723213 - colors/levels/auto is broken for high bitdepth images
Port gimp_levels_config_stretch_channel() to histograms with
variable number of bins. Still behaves differently for different
bit depths tho.
2014-01-30 00:19:37 +01:00
Michael Natterer 5054241ca6 Bug 722034 - Incorrect snapping behaviour for scale tool
Always snap to the center of transform tool handles.
2014-01-29 23:40:35 +01:00
Michael Natterer 7fca15c27d Bug 722975 - crash when removing tag from palette while filtering by same tag
Each of the following cleans up tag refcounting, fixes access to
released memory, or other small glitches. Not sure which change
actually fixed the bug:

gimp_data_remove_tag(): remove the found tag, not the passed in tag
(which is to be treated only as a value for comparison).

gimp_tagged_remove_tag(): don't continue the loop after the tag to
remove has been found, there can only be one matching tag, and the
list element has become invalid.

gimptagentry.c: keep references around for the members of
entry->common_tags, and make sure the references are always dropped
properly. In assign_tags(), reference the "add" and "remove" lists for
paranoia and safety reasons.
2014-01-26 21:03:28 +01:00
Michael Natterer a96a0d0bed pdb: add translation context to the newly added PDB functions 2014-01-13 01:27:37 +01:00
Michael Natterer b4462e9e19 app,libgimp,pdb: add a "drawable_color" PDB group
Which contains all the API from the "color" group, but with a
gimp_drawable namespace and with support for high bit depths. The
group is actually a copy of "color" with cruft removed and some API
ported to using float instead of integer API.

Deprecated all "color" functions that already have a ported version in
"drawable_color".

This is unfinished WIP, some functions in "drawable_color" still have
the old API.
2014-01-12 23:12:21 +01:00
Daniel Sabo afc40ffda0 Add automake 1.13+ test outputs to .gitignore 2014-01-10 15:31:34 -08:00
João S. O. Bueno 8c14f3822a Adds generated files after hue-saturation-overlap call. Addresses #634008 2014-01-08 20:20:05 -02:00
Michael Natterer 84c132addc Bug 721553 - License text contains obsolete FSF postal address
These files were forgotten when changing license from GPL2 to GPL3.
2014-01-05 14:25:46 +01:00
Michael Natterer ef85845372 app: add gimp_paint_options_set_default_brush_size()
and use it globally instead of two different methods, one of which was
forgotten to be ported to the new aspect ratio range where 0.0 means
1:1. Add a FIXME comment in paint_tools.pdb where I think setting the
default size is a bug, see #721249.
2014-01-04 15:48:34 +01:00
Michael Natterer 2ea1c6e9a1 plug-ins, pdb: remove the apply-canvas plug-in and add a compat procedure 2014-01-01 19:21:00 +01:00
Michael Natterer ca938c1275 app: add gegl:texturize-canvas to the menus as "Apply Canvas" 2014-01-01 19:07:48 +01:00
Michael Natterer 254b86d4fa Bug 721215 - Preprocessor string concatenation and translation...
...don't work together

gimp_config_file_copy(): build the error format string separately and
in a way that is parsable by xgettext.
2014-01-01 16:32:27 +01:00
Michael Natterer 262d312dfc app: make GimpCurveView's cursor label look pretty for 0..100 ranges
and generally clean up the cursor label code a bit.
2013-12-26 16:33:59 +01:00
Elle Stone f79bff0719 Increase Levels, Curves increments to 10000.
1000 increments is not enough for just barely noticeable
shadow adjustments in linear gamma color spaces.
2013-12-26 15:41:02 +01:00
Shlomi Fish e4260434b6 app: Fix compiliation if gexiv2/gexiv2.h is not in the default include path. 2013-12-24 11:46:16 -05:00
Michael Natterer 81c02e7db1 Bug 720492 - Letter spacing in Text Tool not reset to default
Also reset the "letter-spacing" property in gimp_text_options_reset().
2013-12-20 13:11:53 +01:00
Daniel Sabo dca3559f13 app: Allow painting in Foreground Select's preview mode 2013-12-14 02:49:00 -08:00
Jehan 2707cff890 app: update a comment for translators.
The current comment is technical and not meant for translators, but it
ends up in po file. Move it where it won't be extracted and add a real
comment for translators. Ideally this string should not be extracted by
xgettext, but it won't verify domains.
2013-12-14 10:26:55 +13:00
Daniel Sabo e9d3bf8f19 Improve Foreground Select tool's GUI
* Add a dialog with Preview, Apply, and Reset buttons instead of
  depending only on hidden keyboard shortcuts.
* Change default paint mode to Unknown.
* Disable engine list when there is only one engine available.
* Hide useless Anti-Alias toggle.
* Write to selection instead of the layer mask.
2013-12-13 12:20:19 -08:00
Jehan 735f00b886 Bug 679214 - widget direction set to system locale, not user-set lang
In particular a RTL-localized OS, where the user sets GIMP to a LTR lang
would still have a RTL UI (menus, etc.). And vice versa.
2013-12-11 13:14:09 +13:00
Michael Natterer 00cd9b4e47 app: add some CPPFLAGS in core/Makefile.am to fix the build on OSX 2013-12-11 00:41:24 +01:00
Jehan 8707701bee Bug 720163 - Typo fix for a console gimp-error message
s/configuation/configuration/
2013-12-10 14:48:08 +13:00
Simone Karin Lehmann 513ef7fd5d Use 'About GIMP' in help menu on OS X+Win, correct German translation
Use 'About GIMP' in help menu on OS X, use '_About' on Linux.
Slightly modified by Sven Claussner to use 'About GIMP' on Windows.
Apply German translation patch.
2013-12-09 21:17:29 +01:00
Elle Stone a4821914d3 Bug 720045 - Add black point compensation to Preferences/Color Management
Make black point compensation configurable separately for both proof
and display.
2013-12-09 02:23:31 +01:00
Michael Natterer 6a02f4a19e app: fix formatting in gimpselection.c 2013-12-08 23:43:47 +01:00
Jehan 7ef45be890 app: handle migration on OSX of GIMP 2.8.2's config folder.
GIMP 2.8.2's config was "~/Library/Gimp/x.y", before it got moved to
"~/Library/Application Support/x.y" and after being saved in the home
like other UNIXes. The migration code will now check all 3 places in the
right order on OSX.
Thanks to Simone Karin Lehmann for the original proposition.
2013-12-05 11:48:20 +13:00
Daniel Sabo 845139f910 gegl-tool: Blacklist "display" ops by category 2013-12-03 09:43:00 -08:00
Jehan 4e7bfb4e81 app: a bunch of actions which should be inactive when there is no image 2013-12-03 13:23:31 +13:00
Michael Natterer 0e1978d273 Bug 719634 - Palette editor not working for New Palettes (cannot drop colors)
Allow to drop colors also on the palette view's parent viewport, so
colors can be dropped everywhere inside the scrolled window, also when
the palette view is invisible because it has zero colors. Also allow
dropping of palettes on the viewport to change the editor's active
palette.
2013-12-01 18:04:51 +01:00
Téo Mazars 9e429993c7 app: add gegl:wind to Filters -> Distorts 2013-12-01 12:57:15 +01:00
Michael Henning 95becc7615 Bug 719593 - On clang, brush outline is not displayed
Don't access path_data->len after path_data has been freed.
2013-11-30 16:34:37 -05:00
Michael Natterer 6c73f28b6d Bug 719560 - Build failure with freetype 2.5.1
Apply patch from su-v that fixes the freetype include to
the madness devised and recommended by freetype.
2013-11-29 21:57:46 +01:00
Michael Natterer 2eb74becb8 app: add G_GNUC_PRINTF() to places where the args are a va_list
The trick is to use G_GNUC_PRINTF (n, 0).
2013-11-29 00:33:05 +01:00
Massimo Valentini b81641e25f app: fix two typos 2013-11-28 19:44:45 +01:00
Nils Philippsen 2e6af22686 initialize length to appease cppcheck
The code was technically correct previously: It wrote the uninitialized
length only as a placeholder to overwrite it later on. Yet it's better
to not confuse tools (or people) analysing the code. Besides that having
0 for the length in the file while the payload is being written may aid
debugging e.g. crashes in that code later on.
2013-11-28 17:43:14 +01:00
Michael Natterer 174dee3427 Bug 525705 - skip thumbnailing entirely on files with insufficient...
...read permissions

Apply modified patch from Sven Neumann which implements just that.
2013-11-23 18:05:55 +01:00
Michael Natterer 527d81a181 Bug 701168 - Select | Shrink: A better label for "Shrink from image border"
Change the weird button labels in the shrink and border dialogs to
"Selected areas continue outside the image" and add tooltips.
2013-11-22 22:00:08 +01:00
Michael Natterer 07e6dc1270 Bug 678043 - Single Window Mode does not remember hide docks option
If docks are hidden and single-window-mode is active, emit
"notify::hide-docks" manually on gimp->config in session_restore() so
GimpImageWindow syncs its state at the right time.
2013-11-21 23:00:44 +01:00
Michael Natterer c2eda33c1c app: also copy the metadata in gimp_image_duplicate() 2013-11-21 21:43:28 +01:00
Michael Natterer 4fb7fc918a Bug 704896 - pop ups are annoying when opening multiple files...
...from the command line on some platforms/window managers

file_open_from_command_line(): display the progress in the active
display if there is no empty display. This way the progress appears in
the display that was opened from the previous command line argument.
2013-11-20 23:17:40 +01:00
Michael Natterer 29d95f4c39 pdb: fix gimp_layer_new_from_drawable() PDB wrapper
We must always call gimp_item_convert() even if the source drawable is
in the same image, or we might end up with a layer of wrong pixel
format. This was probably broken for years.
2013-11-19 21:39:13 +01:00
Jehan 4b14ed2e5e file-export* labels and actions renamed.
Follows updated save+export specification.
For renamed actions (file-export and file-export-to respectively to
file-export-as and file-export to mimick file-save*), menurc from
GIMP 2.8 will be correctly migrated.
2013-11-18 09:07:32 +13:00
Michael Natterer 83bd1c86fa app: gimp_brush_load_brush(): add special error for possible old files
The obsolete .gbp format had a 3-byte pattern following a 1-byte
brush, when embedded in a brush pipe, the current code tries to load
that pattern as a brush, and encounters the '3' in the header. Detect
that and suggest to re-save the file because the plug-in still loads
the legacy format.
2013-11-17 01:28:57 +01:00
Téo Mazars c41c2452c5 app,pdb: add a compatibility wrapper for contrast-stretch-hsv
... and remove the old plugin
2013-11-16 16:50:49 +01:00
Téo Mazars 5152e1061c app: add gegl:stretch-contrast-hsv to Colors/Auto/
before removing the old plugin
2013-11-16 16:31:35 +01:00
Michael Natterer 2b7f38f473 app: don't ignore the return value of gimp_rectangle_intersect()
In gimp_drawable_resize(), don't blindly copy the width and height
returned by gimp_rectangle_intersect(), we have to check if the
function actually returned TRUE.
2013-11-16 09:38:29 +01:00
Michael Natterer 3e711fec09 Bug 711476 - Problems using animated GIH brushes
Show the error message from gimp_brush_load_brush() instead of
a generic "File is corrupt". Doesn't fix anything.
2013-11-16 08:51:25 +01:00
Téo Mazars 120e9ccf39 app,pdb: add a compatibility wrapper to contrast-stretch
... and remove the old plug-in
2013-11-15 19:12:56 +01:00
Téo Mazars 5efcc0eb09 app: add gegl:stretch-contrast to Colors/Auto/
before removing the plug-in
2013-11-15 19:12:56 +01:00
Hartmut Kuhse 8dc7ff4504 app: metadata undo: unref instead of free 2013-11-14 21:45:06 +01:00
Téo Mazars 7aeb9da6e3 app: follow gegl:dot removal
gegl:dot is now included in gegl:pixelize
2013-11-11 16:52:10 +01:00
Michael Natterer 98cef1273b Bug 704980 - uclibc - base-utils.c: execinfo.h: No such file or directory
Forgot to apply the same fix to master.
2013-11-10 22:09:54 +01:00
Daniel Sabo e56344294c app: Port to gtk-mac-integration
Replace deprecated Carbon APIs with Cocoa.

Includes code by:
Simone Karin Lehmann
Michael Natterer
Daniel Sabo
2013-11-10 18:22:01 +01:00
Michael Natterer 5ad15cecbe app: fix typo in last commit 2013-11-08 23:33:54 +01:00
Michael Natterer 9057b63c1b app: add the same <Primary>D shortcut in the image close dialog
and change the button label to "_Discard Changes" so it's the same as
in quit.
2013-11-08 23:26:34 +01:00
Michael Natterer 25c4acbd15 app: always use <Primary>D for the shortcut in the quit dialog
(do not take it from the button's mnemonic)
2013-11-08 23:18:28 +01:00
Michael Natterer ca3440aa1e app: make quitting by keyboard shortcuts easier
This mitigates the pain of having to confirm quitting when images have
only be exported but not saved: Introduce a <Primary>D shortcut in the
quit dialog and tell about it using a hint label at the bottom, so
quitting with dirty images is now a matter of pressing <Primary>Q
<Primary>D which is much easier to memorize than <Primary>Q
<Mnemonic>D.
2013-11-08 22:46:10 +01:00
Michael Natterer 65066ff46b app: add gimp_get_primary_accelerator_mask() to gimpwidgets-utils 2013-11-08 10:00:20 +01:00
Michael Natterer beb184e395 app: show file:// uris as filename in the close and quit dialogs
and make the quit dialog's "Exported to foo" string easier to
translate by constructing the markup in a separate step.
2013-11-07 19:14:04 +01:00
Michael Natterer 936780676b app: make the "exported to foo" string in the quit dialog nicer 2013-11-07 12:49:03 +01:00
Nils Philippsen 391de600f1 app: don't ignore return value
...of gtk_widget_translate_coordinates()
2013-11-07 12:28:28 +01:00
Michael Natterer 9fe3da2bf2 app: in the quit dialog, mention if the image has been exported
Install a cell_data_func for the dirty image list's text renderer abd
construct the label manually, using the same string and logic as in
the close dialog.
2013-11-07 11:35:48 +01:00
Michael Natterer 78ad0327da app: add new accessor gimp_container_tree_view_get_name_cell() 2013-11-07 11:32:23 +01:00
Michael Natterer fab7a994fc app: formatting in gimppluginmanager-restore.c 2013-11-06 21:20:00 +01:00
Michael Natterer fbfaa960e1 Bug 705797 - Empty right panel cannot be completely closed
Reduce the minimum width of the "You can drop foo here" label to one
pixel, so it can be hidden as completely as possible while keeping the
label visible.
2013-11-03 16:04:58 +01:00
Michael Natterer 61c2ef40f7 Bug 711329 - Artifacts on crop tool's passepartout when set to "allow growing"
Calculate GimpCanvasPassepartout's extents using a cairo_region_xor()
of the crop rectangle and the image extents, instead of a
cairo_region_subtract(). This fixes the artifacts and has the nice
side effect that the passepartout now colors both the parts of the
image that will be removed *and* the parts of the image that will be
newly added.
2013-11-03 15:21:22 +01:00
Michael Natterer 57d291e130 app: cache the GeglBuffer used for display filters in GimpDisplayShell
so it is not created and destroyed all the time.
2013-11-02 20:56:25 +01:00
Michael Natterer c7051b4caa app: variable renaming in gimpdisplayshell-render.c for better readability 2013-11-02 03:11:44 +01:00
Michael Natterer c3ae7d587d app: port gimp_display_shell_render() to GimpColorDisplay::convert_buffer()
which means applying a series of nops until the display filters are
ported.
2013-11-02 00:48:02 +01:00
Michael Natterer aea161c9a5 app: also include <gegl.h> when we include "libgimpwidgets/gimpwidgets.h" 2013-11-01 22:28:18 +01:00
Michael Schumacher 8db3b4312d Global EXIF -> Exif string change (official spelling) 2013-10-29 22:48:46 +01:00
Michael Natterer 8488248ec6 app: should also register a loader for XCF version 6... 2013-10-28 19:44:01 +01:00
Michael Natterer 95829c01cf app: save XCF version 6 when the image has metadata 2013-10-28 19:40:41 +01:00
Hartmut Kuhse 21bed1e2fb Completely rewrite metadata handling using gexiv2
Based on original patches from Hartmut Kuhse and modified
by Michael Natterer. Changes include:

- remove libexif dependency and add a hard dependency on gexiv2
- typedef GExiv2Metadata to GimpMetadata to avoid having to
  include gexiv2 globally
- add basic GimpMetadata handling functions to libgimpbase
- add image and image file specific metadata functions to libgimp,
  including the exif orientation image rotate dialog
- port plug-ins to use the new APIs
- port file-tiff-save's UI to GtkBuilder
- add new plug-in "metadata" to view the image's metadata
- keep metadata around as GimpImage member in the core
- update the image's metadata on image size, resolution and precision
  changes
- obsolete the old metadata parasites
- migrate the old parasites to new GimpMetadata object on XCF load
2013-10-27 01:02:17 +02:00
Jehan 8267220651 app: the "Tabs Position" menu should only be active in single window mode.
Thanks to Téo for pointing this out.
2013-10-25 14:50:04 +13:00
Jehan 2aabbbd9c7 Bug 662787 - Segfaults when trying to set a large text size
If a font size is too big for cairo or pango to deal with, nicely back
up from rendering and alert the user via an error dialog.
2013-10-24 20:23:51 +13:00
Michael Natterer 6e3495ff69 app: treat an empty ("" not NULL) plug-in proc_install->menu_path as NULL
gimp_plug_in_handle_proc_install(): don't set the new procedure's menu
path nor its menu label if proc_install->menu_path is "", so we don't
run into action and menu creating confusion later. Do it here and not
later so the "" string never enters the system.
2013-10-20 18:28:13 +02:00
Daniel Sabo 71bddaa23c app: Remove deprecated "babl-tolerance" setting 2013-10-19 17:02:04 -07:00
Michael Natterer 33f361f634 app: include gimp-gegl-nodes.h in gimpchannel.c 2013-10-20 00:35:20 +02:00
Michael Natterer d4790a74fb app: always disable CL before GEGL is initialized
This way we only enable if wanted in gimprc, instead of always
enabling, and then disabling again if wanted in gimprc.
2013-10-20 00:34:18 +02:00
Michael Natterer 41c92af49b app: add gimp_gegl_node_set_color() and use it in GimpChannel 2013-10-19 17:31:56 +02:00
Michael Natterer e0c64a817d Bug 701232 - Painting tools still slow when used in Quick Mask mode
Set the format of GimpChannel's gegl:color node depending on whether
the buffer is linear or gamma-corrected.
2013-10-18 01:01:26 +02:00
Jehan fe481275e2 Bug 675554 - fix overriden language environment variables on Windows.
If any of the locale environment variables used for UI language is set
(LANGUAGE, LC_ALL, LC_MESSAGES and LANG), do not let Windows' default UI
language override these.
Language set in GIMP preferences still have higher priority.
2013-10-16 00:33:17 +13:00
Michael Natterer 697572ccc0 app,libgimp*: fix includes to follow our include policy
- don't include <gdk-pixbuf/gdk-pixbuf.h> in headers in app/
- instead, include it in many .c files instead of <glib-object.h>,
  finally acknowledging the fact that app/ depends on gdk-pixbuf almost
  globally
- fix up includes as if libgimpbase depended in GIO, which it soon will
2013-10-15 01:58:39 +02:00
Jehan f4d676c8bb tests: sessionrc-expected* updated with new (tabs-position) settings.
3 tests were failing on a `make distcheck` because of this.
2013-10-13 22:22:21 +13:00
Michael Natterer 96f5254324 Bug 709398 - All layer compositing treated as "Normal" on load or undo
gimp_filter_stack_reorder(): really fix setting of "is-last-node".
2013-10-12 00:07:53 +02:00
Michael Natterer 72227435d5 app: use "on the $side" not "to the $side" in the tab position actions 2013-10-11 23:54:29 +02:00
Michael Natterer 47ec9e2e1a app: handle an index of -1 generically in GimpContainer::reorder()
by turning the -1 into n_children - 1 directly in gimp_container_reorder()
instead of having all subclasses deal with the -1 separately. Remove -1
handling from gimp_list_reorder().

Also, optimize reordering to the same index away without increasing
the function's cost (it was doing a gimp_container_have() before, now
it doees gimp_container_get_child_index(), which both have the same
cost).
2013-10-11 23:09:30 +02:00
Jehan c15f9799c1 app: tabs position saved in sessionrc and only 1 HELP-ID is enough.
The settings was saved both in sessionrc and gimprc!
2013-10-12 04:30:30 +13:00
Jehan b2e40c4ca7 Bug 667169 - Single window mode: allow tabs position setting. 2013-10-11 23:16:29 +13:00
Jehan 6ee77e5635 Bug 709878 - test-session-* skipped when xvfb-run is unavailable.
Also add a GIMP_EXIT_TEST_SKIPPED #define, to return the SKIP exit value
documented by automake.
2013-10-11 21:57:42 +13:00
Téo Mazars f3d40dceec plug-ins,pdb: Add a compatibility wrapper for lens-distortion
... and remove the old plug-in
2013-10-11 08:48:09 +02:00
Téo Mazars 786b21ee10 app,pdb: Sort compatibility wrappers in alphabetical order 2013-10-11 08:03:51 +02:00
Alexandre Prokoudine 7be0e1c747 Fix syntaxis in user-visible messages
Phrases starting with "When enabled" should have a comma.
2013-10-11 06:32:04 +04:00
Michael Natterer 3617e4fde9 app: port all URI comparisons in test-save-and-export.c to g_file_equal()
so they keep succeeding when code gets ported to GFile/GIO which
canonicalizes URIs.
2013-10-09 21:35:23 +02:00
Michael Natterer cd7322fd87 app: port XCF loading/saving to GIO
but for now restrict it to local files (see bug #709432).
Thanks to Jehan and Sven for testing.
2013-10-08 21:22:14 +02:00
Jehan 1351226c80 pdb: gimp-image-new's doc updated.
Add the precision that indexed images must be set a colormap after
creation, otherwise colors won't be right.
2013-10-05 01:47:05 +13:00
Michael Natterer 7e536e4465 app: remove unused variables and some cleanup in sanity_check_gegl_ops() 2013-10-04 14:43:18 +02:00
Jehan 3e082b356c Bug 681709 - GimpContainer continuously scrolls on dnd failure on Windows.
The scroll timeout is looping forever if the drag ends by a failure
event. For instance when hitting the Esc button during scrolling.
2013-10-02 21:18:10 +13:00
Téo Mazars e1fe2e35cb plug-ins,pdb: Add a compatibility wrapper for edge-laplace
... and remove the old plug-in
2013-10-01 17:10:31 +02:00
Jehan cca6772714 Bug 709048 - improvement of gimp-layer-add-mask procedure's doc.
The documentation was missing information about GIMP_ADD_CHANNEL_MASK
mask type, also about possible failure cases, and had an unclosed
bracket typo.
Also make nicer output and list formatting with the new pdb paragraph
feature.
2013-10-01 01:02:49 +13:00
Michael Natterer 462f61794e app: fix drawing of the empty canvas wilber 2013-09-28 18:00:31 +02:00
Jehan 9563a614f2 Bug 708033 - Add paragraph support for the long description in pdbgen
Single newlines in procedure descriptions are still considered normal
spaces. But 2 newlines are transformed into 1 newline. 3 newlines into
2 newlines. And so on.
This allows for a start of nicer output in the procedure browser or C
file comments (and consequently in generated html doc).
2013-09-27 18:39:21 +02:00
Téo Mazars 8e25b5407d plug-ins,pdb: Add a compatibility wrapper for noise-hsv
... and remove the old plugin
2013-09-26 19:31:13 +02:00
Michael Natterer 665e7d9a7d app: some whitespace and indentation in gimppalette-load.c 2013-09-24 22:14:10 +02:00
Marco Ciampa d9db3cc0cf app: only one mnemonic letter per filter 2013-09-23 16:25:01 +02:00
Téo Mazars 26b2b177a9 app: add a mnemonic letter to mosaic 2013-09-23 16:12:45 +02:00
Téo Mazars 5063aada1d plug-ins,pdb: Add compatibility wrappers for mosaic
and remove the old plug-in
2013-09-23 15:52:08 +02:00
Téo Mazars 68feec5dcf app: add gegl:mosaic to Filters -> Distorts 2013-09-21 19:02:10 +02:00
Jehan ac0ac60ca9 Bug 708521 - Getting rid of cage_complete property on GimpCageTool, redundant with tool_state. 2013-09-22 02:28:30 +12:00
Jehan 2294b8da26 Bug 708519 - Fix using Backspace to delete a closed cage tool's points. 2013-09-22 02:17:22 +12:00
Jehan 5e331e1d25 Bug 708517: Assertion on cage tool commit with ENTER + fix cage completion with ENTER.
The key press handler must return TRUE on successfully processing the key,
otherwise the handler ends up being run several times.
2013-09-21 22:42:41 +12:00
Jehan 951393b34e app: disallow a theoretical infinite loop if we run out of ids.
In practice, that's likely impossible to ever happen. This was just
itching my perfectionist self, who enjoys flawless design.
2013-09-20 02:42:40 +12:00
Michael Henning d02dd9f0da app: Rename the pallete loading functions from last commit. 2013-09-17 19:39:12 -04:00
Warren Turkal 198f2514ab app: Refactor palette loaders.
I specifically moved the file opening/closing logic to the common
code. This makes the code easier to understand for me since there
is less duplication. In fact, this commit removes more lines than
it adds.
2013-09-17 17:54:54 -04:00
Michael Natterer 74c54464c3 app: add a label to GimpOperationTool's aux input button
and don't pack it expanding.
2013-09-17 20:06:37 +02:00
Michael Natterer fe7a08e7c7 app: fix warning and indentation in windows_menu_display_reorder() 2013-09-17 12:20:39 +02:00
Michael Natterer 86b13ae8c4 app: handle changing buffers in GimpPickableButton
by emitting "notify::pickable" when the pickable's buffer changes, or
setting the pickable to NULL when its buffer disappears.
2013-09-15 20:03:31 +02:00
Jehan ed1b7f4697 app: minor typo spotted on gimp:grow operation. s/diection/direction/ 2013-09-16 00:43:44 +12:00
Michael Natterer 52fe319fcb app: use a GimpPickableButton for GimpOperationTool's aux input
also WIP and currently looks like shit.
2013-09-15 00:37:42 +02:00
Michael Natterer 4e2868986a app: add new widget GimpPickableButton
Totally WIP and later supposed to give simple access to all sorts of
things that can provide a GeglBuffer via the GimpPickable
interface. Currently only dropping of drawables and images is
supported.
2013-09-15 00:30:14 +02:00
Jehan c7aa623a55 app: clean out a big bunch of leading tabs.
For some unknown reason, most calls to gimp_message_literal() were
indented with tabs.
2013-09-15 04:59:20 +12:00
Michael Natterer 125cf2a2a3 app: use the image instead of the projection for accessing a pickable 2013-09-13 23:29:06 +02:00
Michael Natterer 4d01e21104 app: implement the GimpPickable interface for GimpImage
by delegating to the image's projection.
2013-09-13 23:25:30 +02:00
Jehan 8fe1f65374 pdb: clean out \n from procedure descriptions in previous commit a7f1129.
If we want better output for long description, this will have to be implemented
in the pdbgen.
2013-09-14 02:58:39 +12:00
Jehan a7f11290a4 pdb: update several channel creation function's descriptions.
More informative, detailed description or better wording.
Also adds some newlines for better rendering.
2013-09-14 02:19:46 +12:00
Jehan ee8827d645 pdb: minor glitch in gimp-image-set-active-channel's description.
s/previous active channel or channel/previous active channel or layer/
2013-09-13 22:21:55 +12:00
Michael Natterer 3582625ce0 app: remove the over from the plug_in_plasma() compat wrapper
because gimp_drawable_apply_operation() supports src ops now.
2013-09-13 09:43:19 +02:00
Michael Natterer b5ff4fbab4 app: support src ops in gimp_gegl_apply_operation() 2013-09-13 09:42:53 +02:00
Daniel Sabo 34c50b0fea app, plug-ins: Don't modify iter->length
The new by-row iteration doesn't re-write the length
value for each row. In general it is not safe to modify
the iterator data because the internal logic depends
on the public data, but this specific case is new.
2013-09-12 17:43:54 -07:00
Téo Mazars a481065f2e pdb: Use svg:src in plasma's compatibility wrapper
instead of svg:src-over
2013-09-13 02:12:02 +02:00
Téo Mazars 6fefd5af0c plugins: Add compat wrappers for plasma.c
... and remove the old plugin.
2013-09-13 01:30:29 +02:00
Michael Natterer a694970d1c app: set the filters' "is-last-node" correctly in GimpFilterStack
Call gimp_filter_set_is_last_node() directly from the
GimpContainer::add(), ::remove() and ::reorder() implementations so it
is always called and things always have the correct state. More
precisely, don't call it in functions that are only called if the
stack has a graph, or that are called while the graph is being
created, because it has the side effect of emitting a signal that
might (and in fact did) trigger another recursive creation of the same
graph.
2013-09-12 01:30:47 +02:00
Jehan 338e0ddf8d Bug 707255 - Open preferences when quitting causes assertion failure
When removing the container of a GimpContainerView,
gimp_container_view_remove_container() must be the last call. It was
causing a `GIMP_IS_CONTAINER (container)' failure in subsequent
gimp_container_get_children_type().
For good practice, unsetting a container works now the exact reversed
order as the setting of a container.
2013-09-05 23:41:23 +12:00
Jehan 04a3c65aa1 Bug 707255 - Open preferences when quitting causes assertion failure.
Wrong order of destruction functions were causing critical warnings on
g_signal_handlers_disconnect_by_func() calls.
Also g_object_ref/unref() the container because the tree handler might
hold the last ref to the container, once it's disconnected the container
could be gone.
2013-09-05 23:23:24 +12:00
Mikael Magnusson a9eb0c5120 app: Fix a typo in an unused function
Found by wt on irc.
2013-09-05 13:20:03 +02:00
Michael Natterer a4dd86fcda app: add a read-only "buffer" property to GimpPickableInterface
and implement it in GimpDrawable and GimpProjection. Will need this
later.
2013-09-05 10:37:09 +02:00
Michael Natterer 0d5910aa4b app: add gegl:bump-map to Filters -> Map 2013-09-04 00:16:25 +02:00
Michael Henning 1649ae4eac app: Use the function gegl_has_operation in sanity.c 2013-09-01 11:48:02 -04:00
Nils Philippsen f232a2bb6f app: simplify finding matching extensions
Use g_slist_find_custom(), g_ascii_strcasecmp() rather than iterating
over lists of extensions, then over single characters again and
comparing the output of g_ascii_tolower().
2013-08-30 11:50:57 +02:00
Jehan 4c8399ec0b Bug 701090: reorder the shells too when tabs are reordered.
This allows to not lose the tab order after we come back from multi-window mode.
2013-08-29 18:48:19 +12:00
Jehan 34a197e304 Bug 701090: allowing to reorder shell tabs by drag'n drop in single-window-mode. 2013-08-29 18:36:13 +12:00
Jehan 0df8ae52fb Bug 704065 - Snap default preferences are now settable in the preferences.
Along with this change, the snap preferences have been moved from
GimpDisplayConfig to GimpDisplayOptions, where it makes much more sense.
One of the consequences is that there is no need to duplicate these
values in GimpDisplayShell anymore to differenciate defaults and
current settings.
2013-08-27 23:31:22 +12:00
Michael Natterer b60d361d6c app: add gegl:plasma to Filters -> Render -> Clouds 2013-08-27 08:14:51 +02:00
Michael Natterer 28c9470d5f app: fix warning when a gegl op's aux input combo box gets destroyed
gimp_operation_tool_aux_selected() is called with a NULL drawable
when the combo is destroyed, but at that time the GeglNode we set
the buffer on is already gone. Instead of adding evil if()s,
connect_object() the combo's "select-item" signal to the node
instead of the tool, so it gets disconnected automatically.
2013-08-25 22:41:43 +02:00
Michael Natterer 05646749f5 app: port the mask border operation from u8 to float 2013-08-24 19:48:01 +02:00
Michael Natterer 7ac385caec app: port the mask shrink and grow operations from u8 to float 2013-08-24 19:08:48 +02:00
Michael Natterer b56145626e Bug 706221 - File/Save (As) dialog: add a link to the Export dialog...
...for Non-XCF files.

When the entered extension in save or export is on the other group,
add a link to the warning dialog which allows to jump directly to the
export or save dialog, with the same filename pre-entered.
2013-08-23 20:35:24 +02:00
Massimo Valentini 8ec824f158 app: do not render many tiles twice
removing the area that is going to be rendered from the dirty area
before rendering it, prevents tile-handler-projection to render it
again.

This was the reason why caching showed an improvement also during
the construction of the projection. And it was a regression that
I introduced in a previous commit
2013-08-11 08:49:38 +02:00
Michael Henning cff668f876 app: Fix merging floating selections when undo is diabled. 2013-08-10 13:43:12 -04:00
Michael Henning e7b749d55d app: Ensure the graph for fs filters is always constructed when needed. 2013-08-10 12:37:18 -04:00
Massimo Valentini fe02ef78ca Revert "app: enable caching on layer mode ops"
This reverts commit 35b5b624e9.

it caused rendering artifacts.
2013-08-10 17:44:39 +02:00
Massimo Valentini 5b7953a423 app: do not invalidate always the whole layer 2013-08-10 16:43:08 +02:00
Massimo Valentini 35b5b624e9 app: enable caching on layer mode ops 2013-08-10 16:25:50 +02:00
Massimo Valentini dae8291065 app: do not recurse to invalidate the pyramid 2013-08-10 16:24:16 +02:00
Massimo Valentini 40f41055b9 app: fix the tile pyramid invalidation bug
when toggling the visibility of a single layer image with
alpha channel, zoomed at 50%, the projection wasn't
properly redrawn. It seems there's a GEGL bug exposed
by normal layer mode operation fast path.
2013-08-10 16:22:27 +02:00
Michael Natterer c32c1208b0 app: return a GError when flattening the image failed 2013-08-09 21:35:36 +02:00
Simon Budig 514f22f53d app: fix crash when flattening an image with no visible layers 2013-08-09 21:32:42 +02:00
Michael Natterer 40e7ca7442 app: speed up image rendering by removing expose overhead
measure the time it takes to render projection chunks and continue
rendering until 0.01 seconds have passed. This ways we avoid excessive
expose roundtrips.
2013-08-09 20:20:02 +02:00
Michael Natterer b05ff480fd app: move the work of construction the projection into the chunk renderer
so we can control how much time it takes, and can further optimize it.
This is needed for gtk3 because it should happen between clock ticks,
not in the expose handler, and in gtk2 the old code would have the
unfortunate property to potentially render at very high frame rates,
including all the overhead of exposing.
2013-08-09 19:17:02 +02:00
Téo Mazars 145c9a86d5 plugins: Add compat wrappers for channel-mixer
And remove the old plugin
2013-08-06 21:45:16 +02:00
Michael Natterer e72cf05ccb app: port mtime code in gimp_data_save() to GIO
because it gets its stat() calls right.
2013-08-04 16:51:31 +02:00
Michael Natterer 0289eb8898 Bug 705397 - Layer groups are not exported properly/fully
In gimpgrouplayer.c always gimp_pickable_flush() after
gimp_projectable_structure_changed() so all queued updates are
actually flushed to the projection buffer's invalid area, and are
constructed upon reading. This would have been neccessary before for
group layers, but worked anyway until we changed
gimp_projection_get_buffer() to construct the buffer on idle time
initially in order to make images appear more responsively after
loading.
2013-08-04 14:52:01 +02:00
Téo Mazars 2b58fb4e69 plugins: Add compat wrappers for antialias
And remove the old plugin
2013-08-04 09:09:41 +02:00
Téo Mazars 8bad383a3b app: Add gegl:channel-mixer to Color/Components 2013-08-03 23:30:58 +02:00
Téo Mazars 23bc1b255c app: Add gegl:antialias -> Filters/Enhance 2013-08-03 22:47:58 +02:00
Michael Natterer 55a70729ae app: add some function stubs to GimpOverlayDialog
and move the TODO comments from GimpToolGui to the stubs.
2013-08-03 02:32:02 +02:00
Michael Natterer b44ffdd198 app: add gimp_tile_handler_projection_undo_invalidate()
which removes a rectangle from the handler's dirty region, for cases
where the caller knows that the rectangle has been explicitly
constructed. Only needed by the gtk3-port branch.
2013-08-02 20:19:00 +02:00
Michael Henning 96a090d9b1 app: Enable the gegl op sanity check 2013-07-31 15:26:02 -04:00
Michael Natterer b58e18944a app: don't set a name or any keys on GimpOperationPointLayerMode
it's an abstract base class and cannot be used on its own anyway.
2013-07-31 01:11:28 +02:00
Michael Henning 47cb117fa8 app: Disable the gegl operation sanity check for now
It turns out that this interferes with gimp registering gegl ops
later on.
2013-07-30 11:39:25 -04:00
Michael Henning 7a01ecf3cd app: Populate the list of required ops in sanity.c 2013-07-29 23:18:09 -04:00
Michael Henning 0311bb4188 app: Fix incorrect op names in the compatibility wrappers. 2013-07-29 23:11:34 -04:00
Michael Henning f464695a1b app: Add a sanity check for required gegl ops.
The check is in place, but the list still needs to be populated.
2013-07-29 22:40:10 -04:00
Téo Mazars b0645cf559 plugins: add pdb compat wrappers for tile-seamless
and remove the old plugin
2013-07-28 19:15:25 +02:00