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.
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
- 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
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.
Update the migration function so that it does not apply any restriction
on files where no explicit migration rules are set (for instance binary
files where no proper migration rules by regexp is possible).
This is a generic system based off regular expressions so it can be used
for any configuration file.
Some of the use cases would be for instance to clean out outdated custom
actions (hence remove some loading burden), or rename them (so that
users don't lose their customization if we rename actions), etc.
Wanted to do this for ages but forgot...
(cherry picked from commit 36bb8a625b)
Additionally, set the default undo memory size to 1/8th of the
physical memory.
During development, the GEGL code such have as much exposure to users testing
the development release. There is still the option to switch it off if GEGL is
not adhering to expectations.
when window positions aren't automatically saved.
Save "hide-docks" and "single-window-mode" in sessionrc instead of
gimprc, so a session layout is always saved either completely or not
at all. Also change "last-tip-shown" saving a bit so all three
session-saved gimprc properties are implemented the same.
Add a "hide-docks" config and connect the Windows->Hide docks menu
item to it. Also connect the image window to the config property so it
can hide/show its docks when it needs to.
Also add and use a utility function
gimp_image_window_keep_canvas_pos() to ensure that the image in the
window remains fixed when toggling visiblity of docks. One problem:
When GimpDrawTool is active on the canvas, there is flicker. The end
position is correct though.
Also add regression testing for this fix to test-ui.c
In order to make a clear separation between the core modules and the
UI modules, move the necessary enums from display-enums.h and
widgets-enums.h to config-enums.h and the files
gimpdisplayoptions.[ch] from the display to the config module. This
removes the config -> display dependency.
This change has three main benefits
* It lets us remove includes of display files from the config module
* We don't have to link gimp-console and test-config with a subset of
object files from the display module
* It is reflected in devel-docs/gimp-module-dependencies.svg that the
application is made up of core modules and UI modules and that no
core module depends on any UI module
Add TODO describing why we should get rid of the dependency to
app/display that app/config has: this is the only dependency from the
core to the UI code.
Adds non-UI option to disable the use of often buggy history buffer.
This option defaults to false, since a lot of device/X/GDK combos are broken
and the resulting stroke often actually looks better without history events.
Put (use-event-history yes) in gimprc if you want more events and possibly bugs.
Clean up subsystem linking dependencies by
* Rearranging LDADD entries to better match architectural layers
* Being clear about why we need to pass -u in LDFLAGS some times
* Adding FIXMEs when we have broken dependencies
* Introducing a helper variable so we can share LDADD between
gimp-console and gimp
Adjust code which auto-generates the gimprc man page to:
- fix spelling mistakes.
- remove unintentional indentation.
- remove out of place punctuation.
Remove the transient-docks setting for gimprc. What GIMP tried to
accomplish with this enabled is much better accomplished by the window
manager with the docks set to the 'Utility window' window hint. See
discussion in bug #322577.
There is GtkSettings:gtk-enable-mnemonics: now, so there is no
reason to do the same in GIMP:
* app/config/gimpguiconfig.[ch]: turn "menu-mnemonics" into a dummy.
* app/dialogs/preferences-dialog.c: remove its GUI.
* app/widgets/gimpactionfactory.[ch]
* app/widgets/gimpactiongroup.[ch]: remove infrastructure for disabling
menu mnemonics.
* app/actions/actions.c: bye bye glue code.
Bug 575006 – Add preferences for snapping
* app/config/gimpdisplayconfig.[ch]
* app/config/gimprc-blurbs.h
* app/display/gimpdisplayshell.c: applied part of a patch from
Akkana Peck. This adds gimprc properties for the default values
used for snapping in new image windows. It also changes the
default value for "Snap to Canvas Edges" to TRUE. Let's test
this
for a while...
svn path=/trunk/; revision=28151
2009-02-09 Michael Natterer <mitch@gimp.org>
Bug 569470 – pls, introduce an option 'how many latest presets for
color curves should be saved'
* app/config/gimprc-blurbs.h
* app/config/gimpguiconfig.[ch]: add integer property
"image-map-tool-max-recent" which defaults to ten. Adding a GUI
for this IMO needs discussion, the value of ten seems appropriate.
* app/widgets/gimpsettingsbox.[ch]
(gimp_settings_box_add_current): add "gint max_recent" parameter
and limit the number of recent settings to this number.
* app/tools/gimpimagemaptool.c (gimp_image_map_tool_response):
pass the new settings property to above function.
svn path=/trunk/; revision=28004
2009-01-17 Michael Natterer <mitch@gimp.org>
* all files with a GPL header and all COPYING files:
Change licence to GPLv3 (and to LGPLv3 for libgimp).
Cleaned up some copyright headers and regenerated the parsers in
the ImageMap plugin.
svn path=/trunk/; revision=27913
* app/config/gimpdisplayconfig.c: Allow marching ant speeds as
slow as one step per 10 seconds since for some remote sessions the
minimum of 1 step per second is too fast.
svn path=/trunk/; revision=27899
2008-10-23 Sven Neumann <sven@gimp.org>
* configure.in: removed check for Carbon and added a test for
the
target OS being Darwin instead.
* app/config/gimpguiconfig.c: use PLATFORM_OSX instead of
HAVE_CARBON to determine the default "web-browser" command.
svn path=/trunk/; revision=27370
2008-09-30 Sven Neumann <sven@gimp.org>
* app/config/gimpbaseconfig.c
* app/config/gimpguiconfig.c: reverted parts of commit 25812.
Restores compatibility with old gimprc files.
svn path=/trunk/; revision=27086
2008-08-28 Sven Neumann <sven@gimp.org>
* app/config/gimpguiconfig.[ch]: allow to disable the Wilber
image
shown at the top of the toolbox.
* app/widgets/gimptoolbox.c: honor the new gimprc option.
* app/config/gimprc-blurbs.h: document the old and new toolbox
preferences.
svn path=/trunk/; revision=26800