mirror of
https://gitlab.gnome.org/GNOME/gimp.git
synced 2025-07-04 01:43:24 +00:00
libgimp, plug-ins: massively improve GimpBrushSelectButton.
- Increase the default size to 40x40 and multiply it by the current window scale factor to have decent preview size. - Make the brush preview always square with a GtkAspectFrame: even though brushes are not necessarily square, this is a much more obvious size rather than letting GTK choose a random allocation size which ends up very weird looking. - Scale down the brush to the biggest possible dimensions which fit the square preview area (if the brush native size is already smaller, I don't scale up though) while keeping aspect ratio: previous implementation was really weird, as we were only seeing a tiny corner of much brushes as we weren't scaling them down. Obviously I use new gimp_brush_get_buffer|mask() functions for this as it supports scaling. - Implement drawing color brushes too: the previous implementation was only drawing the brush mask, which was absolutely not what would be expected for such brushes. - Add a white background behind color brushes with transparency. - Simplify and clean up the code. One of the consequences of this new implementation is obviously that it's mandatory to call gegl_init() when using this widget.
This commit is contained in:
parent
1ff9c12b1e
commit
0e6c06044c
2 changed files with 238 additions and 215 deletions
|
@ -18,6 +18,8 @@ gi.require_version('Gimp', '3.0')
|
|||
from gi.repository import Gimp
|
||||
gi.require_version('GimpUi', '3.0')
|
||||
from gi.repository import GimpUi
|
||||
gi.require_version('Gegl', '0.4')
|
||||
from gi.repository import Gegl
|
||||
from gi.repository import GObject
|
||||
from gi.repository import GLib
|
||||
from gi.repository import Gio
|
||||
|
@ -99,6 +101,7 @@ def test_dialog(procedure, run_mode, image, n_drawables, drawables, args, data):
|
|||
|
||||
if run_mode == Gimp.RunMode.INTERACTIVE:
|
||||
GimpUi.init('python-fu-test-dialog')
|
||||
Gegl.init(None)
|
||||
dialog = GimpUi.ProcedureDialog(procedure=procedure, config=config)
|
||||
dialog.fill(None)
|
||||
if not dialog.run():
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue