Commit graph

16199 commits

Author SHA1 Message Date
Michael Natterer
b941986bbb app: GimpBrushEditor: fix display of spacing for normal brushes
it was doing *all* the UI settings only for generated brushes.
2013-03-14 22:52:34 +01:00
Michael Natterer
84b27e96b9 app: remove temp buffer workaround from gimp_channel_new_from_component()
apparently copying a component directly now works fine, probably
because we use "real" GeglBuffers (not TileManager based ones).
2013-03-13 23:45:46 +01:00
Michael Natterer
d837a6d7df app: fixed paned packing in GimpDeviceEditor
so the widgets don't become smaller than their requisition.
2013-03-13 22:06:42 +01:00
Michael Natterer
bc190a6bab Bug 397359 - Can't access color management parameters
Create all display filters with "color-config" and "color-managed"
parameters set, not only the automatically added color management
display filter. This way we don't only support removing and adding the
filter again, but also support potential other color management
modules.
2013-03-13 10:37:25 +01:00
Michael Natterer
4f7cb88132 app: implement GimpConfigInterface::equal() in gimp-gegl-config-proxy.c
so the automatically saved timestamped presets don't fill up with
duplicates of identical settings. The default impl considers them
different because of their timestamps.
2013-03-12 19:09:22 +01:00
Michael Natterer
3a0daf540a app: enable the fast path again in GimpOperationNormalMode
but fix it to not take the fast path if opacity is != 1.0 or there is
a mask.
2013-03-11 15:38:28 +01:00
Michael Natterer
2dc36a9dee app: add a fast path in GimpOperationMaskComponent
Pass through the input buffers nop-style if the mask is either 0 or ALL.
2013-03-11 00:21:23 +01:00
Michael Natterer
792f85461b app: use gimp_button_menu_position() in GimpIconPicker
and some small cleanup.
2013-03-10 22:33:45 +01:00
Michael Natterer
0884880579 app: small indentation fix in GimpImageWindow 2013-03-10 19:55:48 +01:00
Michael Natterer
fc19348621 app: consider the label in GimpStatusbar's size negotiation
doesn't change anything, except perhaps for weird themes.
2013-03-10 19:54:42 +01:00
Michael Natterer
49fdaac07f app: add GimpPrefsBox, a helper widget for preferences and similar dialogs
and use it in the preferences dialog. Removes quite some code from
that insane file.
2013-03-10 19:49:59 +01:00
Michael Natterer
c0c813d9f1 app: minor formatting cleanup in gimppropwidgets 2013-03-10 19:48:32 +01:00
Michael Natterer
e17971cc38 app: some formatting and translatable strings cleanup in GimpIconPicker 2013-03-10 19:46:20 +01:00
Michael Natterer
cdf2c7ba4b app, menus: add CIE lch noise to the menus 2013-03-09 22:59:13 +01:00
Michael Natterer
c76a23075d app: blacklist some more useless ops in the GEGL tools 2013-03-09 22:23:52 +01:00
Michael Natterer
872b1f3221 app: don't leak the input stream when loading a viewable's icon pixbuf 2013-03-09 21:12:00 +01:00
Michael Natterer
1454234d98 app, menus: add a "Desaturate" submenu for the newly added GEGL filters 2013-03-09 20:49:57 +01:00
Michael Natterer
06a4d2e29f app: have proper titles in the GEGL filter settings import/export dialogs
"Import foo" and "Export foo" were just not good enough...
2013-03-09 20:34:15 +01:00
Michael Natterer
54778783ed app: make a hack in GimpOperationTool slightly worse, but clearer 2013-03-09 20:27:02 +01:00
Michael Natterer
cf3010394b app: strip the ellipsis from the GEGL filter dialog labels
We recycle the menu item's label, and ellipsis are just wrong in a
dialog title.
2013-03-09 20:19:32 +01:00
Michael Natterer
3105791933 app: set the sensitivity of the 3 newly added GEGL filter menu items 2013-03-09 20:18:39 +01:00
Michael Natterer
69c897a118 app: fix crash in GEGL tool when an operation specific tool was used before
gimp_image_map_tool_initialize(): add the saved settings combo only if
we have a config object.
2013-03-09 20:16:24 +01:00
Michael Natterer
edec6ac8cc app: add some more gegl ops to the menus (wip) 2013-03-09 18:10:14 +01:00
Michael Natterer
448722c849 app: blacklist some more ops in the GEGL tool, they are in the menus 2013-03-08 17:24:02 +01:00
Daniel Sabo
2614404764 Add support for custom icons for tool presets
Adds an icon-pixbuf property to GimpViewable that is used for a default
implementation of new_pixbuf.

Extend gimp_icon_picker to allow the user to pick non-stock icons for tool
presets (or any other class derived from GimpViewable). Icons can come
from any file GdkPixbuf can load or from image data on the clipboard.
2013-03-08 08:19:54 -08:00
Michael Natterer
e21e3bce5c plug-ins, pdb: remove plug-in noise-randomize
and implement its procedures as compat wrappers around GEGL ops.
2013-03-08 17:06:53 +01:00
Michael Natterer
cc6d3bb1eb app: use gegl_node_blit() instead of GeglProcessor in GimpPerspectiveClone
the speedup is hardly measurable, but why not get rid of some overhead
anyway.
2013-03-07 22:15:29 +01:00
Michael Natterer
561c250298 app: print 4 decimal places in GIMP_TIMER_END() 2013-03-06 12:50:21 +01:00
Michael Natterer
a66de41f60 app: use the right enum for gegl_node_blit() (no logic changed) 2013-03-04 14:02:33 +01:00
Michael Natterer
d0ef6a5af6 app: use gegl_node_blit() in GimpApplicator too
Speeds up applying by at least a factor of two. Patch from Massimo.
2013-03-02 18:50:34 +01:00
Michael Natterer
dfeb16d9ee app: don't use a GeglProcessor when we don't need a progress
Instead, use gegl_node_blit() directly which is more than ten times
faster in gimp_gegl_apply_operation(). Patch from Massimo Valentini.
2013-03-02 18:32:34 +01:00
Michael Natterer
e6d1234456 app: fix expected single-window sessionrc so tests pass again 2013-02-28 01:29:53 +01:00
Michael Natterer
9da0f489e1 Bug 694665 - SWM should distribute remaining space to main frame
Save the "right-docks-position" as negative value in pixels from the
right window border. Change the image window restoring code to
interpret negative values like that, but keep the meaning of positive
values for compatibility with existing sessionrc files.
2013-02-27 23:46:00 +01:00
Michael Natterer
97af52c465 Bug 686544 - Opening new image window doesn't restore docks
Call gimp_dialog_factory_show_with_display() in gimp_display_new(), we
otherwise do this only when the ICONIFIED state of an image window
changes.
2013-02-27 23:26:49 +01:00
Michael Natterer
8e19da16ab tests: update expected sessionrc files for the show-button-bar change 2013-02-18 01:31:07 +01:00
Michael Natterer
6f5b4ad1f4 Bug 694026 - "Button Bar" state not retained on brushes and dynamics editor
gimp_docked_iface_get_aux_info(): always save the button bar state,
not only if it is "false" because we cannot know the default value any
longer (the button bar visibility used to always default to "true", so
saving only a non-default "false" was fine).
2013-02-17 16:46:40 +01:00
Michael Natterer
931ea102f8 Bug 693978 - GIMP crashes after changing text preset
Applying a preset overwrites all the tool option's properties, also
temporarily its name. This name change gets auto-synced with the
option's text proxy object which also inherits from GimpObject and has
a name. Make sure we don't queue that name change for being applied to
the text layer's text object, because that code only handles
properties of GimpText itself.
2013-02-16 20:38:15 +01:00
Michael Natterer
169d32532a Bug 676927 - Shortcuts with backspace not working if image is focused
Move local variable out of the switch() block, it was never initialized.
2013-02-15 01:00:13 +01:00
Michael Natterer
086793d040 Make it harder to "save" to foo.png.gz or "export" to foo.xcf.gz
Remove plain .gz .bz2 .xz from the extensions the file-compressor
plug-in registers, and make sure is only ends up in "save_procs", so
at least "exporting" to foo.xcf.gz is not possible any longer. With
some effort, one can still "save" to foo.png.gz tho, but it's much
harder now.
2013-02-15 00:01:27 +01:00
Michael Natterer
1ba0cfbf38 Bug 680132 - Unable to 'Save As' over smb share
file_procedure_in_group(): consider "file-uri-save" to be in both the
SAVE and the EXPORT groups.

gimp_plug_in_manager_register_save_handler(): allow a procedure to be
in both "save_procs" and "export_procs".

The logic in the file save/export dialog checks uri prefixes and
extensions just fine, so nothing bad seems to happen from this change,
I hope...
2013-02-13 23:44:36 +01:00
Téo Mazars
d1cd90c170 Bug 674622 - Misalignment in scaling layers of different sizes
Again bad use of ROUND() on signed values...
2013-02-13 19:59:58 +01:00
Téo Mazars
f6e64b9ed9 Bug 688068 - Rect selection: "Fixed: Aspect Ratio" doesn't work when...
Use current aspect when creating rectangle tool from a selection.
2013-02-13 00:36:44 +01:00
Téo Mazars
4a5a6ef914 Bug 684330 - Rectangle tool's "fixed size" option is off-by-one
ROUND() is consistent only on positive values, and bad rounding
creates an offset when negative values are involved. Introduce
SIGNED_ROUND() and use it in gimprectangletool.c. It should probably
be used in much more places.
2013-02-13 00:08:39 +01:00
Michael Natterer
a907741d8a Bug 692900 - Dragging left canvas border doesn't respect dock borders
Don't allow the single window's docks to shrink smaller than their
requisition, because that's horribly broken.
2013-02-06 23:27:37 +01:00
Nils Philippsen
1c00c2e4f8 app: fix re-initializing fontconfig in gimp_fonts_reset()
Calling FcConfigSetCurrent() with NULL is just broken, it almost
immediately dereferences the passed pointer. Apparently this line
is executed seldom, otherwise we'd see way more crashes in this place.
Just use FcInitReinitialize() which exists for the very purpose of
reinitializing the fontconfig library.
2013-02-05 13:54:36 +01:00
Michael Natterer
b8e96c7141 app: rename gimpdisplay-transport.[ch] to gimpdisplayxfer.[ch]
so it matches the name of the stuff it implements.
2013-02-03 13:26:32 +01:00
Michael Natterer
d0a5879f28 app: some GIMP-style cleanup to the last commit 2013-02-02 17:07:03 +01:00
Chris Wilson
4a81849e36 app: Use SHM transport for data transfer for display
Recent Cairo uses SHM transports when available, and exposes the ability
for its users to manage images shared between it and the display.
This allows us to eliminate copies, and if the architecture supports it
even to upload directly into GPU addressable memory without any copies
(all in normal system memory so we suffer no performance penalty when
applying the filters). The caveat is that we need to be aware of the
synchronize requirements, the cairo_surface_flush and
cairo_surface_mark_dirty, around access to the transport image. To
reduce the frequency of these barriers, we can subdivide the transport
image into small chunks as to satisfy individual updates and delay the
synchronisation barrier until we are forced to reuse earlier pixels.

Note this bumps the required Cairo version to 1.12, and please be aware
that the XSHM transport requires bug fixes from cairo.git (will be
1.12.12)

v2: After further reflections with Mitch, we realized we can share the
transport surface between all canvases by attaching it to the common
screen.

v3: Fix a couple of typos in insert_node() introduced when switching
variables names.

v4: Encapsulating within an image surface rather than a subsurface was
hiding the backing SHM segment from cairo, causing it to allocate
further SHM resources to stream the upload. We should be able to use a
sub-surface here, but it is more convenient to wrap the pixels in an
image surface for rendering the filters (and conveniently masking the
callee flushes from invalidating our parent transport surface).

Cc: Michael Natterer <mitch@gimp.org>
2013-02-02 13:59:59 +01:00
Ville Skyttä
6b0d1038cc Bug 692641 - Various spelling fixes 2013-01-27 18:59:02 +01:00
Jehan
518e396ff4 Bug 692570 - GIMP fails to migrate binary files
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).
2013-01-26 22:05:46 +09:00