Commit Graph

41447 Commits

Author SHA1 Message Date
Michael Natterer 7fab74f431 libgimpwidgets: use G_DEFINE_ABSTRACT_CLASS for preview classes 2018-05-28 17:24:58 +02:00
Michael Natterer 3773ccbe1f docs: update .gitignore 2018-05-28 12:49:47 +02:00
Michael Natterer 061f4e4019 tools, app-tools: update .gitignore 2018-05-28 12:41:48 +02:00
Michael Natterer 1b71bd38ae desktop: update .gitignore 2018-05-28 12:34:30 +02:00
Michael Natterer 09e91b61fa plug-ins: gfig was still connecting to an "expose-event" signal 2018-05-28 09:01:54 +02:00
Michael Natterer 2ae830290e app: fix synthesizing pointer events in test-tools.c
Makes tests fail later.
2018-05-28 08:59:37 +02:00
Jehan d4ff504735 app: fix broken debug output on gitlab.
The GIMP version string and the backtrace both look completely wrong
when pasted as-is on gitlab. Somehow all linefeed are gone.

This can be fixed by surrounding these as blocks (triple backticks),
using markdown syntax. Of course now the debug content is not for our
tracker only since packagers are encouraged to replace with their own
tracker URL, but this small markdown syntax is simple enough that it
should not break formatting on other platforms (as far as I know).
2018-05-28 06:26:46 +02:00
Jehan 2795512822 build: remove dev flatpak and replace nightly with gtk3 manifest.
Now gtk3-port old branch has become master!
Also we don't need a dev flatpak for now. We'll see later when we will
do new development releases.
2018-05-27 22:24:37 +02:00
Jehan fc8d815ab8 build: update the flatpak howto. 2018-05-27 22:20:09 +02:00
Michael Natterer dbf059fd70 plug-ins: undeprecate print-preview.c 2018-05-27 21:07:12 +02:00
Michael Natterer 1b18f73d32 menus: forgot to remove automatic tab style 2018-05-27 21:05:31 +02:00
Ell 3fa4c01bcf app: fix gimp_parallel_run_async() cancelation
In gimp_parallel_run_async(), when aborting a GimpAsync operation
in reponse to its "cancel" signal, properly clean up internal data
attached to the object, to avoid use-after-free if the signal is
emitted again.
2018-05-27 13:58:59 -04:00
Ell ad8add6808 app: add "independent" parameter to gimp_parallel_run_async()
Add a boolean "independent" parameter to gimp_parallel_run_async().
When FALSE, the passed function is run in the shared async thread
pool; when TRUE, the passed function is run in an independent
thread.

Generally, async operations should run in the async pool, however,
it might be desirable to run long-standing operations, especially
ones that can't be canceled, in independent threads.  This avoids
stalling quicker operations, and shutdown.

Adapt the rest of the code for the change.  In particular,
initialize the font cache in an independent thread.
2018-05-27 13:17:24 -04:00
Ell 3958ffbe50 app: abort canceled pending operations in gimp_parallel_run_async()
In gimp_parallel_run_async(), connect to the returned GimpAsync's
"cancel" signal, and abort the operation in response if it's still
enqueued, i.e., if its execution hasn't started yet.
2018-05-27 13:17:24 -04:00
Ell e2c56ef407 app: implement GimpWaitable and GimpCancelable in GimpAsync
Have GimpAsync implement the GimpWaitable and GimpCancelable
interfaces, added in the previous two commits, instead of providing
its own public version of the corresponding functions.

Add gimp_async_cancel_and_wait() as a convenience function for both
canceling an async operation, and waiting for it to complete.

Adapt the rest of the code to the change.
2018-05-27 13:17:24 -04:00
Ell 722f92d011 app: add GimpCancelable interface
... which provides a method for canceling an operation managed by
an object.
2018-05-27 13:17:24 -04:00
Ell 0fe066890e app: add GimpWaitable interface
... which provides methods for waiting on an object.
2018-05-27 13:17:24 -04:00
Jehan f3de5cd3fe tools: make gimptool memory-managed.
The code was basically leaking memory everywhere, and apparently on
purpose (according to a top comment). Even on short-lived process, not
properly managing memory is not a good habit, especially if we plan to
maintain a program for the long run.
So here are some fixes. I'm sure I must have missed some places (code
was a mess), and hopefully I broke nothing. But that's good for now. At
least it is somewhat sane code now.
2018-05-27 17:53:26 +02:00
Jehan 02fc818bf6 tools: do not segfault gimptool with source without extension.
Since commit 58fa382001, gimptool would accept source files with
non-standard extensions when using known C or C++ compilers. This would
include source with no extensions at all.
When this happens, do not try to set a pointer to a non-existing dot
separator to '\0'. That obviously segfaults.
2018-05-27 16:11:38 +02:00
Jehan 355676e7ae tools: clean tabs out of gimptool code. 2018-05-27 15:17:42 +02:00
張俊芝 58fa382001 Issue #1506: Adds support for source file names with special...
... characters and non-standard suffixes in gimptool
2018-05-27 15:05:52 +02:00
Ell e47ffefab2 libgimpcolor, libgimpconfig: remove deprecated interface functions
Remove the deprectaed foo_interface_get_type() functions, as per
the last two commits.
2018-05-27 05:59:39 -04:00
Ell 5f8643a6ee libgimpconfig: align GimpConfig with the rest of the interfaces
Unlike the last two commits, we don't port GimpConfig to
G_DEFINE_INTERFACE(), since we need to provide a base initializer
for it.  However, this commit aligns it with the rest of our
intefaces, by renaming gimp_config_interface_get_type() to
gimp_config_get_type(), and by performing class initialization for
the interface in a separate function than base initialization.

Keep gimp_config_interface_get_type() around as a deprecated
function, to maintain ABI compatibility.  It will be removed in a
separate commit in master, so that this commit can be easily
cherry-picked to gimp-2-10.
2018-05-27 05:56:34 -04:00
Ell 6b40c7f37a libgimpcolor: port all interfaces to G_DEFINE_INTERFACE()
... instead of calling g_type_register_static() ourselves.

Keep the old foo_interface_get_type() (replaced with
foo_get_type()) around as deprecated functions, to maintain ABI
compatibility.  They will be removed in a separate commit in
master, so that this commit can be easily cherry-picked to
gimp-2-10.
2018-05-27 05:56:34 -04:00
Ell cdd96059f7 app: port all interfaces to G_DEFINE_INTERFACE()
... instead of calling g_type_register_static() ourselves.
2018-05-27 05:56:34 -04:00
Ell 770634f84e app: code cleanup in GimpAsync 2018-05-27 05:56:34 -04:00
Piotr Drąg 3c2a81ebe6 Update Polish translation 2018-05-27 07:30:39 +02:00
Jehan c6a1b9bcde Update various places with old git repository URIs. 2018-05-27 04:19:18 +02:00
Jehan 0034bd44b3 build: update GNOME's git repository URI. 2018-05-27 04:09:47 +02:00
Jehan cfaa3103e7 app: output proper info message while fonts are loading.
To this effect, I add a variable to differentiate the "no-fonts on the
system" case from "fonts still loading".
2018-05-27 03:42:43 +02:00
Jehan 2484dec7d5 Issue #1211: Load fonts in background after startup.
Fonts should not be blocking startup as this provides a very bad
experience when people have a lot of fonts. This was experienced even
more on Windows where loading time are often excessively long.
We were already running font loading in a thread, yet were still
blocking startup (thread was only so that the loading status GUI could
get updated as a feedback). Now we will only start loading and proceed
directly to next steps.
While fonts are not loaded, the text tool will not be usable, yet all
other activities can be performed.
2018-05-27 02:13:33 +02:00
Jehan e5c08832cb Issue #1509 - GIMP master Git zoom in/out scrolling is reversed. 2018-05-26 22:41:54 +02:00
Jehan 67ae36f28e devel-docs: howto test high density. 2018-05-26 22:41:54 +02:00
Ell cdfcf5bdcf build: add Czech translation to the Windows installer 2018-05-26 14:55:47 -04:00
Ell 1e030ea9b5 po-windows-installer: technical fix to the Czech and Latvian translations
ender's name can't be encoded in the target encoding.  Use
alternative form.
2018-05-26 14:54:39 -04:00
Ell a0ce5c50b9 po-windows-installer: update LINGUAS 2018-05-26 14:45:02 -04:00
Ell a901c3c1f4 app: various GimpAsync improvements
Improve the formalism of a GimpAsync object being "sycned"
(previously referred to as the main thread being "synced" with the
async thread), by both providing a gimp_async_is_synced() function,
separate from gimp_async_is_stopped(), and by improving the type
and function descriptions.

Make sure all previously added callbacks have been called after a
call to gimp_async_wait[_until](), even if these functions are
called from within a callback.
2018-05-26 14:21:51 -04:00
Ell 85f67e196c app: add gimp_async_remove_callback()
... which removes a callback previously added through
gimp_async_add_callback().
2018-05-26 14:21:51 -04:00
Ell 3e92e7a449 app: use gimp_parallel_run_async() when loading fonts
Replace the custom threading code with a call to
gimp_parallel_run_async().  This simplifies the code, while
maintaining the current (blocking) behavior.  In the future, we
might build upon this to actually load the fonts in the background.
2018-05-26 11:33:32 -04:00
Ell 68c57548fd app: add gimp_async_wait_until()
... which is similar to gimp_async_wait(), taking an 'end_time'
parameter, controlling how long to wait for the async operation to
complete.
2018-05-26 11:32:34 -04:00
Michael Natterer baaa2cd7ca app: remove the entire dockable tab auto-sizing code
It was totally broken and could never work like this in GTK+ 3.x, and
if it can be reimplemented it should be started from scratch.
2018-05-26 16:28:58 +02:00
Michael Natterer abdd69640d app: in testing mode, load plug-ins without subdirectories again
Fixes the export test.
2018-05-26 14:45:59 +02:00
Michael Natterer a33fcfd43c app: fix gimp_test_utils_create_image_from_dialog()
to reliably press the OK button. Makes tests fail a bit later.
2018-05-26 12:40:53 +02:00
Ell 3673352c99 app: update tests for new GDK/GIMP API
This only makes the tests build, though they still fail.
2018-05-26 04:11:50 -04:00
Ell 367399e5c0 Issue #1490 - Crash when flattening an XCF file
The default stack size for new threads on MacOS is 512 KiB, making
our 512 KiB limit for stack-allocated buffers in
gimp_operation_layer_mode_real_process() too high.  Lower it to
256 KiB.
2018-05-25 20:34:46 -04:00
Michael Natterer 7990b1d57c libgimp: update all .def files 2018-05-25 22:13:33 +02:00
Michael Natterer 7d36b463dc po: update POTFILES.skip 2018-05-25 22:13:33 +02:00
Michael Schumacher 001a8d0c66 Require gtk+-3.0 in gimpui-3.0.pc
Fixes #1505
2018-05-25 21:55:45 +02:00
Michael Natterer d57ab7faf2 libgimpwidgets: move all GimpSizeEntry members to private 2018-05-25 19:15:00 +02:00
Ell deee2f14f5 app: fix progress text when applying shaped gradient through PDB
In gimp_drawable_gradient(), pass the undo description ("Gradient")
to gimp_gegl_apply_operation(), so that its displayed as the
progress text while rendering the gradient, even when applying a
shaped gradient, in which case we end the progress after
calculating the distance map, causing the progress text be NULL
during rendering unless explicitly set.
2018-05-25 12:44:04 -04:00