Commit Graph

93 Commits

Author SHA1 Message Date
Michael Natterer 1671da428c libgimpbase: remove almost all deprecated compat cruft
Keep infrastructure for compat enums around because we will
mose definitely need it again.
2018-05-20 21:06:29 +02:00
Michael Natterer dbd9797a13 Switch to version 2.99/3.0 in a lot of places and depend on GTK+ 3.22
and lots of other newer libraries.
2018-05-20 21:06:26 +02:00
Jehan 070bcb8979 libgimpbase: strengthen other use of g_win32_locale_filename_from_utf8()
Let's make our various usages of this broken function more robust, or at
least return with errors when we can. But this is still seriously
broken. Inside gimp_locale_directory() though, there was nothing I could
do, so I just added a FIXME for at least keeping an eye on it.
2018-04-30 22:23:18 +02:00
Michael Natterer 8294ca9d21 Bug 784502 - Multiple identical path entries for resources cause...
...resources to be loaded and shown multiple times

Change gimp_path_parse() to filter out duplicate paths. This is the
function at the bottom which is used by everything else, so should
generically catch all duplicates.
2017-07-08 12:50:37 +02:00
Jehan cb02326284 libgimpbase: minor tab cleaning. 2017-05-23 18:09:41 +02:00
Jehan 8ac1e407c5 Bug 763202 - Create $XDG_DATA_HOME if it doesn't exist.
This has shown a problem especially on non-Linux platforms since XDG
is more of a Linux standard.
2016-06-13 03:34:26 +02:00
Jehan 0f67e21c98 themes: rename theme "Default" into "System".
Since we have many themes now, this new name better indicates that it
is meant to follow your desktop theme settings.
Also it will likely not remain the default theme.
2016-03-22 16:37:10 +01:00
Michael Natterer f2d581a536 Bug 761170 - Warnings building with clang
Fix a bunch of clang warnings.
2016-02-12 22:49:47 +01:00
Michael Natterer 8005eea835 Remove the "GIMP" from all "Since: GIMP 2.x" API doc comments
because it confuses gtk-doc and breaks some links. Also change the
"Index of new symbols in GIMP 2.x" sections to be what seems to be the
modern standard (looked at the GLib and GTK+ docs), and update some
other stuff.
2015-05-31 21:18:09 +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 78f797a3e4 libgimpbase: add gimp_personal_rc_gfile() 2014-07-01 16:06:51 +02:00
Michael Natterer 6e07c83978 Bug 722939 - asking for an absolute path as gimpdir results in a path...
...relative to the home folder

If an absolute path was given to the --with-gimpdir configure option,
use that path literally.
2014-01-25 19:03:40 +01:00
Michael Natterer 8dcbcfec9e libgimpbase: use g_win32_get_package_installation_directory_of_module()
instead of reimplementing it.
2013-01-27 22:38:35 +01:00
Michael Natterer b7361669e8 libgimpbase: clean up the linux relocation code
by removing all but the toplevel prefix getter from gimpreloc.c It was
1) confusing 2) sometimes trying to subsitute the runtime prefix twice
and 3) sometimes ignoring configure-given directories within the
configure-prefix. This should all be fixed now, and done in one less
place.
2013-01-27 22:26:29 +01:00
Jehan 057d5be970 Bug 688316 - get_special_folder reverted to exact same implementation as glib.
I used SHGetFolderLocation, deprecated, which I thought was a better idea than
SHGetSpecialFolderLocation, deprecated as well, but also unsupported. But it
apparently won't compile on XP. Reverts back to glib exact copy.
2013-01-24 01:09:32 +09:00
Jehan 60e0cfe55c Bug 166643 - gimp support for the XDG basedir spec
New configuration directory scheme, consistent across platforms, and
following standards.

UNIX platforms (except OSX): $XDG_CONFIG_HOME/GIMP/{GIMP_APP_VERSION}
Windows: %APPDATA%/GIMP/{GIMP_APP_VERSION}
OSX: NSApplicationSupportDirectory/GIMP/{GIMP_APP_VERSION}
2012-11-11 17:55:31 +01:00
Jehan 5f26f5402e libgimpbase: move g_get_home_dir() to the scope where it's used
Fixes warning: variable 'home' set but not used [-Wunused-but-set-variable]
2012-11-11 14:16:07 +01:00
Michael Natterer 04fa9e8237 libgimpbase: on OSX move gimpdir to "~/Library/Application Support"
not just ~/Library. This clearly needs some manual migration
instructions for the old wrong location.
2012-10-08 23:20:54 +02:00
Michael Natterer 010b28f39e libgimpbase: add gimp_installation_directory()
which returns the toplevel directory of the running GIMP installation.
2012-05-23 11:49:07 +02:00
Michael Natterer db1dda6e3f libgimpbase: implement relocation for OSX
Using [[NSBundle mainBundle] resourcePath]
2012-05-12 20:56:30 +02:00
Michael Natterer 4805f875ef libgimpbase: it's "GIMP" not "Gimp" 2012-05-12 16:48:05 +02:00
Michael Natterer 9112d68488 Move gimpdir and thumbnails to proper places on OSX
gimpdir goes to ~/Library/Gimp/x.y
thumbnails go to ~/Library/Caches/org.freedesktop.thumbnails

The thumbnail location is not standardized yet, but is the only
location that makes sense. Also fix user install to search old
gimpdirs to migrate in both Library and the classic location.
Remove the obsolete CABON_CFLAGS from all makefiles.
2012-05-12 14:39:44 +02:00
Mukund Sivaraman 1d3ae408b6 libgimpbase: Fix macro name so the dllexports happen on win32 2011-12-04 10:25:27 +05:30
Michael Natterer a1b69f8f9e libgimpbase: fix Win32 import/export of the gimp_foo_version variables
My last "cleanup" of this stuff was obviously completely bogus.
2011-08-29 20:29:27 +02:00
Michael Natterer 2337d44018 libgimpbase: s/LIBGIMP_COMPILATION/GIMP_BASE_COMPILATION/ in gimpenv.*
because the latter is now generically defined for the new include guards.
2011-04-28 19:34:22 +02:00
Michael Natterer fcfb7cf160 Use the new g_[s]list_free_full() instead of foreach() and free() 2011-03-07 17:11:28 +01:00
Michael Natterer 3411c7b63a libgimpbase: move docs from template files to inline comments
and remove all template files. Also fixed all gtk-doc warnings
and fixed/added some docs.
2010-06-29 19:16:51 +02:00
Martin Nordholts 5d9dde1d47 libgimpbase: Support changing GIMP2_DIRECTORY at run-time
In order to be able to change GIMP2_DIRECTORY during run-time, check
for changes to GIMP2_DIRECTORY in gimp_directory().

This is typically useful in test case where you could read from one
GIMP2_DIRECTORY at start-up and then write to a different
GIMP2_DIRECTORY at shut down.

The documentation for this function does not suggest that the value is
cached and thus the old behavior can be considered a bug. It is hard
to imagine why anyone would change GIMP2_DIRECTORY at run-time in a
script for example and *not* expect gimp_directory() to return the
updated gimp_dir.
2010-01-29 18:33:21 +01:00
Michael Natterer d9b5207aa2 Change licence to GPLv3 (and to LGPLv3 for libgimp).
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
2009-01-17 22:28:01 +00:00
William Skaggs 65e7685844 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* libgimpbase/gimpenv.c:  fix editing error in documentation.

svn path=/trunk/; revision=24591
2008-01-10 17:14:06 +00:00
Tor Lillqvist 2159cbbc81 Use g_win32_locale_filename_from_utf8() instead of duplicating its code.
2007-12-12  Tor Lillqvist  <tml@novell.com>

	* libgimpbase/gimpenv.c (gimp_locale_directory) [Win32]: Use
	g_win32_locale_filename_from_utf8() instead of duplicating its
	code.


svn path=/trunk/; revision=24345
2007-12-12 23:35:00 +00:00
Tor Lillqvist e698ec936d Use the location of the libgimpbase DLL and not that of the main
2007-12-12  Tor Lillqvist  <tml@novell.com>

	* libgimpbase/gimpenv.c (gimp_toplevel_directory) [Win32]: Use the
	location of the libgimpbase DLL and not that of the main
	executable (which will be the Python interpreter in the case of
	python-fu) to determine the top-level GIMP installation
	folder. (#502506)

	(gimp_locale_directory) [Win32]: Guard against the possibility
	that we can't get the system codepage form of the locale
	directory, in case the installation folder contains characters not
	in the system codepage. In that case use the short name instead.


svn path=/trunk/; revision=24333
2007-12-12 09:41:13 +00:00
Michael Natterer 36bda892a9 libgimpbase/Makefile.am removed.
2007-10-31  Michael Natterer  <mitch@gimp.org>

	* libgimpbase/Makefile.am
	* libgimpbase/xdg-user-dir.[ch]: removed.

	* libgimpbase/gimpbaseenums.[ch]: deprecate enum GimpUserDirectory.

	* libgimpbase/gimpenv.[ch]: deprecate gimp_user_directory() and make
	the implementation call g_get_user_special_dir().

	* libgimp/Makefile.am: #undef GIMP_DISABLE_DEPRECATED in gimpenums.c

	* app/widgets/gimpfiledialog.c: use g_get_user_special_dir() instead.

	* plug-ins/pygimp/gimpmodule.c: #undef GIMP_DISABLE_DEPRECATED.


svn path=/trunk/; revision=24018
2007-10-31 13:09:46 +00:00
Tor Lillqvist d9c7e99d4b Drop the Win9x code path here, too.
2007-10-27  Tor Lillqvist  <tml@novell.com>

	* libgimpbase/gimpenv.c (gimp_toplevel_directory): Drop the Win9x
	code path here, too.

	* libgimpbase/gimpenv.c (gimp_locale_directory): On Windows return
	the pathname in system codepage and not UTF-8.


svn path=/trunk/; revision=23962
2007-10-26 22:02:13 +00:00
Tor Lillqvist 48fdc9e594 Update doc comments about filename encoding on Windows. It is now always
2007-08-28  Tor Lillqvist  <tml@novell.com>

	* libgimpbase/gimpenv.c: Update doc comments about filename
	encoding on Windows. It is now always UTF-8, like in
	GLib. (#471033) Change "Win32" to "Windows" in doc comments.


svn path=/trunk/; revision=23387
2007-08-28 12:27:59 +00:00
Michael Natterer 0d17856e58 libgimpbase/gimpbaseenums.[ch] changed enum GimpUserDirectory and API of
2007-08-11  Michael Natterer  <mitch@gimp.org>

	* libgimpbase/gimpbaseenums.[ch]
	* libgimpbase/gimpenv.[ch]: changed enum GimpUserDirectory and API
	of gimp_user_directory() so that g_get_user_special_dir() can be
	used instead as soon as we depend on GLib 2.14.

	* tools/pdbgen/enums.pl: regenerated.

	* app/widgets/gimpfiledialog.c
	* plug-ins/pygimp/gimpmodule.c: changed accordingly.


svn path=/trunk/; revision=23212
2007-08-11 17:15:52 +00:00
Mukund Sivaraman c2d1214551 Changed "The GIMP" to "GIMP" everywhere, where it's used as a name.
2007-06-06  Mukund Sivaraman  <muks@mukund.org>

        Changed "The GIMP" to "GIMP" everywhere, where it's used as a name.


svn path=/trunk/; revision=22715
2007-06-06 08:44:52 +00:00
Michael Natterer 3ac7a2866d #include <CoreServices/CoreServices.h>, not "...".
2007-05-14  Michael Natterer  <mitch@gimp.org>

	* libgimpbase/gimpenv.c: #include <CoreServices/CoreServices.h>,
	not "...".


svn path=/trunk/; revision=22489
2007-05-14 17:47:09 +00:00
Michael Natterer 86eac2cca2 added check for OSX' Carbon framework.
2007-05-14  Michael Natterer  <mitch@gimp.org>

	* configure.in: added check for OSX' Carbon framework.

	* libgimpbase/Makefile.am (libgimpbase_2_0_la_LDFLAGS): add
	$(CARBON_LDFLAGS)

	* libgimpbase/gimpenv.c (gimp_user_directory): add Carbon version.

	(find_folder): new Crabon-only utility function.


svn path=/trunk/; revision=22488
2007-05-14 16:31:50 +00:00
Tor Lillqvist e0719dfd82 Undef DATADIR before including <shlobj.h> to avoid collision with DATADIR
2007-05-14  Tor Lillqvist  <tml@novell.com>

	* libgimpbase/gimpenv.c: Undef DATADIR before including <shlobj.h>
	to avoid collision with DATADIR enum in objidl.h. Define
	CSIDL_MYDOCUMENTS, CSIDL_MYMUSIC and CSIDL_MYVIDEO in case missing
	from shlobj.h.

	* libgimpbase/Makefile.am: Link with -lole32 on Win32 for
	CoTaskMemFree().


svn path=/trunk/; revision=22483
2007-05-13 23:12:52 +00:00
Sven Neumann 6c285197d4 app/file/Makefile.am removed here ...
2007-05-13  Sven Neumann  <sven@gimp.org>

	* app/file/Makefile.am
	* app/file/xdg-user-dir.c[ch]: removed here ...

	* libgimpbase/Makefile.am
	* libgimpbase/xdg-user-dir.[ch]: ... and moved to libgimpbase.

	* libgimpbase/gimpbaseenums.[ch]: added GimpUserDirectory enum.

	* libgimpbase/gimpenv.[ch]: added new function to identify 
special
	user folders. Added Win32 specific code and use 
xdg_user_dir_lookup()
	on other platforms.

	* libgimpbase/gimpbase.def: regenerated.


svn path=/trunk/; revision=22475
2007-05-13 16:31:14 +00:00
Michael Natterer 9b9542a610 removed gimp_foo_version variables.
2006-11-28  Michael Natterer  <mitch@gimp.org>

	* libgimp/gimp.[ch]: removed gimp_foo_version variables.

	* libgimpbase/gimpenv.[ch]: added them here.

	* app/sanity.c: added sanity_check_gimp() and abort if the libgimp
	version gimp is compiled with is not exactly the same we encounter
	at runtime.
2006-11-28 11:57:05 +00:00
Sven Neumann c5237bac92 libgimpbase/gimpenv.c (gimp_toplevel_directory) plugged memory leaks.
2005-11-16  Sven Neumann  <sven@gimp.org>

	* libgimpbase/gimpenv.c (gimp_toplevel_directory)
	* app/widgets/gimpcolormapeditor.c (gimp_colormap_editor_draw_cell):
	plugged memory leaks.
2005-11-16 18:07:44 +00:00
Sven Neumann 39e866d9c0 Added support for binary relocation by means of binreloc, largely based on
2005-11-06  Sven Neumann  <sven@gimp.org>

	Added support for binary relocation by means of binreloc, largely
	based on a patch by Hongli Lai:

	* m4macros/Makefile.am
	* m4macros/binreloc.m4: new file providing a macro to check for
	binreloc support.

	* acinclude.m4
	* configure.in: use the macro.

	* libgimpbase/Makefile.am
	* libgimpbase/gimpreloc.[ch]: new files providing binreloc support
	on Linux.

	* libgimpbase/gimpenv.[ch]: use binreloc, provide a function to
	initialize the environment machinery.

	* libgimpbase/gimpbase.def: updated.

	* app/Makefile.am: fiddle with the LDFLAGS for binreloc.

	* app/main.c (main): gimp_env_init(FALSE).

	* libgimp/gimp.c (gimp_main): gimp_env_init(TRUE).
2005-11-06 01:06:41 +00:00
Tor Lillqvist 1e295cb070 Make GIMP work on Win32 even if installed in a path containing random
2005-08-24  Tor Lillqvist  <tml@novell.com>

	Make GIMP work on Win32 even if installed in a path containing
	random non-ASCII characters.

	* libgimpbase/gimpenv.c (gimp_toplevel_directory): [Win32] Use
	wide-char API on NT-based Windowses. Keep the toplevel directory
	name in UTF-8. The rest of GIMP assumes it is UTF-8 anyway, and
	for instance passes file names constructed from it to g_open().

	* app/plug-in/plug-in.c (plug_in_open): On Win32, if compiled
	against GLib < 2.8.2, convert the pathname arguments passed to
	g_spawn_async() to locale charset (system codepage). The
	g_spawn*() functions in GLib < 2.8.2 take system codepage
	arguments and not UTF-8.
2005-08-24 22:02:02 +00:00
Sven Neumann cc2af3dbac use g_ascii_isalnum() instead of isalnum(). Rephrased some comments.
2005-04-04  Sven Neumann  <sven@gimp.org>

	* libgimpbase/gimpenv.c (gimp_directory): use g_ascii_isalnum()
	instead of isalnum(). Rephrased some comments.
2005-04-04 19:23:46 +00:00
Sven Neumann e6285abfc8 libgimpbase/gimpdatafiles.c libgimpbase/gimpenv.c
2005-02-07  Sven Neumann  <sven@gimp.org>

	* libgimpbase/gimpdatafiles.c
	* libgimpbase/gimpenv.c
	* libgimpconfig/gimpconfigwriter.c
	* libgimpconfig/gimpscanner.c
	* libgimpthumb/gimpthumb-utils.c
	* libgimpthumb/gimpthumbnail.c: include gstdio.h.
2005-02-07 01:10:50 +00:00
Sven Neumann 8e1aefac24 libgimpbase/gimpdatafiles.c libgimpbase/gimpenv.c
2005-02-07  Sven Neumann  <sven@gimp.org>

	* libgimpbase/gimpdatafiles.c
	* libgimpbase/gimpenv.c
	* libgimpconfig/gimpconfigwriter.c
	* libgimpconfig/gimpscanner.c
	* libgimpthumb/gimpthumb-utils.c
	* libgimpthumb/gimpthumbnail.c: use gstdio wrappers.
	Unfortunately this causes compiler warnings, see bug #166512.
2005-02-07 00:49:36 +00:00
Sven Neumann f428c0ed08 added GIMP_API_VERSION to the generated gimpversion.h.
2004-12-14  Sven Neumann  <sven@gimp.org>

	* configure.in: added GIMP_API_VERSION to the generated gimpversion.h.

	* libgimpbase/gimpenv.c (gimp_toplevel_directory): use
	GIMP_API_VERSION instead of GIMP_MACRO_VERSION.GIMP_MINOR_VERSION
	when building a path to test the plug-in executable path against.
2004-12-13 23:41:47 +00:00
Tor Lillqvist 18485018b3 Add new function file_utils_filename_to_utf8(), which is to be used when
2004-01-14  Tor Lillqvist  <tml@iki.fi>

	* app/file/file-utils.[ch]: Add new function
	file_utils_filename_to_utf8(), which is to be used when converting
	file names (which are kept in the on-disk encoding) to UTF-8 for
	passing to GTK, or to g_print() etc.

	* app/*/*.c: Call file_utils_filename_to_utf8(). Should fix most
	of the warnings generated by non-UTF8 pathnames. See #130118.

	* libgimpbase/gimpenv.b: Document that gimp_directory() etc return
	strings in the on-disk encoding.

	* libgimpmodule/gimpmodule.c: Convert filenames to UTF-8 (using
	g_filename_to_utf8()) before passing to g_print().
2004-01-14 02:03:37 +00:00