Commit graph

2514 commits

Author SHA1 Message Date
Michael Natterer
80997a8646 Remove most GTK_ADJUSTMENT() and (GtkAdjutment *) casts
they are obsolete in GTK+ 3.x because GtkAdjustment cannot be passed
around as GtkObject any longer, GtkObject is gone.
2018-06-24 18:15:16 +02:00
Michael Natterer
7b54272a01 app, themes: make the color tag button in item properties smaller
and stop re-packing them into a hbox, simply change the original box'
orientation.
2018-06-19 23:22:50 +02:00
Michael Natterer
8c9c091021 Issue #701 - Add the ability to embed the GIMP built-in sRGB profile...
...upon exporting an image

Step 1: make it configurable just like "Export EXIF" etc.

app, libgimp: add "export-color-profile" config option

Add it to the preferences dialog, and pass it on to plug-ins in the
GPConfig message. Add gimp_export_color_profile() to libgimp.

Nothing uses this yet.
2018-06-18 02:19:41 +02:00
Michael Natterer
93d28ceccc Isse #1476 - strange behavior in Layer resize dialog
resize_dialog_new(): create the preview with "popup = TRUE", so we
really get a preview of layer size and not of the layer within the
image context like used for the layers dialog.
2018-06-17 15:33:53 +02:00
Michael Natterer
b36205176e app, libgimp*: remove the config option to disable tooltips
Also remove all traces of it from the plug-in protocol and raise the
protocol version to 0x0100 (we now allow features and therefore
version bumps in stable, and the master protocol version should always
be higher). Fix the code that aborts plug-in startup on protocol
version mismatch, we can't use gimp_message() because we have no
protocol.
2018-06-06 19:23:30 +02:00
Michael Natterer
e88fb8e9c7 app: remove all old font management code, switch to GimpFontFactory[View]
Biggest change in this commit is reordering stuff in GimpContext
because GimpFont is now a first class citizen.
2018-06-03 01:27:06 +02:00
Jehan
6aebd30de1 app: remove icon sizing preferences.
With GTK+3, high or low density is taken care by the screen scale
factor. Having a separate preferences for this is redundant, and likely
even wrong.
It may be interesting though to have a new preference later, which would
allow smaller scale icon sizing since some people like their icon
slightly smaller or bigger, and also when you are using screens whose
density is at a limit scale factor. Right now, this can be done through
themes, but a GUI settings may be interesting. If I add such feature,
let's just do it from scratch later.
2018-05-31 04:12:05 +02:00
Jehan
2e4f14decb app: fixing example icons in Preferences.
Use a cairo surface with scale factor in the list cell, instead of
pixbuf property, so that the example icon keeps sharpness even on high
density (when possible, i.e with vector icons, or available high res
version).
Also if an example icon was not set, search for the symbolic variant
first, then fallback to non-symbolic.
2018-05-30 21:17:36 +02:00
Michael Natterer
0ff95b66b7 Issue #1520 - GIMP 2.10 Crashes when trying to convert 8bit colour...
...mode image to 1 bit.

Don't try to remove unused colors from the mono black/white palette,
2018-05-30 02:16:54 +02:00
Michael Natterer
d57ab7faf2 libgimpwidgets: move all GimpSizeEntry members to private 2018-05-25 19:15:00 +02:00
Michael Natterer
6493020790 app: fishes now explode undeprecated 2018-05-23 12:19:40 +02:00
Michael Natterer
26ba39884c app: undeprecate stroke-dialog.c 2018-05-20 21:06:35 +02:00
Simon Budig
7d64cf62c6 libgimpwidgets: rename the _grid()-Variants of gimp_scale_entry_*
Adjust all plugins to follow accordingly.

This concludes the GtkTable'ocide.
2018-05-20 21:06:35 +02:00
Michael Natterer
491550ffbc app: undeprecate about-dialog.c, and clean out a lot of cruft 2018-05-20 21:06:34 +02:00
Michael Natterer
bdbec7941c Use the new macros from the last commit in all files
...and gone are the annoying warnings.
2018-05-20 21:06:34 +02:00
Michael Natterer
f7f329b7e2 app: the goats are invading again, and are almost undeprecated 2018-05-20 21:06:34 +02:00
Michael Natterer
58aa0092b9 libgimpmodule: move all GimpModuleDB members to private 2018-05-20 21:06:33 +02:00
Michael Natterer
73af1873a7 app: gdk_screen_get_monitor_workarea() -> gdk_monitor_get_workarea() 2018-05-20 21:06:33 +02:00
Michael Natterer
885f66158a app: kill all except one GtkAlignment, the tag popup one is a bit tricky 2018-05-20 21:06:33 +02:00
Simon Budig
4e8fbbe951 dialogs: fix two misbehaviours in the prefs dialog 2018-05-20 21:06:33 +02:00
Jehan
9fafb858bd app: do not run gtk_window_present() in about_dialog_create().
The window will be raised soon after anyway. No need to do it too early,
which makes setting a transient parent useless afterwards. In particular
we were still getting a "GtkDialog mapped without a transient parent"
message.
2018-05-20 21:06:33 +02:00
Jehan
7642715c17 app: allow setting parent for dialogs created by GimpDialogFactory.
Fixes a bunch of:
> Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
2018-05-20 21:06:33 +02:00
Simon Budig
a14723b9d8 dialogs: get rid of GtkTable 2018-05-20 21:06:33 +02:00
Simon Budig
c14df1fd4e preferences-dialog: get rid of GtkTable 2018-05-20 21:06:33 +02:00
Simon Budig
0e819225d1 dialogs: some table->grid conversion in the item dialogs 2018-05-20 21:06:32 +02:00
Simon Budig
72e63887ba libgimpwidgets: convert GimpSizeEntry to a GtkGrid. 2018-05-20 21:06:32 +02:00
Jehan
23649d65be app: allow to select if we prefer a dark variant of the current theme.
GTK+ has the concept of theme variants, and in particular if we prefer
the dark variant of a theme. This can be chosen globally but also
per-application. Make this choice customizable in the Theme tab of
Preferences.
By default, the dark variant will be prefered.
2018-05-20 21:06:30 +02:00
Michael Natterer
5ece7a8d1f Port a lot of stuff from GdkScreen/monitor_number to GdkMonitor
including some fixes for getting pointer coords, and needed
API changes in libgimpwidgets.
2018-05-20 21:06:30 +02:00
Michael Natterer
7bd6734a04 Get rid of all GtkAlignments, use GtkWidget align/margin instead 2018-05-20 21:06:30 +02:00
Michael Natterer
901c3ddcf8 Get rid of the deprecated gtk_icon_size_lookup_for_settings()
and use gtk_icon_size_lookup() instead.
2018-05-20 21:06:30 +02:00
Michael Natterer
1b3135ca95 Get rid of using GtkMisc API globally 2018-05-20 21:06:30 +02:00
Jehan
7b20173dc8 Bug 762279 - "Tip of the day" links opens two links.
Use the "activate-link" signal instead of "clicked" on tip links, so
that we can stop signal propagation.
Otherwise it opens "http://docs.gimp.org/" everytime.
2018-05-20 21:06:29 +02:00
Michael Natterer
52fe0dad60 Revert "Bug 762279 - "Tip of the day" links opens two links"
This reverts commit dc33afd95b.

That hack is not for gtk3...
2018-05-20 21:06:29 +02:00
Michael Natterer
de225a74a2 app: port the about dialog to GtkStyleContext 2018-05-20 21:06:28 +02:00
Michael Natterer
1d304ea273 app: s/gtk_widget_modify_font/gtk_widget_override_font/ 2018-05-20 21:06:27 +02:00
Michael Natterer
2a01159f0e app: port to GtkWidget::draw() 2018-05-20 21:06:26 +02:00
Michael Natterer
c7baa65843 app: s/GtkObject/GtkAdjustment/ in app/dialogs/ 2018-05-20 21:06:26 +02:00
Michael Natterer
384b116c15 app: clean up GimpPrefsBox and the prefs dialog a bit
Better API for getting properties of the current page, add missing
help IDs, fix the icon of the resolution calibrate dialog, ...
2018-05-09 01:47:23 +02:00
Michael Natterer
62279047b1 Bug 795763 - Update gimp.org links to https://
Update links to https:// in "About". the "Help" menu, and several
user-visible error messages.
2018-05-03 00:27:29 +02:00
Michael Natterer
4cc8481b66 app: get rid of a few forgotten stock-ids and new_from_stock() 2018-04-29 04:50:17 +02:00
Ell
95921427d5 app: remove multithreading warning from the preferences dialog
Since we're prepping for a release, it's a about time we've done
that.  I hereby pronounce multithreading support fit for general
use!
2018-04-25 10:55:11 -04: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
Michael Natterer
428110f63f app: remove non-cut/copy/paste functions from gimp-edit.[ch]
Move them to the new files gimpdrawable-edit.[ch] and
gimpimage-fade.[ch].
2018-04-18 23:48:33 +02:00
Michael Natterer
b0beb0197a Bug 795230 - Rename Blend tool and provide PDB compatibility
Rename the tool and its options, and the gradient sub-struct of paint
options.
2018-04-14 00:52:20 +02:00
Michael Natterer
99ea6f91e2 app: fix the build after the GimpGradientBlendColorSpace commit
Somehow, gimppalette-import.c was not rebuilt on my system,
leaving one gimp_gradient_get_color_at() unchanged.
2018-04-13 23:12:21 +02:00
Jehan
8a24de6557 app: fix dashboard help id.
It was using the errors dialog help id. Probably just copy-paste error.
2018-04-02 18:52:31 +02:00
Michael Natterer
fe932fe7ad Bug 794826 - Do not default to last used filter settings
Add GimpGuiConfig::filter-tool-use-last-settings wchich defaults to FALSE.

Honor the new option in gimp_gegl_procedure_execute_async() and add
it to prefs -> dialog defaults.
2018-04-01 14:41:20 +02:00
Michael Natterer
14a054e980 app: add a "Filter Dialogs" section to prefs -> dialog defaults 2018-04-01 14:15:13 +02:00
Michael Natterer
62ec4831db app: ...and a mnemonic. 2018-04-01 14:01:14 +02:00
Michael Natterer
44ce8b4dd8 app: a colon was missing after "Debug Policy" in preferences
and it's "Debug policy" (capitalization).
2018-04-01 13:58:42 +02:00
Edward E
019af3dacb file-open-location: don't close dialog if no file was opened 2018-04-01 12:40:57 +02:00
Edward E
a4b366f494 file-open-location: disable widgets only while opening a file 2018-04-01 12:40:57 +02:00
Edward E
33b7d8e334 file-open-location: create only one progress bar 2018-04-01 12:40:57 +02:00
Ell
c3efb1b0de app: don't show invisible actions in search dialog 2018-03-29 05:26:02 -04:00
Jehan
c49e34cf7e app: shorten to "Debug Policy" the long label in Preferences.
The text was too long and increasing the minimum width of Preferences
dialog.
2018-03-24 01:26:47 +01:00
Michael Natterer
374fee451c libgimpbase: consistent gimp_stack_trace namespace for stack trace functions
Change the rest of the source accordingly.
2018-02-22 12:35:43 +01:00
Jehan
8eb0dee0ee app: use the new gimp_utils_backtrace_available() in Preferences.
Instead of just checking for GDB/LLDB in path, use the new API which
also checks for the appropriate version of GDB.
2018-02-22 05:21:50 +01:00
Ell
5f1816aa01 app: extend initialism-based action search
A hidden feature of the action search dialog, is that actions can
be matched based on their label's initials.  E.g., "gb" will match
"Gaussian blur".  While very convenient, this feature is currently
limited to two-letter initialisms.

Extend initialism-based search, by matching arbitrarily-long
initialisms, and by allowing partial matches (with lesser
priority.)
2018-02-17 04:57:28 -05:00
Ell
2816695eda app: add gimp_action_history_is_blacklisted_action()
... and rename gimp_action_history_excluded_action() to
gimp_action_history_is_excluded_action().

is_blacklisted_action() determines whether an action should be
excluded from *both* the history and the search results, while
is_excluded_action() determines if an action should be excluded
only from the history.  This eliminates some redundancy across
gimpaction-history and action-search-dialog.
2018-02-17 04:57:28 -05:00
Jehan
18a5e41e8e app: test for gdb and lldb existence in Preferences with...
... g_find_program_in_path() instead of a test run.
I knew there was a `which` equivalency in glib but could no find it
anymore. I finally found it thanks to a comment by Rishi. :-)
2018-02-14 16:19:12 +01:00
Michael Natterer
539927ebfa app: replace all g_assert() by the newly added gimp_assert()
which is just a #define to g_assert for now, but can now easily be
turned into something that does some nicer debugging using our new
stack trace infrastructure. This commit also reverts all constructed()
functions to use assert again.
2018-02-11 22:23:10 +01:00
Jehan
7348f17828 app: debug preference always sensitive if backtrace() available.
If the backtrace() API is available, it should always be possible to
debug. Still, display a message whether or not gdb or lldb are present,
as preferred debugging solutions (much better traces).
2018-02-08 22:45:49 +01:00
Jehan
d5a67cb162 app: make debugging preference finer-grained than a boolean.
Replacing the boolean property "generate-backtrace" by an enum
"debug-policy". This property allows one to choose whether to debug
WARNING, CRITICAL and FATAL (crashes), or CRITICAL and FATAL only, or
only FATAL, or finally nothing.
By default, a stable release will debug CRITICAL and crashes, and
unstable builds will start debugging at WARNINGs.
The reason for the settings is that if you stumble upon a reccurring bug
in your workflow (and this bug is not major enough for data corruption,
and "you can live with it"), you still have to wait for a new release.
At some point, you may want to disable getting a debug dialog, at least
temporarily. Oppositely, even when using a stable build, you may want to
obtain debug info for lesser issues, even WARNINGs, if you wish to help
the GIMP project.
It can be argued though whether the value GIMP_DEBUG_POLICY_NEVER is
really useful. There is nothing to gain from refusing debugging info
when the software crashed anyway. But I could still imagine that someone
is not interested in helping at all. It's sad but not like we are going
to force people to report. Let's just allow disabling the whole
debugging system.
2018-02-08 20:48:16 +01:00
Michael Natterer
11df85d783 app: improve/fix wording in Prefs -> Debugging
and use the gimp-wilber-eek icon, was tempted to use gimp-toilet-paper :)
2018-02-01 12:54:52 +01:00
Jehan
986b3fd70a app: remove duplicate include. 2018-01-29 01:48:30 +01:00
Jehan
fe3cf08094 app, tools: title capitalize the debug dialog titles.
Also rename it to "GIMP Debug" and "GIMP Crash Debug" for continuable
errors and fatal errors respectively.
2018-01-28 17:31:47 +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
270730d5cf app: add a debugging page in preferences.
Move the backtracing settings there. This page may also be used later
for auto-saving on crashes, as discussed in bug 792787, or similar
features.
2018-01-28 15:43:07 +01:00
Jehan
eab961c9bb app: test G_OS_WIN32 rather than G_OS_UNIX for new backtrace feature.
This is just a bit more consistent with existing code. Also build the
gimpdebug tool only when GIMP_CONSOLE_COMPILATION is not set and run
when --no-interface CLI option is not set since it is a GUI tool.
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
Jehan
9fdf35550b app: new error dialog to backtrace and encourage people to report bugs.
GIMP will now try to get a backtrace (on Unix machines only for now,
using g_on_error_stack_trace(); for Windows, we will likely have to look
into DrMinGW).
This is now applied to CRITICAL errors only, which usually means major
bugs but are currently mostly hidden unless you run GIMP in terminal. We
limit to 3 backtraces, because many CRITICAL typically get into domino
effect and cause more CRITICALs (for instance when a g_return*_if_fail()
returns too early).
2018-01-28 15:43:07 +01:00
Jehan
c49b8463bd app: adding metadata handling as "Export Policies" in preferences.
These preferences are currently not used anywhere. This is the next
step.
2018-01-11 22:17:32 +01:00
Alexandre Prokoudine
e75ced91a7 Preferences: add toolbox-wilber toggle
Oh blasphemy! The Wilber logo in the toolbox can now be disabled
directly via the Preferences dialog (on the Toolbox page).

The logo is staying enabled by default though. Long live Wilber!
2018-01-06 07:30:07 +03:00
Michael Natterer
135f58d3ae Bug 790002 - Remember last-used "Select color profile from disk" location
Add "color-profile-path" to GimpDialogConfig to remember the last-used
path in any profile chooser dialog.

Whenever a GimpColorProfileChooserDialog is created, call a new
gimpwidgets-utils helper function that connects to the dialog's "show"
and "response" signals and makes sure "color-profile-path" is set on
the dialog if it doesn't have a current folder already, and sets the
property back to the config object when a profile was actually chosen
from disk.
2018-01-02 23:09:00 +01:00
Michael Natterer
c43be61c08 Bug 788423 - Fade left-right opacity slider doesn't work: value changes to 1.0
Use a GimpSpinScale widget instead of scale entry cruft, it handles
the model vs. view factor of 100.0 correctly. Also modernize the GUI
without using a table.
2018-01-01 17:57:46 +01:00
Ell
981e8dcdfe app, menus, icons: add dashboard dockable
The dashboard dockable shows the current GEGL cache and swap sizes,
and their recent history.  It has options to control the update
rate and history duration of the data, and an option to warn (by
raising/blinking the dialog) when the swap size approaches its
limit.
2017-12-18 19:42:23 -05:00
Ell
0beef7d97d app: in GimpItemTreeView, use color tag of parent for children with no tag
Add gimp_item_get_merged_color_tag(), which returns the color tag
of the nearest ancestor (including the current item) that has a
color tag other than NONE.  Use this function in GimpItemTreeView,
instead of gimp_item_get_color_tag(), to set the cell color of
items, so that item's with a NONE color tag inherit the color of
their parent.  Add a boolean "inherited" parameter to
gimp_get_color_tag_color(), which indicates if the color tag is the
item's actual color tag, or an inherited color tag, and modify the
returned color accordingly, so that inherited colors are less
saturated/lighter than non-inherited ones.
2017-12-07 17:02:05 -05:00
Ell
a9ca354d26 app: add tool gui to the blend tool
To be used by the blend tool gradient editor to edit the gradient
endpoint/stop/midpoint properties corresponding to the selected
handle.

The GUI is currently empty; the following commits add its contents.
2017-10-09 12:48:54 -04:00
Jehan
2a0c610e02 app: don't show the manual language list when no manuals are installed. 2017-10-04 00:36:45 +02:00
Jehan
3061333fdb app: the manual language can now be customized through the Preferences. 2017-10-03 20:49:27 +02:00
Michael Natterer
0cb3e75f79 app: use a lot of g_clear_object() and g_clear_pointer()
More than 2000 lines of code less in app/, instead of

if (instance->member)
  {
    g_object_unref/g_free/g_whatever (instance->member);
    instance->member = NULL;
  }

we now simply use

g_clear_object/pointer (&instance->member);
2017-07-15 18:42:44 +02:00
Ell
27d5dcf20a app: don't remove dirname in save dialog when adding file extension
When the user provides a filename without an extension in the save
dialog, we add one for them, update the filename in the dialog, and
retry.  However, the updated filename is made up of only the
basename, leaving out the dirname part, if specified.  This means
that if the user enters "/somedir/somefile", the new filename
becomes "somefile.xcf", which refers to the current directory,
instead of "somedir".

Fix this by maintaining the dirname when adding a file extension.
2017-07-09 14:45:01 -04:00
Michael Natterer
1f5739de57 app: set the number of threads on GeglConfig again, it needs testing
- enable the setting code in gimp-gegl.c again
- but set the default to one thread in GimpGeglConfig, with a CPP warning
- rename "processors" to "threads" in the GUI
- add a warning box about unexpected results when increasing #threads
2017-06-28 19:05:58 +02:00
Michael Natterer
23f31b2ca3 app: remove the handle transform tool toggle from preferences
It's out of the playground now.
2017-06-28 18:57:57 +02:00
Øyvind Kolås
f3c999c80b app: scale remove outdated warning about scaling indexed images
Since the goat invasion, GIMP and GEGL have been using the set resampler and
map the resulting colors to the closest palette entries.
2017-06-24 19:06:07 +02:00
Michael Natterer
4f903a69b3 app: set the palette import dialog's "# Colors" scale to logarithmic
because the scale is useless otherwise with its range of 2..10000,
and because I needed a test case for the next commit (the
gimp_scale_entry_set_logarithmic() API was unused).
2017-05-18 18:21:51 +02:00
Michael Natterer
560340e8d6 app, pdb, libgimp: make the raw image importer configurable
Add "import-raw-plug-in" to gimprc, and a new procedure
gimp_register_file_handler_raw(). On startup, remove all load
procedures that are marked as "handles raw" but are not implemented by
the configured plug-in. Add the list of available plug-ins to prefs ->
import/export. Register all file-darktable procedures as handling raw.
2017-05-04 20:38:58 +02:00
Michael Natterer
4455cd984d Bug 779620 - "Advanced Color Options" in filter dialogs is confusing
Hide "Advanced Color Options" by default, and add a toggle to show
them to prefs -> color management.
2017-05-01 02:09:27 +02:00
Jehan
8fee058c1f app: fixing 2 argument type build warnings.
Introduced in commit 5e7d9d8 and completely overlooked by myself!
2017-03-29 15:30:36 +02:00
Jehan
5e7d9d8b00 Bug 772785 - Quit dialog should exit when all the images in the list...
... have been saved.
No need to keep a list of 0 images when the creator requested a quit or
close-all actions and manually went through the list to save all
remaining images. Yet one can still cancel the quit/close-all action by
hitting Esc (or Cancel button) during the last save, since it is an
idle source action.
2017-03-27 22:54:53 +02:00
Michael Natterer
a0521a520f app: change the "XCF compat" stuff to "XCF compression"
Both in the GimpImage API and in the GUI. The toggle in the save
dialog now controls ZLIB compression directly. Changed the various
info labels accordingly. Ditch the XCF parasite that saved the XCF
compat mode.
2017-03-23 18:03:27 +01:00
Michael Natterer
b3354ba870 app: move monitor xres, yres back to their local scope in prefs 2017-03-23 16:04:14 +01:00
Jehan
758836e49b app: base the stroke width defaults on the y resolution defaults.
Commit 4beff2f was basing it on the screen y PPI but that is not really
consistent or logical actually. Since the actual stroke dialog uses the
y resolution of the current image, it makes sense that the generic
stroke defaults in the preferences should use the y resolution of the
default image.
2017-03-23 15:53:12 +01:00
Jehan
4beff2fa60 app: base the line width defaults for strokes on the screen resolution.
This value could be based on either the x or y resolution, or maybe some
kind of mean values. It could also be based off the print resolution of
any image (if the user sets a physical dimension, the actual pixel width
will vary depending on the print resolution). There is no actual "good"
answer here. But any of these values will be better than a default 96.0.
2017-03-23 01:56:59 +01:00
Ell
c97209ba4a app: fix abbreviated commit hashes
The abbreviated commit hash we show in the shell and the about
dialog is currently just the last 7 characters of 'git describe',
based on the assumption that abbreviated hashes are always 7-digits
long.  When the hash is longer than that, we're just showing a
nonsense commit.

This was never a good idea, since users can override this, and
since disambiguation can result in longer hashes, but since git
2.11, the default abbreviated hash length is determined based on
the size of the repository, which currently results in 10 digits
for us.

Let's just do it right.
2017-03-21 23:05:42 -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
d603b70a69 app: pack the icon size scale into the right vbox in the prefs dialog 2017-03-12 22:32:28 +01:00
Jehan
cfae83623c Bug 745835 - Small icons as Option, not theme
Allow overriding icon sizes set in themes from the preferences.
This initial commit updates only toolbox icons. More to come.
4 options are available: small, medium, large and huge (the later would
likely be useful for HiDPI screens).
Uses a new widget GimpIconSizeScale.
2017-03-11 02:51:59 +01:00
Michael Natterer
dda54c1df8 Deprecate stock items for good and change all icon defines to GIMP_ICON_*
Try to sort all GIMP_ICON_* defines into FDO categories like in
https://specifications.freedesktop.org/icon-naming-spec/latest/ar01s04.html

Add defines for all icons we override, rename some icons to their FDO
standard names, and mark the ones we duplicate with a comment so we
don't forget to rename those to standard names in 3.0.
2017-03-05 16:01:59 +01:00
Michael Natterer
91e861adcc libgimpwidgets, *: deprecating stock IDs for good, part one...
Remove all stock items added since 2.8, restore accidentially removed
ones, and rename the newly added GIMP_STOCK_* defines to GIMP_ICON_*.

(will move to having GIMP_ICON_* defines instead of magic hardcoded
strings for all icons).
2017-02-28 19:31:27 +01:00
Michael Natterer
fb3d1e4508 app, pdb, libgimp: rename values of enum GimpConvertPaletteType 2017-02-26 20:55:00 +01:00
Ell
78836afffe app: fix initial values of blend/composite space/mode combos ...
... in the layer options dialog
2017-02-26 09:48:49 -05:00
Michael Natterer
ac36497c2a app: correctly set the initial sensitivity in the layer options dialog 2017-02-20 01:02:21 +01:00
Michael Natterer
f538eb2912 app: add the profile import policy to prefs -> import
and indent the "dither" setting because it's a sub-setting of
"promote to float".
2017-02-18 01:57:28 +01:00
Michael Natterer
b3f802a0b7 Bug 778523 - Optionally add alpha to layers of imported images
Add "Add alpha to all layers of imported images" to prefs -> import
and honor the setting in file_import_image().
2017-02-17 22:07:43 +01:00
Ell
e30d235ede app: derive the layer-mode menu layout entirely from the info arrays
Replace the 'with-behind' and 'with-replace' properties with a
single 'context' property, and use it to select the included
layer modes, according to their context mask.

Add a dummy GIMP_LAYER_MODE_SEPARATOR value to the GimpLayerMode
enum, and use it to explicitly mark the menu separators in the
layer-mode group arrays; add separators to the layer-mode menu
accordingly.

Update the rest of the code to use 'context' instead of 'with-behind'
and 'with-replace'.  In particular, in the layers and layer options
dialogs, select the right context based on whether or not the
selected layer is a group.
2017-02-17 06:26:32 -05:00
Michael Natterer
cb733efe34 app: add layer mode flags to mark blend and compositing modes immutable
set all legacy modes to completely immutable and the LAB modes'
blend mode to immutable. Change GimpLayer setters and the UI
accordingly. Remove the LAB color spaces from the GUI, they can
only be used with the LAB blend modes anyway and not changed.
2017-02-13 22:12:39 +01:00
Michael Natterer
8634b5cbc3 app: make layer blend color space and compositing color space configurable
...they say it's going to get worse before it gets better...
2017-02-12 23:49:26 +01:00
Michael Natterer
7da7bab09c app: get rid of icons in dialog buttons (use labels not stock IDs)
Nobody has them anymore, and they are deprecated in GTK+ 3.x. This
also fixes all conflicting mnemonics except those I missed, but we can
fix them now.
2017-02-12 16:18:54 +01:00
Michael Natterer
2a96d598c3 app: add internal and PDB API and UI to control a layer's composite mode
Largely based on a patch by Ell, with the enum type renamed and
various small changes. Adds another axis of configurability to the
existing layer mode madness, and is WIP too.
2017-02-02 00:38:25 +01:00
Michael Natterer
c58d471af7 app: remove gimp_paint_mode_menu_new() and use GimpLayerModeBox
I know this looks absolutely horrible, please spare me comments about
that. This commit has the purpose to let everybody experiment with the
new modes, and suggest improvements of the GimpLayerModeBox widget; we
need *some* way of controlling the new layer mode madness.
2017-01-30 13:24:35 +01:00
Alexandre Prokoudine
0aa7f8f430 Fix a user-visible typo 2017-01-26 02:22:37 +03:00
Alexandre Prokoudine
17a805bd32 Add missing mnemonics for Keep/Convert buttons 2017-01-24 22:11:46 +03:00
Michael Natterer
27519fc798 Bug 734657 - Import as 32-bit floating-point linear by default
Optionally convert all imported (not XCFs) images to 32 bit linear
floating point, and optionally add a little noise in order to
distribute the colors minimally. The new options are on a new "Image
Import & Export" prefs page that needs a new icon. Original dithering
patch by pippin.
2017-01-22 22:06:30 +01:00
Michael Natterer
66060e3307 app, libgimp*, plug-ins: replace enum GimpLayerModeEffects by GimpLayerMode
with proper value names. Mark most values as _BROKEN because they use
weird alpha compositing that has to die. Move GimpLayerModeEffects to
libgimpbase, deprecate it, and set it as compat enum for GimpLayerMode.
Add the GimpLayerModeEffects values as compat constants to script-fu
and pygimp.
2017-01-08 23:00:19 +01:00
Øyvind Kolås
5627ad589f app: use gegl:dither instead of gegl:reduction 2016-12-24 19:40:12 +01:00
Jehan
3fa016fb4b app: clean out tab indentations. 2016-12-21 04:05:32 +01:00
Michael Natterer
aaa9ae1ada Bug 698278 - Preferences|Reset ignores /etc/gimp/2.0/gimprc
Make gimp_rc_load() public as gimp_rc_load_system() and
gimp_rc_load_user() and call gimp_rc_load_system() from the
preferences dialog's reset code.
2016-12-11 20:19:42 +01:00
Michael Natterer
2e63533602 app: add GimpDockContainer::get_dialog_factory()
and use it where possible instead of gimp_dialog_factory_get_singleton().
Also reduce using this function in some other places.
2016-11-25 13:26:08 +01:00
Michael Natterer
6131b00b54 Bug 774890 - "Keyboard shortcuts" dialog does not show all actions
Revert "app: action search should search accross all available actions."

This reverts commit 53b3673bd8.

Had to revert these two commits, quoting comment 6 of the bug:

Thinking again, that entire change is unfortunately wrong, the only
right UI manager is in fact

gimp_ui_managers_from_name ("<Image>")->data

because it's the global popup <Image> UI manager which is independent
of a display and it always in the right state for the currently
active image, all other UI managers are wrong.
2016-11-24 21:08:34 +01:00
Michael Natterer
1517a0952b Bug 774890 - "Keyboard shortcuts" dialog does not show all actions
Revert "app: do not show the actions from <Dockable> GimpUIManager."

This reverts commit b795ae2296.
2016-11-24 21:07:53 +01:00
Jehan
b795ae2296 app: do not show the actions from <Dockable> GimpUIManager.
<Dockable> has this whole list of actions named similarly to dialogs-*
actions, and we don't want these to take precedence, especially since
they would always create a new dock instead of just showing the existing
one if already present.
Also fix the redundancy check on already added actions.
2016-11-23 07:58:18 +01:00
Jehan
53b3673bd8 app: action search should search accross all available actions.
It was only searching through the "<Image>" GimpUIManager, so several
action groups were ignored, for instance all palettes-* actions.
2016-11-23 04:01:30 +01:00
Jehan
754034146d app: plug-in-repeat and plug-in-reshow were renamed...
... in commit ac50da2a, respectively into filters-repeat and
filters-reshow.
2016-11-22 22:55:50 +01:00
Jehan
ced32ceabf app: some tab cleaning. 2016-11-22 22:22:59 +01:00
Michael Natterer
7abe5ddb95 app: move the gamma setting to the top of the convert precision dialog
and don't show the dithering options if they can't be selected,
instead of just making them insensitive.
2016-11-10 23:43:27 +01:00
Michael Natterer
ccf151446d app: cleanup enum order and comments in the dither GUI code 2016-11-10 23:19:12 +01:00
Øyvind Kolås
30a8edeab5 app: treat half precision float the same as single and double
.. which is to say encourage use of linear gamma, by making it one fewer step
to end up in linear than gamma corrected.
2016-11-10 15:20:18 +01:00
Michael Natterer
da49a3fadf app: always default to linear for float precision and gamma for 8-bit
In the "New Image" and "Convert Precision" dialogs. The "Gamma/Linear"
switches get adjusted automatically to the new defaults, but can be
changed manually.
2016-11-10 13:50:56 +01:00
Michael Natterer
0631f1c629 Bug 735895 - Precision Conversion "Dithering" dialog
Don't offer dithering options when converting to 16 bit, it doesn't
make much sense to dither for anything but 8 bit. Thanks to Elle for
testing that this assumption is indeed true.

Use a properly commented #define instead of just a hardcoded "8 bits"
to make clear that this is a pure GUI "restriction".
2016-11-10 12:14:40 +01:00
Michael Natterer
e3115f1565 Bug 774155 - gimp crashes on pressing OK in grid configuration
Pass the right user_data to grid_dialog_response().

Unrelated: call gimp_image_flush() so the menus get updated after
confirming the new grid.
2016-11-10 01:06:59 +01:00
Michael Natterer
91df48ef37 Bug 735895 - Precision Conversion "Dithering" dialog
Disable the convert precision dialog's dithering controls when
converting to higher bit depths o to anything > 16 bit.

Make sure the disabled dithering widgets always says "None", which
implies duplicating the bit depth checking logic in both the dialog
and its callback, in order to protect the values in GimpDialogConfig
from being overwritten by NONE.
2016-11-09 13:10:56 +01:00
Hartmut Kuhse
146b7bde86 app: typo: make string translatable 2016-11-04 16:23:33 +01:00
Hartmut Kuhse
4d1dd479ca Revert "Update German translation"
This reverts commit 750aa5a495.
2016-11-04 15:44:59 +01:00
Hartmut Kuhse
750aa5a495 Update German translation 2016-11-04 15:03:46 +01:00
Michael Natterer
bc6679974b app: clean up template-options-dialog like other dialogs 2016-10-30 20:54:47 +01:00
Michael Natterer
9f9307edcb app: color manage the new color tag color areas 2016-10-30 18:05:57 +01:00
Michael Natterer
31fcd79dd9 Bug 769738 - Add color tags/labels for layers/channels/paths
Add property "color-tag" of type enum GimpColorTag to GimpItem so all
layers, channels and paths can be tagged with a color.

For interoperability, use the color list from Krita which is a
superset of Photoshop's colors.

Features a "Color Tag" submenu in the layers, channels and paths
menus, a row of color radio buttons in the properties dialogs,
undo and PDB API.

As a side effect, some common code is now factores out into
items-actions.[ch] and items-commands.[ch] which adds visible, linked
and lock actions for layers and channels.
2016-10-29 17:02:16 +02:00
Michael Natterer
440a1bae82 app: one more round of general dialog cleanup
- consistent coding style
- hide public structs
- add callbacks to move logic out of app/dialogs/
2016-10-27 21:26:07 +02:00
Michael Natterer
f47c012ab5 app: fix layer-options-dialog.c return width and height again
Being able to create layers is important...
2016-10-27 21:00:14 +02:00
Michael Natterer
b81b60950b app: bring the "Switches" column to the channel and path properties dialogs
Introduce item-options-dialog.[ch] which abstracts this away and use
it from the layer, channel, vectors options dialogs. This is all
pretty ugly but better than duplicating that code three times. The
vector-options-dialog is now completely pointless but I kept it anyway
for now, let's see what unique path options we come up with.
2016-10-26 16:51:56 +02:00
Alexandre Prokoudine
1133a8bff3 Makes 'Switches' in the Layer Attributes dialog translatable 2016-10-25 01:09:29 +03:00
Michael Natterer
9a969a2b53 Bug 770901 - Improve the "New Layer" and "Layer Attributes" dialogs
Add toggles for visible, linked, lock pixels, lock position, lock alpha.
2016-10-23 22:45:08 +02:00
Michael Natterer
3518a15064 Bug 770901 - Improve the "New Layer" and "Layer Attributes" dialogs
Add "Mode", "Opacity" and "Offset" controls to the dialogs. Remember
the "New Layer" mode and opacity in GimpDialogConfig.

Also addresses bug #361810.
2016-10-21 22:54:10 +02:00
Michael Natterer
34eff7322e Bug 599573 - Remember dialog defaults between Gimp sessions
Add resize and fill options for the "Layer Boundary Size" and
"Canvas Size" dialogs to GimpDialogConfig.
2016-10-20 00:31:59 +02:00
Michael Natterer
bfeb93afe6 app: add a tooltip to the resize dialog's "resize text layers" toggle
"Resizing text layers will make them uneditable"
2016-10-19 12:56:50 +02:00
Michael Natterer
b8bb52b721 Bug 773058 - Enable grid views of dynamics and tool presets 2016-10-17 18:43:22 +02:00
Michael Natterer
997ae1e28b Bug 764024 - Allow to choose fill color when resizing layers and images
Add a GimpFillType argument to GimpItem::resize() and fill type
widgets to the canvas and layer resize dialogs. Fill the new parts of
the drawable according to fill type in gimp_drawable_resize(). Make
sure places that need the old behavior get GIMP_FILL_TRANSPARENT
passed by hardcoding it in the GimpItem::resize() implemetations of
channel, mask, selection etc.
2016-10-10 00:02:16 +02:00
Michael Natterer
f027bf53ab app: clean up the palette-import-dialog in the spirit of recent dialog cleanup 2016-10-09 21:08:21 +02:00
Michael Natterer
46b73bb1fa Bug 772541 - change Quick Mask Attributes mask opacity slider
Use a GimpSpinScale in channel-options-dialog.c and clean up the
dialog layout. Affects the "Quick Mask Attributes", "New Channel" and
"Channel Attributes" dialogs.
2016-10-08 17:00:38 +02:00
Michael Natterer
439a3ff7bd Bug 667862 - Allow mouse to optionally configure tablet devices
Add new setting GimpGuiConfig:devices-share-tool. When TRUE, we never
copy any properties between the user context and the GimpDeviceInfo's
context, so no tool or anything changes.

We do however still keep track of the active device so the setting can
be enabled/disabled at any time. Also hide GimpDeviceStatus' tool,
brush etc. indicators in "shared" mode.
2016-10-04 22:32:08 +02:00
Jehan
8aa0a04854 app: keep focus on the quit dialog when saving.
Otherwise the quit dialog is still in front yet it has no focus and
one doesn't see this immediately.
Hitting ctrl-d to exit and ignore any subsequent files for instance
duplicates the current active image instead.
2016-10-04 12:15:41 +02:00
Jehan
f67bc227dc app: set active shell on image cell selection in quit dialog...
... not on activation (i.e. raise on single click rather than double
click).
2016-10-04 11:42:38 +02:00
Michael Natterer
de87b0ac68 app: disconnect the "add" and "remove" handlers on dialog destruction
Broke this in the last commit.
2016-10-02 20:36:14 +02:00
Michael Natterer
f8d816cb96 app: some cleanup in quit-dialog.c
Rename "dialog" variables to "private" like in the other recently
cleaned up dialogs. Use less complicated code when connecting to the
container of dirty images.
2016-10-02 18:10:50 +02:00
Jehan
3943d9fe63 app: give focus back to quit dialog after changing active shell.
Otherwise keyboard interaction (like hitting Escape or ctrl-d) ends up
broken and you may not realize immediately the dialog lost focus since
it is still the top window.
2016-10-02 04:10:26 +02:00
Jehan
9e9955480b app: add an extracted comment for translators on the quit dialog's text.
"There is one image" should not necessarily be translated to '1' in
other languages. It depends if their singular applies only to 1, like
in English. For instance in French, it can also apply to 0, so I fixed
the French translation.
2016-10-02 00:26:37 +02:00
Michael Natterer
0089a017f0 Bug 706309 - Add a “Save As” button to the “Quit GIMP” dialog
Add GimpCellRendererButton and use it to add a "Save" icon to each row
of dirty images. Click invokes the "edit-save" action, shift-click
invokes "edit-save-as". Also add a tooltip for the icon button.

Involves minor changes to GimpContainerTreeView to allow
GimpCellRendererButton to be added, and to allow external
"query-tooltip" handlers to run.
2016-10-01 21:00:39 +02:00
Michael Natterer
3e84c551de app: remember the size of the prefs dialog 2016-10-01 00:20:00 +02:00
Michael Natterer
eeb9364445 app: fix capitalization in prefs frame title 2016-10-01 00:19:37 +02:00
Michael Natterer
beb3279bf2 Bug 320447 - fast switching between "color managed display" and "softproof"
Add a SELECT_SOFTPROOF_PROFILE mode to the color profile dialog and
use it to select a profile from a newly added "Soft-Proofing Profile..."
menu item in view -> color management.
2016-09-30 20:56:04 +02:00
Michael Natterer
2019756747 app: add the chosen GFile to GimpColorProfileCallback 2016-09-29 23:06:46 +02:00
Michael Natterer
edc903ca32 app: add a callback to the color profile dialog
and move the image modifying calls to image-commands.c
2016-09-29 22:43:37 +02:00
Michael Natterer
a6b6259b22 Bug 599573 - Remember dialog defaults between Gimp sessions
Remember the 'Indexed Color Conversion' dialog settings in
GimpDialogConfig.
2016-09-28 00:31:59 +02:00
Michael Natterer
009417e450 app: reorder and rename indexed conversion parameters to make more sense 2016-09-27 23:51:33 +02:00
Michael Natterer
d5f34e7ce5 app: rename indexed conversion dither option variables and parameters 2016-09-27 22:49:05 +02:00
Michael Natterer
f43760aea6 app: add a callback to the convert indexed dialog
and call gimp_image_convert_indexed() in image-commands.c where it
belongs. Also remember the default values there, they will to to
GimpDialogConfig next.
2016-09-27 15:43:25 +02:00
Michael Natterer
0932386d1b app: add a callback to the stroke dialog
and move the actual stroking code to select-commands.c,
vectors-commands.c and gimpvectorstool.c. Remember the active drawable
so the stroke always happens on the drawable the dialog was invoked
with.
2016-09-27 11:15:52 +02:00
Michael Natterer
905bb370bd app: add a callback to the fill dialog
and move the actual filling code to select-commands.c and
vectors-commands.c. Remember the active drawable so the fill always
happens on the drawable the dialog was invoked with.
2016-09-27 00:01:11 +02:00
Michael Natterer
bbbfe5cafc app: add a callback to the offset dialog
and move the actual offset call to drawable-commands.c.
2016-09-26 23:08:29 +02:00
Michael Natterer
2a04cc91a2 app: add a callback to the convert precision dialog
and move the image manipulation code out of convert-precision-dialog.c
into image-commands.c where it belongs.
2016-09-26 22:44:34 +02:00
Michael Natterer
98232c25a5 Bug 735895 - Precision Conversion "Dithering" dialog
Remember the convert precision dialog's dithering options in
GimpDialogConfig. Also addresses bug 599573.
2016-09-26 17:38:26 +02:00
Michael Natterer
ec64dbb3b7 app: also reset the profile import policy when resetting color management 2016-09-26 00:56:40 +02:00
Michael Natterer
28c0e752b2 app: use prefs_file_chooser_button_add() for the temp and swap paths 2016-09-26 00:23:08 +02:00
Michael Natterer
f07b9e17cc Bug 599573 - Remember dialog defaults between Gimp sessions
Remember the "Export Paths" and "Import Paths" dialog settings in
GimpDialogConfig, including their last used folders.
2016-09-26 00:16:47 +02:00
Michael Natterer
12428ea7d7 app: add dialogs_destroy_dialog(), destroys an attached dialog by its key 2016-09-25 01:23:55 +02:00
Michael Natterer
8ab530ffc0 Bug 599573 - Remember dialog defaults between Gimp sessions
Forgot to add the "merge visible layers" and "convert to color
profile" settings to prefs' "Dialog Defaults" page.
2016-09-25 00:33:58 +02:00
Michael Natterer
da23240478 app: use gimp_enum_radio_frame_new_with_range() in the merge layers dialog
instead of "manually" building the widgets using
gimp_int_radio_group_new().
2016-09-25 00:31:41 +02:00
Michael Natterer
3c7fcf4c58 Bug 599573 - Remember dialog defaults between Gimp sessions
Remember the "Convert to Color Profile" dialog's "intent" and "black
point compensation" in GimpDialogConfig.
2016-09-24 22:54:42 +02:00
Michael Natterer
e703f8482e app: make the ChannelOptionsDialog private
and provide a custom callback instead. Also attach the "New Layer",
"Edit Layer Attributes" and "Configure Quick Mask" dialogs to their
image/channel.
2016-09-24 22:10:32 +02:00
Michael Natterer
c2f264f5ca app: make the LayerOptionsDialog private
and provide a custom callback instead. Also attach the "New Layer"
and "Edit Layer Attributes" to their image/layer.
2016-09-24 21:10:54 +02:00
Michael Natterer
2522c7ed02 app: make the VectorsOptionsDialog private
and provide a custom callback instead. Also attach the "New Path"
and "Edit Path Attributes" to their image/path.
2016-09-24 20:32:44 +02:00
Michael Natterer
aba0b03b92 app: reorder arguments of layer,channel,vectors_dialog_new()
So common ones are before dialog-specific ones.
2016-09-24 16:05:39 +02:00
Michael Natterer
8a59640b1b app: remove helper struct ImageResizeOptions
Instead, pass a GimpContext in GimpResizeCallback, it's needed
in all callbacks anyway.
2016-09-24 15:07:04 +02:00
Michael Natterer
14fc49a001 app: make ImageMergeLayersDialog private and provide a cutom callback instead
and attach the dialog to the image so we can't have multiple dialogs.
2016-09-23 19:44:11 +02:00
Michael Natterer
41a64b7a63 app: make the LayerAddMaskDialog struct private
Instead, provide a custom GimpAddMaskCallback, connect to "response"
internally and call the callback. Takes clutter out of layers-commands.c.
Also attach the dialog to the layer so we don't show multiple add
mask dialogs. Should do the same to all dialogs with public structs,
the custom callback approach keep things more encapsulated.
2016-09-23 14:35:14 +02:00
Michael Natterer
7b0307d22d app: add preferences-dialog-utils.[ch]
with some code from preferences-dialog.c, the file was way too large
(it still is...)
2016-09-22 19:15:42 +02:00
Michael Natterer
9645f9039f app: make "Color Management" and "Dialog Defaults" resettable individually 2016-09-22 18:54:18 +02: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
61c260c727 app: add a trivial attach-dialog-to-arbitrary-object utility
Namely dialogs_attach_dialog(), _detach_dialog(), _get_dialog()

So we don't create the same dialogs multiple times, but raise the
already existing ones. Port some places that did this manually
to the new functions, and use it for many other dialogs.
2016-09-12 00:07:41 +02:00
Michael Natterer
4df9a1d568 Get rid of gtk_misc_set_alignment(label) and use gtk_label_set_x,yalign() 2016-09-08 19:11:20 +02:00
Timm Bäder
f4f7b894ed app: fix position of "inline" keyword in about-dialog.c 2016-09-07 20:23:36 +02:00
Michael Natterer
308efbb514 Bug 767830 - Help browser does not launch on OS X
Try harder to show help when webkit is missing or the help browser
won't start:

- offer to switch to the web browser when the help browser is
  present, but won't start for some reason
- in prefs, don't bother showing the help browser GUI when webkit
  is missing, otherwise show a warning label if the help browser
  is not installed even though webkit is there. Switch to the web
  browser in both cases (modified patch from lisanet)
- add OS X replacement for gtk_show_uri() in plug-in-web-browser
  (modified patch from lisanet)
2016-09-06 20:51:47 +02:00
Jehan
6c674e973c app, libgimp*, plug-ins, icons: revert icon names into freedesktop...
... standard icon names and GTK+ icon names as second choice.
We should only use GIMP specific icon names as last resort, when there
is no standard or GTK+ names dedicated to the function.
This is made possible thanks to commit 3cc77b0.

s/gimp-document-recent/document-open-recent/
s/gimp-indent/format-indent-more/
s/gimp-next/go-next/
s/gimp-previous/go-previous/
s/gimp-save/document-save/
s/gimp-save-as/document-save-as/
s/gimp-revert/document-revert/
s/gimp-open/document-open/
s/gimp-document-recent/document-open-recent/
s/gimp-quit/window-close/ ou s/gimp-quit/application-exit/
s/gimp-warning/dialog-warning/
s/gimp-edit-clear/edit-clear/

s/gimp-justify-.*/gtk-justify-.*/
s/gimp-font/gtk-select-font/
s/gimp-color-palette/gtk-select-color/
s/gimp-cancel/gtk-cancel/
2016-09-03 15:49:29 +02:00
Massimo Valentini
3cc77b03bf Bug 759904: Some icons can't be set from the icon theme
make it possible to use themed standard named icons
so to have also gtk dialogs show icons in the same style
as GIMP ui.
2016-09-02 12:30:49 +02:00
Michael Natterer
0b054f00f4 app: simplify preferences-dialog.c by adding prefs_entry_add()
also add a GimpContext* parameter to prefs_color_button_add()
and call gimp_color_panel_set_context() for the caller.
2016-08-29 17:38:33 +02:00
Michael Natterer
dfa390fd95 Bug 599573 - Remember dialog defaults between Gimp sessions
Remember the "Feather Selection", "Grow Selection", "Shrink Selection"
and "Border Selection" dialog settings in GimpDialogConfig.
2016-08-26 15:43:25 +02:00
Michael Natterer
63fce277d0 app: fix some warnings i introduced in preferences-dialog.c 2016-08-25 23:06:39 +02:00
Michael Natterer
2ae3393c3b Bug 599573 - Remember dialog defaults between Gimp sessions
Remember the "New Path" dialog settings in GimpDialogConfig.
2016-08-24 19:49:59 +02:00
Michael Natterer
8132d51b29 Bug 599573 - Remember dialog defaults between Gimp sessions
Remember the "New Channel" dialog settings in GimpDialogConfig.
2016-08-24 18:28:36 +02:00
Michael Natterer
9b8009d8c7 Bug 766628 - Preferences window is too tall
Add gimp_prefs_box_set_page_scrollable() which does what it says, and
make the tallest pages of the prefs dialog scrollable. This method
allows the dialog's smaller pages to still enforce a minimum height
for the window.
2016-08-24 12:52:33 +02:00
Michael Natterer
981a1b9c2e Bug 599573 - Remember dialog defaults between Gimp sessions
Remeber the "New Layer" dialog settings in GimpDialogConfig.
2016-08-24 12:33:56 +02:00
Benoit Touchette
0b7381a822 Bug 759601 - Add/Remove layer masks by clicking the layer preview
Quite heavily modified by Mitch to address the more general issues
mentioned in comment 35 of the bug:

- Remember the added mask's type and the invert boolean in
  GimpDialogConfig
- Add new prefs page "Dialog Defaults" which will contain
  only stuff from GimpDialogConfig and can be reset separately
- Remove static mask variables from layers-commands.c and
  use the new config values for both interactive mask adding
  with the dialog, and for the shortcut based method
- Add a button to the layers dialog which supports add, add
  with last values, delete, apply
- Add modifier-click shortcuts on the layer preview with the
  same modifiers as on the button
2016-08-23 19:18:20 +02:00
Michael Natterer
1027c71f36 app: rename variable in preferences-dialog.c (irrelevant nitpicking) 2016-08-14 15:52:46 +02:00
Michael Natterer
b3c1867ba1 Revert "Bug 768030 - keep same button placement on quit and close image dialogs."
That setting affects all dialogs.

This reverts commit 5e29293ef7.
2016-06-30 08:11:40 +02:00
Jehan
c73560b1a1 app: tab cleanup. 2016-06-30 03:08:34 +02:00
Jehan
5e29293ef7 Bug 768030 - keep same button placement on quit and close image dialogs.
The code to reorder buttons was actually already there, yet the
alternative order was not taken into account unless the setting
"gtk-alternative-button-order" is TRUE.
2016-06-30 02:46:07 +02:00
klausstaedtler
1199a7e6fb icons: Bug 759904
add
gimp-document-recent


patch: replace "document-open-recent" by "gimp-document-recent" (or GIMP_STOCK_DOCUMENT_RECENT)


gimp/app/dialogs/dialogs.c:            N_("History"), N_("Document History"), "document-open-recent",
gimp/app/actions/documents-actions.c:  { "documents-popup", "document-open-recent",
gimp/app/actions/dialogs-actions.c:  { "dialogs-document-history", "document-open-recent",


patch
gimpicons.c
gimpicons.h
2016-06-10 13:50:46 +02:00
klausstaedtler
312691312d icons: Bug 759904
add
gimp-shred

patch: replace "edit-clear" by "gimp-shred" (or GIMP_STOCK_SHRED)

gimp/app/actions/documents-commands.c:                                    "edit-clear",
gimp/gimp/app/actions/edit-actions.c:  { "edit-undo-clear", "edit-clear",
gimp/app/actions/documents-actions.c:  { "documents-clear", "edit-clear",
gimp/app/dialogs/preferences-dialog.c:  button = prefs_button_add ("edit-clear", shred

add
gimp-edit-clear

patch: replace "edit-clear" by "gimp-edit-clear" (or GIMP_STOCK_EDIT_CLEAR)

gimp/app/actions/text-editor-actions.c:  { "text-editor-clear", "edit-clear",
gimp/app/actions/edit-actions.c:  { "edit-clear", "edit-clear",
gimp/app/actions/error-console-actions.c:  { "error-console-clear", "edit-clear",
gimp/app/actions/text-tool-actions.c:  { "text-tool-clear", "edit-clear",
gimp/app/widgets/gimptextstyleeditor.c:  image = gtk_image_new_from_icon_name ("edit-clear", GTK_ICON_SIZE_MENU);
gimp/app/dialogs/preferences-dialog.c:  button = prefs_button_add ("edit-clear",


patch
gimpicons.c
gimpicons.h

update
icon-list.mk
2016-06-10 13:50:45 +02:00
klausstaedtler
b4463ad22f icons: Bug 759904
patch: replace "document-save" by "gimp-save" (or GIMP_STOCK_SAVE) and "document-save-as" by "gimp-save-as" (or GIMP_STOCK_SAVE_AS)


gimp/plug-ins/gimpressionist/presets.c:                        gtk_image_new_from_icon_name ("document-save",
gimp/libgimp/gimpexport.c:                        gtk_image_new_from_icon_name ("document-save",
gimp/app/actions/tool-options-actions.c:  { "tool-options-save-preset-menu", "document-save",
gimp/app/actions/vectors-actions.c:  { "vectors-export", "document-save",
gimp/app/actions/error-console-actions.c:  { "error-console-save-all", "document-save-as",
gimp/app/actions/error-console-actions.c:  { "error-console-save-selection", "document-save-as",
gimp/gimp/app/actions/gradient-editor-actions.c:  { "gradient-editor-save-left-color", "document-save",
gimp/app/actions/gradient-editor-actions.c:  { "gradient-editor-save-right-color", "document-save",
gimp/gimp/app/actions/gradients-actions.c:  { "gradients-save-as-pov", "document-save-as",
gimp/gimp/app/widgets/gimptooloptionseditor.c:    gimp_editor_add_button (GIMP_EDITOR (editor), "document-save",
gimp/app/widgets/gimpdevicestatus.c:    gimp_editor_add_button (GIMP_EDITOR (status), "document-save",
gimp/app/widgets/gimpsettingsbox.c:                                     "document-save",
gimp/app/widgets/gimpsettingseditor.c:                            "document-save",
gimp/gimp/app/widgets/gimpdataeditor.c:                            "document-save",
gimp/app/dialogs/preferences-dialog.c:  button = prefs_button_add ("document-save",
gimp/app/dialogs/preferences-dialog.c:  button = prefs_button_add ("document-save",
gimp/app/dialogs/preferences-dialog.c:  button = prefs_button_add ("document-save",
gimp/app/dialogs/preferences-dialog.c:  button = prefs_button_add ("document-save",
2016-06-10 13:50:45 +02:00
klausstaedtler
37c3c01cf1 icons: Bug 759904
add
gimp-next
gimp-previous


patch
gimpcolordisplayeditor.c
gimpcontrollerlist.c
dialog.c
tips-dialog.c
gimpicons.c
gimpicons.h
2016-06-10 13:50:44 +02:00
klausstaedtler
4be77e0418 icons: fix typo 2016-06-10 13:50:44 +02:00
klausstaedtler
ba9d11cdc7 icons: add missing prefs icons
gimp-prefs-image-windows-appearance
gimp-prefs-image-windows-snapping
gimp-prefs-folders-mypaint-brushes


patch
app/dialogs/preferences-dialog.c
2016-06-10 13:50:44 +02:00
Alexandre Prokoudine
3e01419b0c Introduce consistent use of 'soft-proofing' in user-visible messages 2016-06-08 00:21:51 +03:00
Michael Natterer
583887f986 app: use combo boxes for the color color management optimize settings
because they can properly say "Speed vs. Precision" which makes
more sense than a toggle button.
2016-06-07 13:08:18 +02:00
Michael Natterer
a743ae712b libgimpconfig: add "optimize" options for display and softproofing
Honor them in gimp_widget_get_color_transform() and make them
configurable in prefs. The code and GUI avoid the negation in
the lcms "NOOPTIMIZE" flag.
2016-06-06 01:15:26 +02:00
Michael Natterer
741be87d0f app: don't let display color management settings affect file import
gimp_image_import_color_profile(): get the intent and bpc settings
from the profile import dialog instead of asking the global
GimpColorConfig.
2016-06-05 22:36:52 +02:00
Michael Natterer
fcf5b708e5 libgimpwidgets: rename gimp_color_config_get_printer_color_profile()
to gimp_color_config_get_simulation_color_profile(), along with
various internal "printer" strings. Also reduce the number of
user-visible "print" stuff from the preferences color management page.
2016-06-05 18:00:24 +02:00
Jehan
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
Alexandre Prokoudine
e494779509 Add configuration for undo preview size 2016-05-28 02:53:28 +03:00
Michael Natterer
0bfa402c1a Argh, this was meant to be squashed into the previous commit... 2016-05-26 22:18:50 +02:00
Michael Natterer
490b33fd85 app: use the new function in the color profile assign/convert dialog 2016-05-22 13:26:20 +02:00
Michael Natterer
28e1a379e6 app: remove const qualifiers from all object parameters
They are unreliable because every type checking cast discards them,
they are useless anyway, visual clutter, added inconsistently, and
generally suck. Wanted to do this a long time ago, it was a bad idea
in the first place.
2016-05-19 23:54:14 +02:00
Ell
e897abd1bf app: add missing NULL check in action_search_match_keyword() 2016-05-16 12:48:15 +00:00
Alexandre Prokoudine
382f20450c Mark user-visible-message for translation 2016-05-14 17:58:21 +03:00
Michael Natterer
f93369b354 app: clean up Preferences -> Color Management
Add groups and reorder things. Shorten labels that are redundant with
group titles.
2016-05-14 14:48:58 +02:00
Michael Natterer
f56ca4471b app: don't use unrelated prefs values for the color profile convert dialog
The values from the global GimpColorConfig are for displaying images
on screen, not default values for profile conversion. Instead, default
to intent = RELATIVE_COLORIMETRIC and bpc = TRUE.
2016-05-13 22:49:07 +02:00
Michael Natterer
9fb70a44f2 app: rename GimpImageMap to GimpDrawableFilter
and gimpdrawable-filter.[ch] to gimpdrawable-filters.[ch] because of
the name clash.
2016-05-12 01:49:53 +02:00
Michael Natterer
3244637dc4 app: enable color management when a profile is assigned to the image 2016-05-08 20:56:54 +02:00
Michael Natterer
20f5e25195 app: add gimp_prop_profile_combo_box_new()
and remove the same but less flexible code from the prefs dialog.
2016-05-08 20:38:46 +02:00
Michael Natterer
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
Michael Natterer
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
Michael Natterer
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
Michael Natterer
39909b6008 app: replace GimpList's internal GList with a GQueue
so we can easily iterate in reverse order, and access the last element
in O(1). Nothing makes use of this yet.
2016-05-01 15:22:44 +02:00
Michael Natterer
5aff776a8a app: rename convert-type-dialog.[ch] to convert-indexed-dialog.[ch] 2016-04-30 18:49:02 +02:00
Michael Natterer
182da6d2e9 Bug 765176 - ICC profile conversions between grayscale and RGB images
When converting between RGB and GRAY and the image has a profile,
invoke the convert profile dialog with the newly added image type
conversion feature.
2016-04-30 18:35:52 +02:00
Michael Natterer
1cf04cc4b9 app: prepare the color profile dialog for doing RGB <-> GRAY conversion
Get rid of individual constructors for assign and convert, instead
have one constructor that takes a dialog type enum. No new features
yet in this commit.
2016-04-30 18:35:52 +02:00
Michael Natterer
ef8b802032 app: move indexed conversion to gimpimage-convert-indexed.[ch]
It's so much code and takes so many additional parameters over RGB and
GRAY conversion, it got its own place and function now.
2016-04-30 18:35:52 +02:00
Michael Natterer
47ef3be145 Initialize GValues with G_VALUE_INIT instead of { 0, } 2016-03-26 15:59:26 +01:00
Michael Natterer
dc33afd95b Bug 762279 - "Tip of the day" links opens two links
Fix this the brute force way, don't look it's ugly...
2016-03-20 20:29:43 +01:00
Michael Natterer
49ffbbbbc0 app: add menu items and a dialog for GimpItem::fill()
which are essentially a copy of the stroking GUI. We now can fill the
exact shape outlined by stroking selections and paths. Suggestions for
the menu item labels are welcome.
2016-03-15 21:07:59 +01:00
Michael Natterer
f2d581a536 Bug 761170 - Warnings building with clang
Fix a bunch of clang warnings.
2016-02-12 22:49:47 +01:00
Michael Natterer
406e1819d0 app: move symmetry painting out of the playground
Also fixes bug #761617 because we don't unconditionally dereference
image_editor->context in gimp_symmetry_editor_set_image() any longer.
2016-02-06 23:33:04 +01:00
Michael Natterer
e630d6faa8 app: simplify GimpSymmetryEditor even more 2016-02-06 00:32:57 +01:00
Jehan
66ead15f69 app: reparenting GimpSymmetryEditor to GimpImageEditor. 2016-02-04 17:05:27 +01:00
Jehan
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
Michael Natterer
5455b8bfd0 app: move some stuff out of app/file/
file-procedure.[ch] is gone and its functions moved to
GimpPlugInManager where they belong (the manager keeps around the
lists of load, save and export procedures).

Utility functions from file-utils.[ch] that have nothing to do with
image files moved to core/gimp-utils.[ch].
2016-01-03 23:38:08 +01:00
Michael Natterer
a998175289 app: use gimp_procedure_get_label() in file-save-dialog.c 2016-01-01 22:55:37 +01:00
Jehan
ad8716316e app: show example icon of icon themes in preferences. 2015-12-30 15:54:45 +01:00
Michael Natterer
9e6f995488 app: gdk_pixbuf_new_from_inline() -> from_resource() 2015-12-28 23:20:21 +01:00
Michael Natterer
51520278cd app, pdb: s/GRAY/grayscale/ in user-visible strings 2015-12-26 01:14:43 +01:00
Michael Natterer
d01ba07ed6 configure.ac, app: make libmypaint a hard dependency
and move the MyPaint brush tool out of the playground.
2015-12-21 21:39:48 +01:00
Michael Natterer
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
Michael Natterer
edff1d0647 app: move "Snap Distance" to the prefs dialog's "Snapping" page
also some indentation and a fix for wrong capitalization.
2015-12-16 12:41:37 +01:00
Michael Natterer
5098338470 Bug 756389 - Color-managing grayscale images
Allow to set profiles on grayscale images. Change profile validation
to check for image type and profile type. Actually the patch simply
makes some pieces of code less restrictive. Change user-visible
strings in the profile dialogs accordingly. Change PDB docs
accordingly.
2015-12-14 23:25:02 +01:00
Michael Natterer
40280c0862 app: add the preferred gray profile to the prefs dialog 2015-12-14 02:13:51 +01:00
Michael Natterer
bb482badf0 app: s/gimp_stock_init/gimp_icons_init/ in the user install dialog 2015-12-13 20:03:52 +01:00
Michael Natterer
f7d33ac18f app: don't hardcode the prefs icon sizes n_categories times
Remove the parameters from gimp_prefs_box_add_page() and instead
hardcode them once in GimpPrefsBox. This way they can also easily be
made configurable in the future.
2015-12-13 13:33:55 +01:00
Michael Natterer
8619852a6c app, icons: rename the prefs' "environment" icons to "system-resources"
also rename the help ID.
2015-12-13 13:23:31 +01:00
Michael Natterer
7200ece117 app, icons: make the icon theme path configurable in prefs 2015-12-13 13:04:46 +01:00
Michael Natterer
2e43824062 app: reorder the prefs categories tree, and rename some pages 2015-12-12 22:54:00 +01:00
Benoit Touchette
55270366d7 Bug 759345 - Fix for prefs dialog to add icon theme support
Change GimpPrefsBox to use icon names instead of pixbufs, and change
preferences-dialog.c accordingly.
2015-12-11 22:15:22 +01:00
Benoit Touchette
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
Jehan
01bdb712f9 app: do not request xcf compat mode when compat_toggle not sensitive.
In some cases, on could end up with photographs with metadata as XCF
version 6, which is useless since this is not compatible with GIMP 2.8
either.
2015-12-08 20:10:45 +01:00
Michael Natterer
548e8bc4eb app: fix progress message for precision conversion 2015-11-23 18:41:16 +01:00
Michael Natterer
ba14054a8e app: simplify the Image -> Precision menu
Keep only one menu item per precision, and have two separate radio
menu items for gamma/linear. Also add gamma/linear radio buttons to
the precision conversion dialog.
2015-11-22 23:19:49 +01:00
Michael Natterer
03e12184f5 app: reduce casts in file-save-dialog.c and file-open-dialog.c
also, name variables like their type, e.g. a GimpOpenDialog is always
called open_dialog now.
2015-09-09 21:04:18 +02:00
Jehan
55f319de04 Bug 754652 - About dialog does not credit contributors for 2.10. 2015-09-07 17:04:23 +02:00
Jehan
cbef12d645 app: Action Search dialog now uses the new GimpSearchPopup widget...
... instead of making its own window. Inheriting from GimpPopup, it is
also friendlier to sloppy mouse, etc.
2015-09-06 20:48:05 +02:00
Michael Natterer
b45d31072b app, libgimpcolor: refactor GimpColorManaged::get_color_profile()
to not return a reference that has to be dropped. Also allow NULL to
be returned if the managed cannot have a profile. If it can have one,
get_color_profile() still always returns a profile (either the
assigned one, or a generated built-in one).
2015-09-03 01:36:02 +02:00
Jehan
829f5ec3d6 app: GimpFileDialog state saving now implemented as a class method.
By default, it only saves the current file filter, but it allows a child
to implement its own state. It has been implemented by GimpSaveDialog to
save the preferred compatibility mode as well.
2015-09-02 20:05:11 +02:00
Jehan
b17e1b1cfc app: split GimpFileDialog into Gimp(Open|Save|Export)Dialog subclasses.
The code refactoring allows better readability which will allow in turn
to add more complex specific features making good use of the save/export
split concept.
2015-09-02 20:05:01 +02:00
Jehan
bdece29d8c app: keep track of compatibility mode on an image.
If one explicitly enables the compatibility mode, one expects this to
be applied on following saves of the same image as well.
2015-09-01 15:20:28 +02:00
Michael Natterer
a66d867da9 app: add a dest profile details view to the profile assign/convert dialog 2015-08-26 12:36:43 +02:00
Michael Natterer
b51ee77ec0 app: implement the "Convert to RGB Working Space" import dialog in the core
Add gimp_image_import_color_profile(), a GUI vtable entry
query_profile_policy() and a new dialog which returns the profile
policy and the profile to convert to. Get rid of the wrapper that
calls the lcms plug-in for that dialog, the plug-in is now completely
unused.

This commit doesn't add any new features, it's just the former lcms
plug-in dialog implemented in app/ (except the little fix that it is
now aware of linear vs. gamma images).
2015-08-23 12:59:12 +02:00
Michael Natterer
dc51a89427 app: add helper function gimp_color_profile_label_new()
which is an expander showing a profile's label, and when expanded has
detailled information about the profile. Use it in the color profile
dialog.
2015-08-23 10:41:34 +02:00
Michael Natterer
4161ea9cd7 Bug 750920 - Show commit number in About dialog
Done.
2015-08-21 10:27:03 +02:00
Michael Natterer
77dac3ea60 Bug 555562 - GIMP should ask before applying working space profile
Get rid of the "configurable RGB working space profile".

Instead, turn GimpColorConfig's "rgb-profile" property into a
"Preferred RGB profile" thing that is only a hint and never used
without explicit user interaction. Present it next to the built-in
profile in the profile combo boxes and call it "Preferred" in the
prefs dialog and its tooltip.

Most importantly, don't use it as the image's profile when the image
is not tagged with a profile. Untagged images are now always in the
sRGB or linear RGB built-in color spaces.

This commit reduces the "Apply color profile" dialog on file import to
a simple "Convert to built-in RGB", but that dialog is about to be
moved to the core and improved anyway.
2015-08-20 16:02:22 +02:00
Michael Natterer
d05bcba33d app: push an undo group around assigning a color profile
We now potentially change two parasites not just one.
2015-08-16 21:22:12 +02:00
Michael Natterer
68514d0cbd app: unset the "icc-profile-name" parasite when a profile is assigned 2015-08-16 20:54:16 +02:00
Michael Natterer
1715e1e60b app: keep GimpImage's profile around as GimpColorProfile
not only as parasite. This way we avoid having to create the profile
in each call to gimp_image_get_color_profile(). Also keep the built-in
profiles around in gimp_image_get_builtin_color_profile(). Add/remove
refs and unrefs as needed in all users of these functions.
2015-08-16 19:38:11 +02:00
Michael Natterer
d71cd602a8 app: add color-profile-dialog.c as replacement for the lcms plug-in's GUI
Uncomment and implement the menu items and actions to invoke the
dialog. This new code also does the (alomst) right thing to linear
images, unlike the lcms plug-in.
2015-08-04 22:20:32 +02:00
Michael Natterer
5672e80ea1 libgimpwidgets: port GimpColorProfileStore and -ComboBox to GFile
and deprecate the old filename-based API. Port everything to use the
new GFile functions.
2015-08-01 16:20:14 +02:00
Nils Philippsen
0b900239d5 Ref/unref dialog->image around saving as well...
...to avoid warnings that happen if the image got closed before the
saving finishes.

(amends commit a0e48ad29e)
2015-07-17 17:10:20 +02:00
Michael Natterer
a0e48ad29e Bug 739003 - Crashes in file_save_dialog_response()
Ref/unref the dialog around saving the image insatead of connecting to
"destroy" and NULLifying the local dialog variable on destruction,
which has caused weird crashes on fedora.
2015-07-14 13:22:06 +02:00
Michael Natterer
6487d0a26a app: move the seamless clone tool to the playground
It's not release material unless somebody comes and fixes its bugs,
and its speed.
2015-06-14 13:02:31 +02:00
Michael Natterer
0261d8cf47 Bug 677746 - Change "Fit to window" to "Show entire image"
Change the prefs dialog text for "initial-zoom-to-fit" enabled.
2015-06-06 23:53:08 +02:00
Michael Natterer
167262408d Bug 749756 - Unable to pick an ICC profile from disk
Block the config's "notify" signal when setting a NULL filename from a
GimpColorProfileComboBox. The notify callback was only introduced
because GimpColorConfig is now validating the profiles. Validation of
a NULL profile never fails, but the NULL notify from the config
prevented the profile file chooser dialog from appearing.
2015-05-24 18:39:18 +02:00
Michael Natterer
32a7cafc10 app: sync the prefs dialog's profile combos with the color config
so they update when the config changes. Should move this to
propwidgets next.
2015-05-20 12:18:54 +02:00
Michael Natterer
2480d69341 Bug 748505 - Don't do nothing and report no error when trying to open a fifo
Remove the check for opening a regular file from
file_open_dialog_response() and call the functions in file-open
unconditionally. This is the actual fix because the check was simply
bailing out with no message or anything when trying to open a
non-regular file, whereas the checks in file-open return proper error
messsages.

In file_open_image(), do the checks for being a regular and readable
file first, so we don't run into reading from other files when trying
to figure the file format.
2015-04-29 19:01:36 -04:00
Michael Natterer
9d510d8fff app: make the MyPaint brush path configurable in Prefs -> Folders
Keep the config values around even if compiled without MyPaint brush
support, so we remember the values between sessions of differently
compiled GIMP versions.
2015-04-25 21:14:22 -04:00
Michael Henning
7f67c431b7 Revert "app: force the action search dialog above its parent window..."
That commit causes crashes on Windows and OSX (and likely anything
that isn't X11).

This reverts commit 23de02b8c2.
2015-04-01 13:52:02 -04:00
Jehan
5217900748 configure/app: libmypaint becomes an optional dependency. 2015-03-30 22:38:35 +02:00
Jehan
5460c414db app: move the MyPaint brush into the playground. 2015-03-30 22:38:35 +02:00
Michael Natterer
4dcd48fff2 app: move the handle transform tool to the playground 2015-03-08 17:21:11 +01:00
Johannes Matschke
2989bad35a Bug 721009 - new transform tool with freely placeable handles
Add new tool GimpHandleTransformTool which allows to freely place up
to 4 handles on the image, then move any one of them, which transforms
the image so that the remaining handles keep their position.

Did quite some cleanup on the code before pushing --Mitch
2015-03-05 12:36:59 +01:00
Michael Natterer
b27c5b0985 app: move the N-Point Deformation tool to the playground
It has to be enabled via Prefs -> Playground. The menu entry is always
disabled until it leaves the playground, for reasons worth fixing.
2015-03-03 20:26:58 +01:00
Jehan
23de02b8c2 app: force the action search dialog above its parent window...
... and set it modal to prevent interaction with other GIMP windows.
2014-11-29 23:54:49 +01:00
Jehan
47a165dc6c app: select the second item on hitting down in action search entry.
Since the first action of the list can be run directly with Enter while
the entry is focused, hitting "Down" means one wants to select the next
item of the list. So let's jump directly to the second item on the first
"Down" key pressed.
2014-11-23 01:40:33 +01:00
Michael Natterer
950f753ede Bug 736907 - Compat mode for XCF
- add gimp_image_get,get_xcf_compat_mode()
- add a compat toggle to GimpFileDialog which is shown and sensitive
  only for a save (not export), and if the image structure allows
  to save an old version at all. The button also has a tooltip
  which explains why it is sensitive and what it does
- add "gboolean xcf_compat" to file_save_dialog_save_image()
- in file_save_dialog_save_image(), call image_set_xcf_compat_mode(TRUE)
  only around the call to file_save() and set it to FALSE after saving
- in xcf_save_invoker(), honor the image's XCF compat flag and save an
  RLE-compressed XCF if possible

The above is very convoluted and doesn't pass the "xcf_compat" boolean
directly because we can't change the parameters of gimp-xcf-save, and
because the gimp-xcf-save might be called indirectly.
2014-10-20 22:54:11 +02:00
Jehan
b9a9169656 app: update action search to use glib API.
I now normalize with g_str_tokenize_and_fold() which uses standard
Unicode normalization.
I don't use g_str_match_string() directly though, because I want to
run additional checks to order the results by relevance. For instance
I still want actions whose labels starts with the search string to be
at the top, and results with same order as search token before those
with a different order. Then results with match in the tooltip. Finally
I also returns results with partial match in the label, and the rest in
the tooltip, though at the bottom of the list.
Other than that, this returns the same results as g_str_match_string()
with a similar algorithm. In particular now we only match the start of
tokens (a substring in the middle of a token won't match anymore).
I kept the small 2-character trick matching the first letters of the
first 2 words of the label, but I got rid of the fuzzy search (that none
really found ever relevant anyway).
2014-09-16 04:03:43 +02:00
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
77482620b4 Bug 736199 - Precision Conversion Dithering doesn't work at >16-bit precision
Don't allow to select dithering != "none" in the convert precision
dialog if the precision has more than 16 bits.
2014-09-07 23:28:48 +02:00
Michael Natterer
969e2b60f1 app: port about_dialog_load_logo() to GIO 2014-07-29 12:48:57 +02:00
Michael Natterer
50ca9068da app: more cleanup in the action history code, mostly general consistency 2014-07-29 12:28:18 +02:00
Michael Natterer
b03d69dd40 libgimpbase, app: add variants of gimp_$foo_directory() which return GFiles
gimp_directory_file(), gimp_data_directory_file() etc. The new
functions take a variable list of path elements to the file,
the list has to be NULL-terminated. Remove the newly added
gimp_personal_rc_gfile(). Start using the new functions in app/.
2014-07-28 02:04:01 +02:00
Michael Natterer
dc347c3039 app: fix opening multiple files in file_open_dialog_response()
Don't loop infinitely around the list's second file.
2014-07-26 15:24:52 +02:00
Michael Natterer
e49d9739bb app: some filename -> GFile in the tips parsing code 2014-07-23 23:40:01 +02:00
Michael Natterer
14c39816d8 app: keep the theme directories around a GFiles
and change gimp_get_theme_dir() to return a GFile.
2014-07-20 17:09:25 +02:00
Michael Natterer
a6601d563b app: some GimpProgress cleanup
- change start() and set_text() to use "format" and "..." instead of
  "message", allowing to format progress messages in place
- s/cancelable/cancellable/
- move "cancellable" to be the second argument of start()
2014-07-12 23:45:20 +02:00
Michael Natterer
c884c4f630 app: change file_utils_filename_to_uri() to file_utils_filename_to_file() 2014-07-08 10:25:25 +02:00
Michael Natterer
58f579cbe6 app: fix GFile porting leaks in file-save-dialog.c 2014-07-08 02:26:51 +02:00
Michael Natterer
221fa11544 app: URI -> GFile in file-save-dialog.c 2014-07-08 01:07:07 +02:00
Michael Natterer
d0a6d95dad app: remove a bunch of file-utils.h includes 2014-07-08 00:23:34 +02:00
Michael Natterer
ff6ea69569 app: change the image's various URIs to GFiles
which gets rid of a lot of temporarily added GFile code again because
we don't need to convert between URI and GFile any longer.
2014-07-07 23:58:11 +02:00
Michael Natterer
0f8d84d5e9 app: port all file_open() and file_save() functions to GFile 2014-07-07 23:58:11 +02:00
Michael Natterer
98e7ec090b app: use the new gimp_personal_rc_gfile() in lots of places
and pass the GFile to the newly added GFile-based GimpConfig,
GimpScanner etc. functions. This is starting to make sense now...
2014-07-01 20:02:45 +02:00
Michael Natterer
651c3d56ff app: more filename -> GFile 2014-07-01 15:56:39 +02:00
Michael Natterer
7be12ec523 app: add gimp_xml_parser_parse_gfile() 2014-07-01 02:29:30 +02:00
Michael Natterer
a665c30823 app: gimp_spin_button_new() -> gtk_spin_button_new() 2014-06-21 22:39:37 +02:00
Michael Natterer
425748dab0 libgimpbase, *: rename GimpFillType values: GIMP_FOO_FILL -> GIMP_FILL_FOO
Change all users accordingly and add compat enum values and compat
constants to script-fu and pygimp.
2014-06-03 01:11:32 +02:00
Michael Natterer
bbf01ebabf libgimpwidgets, app: add gdk_screen_get_monitor_workarea()
to the gimp3migration hack and use it where appropriate, so in the
gtk3-port branch windows will not overlap with docks, panels etc.
2014-05-19 14:37:32 +02:00
Michael Natterer
8be52f6aa7 app, libgimp*: pass translated blurbs to GIMP_CONFIG_INSTALL_PROP_FOO()
instead of passing N_()-strings; and remove gettext() calls on these
strings when using them. Reduces complexitx, and fixes double- and
untranslated strings. Also enables to treat properties of GIMP and
GEGL objects the same way, which was totally broken before.
2014-05-14 23:34:01 +02:00
Michael Natterer
9675d1b077 app: remove obsolete Gimp parameter from prefs_get_pixbufs() 2014-05-12 23:36:50 +02:00
Michael Natterer
033719bfa2 icons, themes, app: move the preferences images into the icon theme 2014-05-12 03:24:09 +02:00
Michael Natterer
65a65947d9 app, libgimp: replace GTK_STOCK_FOO by icon names
unless it's a stock ID used for an action button, will address that
later.
2014-05-11 22:49:22 +02:00
Michael Natterer
0d2d1c3752 app: port most of app's GUI from stock IDs to icon names
There is still quite some stock ID rendering around, stay tuned...
2014-05-07 15:30:38 +02:00
Michael Natterer
9ed5b3f45e app: port GimpAction and friends to icon names 2014-05-06 23:47:38 +02:00
Michael Natterer
5ae6f2b8c0 app: try a named icon in the open-location dialog, seems to work :) 2014-05-06 22:45:45 +02:00
Michael Natterer
7cdede6dec app: rename gimp_get_screen_resolution() to get_monitor_resolution()
Add a "monitor" parameter and return something reasonable, instead
of a useless resolution average of all the screen's monitors. Also
require a screen to be passed now.
2014-05-02 23:58:14 +02:00
Michael Natterer
7f23fbec34 app: add screen and monitor to all display and image window constructors
so they appear on the proper monitor as well.
2014-05-02 20:21:41 +02:00
Michael Natterer
e19ded379b app: don't call create_display() in image_new_from_template()
No other gimpimage-new function calls it; instead, call it in
image_new_from_template()'s callers.
2014-05-02 15:38:26 +02:00
Michael Natterer
843866e7e7 app: make things behave more reasonable with multiple monitors
There is now a preference option that determines whether windows
should be opened on the same monitor as before. It should be disabled
when the machine gets monitors plugged/unplugged dynamically ("laptop")
and enabled when there is a static multi-monitor setup ("wokstation").
This is merely the current simplistic policy on top of the newly added
underlying infrastructure:

- pass integer monitor numbers around in all places where we already
  pass around a GdkScreen. Pass the "current" monitor to these changed
  APIs, where "current" is either the monitor where the action-triggering
  widget is, or if that is unavailable the monitor where the mouse is.

- add gimp_widget_get_monitor() in order to easily get to the monitor,
  just like gtk_widget_get_screen().

- add screen and monitor parameters in some places that were missed
  before.

- in sessionrc, save all window positions relative to the window's
  monitor, and save the monitor separately, if it's not the screen's
  primary monitor.

- when restoring window positions, use the stored monitor when the new
  prefs options says so (use the screen's primary monitor if there is
  no stored monitor), otherwise use current monitor that is now passed
  around.
2014-05-02 03:01:23 +02:00
Michael Natterer
22c222291d libgimpbase,*: clean up enum values in gimpbaseenums.h
GIMP_ADD_foo_MASK -> GIMP_ADD_MASK_foo
GIMP_foo_MODE -> GIMP_BLEND_foo
GIMP_foo_CLONE -> GIMP_CLONE_foo
GIMP_foo -> GIMP_DODGE_BURN_TYPE_foo
GIMP_foo -> GIMP_TRANSFER_foo

Add compat values for the old names and compat code to script-fu
and pygimp.
2014-04-29 20:58:30 +02:00
João S. O. Bueno
bb172b52c8 Implements Title bar codes for Layer dimensions
Implements codes %x, %y and %X, %Y to display
a layer's size in title and status bars
for image windows.
Addresses request at bug #728493
2014-04-21 00:30:49 -03:00
Michael Natterer
3abb84022a app: enable image new's resolution chain button only if xres == yres 2014-04-18 18:43:32 +02:00
Michael Natterer
a8592e7352 app: only enable the resolution chain button if xres and yres are the same 2014-04-18 17:57:02 +02:00
Michael Natterer
1ade034c49 app: move "show paint tool cursor" logic from GimpBrushTool to GimpPaintTool
Now all paint tools (also ink and mypaint brush) honor the setting and
can work without mouse cursor.
2014-04-12 12:54:08 +02:00
Michael Natterer
661317f74c libgimpwidgets: make using GimpColorProfileComboBox easier
If the passed dialog is a GimpColorProfileChooserDialog, handle its
"response" signal automatically and also destroy it when the combo box
is destroyed (before we leaked all dialogs). Remove the same callback
from all places using GimpColorProfileComboBox.
2014-04-04 17:09:54 +02:00
Michael Natterer
3f826d02fa libgimpwidgets: make GimpColorProfileComboBox use lcms
and improve gimp_color_profile_combo_box_set_active() to get the
profile's label from the ICC file if no label was provided. Simplifies
all its callers and removes code duplication.
2014-04-02 13:03:52 +02:00
Michael Natterer
80a71f1e50 app: use GDK_KEY_foo not GDK_foo in the action search dialog 2014-04-02 01:29:44 +02:00
Michael Natterer
d7037650df libgimpcolor: add gimp_lcms_profile_get_label()
which returns a string meant to label the profile in the GUI, it's
either the profile's description, its model, or "(unnamed profile)" as
a fallback. Use the function instead of duplicating that logic
inconsistently and imcompletely all over the place.
2014-03-30 03:12:42 +02:00
Michael Natterer
b4a2fa916c app: fix string leak in prefs_profile_combo_box_new() 2014-03-27 19:11:13 +01:00
Michael Natterer
dc8a3e8de5 libgimpwidgets: remove gimp_color_profile_chooser_dialog_get_desc()
and port its only user (the prefs dialog) to the code all other users
of GimpColorProfileChooserDialog use.
2014-03-23 23:50:54 +01:00
Michael Natterer
e69ea05102 app: remove some <unistd.h> and other includes
that were needed before we switched to using GLib APIs in these files.
2014-03-22 20:26:20 +01:00
Michael Natterer
9c7cd2508f app, libgimpwidgets: move GimpProfileChooserDialog to libgimpwidgets
and call it GimpColorProfileChooserDialog. Make libgimpwidgets
depend on lcms and make it query the profile directly.
2014-03-14 22:03:08 +01:00
Michael Natterer
5be611cad7 app: away with more action search window size code 2014-02-21 22:27:38 +01:00
Michael Natterer
3085eb8b1c app: further simplify action search window size management 2014-02-21 22:14:43 +01:00
Michael Natterer
73da55cced app: rename some action search functions to be more verbose 2014-02-21 21:10:39 +01:00
Michael Natterer
053ef96059 app: remove all window position fiddling from the action search dialog
Session management already does that.
2014-02-21 21:00:38 +01:00