Commit Graph

243 Commits

Author SHA1 Message Date
Oleksii Samorukov 12bc46ce14 Set required variables if is running from Apple application bundle
(cherry picked with small changes from commit 
e13e7fd8b6)
2019-11-03 15:07:46 +01:00
Michael Natterer 11ce199cea app: stop canonicalizing procedure names
on behalf of plug-in authors who have no style or can't type.

Instead, simply reject non-canonical procedure names and remove all
code that keeps aroud the original non-canonical shit just to pass it
back to the plug-in.
2019-08-18 01:55:47 +02:00
Ell 853d91b8e4 app: initialize GimpBacktrace earlier on
Initialize GimpBacktrace earlier on in the startup process, so that
the Windows backend installs the thread-name exception handler
early enough to catch threads created before app_run() (in
particular, the GEGL worker threads).
2019-05-19 10:49:57 -04:00
Jehan d5b0f71b4c app: open the Windows console a bit earlier.
If we enable the console on Windows, we might as well open it as fast as
possible, since its purpose is debugging.

(cherry picked from commit c9d7618056)
2018-08-15 14:34:26 +02:00
Jehan ddeff31476 app, configure: add a --enable-win32-debug-console build option.
Debugging stable versions under Windows is a pain because we don't have
access to the standard outputs. The debug console is indeed only built
on unstable builds. Let's make the debug console a separate build option
to allow building stable versions for debug (obviously the default
behavior when not configuring, is same as before, i.e. stable without
console and unstable with console).

(cherry picked from commit 1a28878943)
2018-08-12 22:54:25 +02:00
Michael Natterer 5f700549e7 Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
Jehan 4d6cba0cfb app: make --show-playground visible in --help.
After Alexandre Prokoudine's insistent demand! :-)
I am still not sure how wise this is, since this should be really
considered a "developer-only" option. Basically these tools are really
too buggy and unstable and we should not shine too much light on these.
The counter-argument is that doing so will favor the bitrot.

Well ok. At least let's add a big warning message at the top of the
Playground page, to make it very clear (if that were not already the
case) that basically this is not to be considered a secret feature, but
really more a "we are looking for contributors" option.
2018-04-21 15:48:22 +02:00
Ell 53c145c0be app: add --show-debug-menu command-line option
The debug menu is currently not included in stable versions.

Include the menu unconditionally, but hide it, and its associated
actions, by default in stable versions.  Allow enabling the menu
using a new --show-debug-menu command-line option, in the same vein
as --show-playground.
2018-03-29 05:26:03 -04:00
Jehan 1b4efd2d5a app, tools: rename app/version.[ch] to app/gimp-version.[ch].
Since commit 9fdf35550b, I removed the GIMP_APP_GLUE_COMPILATION check
because we need to have the whole versioning info from the new debug
widget. It just makes sense to go further and just make this a proper
internal API to get version information.
2018-01-29 01:48:30 +01:00
Jehan 4e5a5dbb87 app: make the backtrace GUI actually work on Win32.
It was previously untested, hence as expected needed fixes. First I add
our own exception handler using Win32 API SetUnhandledExceptionFilter().
Second, I reorder things so that ExcHndlInit() is run after this setter,
since they will be executed as a FILO and we need backtraces to be
generated before our separate GUI runs. Last I run the backtrace GUI as
async. No need to keep the main GIMP waiting since the traces have
already been generated into a separate file.

Also replace gtk_show_uri() by the implementation taken straight from
our web-browser plug-in, since apparently gtk_show_uri() doesn't work in
Windows (and probably not macOS either since I see we have a separate
implementation for this platform as well). I would like to be able to
use the PDB but can't because this code needs to be usable both within
the main process and into a separate tool process. Ideally, this should
just be a utils function which could be included without a problem.
2018-01-28 15:43:07 +01:00
Jehan ae3cd00fbd app, tools: add support for ExcHndl/DrMinGW for Win32 debugging.
The feature already exists in our code and produces backtraces upon a
crash into a file. The only difference is that we are now getting the
file contents and showing it in our new debug dialog, so that it works
similarly on all platform (and therefore making the debug info visible
to people, otherwise they would never report, even though the data is
generated).
The difference with gdb/lldb is that it doesn't allow backtraces at
random points (for debugging non-fatal yet bad errors). Also the API has
just 2 functions and in particular an ExcHndlInit() but no way to unload
the feature. So we don't need the debugging page in Preferences because
the switch option would not work. On Windows, the feature will be
decided at build time only.

Last point: the code is untested on Windows so far. I assume it would
work, but there is at least one point I am unsure of: will ExcHndl have
already generated the backtrace file when gimpdebug runs? If not, I will
have to let gimp die first to be able to get the backtrace.
2018-01-28 15:43:07 +01:00
Jehan f8411a3d1f app: add a "generate-backtrace" preference in GimpCoreConfig.
This will determine whether to output backtrace in a GUI and is disabled
by default on stable, and activated in dev builds. It is a bit redundant
with --stack-trace-mode option CLI and will take priority when enabled
since most people would run GIMP with a graphical interface anyway.
2018-01-28 15:43:07 +01:00
Ell d37fb8aa5c app: split sanity check into early/late stages, to fix gegl translation
The GEGL ops sanity check causes all ops to be initialized.  The
strings used by their properties will pick the translation selected
at the time of the check.  It must therefore run after language
intiailization, otherwise the selected translation would correspond
to the system locale, even if the user selected a different language
in the preferences.

Split the sanity check into early and late stages.  The early stage
is run before the call to app_run(), as it did before, while the
late stage is run during app_run(), after the configuration has been
loaded.  Currently, the GEGL ops check is the only late-stage check;
all other checks are performed during the early stage.
2017-06-15 09:51:25 -04:00
Jehan bc344a9991 Bug 750180 - Fix different ways of writing Plug-in Plug-In Plugin.
It was agreed that we should write "plug-in" consistently. Only possibly
user-visible strings were updated.
Thanks to scootergrisen for a first patch which could not make it
after changing decision on the canonical writing.
2017-03-21 17:52:22 +01:00
Michael Natterer 20a32d970d Bug 599573 - Remember dialog defaults between Gimp sessions
Add GimpFillOptions and GimpStrokeOptions to GimpDialogConfig and use
them in the Fill/Stroke Selection/Path dialogs and for the "with last
values" commands. Add GUI for them to Preferences -> Dialog Defaults.

This requires most of the stuff in my last few commits, and some
more changes:

GimpFillOptions is a GimpContext which has all sorts of connections to
everything, including a Gimp pointer. Hack around in GimpDialogConfig
to add a Gimp property, and add "gimp" parameters to quite some GimpRC
functions. Treat the Gimp* as a GObject* in all public API because
core/ stuff is not known in config/.
2016-09-14 01:27:42 +02:00
Michael Natterer 6fe900f7a7 app: always call gimp_load_config() on a newly created Gimp instance
Simply creating and destroying a Gimp now creates and destroys more
members, and some of them always need a gimp->config object.
2016-09-13 12:55:17 +02:00
Michael Natterer 631110e061 app: merge units.[ch] into core/gimp-units.[ch]
and initialize units in gimp_init(). This was completely
over-engineered but in the end boils down to a bad hack that needs a
static "the_unit_gimp" pointer anyway, so let's at least have the hacks
in one file.
2016-09-12 23:51:29 +02:00
Jehan 6edc9380f3 app: fix warnings for win32 builds.
Eliminates some "assignment from incompatible pointer type" warnings,
on calls to GetProcAddress().
2016-05-29 18:27:58 +02:00
Jehan 48b8df2f14 Indentation (tabs) cleanup. 2016-05-29 02:37:32 +02:00
Jehan 2bb0f1b1c9 app: fix "_WIN32_WINNT" redefined when cross-compiling with mingw-w64.
It was already defined in _mingw.h, provided with mingw-w64 headers.
2016-05-29 02:26:04 +02:00
Massimo Valentini 062cf1a5ab Bug 766895: The --dump-pdb-procedures-deprecated...
argument triggers a segmentation fault

Initialize babl so that, when gimp is unreffed,
using a babl_format to destroy a std brush does
not crash.
2016-05-27 19:30:49 +02:00
Mukund Sivaraman 6a6604871f windows: Add support for generating crash backtraces using Dr. MingW 2016-01-02 18:55:37 +05:30
Michael Natterer d5255dc133 app: derive GimpProcedure from GimpViewable
and remove redundant icon managing code from GimpPlugInProcedure
2016-01-01 20:05:32 +01:00
Jehan cd2b395194 app: batch commands won't run on existing instance. 2015-09-28 22:31:21 +02:00
Michael Henning 3e0d10d860 win: Group gimp windows together on the taskbar.
The plug-ins and the main window used to be separate.
2015-08-10 22:27:45 -04:00
Mukund Sivaraman 60197c227d windows: Call SetDLLDirectory() in the app
With this patch, there should be no more need to set PATH on Windows
before running GIMP.

This patch was tested by me and drawoc, but there could be some
undetected issues lurking. Revert if any problems arise.
2015-04-13 15:45:58 +05:30
Michael Natterer 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 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 3e85deefb5 app: manage the system and user gimprc paths as GFiles 2014-07-28 15:03:06 +02:00
Michael Natterer 774e064fbf Bug 691169 - Gimp fails to open files with UTF8 characters as filenames...
...when started via Windows Explorer (e.g. the file context menu)

When built against GLib >= 2.39.90, use g_win32_get_command_line()
and g_option_context_parse_strv() which handle all sorts of windows
filename encodings properly.
2014-03-08 22:39:47 +01: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
Michael Natterer fa05f2ab11 app: need to call babl_init() in gimp_option_dump_gimprc() 2012-11-20 08:21:33 +01:00
Michael Natterer 373a4e7469 app: completely remove TileManager and friends (base/ and paint-funcs/)
And along with it a lot of stuff like the drawable preview cache, the
gegl tile manager backend, temporary gimp_gegl_buffer_foo() stuff, and
the remaining bits of performance.

The projection is in an evil semi-ported state which makes it work
ok-ish for stuff like layer moving, but absolutely unbearable for
painting, there is also an off-by-one rendering glitch at some zoom
levels.
2012-06-20 21:44:09 +02:00
Michael Muré 9966bcfd13 remove now useless and deprecated g_thread_init
Warning

g_thread_init has been deprecated since version 2.32 and should not be used in newly-written code. This function is no longer necessary. The GLib threading system is automatically initialized at the start of your program.
2012-05-03 20:44:07 +09:00
Martin Nordholts dfc11599d1 app: Small --dump-pdb-procedures-deprecated cleanup 2011-05-06 07:29:01 +02:00
Martin Nordholts ed01101429 app: Add hidden --dump-pdb-procedures-deprecated option
Allow to dump the names of all internal deprecated PDB
procedures. This enables us to do static analysis on *.scm files and
look for usage of deprecated procedures.
2011-05-05 01:01:17 +02:00
Mikael Magnusson b81276ca83 app: fix goption warning
Using G_OPTION_FLAG_NO_ARG with G_OPTION_ARG_NONE is not a valid combination,
glib 2.28.2 warns about it.

(gimp:20379): GLib-WARNING **: goption.c:2132: ignoring no-arg, optional-arg or filename flags (8) on option "debug-handlers" of type 0
2011-03-09 15:37:18 +01:00
Tor Lillqvist 24386abb3b Increase safety on Windows
Call SetDllDirectory() to reduce risk of DLL hijacking, and call
SetProcessDEPPolicy() to reduce risk of rogue code execution.
2010-09-02 18:40:50 +03:00
Martin Nordholts fa441e8d5f app: Refer to splash screen as splash screen, not startup window 2010-08-17 18:59:04 +02:00
Sven Neumann a56de78b01 app: add "language" gimprc option and set the language accordingly 2010-01-05 22:30:16 +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
Sven Neumann 3f256652e6 removed prototype for gimp_sigfatal_handler()
svn path=/trunk/; revision=27271
2008-10-13 19:49:51 +00:00
Sven Neumann f6e08757a1 app/Makefile.am new files with code split out of main.c.
2008-10-13  Sven Neumann  <sven@gimp.org>

	* app/Makefile.am
	* app/signals.[ch]: new files with code split out of main.c.

	* app/main.c: changed accordingly.


svn path=/trunk/; revision=27270
2008-10-13 19:32:33 +00:00
Tor Lillqvist c1d3d25ef2 Code built by the still unstable mingw-w64 toolchain gets bogus argc and
2008-08-07  Tor Lillqvist  <tml@novell.com>

	* app/main.c: Code built by the still unstable mingw-w64 toolchain
	gets bogus argc and argv when built as subsystem:windows, so use
	__argc and __argv instead, which seem to be OK.

	* libgimp/gimp.h: Similar change here.


svn path=/trunk/; revision=26420
2008-08-07 15:45:33 +00:00
Sven Neumann 0cf63ba421 moved some common code back to main.c
svn path=/trunk/; revision=26118
2008-07-11 09:16:23 +00:00
Sven Neumann 30cc37c5fe app/Makefile.am new files containing functionality to check for an already
2008-07-11  Sven Neumann  <sven@gimp.org>

	* app/Makefile.am 
	* app/unique.[ch]: new files containing functionality to check 
for
	an already running instance of GIMP of notifying it about files 
to
	open. Code split out of main.c.

	* app/main.c: changed accordingly.


svn path=/trunk/; revision=26117
2008-07-11 09:08:07 +00:00
Sven Neumann c6260c55f2 removed misleading comment.
2008-07-11  Sven Neumann  <sven@gimp.org>

	* app/main.c (gimp_init_malloc): removed misleading comment.


svn path=/trunk/; revision=26116
2008-07-11 08:22:53 +00:00
Tor Lillqvist 131aa16e7a New files. Rename gimp_show_version() to gimp_version_show() and move
2008-02-26  Tor Lillqvist  <tml@novell.com>

	* app/version.[ch]: New files. Rename gimp_show_version() to
	gimp_version_show() and move here. When given both --version and
	--verbose, print build-time and run-time versions of the most
	important dependencies.

	* app/Makefile.am: Add them.

	* app/main.c: Call gimp_version_show().

	* app/Makefile.am: Use -mwindows only for the GUI gimp, not for
	gimp-console.


svn path=/trunk/; revision=24968
2008-02-26 14:02:44 +00:00
Michael Natterer 479a649898 Some cleanup...
2007-12-29  Michael Natterer  <mitch@gimp.org>

	Some cleanup...

	* app/Makefile.am: change linking order.

	* app/main.c: move gegl initialization from here...

	* app/app.c: ...to here.

	* app/gegl/gimpops.c: removed.

	* app/gegl/gimp-gegl.[ch]
	* app/gegl/gegl-types.h: added.

	* app/gegl/Makefile.am: changed accordingly.

	* app/gegl/gimpoptilesink.[ch]
	* app/gegl/gimpoptilesource.[ch]: made more gimpish.


svn path=/trunk/; revision=24459
2007-12-29 01:35:04 +00:00
Øyvind Kolås b06afdec24 Added adapter GEGL operations for reading and writing to TileManagers.
2007-12-29  Øyvind Kolås  <pippin@gimp.org>

	Added adapter GEGL operations for reading and writing to TileManagers.

	* configure.in:
	* app/Makefile.am: added gegl subdir.
	* app/gegl/Makefile.am: added.
	* app/gegl/gimpops.c: (gimp_gegl_ops_init):
	* app/gegl/gimpoptilesink.[ch]: adapter GEGL operation for writing to
	GIMP tile managers.
	* app/gegl/gimpoptilesource.[ch]: adapter GEGL operation for reading
	from GIMP tile managers.
	* app/main.c: (main): call gimp_gegl_ops_init()
	* app/gegl/gegl/: added some headers from GEGL that are not installed
	since they are not public API yet.

svn path=/trunk/; revision=24458
2007-12-29 00:57:51 +00:00