Commit Graph

1698 Commits

Author SHA1 Message Date
730547e0bb libgimpwidgets: fix commit e6ba618.
- Missing comma;
- headers from libgimpwidgets can't be included in app/core. So icon
  macros can't be used there.
2016-06-02 20:06:54 +02:00
73e6b6fce8 icons: correct gimpicons.h 2016-06-02 18:41:36 +02:00
e6ba618bb9 icons: add new icon gimp-color-palette
patch
gimppalette.c
gimpicons.c
gimpicons.h
2016-06-02 18:24:29 +02:00
8a37c928eb app, plug-ins, libgimp*: clean out all remaining trailing spaces/tabs.
Rather than just discovering them by chance, a simple grep and some
search and replace are much more efficient! :-)
Cleaning only done on C and automake files.
2016-06-02 02:04:26 +02:00
3ed305f6f5 libgimpwidgets, app: have all previews track the monitor they are on
and update their color transforms with the new monitor's color
profile. A widget is considered changing monitors when its toplevel
window's center crosses, in order to let widgets within one window
have consistent colors.
2016-06-01 22:42:00 +02:00
71384a4115 app: add gimp_widget_track_monitor()
Which installs a callback that behaves as if GtkWidget had a
"monitor-changed" signal. Additionally, moving widgets around between
windows is handled automatically.
2016-06-01 20:40:42 +02:00
dfc8488dca icons: add new icons to gimpicons.c too 2016-06-01 20:28:26 +02:00
a91adeb5fb icons:
symbolic-scalable
add 'pixel-perfect' 24px vectorial twins (as replacement for 22px)
gimp-prefs-folders-dynamics
gimp-prefs-folders-environ
gimp-prefs-folders-fonts
gimp-prefs-folders-gradients
gimp-prefs-folders-icon-themes
gimp-prefs-folders-interp
gimp-prefs-folders-modules

symbolic-scalable & color-scalable
add new icons
gimp-color-cmyk
gimp-color-water

patch
color-selector-cmyk.c
color-selector-water.c
gimpicons.c

This is the first patch to solve Bug 759904
many more have to follow

Thanks to Jehan for the assistance
2016-06-01 19:41:47 +02:00
44f918af2d libgimpwidgets: always ask the toplevel window for its color profile
so all a window's widgets get their profile from the same monitor.
2016-05-31 21:57:31 +02:00
4ad2493283 libgimpwidgets, modules: improve set_color_config() functions a bit
Don't do anything if the config doesn't change.
2016-05-31 12:27:15 +02:00
70463a74fa libgimpwidgets: don't unref a NULL transforms from the transform cache 2016-05-30 12:48:10 +02:00
d6ee1dc5cf libgimpwidgets: cache gimp_widget_get_color_transform()'s GimpColorTransforms
Now that more and more widgets are color managed, we need transforms
for all of them. Creating them is very expensive.

The new cache returns the same transform for a combination of (config,
src_profile, src_format, dest_format) and invalidates itself
automatically on config changes. The number of transforms goes down
from potentially hundreds to a handful, and the cost of a config
change from many seconds to virtually instant.
2016-05-27 21:58:46 +02:00
9014fbeb32 Bug 467930 - color selectors are not color managed
Color manage GimpColorScale and GimpColorScales.
2016-05-27 00:51:32 +02:00
bd38b7b9fd libgimpwidgets: set the color config on the "GIMP" page of color selectors 2016-05-26 22:23:29 +02:00
e080df349c libgimpwidgets: set the color config on GimpColorSelection's color areas
so they are color managed.
2016-05-26 22:22:50 +02:00
0bfa402c1a Argh, this was meant to be squashed into the previous commit... 2016-05-26 22:18:50 +02:00
cc92887908 libgimpcolor: add new object GimpColorTransform
which encapsulates a cmsHTRANSFORM and does all the pixel format
conversion magic. It has API to create transforms and proofing
transforms, and to convert pixels arrays and GeglBuffers.

Before, each place which has a transform had to keep around the
transform and its input and output Babl formats, and had to implement
lots of stuff itself. Now all that lives in GimpColorTransform,
removing lots of logic from many places, and pretty much removing lcms
from the public API entirely.

This removes including <lcms2.h>, LCMS_LIBS and LCMS_CFLAGS from
almost all directories and potentially allows to replace lcms by
something else.
2016-05-26 22:15:54 +02:00
1cffaa7120 libgimpwidgets: add gimp_color_area_set_color_config()
And do a display profile transform on the color area if it's set.
2016-05-25 12:39:31 +02:00
9c99d61feb libgimpwidgets: add gimp_preview_area_set_color_config()
If a config is set, apply its settings when drawing the preview's
pixels. This is preparation for fixing:

Bug 467930 - color selectors are not color managed
Bug 556608 - Monitor color profile is not applied to filter preview
2016-05-24 21:43:20 +02:00
adaa67548e libgimpwidgets: set a minimum width on GimpColorProfileComboBox
so ellipsation doesn't shrink the entire text away in narrow dialogs.
2016-05-22 18:44:59 +02:00
Ell
4132c0b3e7 app, libgimpwidgets: reset "old" selection color of GimpColor{Button,Panel} ...
... when the button is clicked

Previously, the old color retained its previous value, so when the color
selection dialog was canceled, the button's color would go back to a
potentially outdated value, instead of the color it had when it was
clicked (for continuously-updated color buttons, at least.)
2016-05-16 11:49:00 +00:00
a31fe9521f libgimpwidgets: Mac OS X: fix build 2016-05-07 09:09:06 +02:00
6c64cb0f16 libgimpwidgets: support saving profile in GimpColorProfileChooserDialog
Add the right action buttons, enable overwrite confirmation, and add
user-writable folders to the shortcuts pane. Also use the right API on
OS X instead of hardcoding /Library and ~/Library.
2016-05-07 01:36:23 +02:00
83df7f410d libgimpwidgets: more parameters for gimp_color_profile_chooser_dialog_new()
Add "parent" and "action", contraidicting myself from two commits
earlier.
2016-05-07 01:19:26 +02:00
f7f9174a9c Revert "libgimpwidgets: remove gimp_color_profile_chooser_dialog_new()"
This reverts commit 2bfd0711e8.

Don't ask...
2016-05-07 00:57:40 +02:00
2bfd0711e8 libgimpwidgets: remove gimp_color_profile_chooser_dialog_new()
Its API was too limited, and adding parameters for what we need next
would be equally random. It's a rarely used and mostly internal
widget, so simply use g_object_new().
2016-05-06 22:57:32 +02:00
61a1c877c1 libgimpwidgets: Mac OS X: read ICC profile from the correct buffer
Clearly, the buffer to read the ICC profile from is pointed to by
"buffer", not "data" which is a CFDataRef. I doubt the old code was
ever tested.
2016-05-06 20:53:41 +02:00
48721b5152 libgimpwidgets: update OS X code to get display profile to new API
The API that is currently used is deprecated since 10.6.
2016-05-06 20:53:09 +02:00
1bfd57b99c libgimpwidgets: add a shortcut to the profile chooser dialog on OS X too
Apparently it's "/Library/ColorSync/Profiles".
2016-05-05 19:40:52 +02:00
47ef3be145 Initialize GValues with G_VALUE_INIT instead of { 0, } 2016-03-26 15:59:26 +01:00
7fe64b747c app, libgimpwidgets: Dark theme and Symbolic icons as defaults.
These seem the expected theming defaults nowaydays, for a graphics
software, and so GIMP will follow these recommendations.
2016-03-25 20:53:22 +01:00
f2d581a536 Bug 761170 - Warnings building with clang
Fix a bunch of clang warnings.
2016-02-12 22:49:47 +01:00
30e4826473 app, libgimpwidgets: update gimp_prop_foo_new() documentation comments.
Explains what happens when NULL labels are used.
2016-02-11 16:35:45 +01:00
9c4dd960a0 app, libgimpwidgets: allow NULL labels in some gimp_prop_foo_new() functions
and fall back to the GParamSpec's nick.
2016-02-09 23:35:06 +01:00
96b5e5345e libgimpwidgets: add new symbols in def file. 2016-02-02 21:54:30 +01:00
1f4839288e Bug 648776 - fixes symmetry painting after Massimo and Mitch's reviews.
Use a GType for the PROP_SYMMETRY property of GimpImage, and create
a default "identity" symmetry for an image.
I still use a GimpIntComboBox but store the property value in the
user-data column because gpointer isn't a subset of gint.
Adds in libgimpwidgets:
- gimp_int_combo_box_set_active_by_user_data()
- gimp_int_combo_box_get_active_user_data()
- gimp_int_store_lookup_by_user_data()
- gimp_prop_pointer_combo_box_new() to create a GimpIntComboBox and
  attach it to a gpointer property.
Thanks Massimo and Mitch for reviewing my code.
2016-02-02 21:15:13 +01:00
76f573c981 Bug 648776 - mirror symmetries.
You can now set any paint tool to mirror painting relatively
horizontal/vertical axis or a central point (any combination of these 3
symmetries).
This has been implemented as a new multi-stroke core, where every stroke
is actually handled as a multi-stroke (default of size 1).
This is also the first usage of custom guides for symmetry guiding.
Current version has to be activated in the playground.
2016-02-02 21:15:13 +01:00
a940300525 libgimpwidgets: make GimpDialog's help_id settable after construction 2016-01-17 17:35:33 +01:00
fdb582b95c icons: fix compile errors
Fixed "gimpicons.c:30:45: fatal error: icons/Default/gimp-icon-pixbufs.c:
No such file or directory" after commits :
ee512b610d
fa9e5b8f98
Fixed "ln: failed to create symbolic link ‘12/gimp-default-colors.png’:
File exists" by forcing new symlinking on creating get-default-colors.png
for Symbolic-inverted to prevent error during make.
2016-01-11 08:48:14 -05:00
ee512b610d icons: "Default" icon theme renamed to "Color".
Conveys well the duality of Color vs. Symbolic icons, terms usually
used by designers in recent design texts.
2016-01-11 03:20:13 +01:00
fa9e5b8f98 app: do not hardcode default theme and icon theme all over the code.
Create GIMP_CONFIG_DEFAULT_(ICON_)?THEME in gimpguiconfig.h to set
defaults in a single place, except for libgimpwidgets/ which cannot
include from app/.
2016-01-11 03:15:36 +01:00
ccd6e31673 libgimpwidgets: use g_printerr() not g_warning() for wrong icon theme paths 2016-01-04 00:30:51 +01:00
da1b4dac42 libgimpwidgets: missing link library for GetICMProfile() on Win32.
This function is available in gdi32 library.
https://msdn.microsoft.com/en-us/library/windows/desktop/dd316948%28v=vs.85%29.aspx
2015-12-29 18:43:41 +01:00
d4aa39a7cd app, libgimpwidgets, icons: rename mypaint brush icons and help ID
from "mybrush" to "mypaint brush".
2015-12-21 00:09:55 +01:00
a5eff27149 app: add new GimpData subclass GimpMybrush and infrastructure around it
- GimpContext API and property
- a GimpDataFactory
- List and grid views with GimpDataFactoryView
- actions and a context menu

None of this is connected to the actual tool yet, or depends on
libmypaint in any way.
2015-12-20 23:51:44 +01:00
a33daf99fe libgimpcolor: rename RGB and GRAY gimp_color_profile_new_*() functions
to be more consistent, as discussed in bug #756389.
2015-12-15 20:42:21 +01:00
71894bd787 libgimpwidgets: rename gimpstock.[ch] to gimpicons.[ch]
because stock is on its way out, so we better start renaming and
deprecating stuff sooner than later.
2015-12-12 20:44:46 +01:00
69f87bcc84 libgimpwidgets: be smarter when changing icon themes, and have fallbacks
Add gimp_stock_set_icon_theme() which can be called at any time, also
before gimp_stock_init(), in which case we avoid setting the configured
icon theme twice on startup. Call it from libgimp/gimpui.c and
from app/gui/icon-themes.c so the app and plug-ins use the same
icon theme.
2015-12-12 19:32:11 +01:00
5beb69d009 icons: new symbolic icon theme for GIMP.
Images originally created by Jakub Steiner and Barbara Muraus as the
"Art Libre" icon set.
The contributor jEsuSdA later worked on it.
It will now be available in the new icon theme selection through
preferences.
Many icons/size are still missing but this first commit makes a start
for complementary work.
2015-12-09 23:00:14 +01:00
6762bf5b9b Bug 759105 - Patch to add icon theme selection
Add support for custom icon themes much like custom theme
support. There is still work to be done but this is the
basic functionality.
2015-12-09 12:50:15 +01:00