Commit Graph

77 Commits

Author SHA1 Message Date
Simon Budig 9cb67fa992 app: kill the last GtkTables. 2018-05-20 21:06:33 +02:00
Michael Natterer 5f2034451b app: port to GtkWidget::draw() 2018-05-20 21:06:27 +02:00
Ell 5b7806e13c app: in GimpHistogramEditor, clear update timeout after validating
In gimp_histogram_editor_validate(), clear the update timeout, so
that if we validate the histogram before the timeout (in
particular, if editor->histogram itself is clear) we don't end up
unnecessarily re-validating it at the timeout.
2018-05-13 15:21:28 -04:00
Ell 1139c00721 app: in GimpHistogramEditor, avoid calculating histogram of detached layers
... which results in CRITICALs.  This can evidentially happen during
gimp_image_remove_layer() under certain circumstances (see comment
in the patch.)
2018-05-12 09:29:11 -04:00
Ell d0b7fe6f52 app: in GimpHistogramEditor, calculate histogram asynchronously
In GimpHistogramEditor, calculate the histogram of the active
drawable asynchronously, rather than synchronously, to avoid
blocking the UI (and the execution of PDB calls) while the
histogram is calculated.  For large images, this can notably
improve responsiveness, as well as plug-in execution speed, while
the histogram dialog is mapped.
2018-05-11 14:01:42 -04:00
Jehan 1a8edbed51 app: replace GimpHistogramEditor's "valid" by "recompute" flag.
Having to sync the "valid" flag with the presence of a histogram is
error-prone (cf. previous commit).
Instead gimp_histogram_editor_validate() return value will just depend
on the presence of the histogram. And "valid" becomes "recompute", i.e.
a flag to request for "recomputation" of the histogram.
2018-02-21 19:31:25 +01:00
Jehan 3535251979 Bug 793669 - histogram-related bug report.
When the histogram is freed, we need to set valid to FALSE, in order to
force recreation as soon as needed. Otherwise we may hit some race
condition of trying to work with a NULL histogram. For instance this
happened when starting painting fast enough after switching the active
image.
2018-02-21 16:45:13 +01:00
Michael Natterer 28bb108e1b app: use gimp_prop_boolean_icon_box_new() instead of the "Linear" toggle
in the curves and levels tools and in the histogram dockable.
2018-01-06 03:12:23 +01:00
Michael Natterer c41e8eca86 Bug 785535 - Histogram not updating in real when filters are active
Add "gboolean with_filters" to gimp_drawable_calculate_histogram(),
which is passed as FALSE in almost all places, except the histogram
dockable where we want to see both the drawable's unmodified histogram
*and* the histogram after filters are applied.
2017-08-05 17:15:31 +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
Michael Natterer fc9da4c9a3 app: allow to toggle the histogram dialog between gamma and linear
Change GimpHistogram to take a "gboolean linear" parameter and always
honor that parameter, so both kinds of histograms can now be created
for all drawables.

Add a horrible "Linear" toggle to the histogram dockable which always
defaults to the active layer's actual pixel format, but can be
switched at any time. This UI is ugly and needs to change.

On the PDB, default to gamma-corrected if the plug-in is unaware of
higher precision, and to the drawable's native pixel format otherwise.

Other places using histograms (e.g. levels, curves) are unchanged.
2016-12-26 17:32:17 +01: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
Thomas Manni f4cb2dd881 Bug 109161 - Improve Histogram with Luminance Channel
Add a luminance channel to GimpHistogram
2016-04-18 19:35:06 +01:00
Michael Natterer 17167594ea app: use the newly added libgimpwidgets icon name APIs 2014-05-07 21:32:09 +02:00
Michael Natterer 571350270b app: return 0.0..1.0 from gimp_histogram_get_mean(), median(), std_dev()
Display the float values in the histogram dockable and add a compat
hack to the gimp_histogram() PDB wrapper.
2013-06-12 02:01:24 +02:00
Michael Natterer 6c97908a9e app: add "gboolean gamma_corrected" to gimp_histogram_new()
so we can make histograms of the gamma-corrected image data. Pass
TRUE all over the place so the histogram works perceptually. This
needs more thinking...
2013-06-12 01:02:25 +02:00
Michael Natterer 96d1a9392e app: gimp_histogram_editor_info_update(): use the real number of bins
for displaying histogram info, not always 255.
2013-06-12 01:01:39 +02:00
Michael Natterer a7f42de4c0 app: turn GimpHistorgram into a GimpObject, no other changes 2013-06-11 21:23:32 +02:00
Michael Natterer ab4c613a70 Bug 675994 - Opening image with a saved selection breaks histogram updating
In fact, it broke much more than that because the way XCF loading
replaced the image's mask prevented the image's "mask-changed" signal
from ever being emitted. Add private API gimp_image_take_mask() which
properly sets the mask and use it for image construction and the XCF
selection loading hack.
2012-05-14 01:44:41 +02:00
Michael Natterer df5ab0f551 app: add gimp_histogram_clear_values() and use it
instead of abusing gimp_histogram_calculate() with a NULL region for
that purpose; calculate() is about to go away.
2012-05-02 17:51:04 +02:00
Michael Natterer 8d5471502e app: move GimpHistogram from base/ to core/ 2012-05-02 17:46:13 +02:00
Michael Natterer 3e336199b9 app: use gtk_box_new() 2011-09-30 11:29:11 +02:00
Michael Natterer 7175f3e883 Some more changes to build with GSEAL_ENABLE
- use more GTK+ accessors instead of struct members
- remove quite some #undef GSEAL_ENABLE from completely ported files
2010-01-15 15:35:03 +01:00
Michael Natterer 1a23b9ecf2 Build with GSEAL_ENABLE and #undef it where accessors are missing 2009-10-17 20:20:39 +02:00
Michael Natterer a3558e3cb8 Remove GIMP_OBJECT() casts when calling gimp_object_get_name() 2009-08-31 22:47:18 +02:00
Michael Natterer d9b5207aa2 Change licence to GPLv3 (and to LGPLv3 for libgimp).
2009-01-17  Michael Natterer  <mitch@gimp.org>

	* all files with a GPL header and all COPYING files:

	Change licence to GPLv3 (and to LGPLv3 for libgimp).

	Cleaned up some copyright headers and regenerated the parsers in
	the ImageMap plugin.


svn path=/trunk/; revision=27913
2009-01-17 22:28:01 +00:00
Michael Natterer 5503e6a055 Add GEGL_CFLAGS and #includes as if gimpdrawable.h and gimpimage.h had a
2008-10-09  Michael Natterer  <mitch@gimp.org>

	Add GEGL_CFLAGS and #includes as if gimpdrawable.h and gimpimage.h
	had a GEGL dependency (they will have in the next commit, but I
	wanted to keep the commit separate).

	* app/dialogs/Makefile.am
	* app/file/Makefile.am
	* app/gui/Makefile.am
	* app/menus/Makefile.am
	* app/paint/Makefile.am
	* app/plug-in/Makefile.am
	* app/text/Makefile.am
	* app/vectors/Makefile.am
	* app/widgets/Makefile.am
	* app/xcf/Makefile.am: add GEGL_CFLAGS.

	* app/actions/*.c
	* app/core/*.c
	* app/dialogs/*.c
	* app/display/*.c
	* app/file/*.c
	* app/gui/*.c
	* app/menus/*.c
	* app/paint/*.c
	* app/pdb/gimppdb-utils.c
	* app/pdb/gimpprocedure.c
	* app/plug-in/*.c
	* app/text/*.c
	* app/tools/*.c
	* app/vectors/*.c
	* app/widgets/*.c
	* app/xcf/*.c: add <gegl.h> or replace <glib-object.h> by <gegl.h>
	to all files which include a drawable subclass or gimpimage.h

	* tools/pdbgen/app.pl: include <gegl.h> instead of <glib-object.h>
	in all generated files.

	* app/pdb/*-cmds.c: regenerated.

	* data/images/gimp-splash.png: the goat is still sleeping.
	By Aurore Derriennic.


svn path=/trunk/; revision=27202
2008-10-09 20:24:04 +00:00
Sven Neumann 1a7bdc570d don't do the background histogram unless the histogram view is actually
2008-08-12  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimphistogrameditor.c
	(gimp_histogram_editor_frozen_update): don't do the background
	histogram unless the histogram view is actually visible.


svn path=/trunk/; revision=26523
2008-08-12 19:37:09 +00:00
Sven Neumann 4368010863 added new method gimp_histogram_duplicate().
2008-07-22  Sven Neumann  <sven@gimp.org>

	* app/base/gimphistogram.[ch]: added new method
	gimp_histogram_duplicate().

	* app/widgets/gimphistogrameditor.c
	(gimp_histogram_editor_frozen_update): instead of recalculating
	the histogram, use a duplicate for the background histogram.


svn path=/trunk/; revision=26270
2008-07-22 09:29:35 +00:00
Sven Neumann 48e6da318d reverted last change, it did not plug the leak.
2008-07-22  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimphistogrameditor.c 
(gimp_histogram_editor_set_image):
	reverted last change, it did not plug the leak.


svn path=/trunk/; revision=26269
2008-07-22 08:53:40 +00:00
Sven Neumann c610b2daad always unset and ref the histograms. Plugs a memory leak reported by
2008-07-21  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimphistogrameditor.c
	(gimp_histogram_editor_set_image): always unset and ref the
	histograms. Plugs a memory leak reported by valgrind.


svn path=/trunk/; revision=26263
2008-07-21 20:27:33 +00:00
Michael Natterer f4272e69e7 app/paint/gimpclone.c app/paint/gimpheal.c app/paint/gimpink.c remove
2008-02-06  Michael Natterer  <mitch@gimp.org>

	* app/paint/gimpclone.c
	* app/paint/gimpheal.c
	* app/paint/gimpink.c
	* app/widgets/gimphistogrameditor.c: remove includes that are
	not needed any longer.


svn path=/trunk/; revision=24823
2008-02-06 18:12:57 +00:00
Michael Natterer 50ad5cfd32 add refcounting and replace free() API by ref() and unref().
2008-02-04  Michael Natterer  <mitch@gimp.org>

	* app/base/gimphistogram.[ch]: add refcounting and replace free()
	API by ref() and unref().

	* app/core/gimpdrawable-equalize.c
	* app/core/gimpdrawable-levels.c
	* app/widgets/gimphistogrameditor.c
	* tools/pdbgen/pdb/color.pdb: replace calls to
	gimp_histogram_free() by gimp_histogram_unref().

	* app/pdb/color_cmds.c: regenerated.

	* app/widgets/gimphistogramview.c: reference the histograms so we
	don't need the widget's users to keep them around while the widget
	exists.

	* app/tools/gimpcurvestool.[ch]: remove the histogram from the
	tool struct and just create one locally to set it on the histogram
	view widget.

	Unrelated:

	* app/tools/gimplevelstool.[ch]
	* app/tools/gimpthresholdtool.[ch]: renamed "hist" members to
	"histogram" plus some cleanup.


svn path=/trunk/; revision=24792
2008-02-04 21:41:57 +00:00
Michael Natterer 2ff7c79caf add read-only property "frozen" and new API
2007-11-15  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpviewable.[ch]: add read-only property "frozen" and
	new API gimp_viewable_preview_is_fozen(). Emit property notifications.

	* app/widgets/gimphistogramview.[ch]: add API to show a second
	histogram in the background. Remove member "light_histogram" from
	the GimpHistogramViewClass struct.

	* app/widgets/gimpcurveview.c: don't set "light_histogram".

	* app/tools/gimpcurvestool.c: set the background histogram instead.

	* app/widgets/gimphistogrameditor.[ch]: connect to "notify::frozen"
	of the drawable and show its histogram at the freezing point in
	the background. This way the original histogram is visible while
	we are doing color corrections.


svn path=/trunk/; revision=24158
2007-11-15 10:26:25 +00:00
Sven Neumann efa6b2b820 Fix for bug #494049 (painting doesn't update the histogram):
2007-11-13  Sven Neumann  <sven@gimp.org>

	Fix for bug #494049 (painting doesn't update the histogram):

	* app/paint/gimppaintcore.c: freeze the drawable preview while we
	are painting. Update the drawable instead of the image.

	* app/widgets/gimphistogrameditor.c: use a short timeout instead
	of an idle handler to update the histogram.

svn path=/trunk/; revision=24143
2007-11-13 10:59:32 +00:00
Sven Neumann 45361763c9 connect to GimpDrawable::update instead of
2007-10-26  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimphistogrameditor.c
	(gimp_histogram_editor_layer_changed): connect to
	GimpDrawable::update instead of GimpViewable::invalidate-preview.

svn path=/trunk/; revision=23953
2007-10-26 08:16:25 +00:00
Michael Natterer 1a5cfac5e6 app/widgets/gimpsessioninfoaux.[ch] app/widgets/gimpsessioninfobook.[ch]
2007-05-25  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpsessioninfoaux.[ch]
	* app/widgets/gimpsessioninfobook.[ch]
	* app/widgets/gimpsessioninfodock.[ch]
	* app/widgets/gimpsessioninfodockable.[ch]: renamed these...

	* app/widgets/gimpsessioninfo-aux.[ch]
	* app/widgets/gimpsessioninfo-book.[ch]
	* app/widgets/gimpsessioninfo-dock.[ch]
	* app/widgets/gimpsessioninfo-dockable.[ch]: ...to these.

	* app/widgets/Makefile.am
	* app/widgets/gimpcoloreditor.c
	* app/widgets/gimpcursorview.c
	* app/widgets/gimpdataeditor.c
	* app/widgets/gimpdocked.c
	* app/widgets/gimphistogrameditor.c
	* app/widgets/gimpmenudock.c
	* app/widgets/gimppaletteeditor.c
	* app/widgets/gimpsessioninfo.c: changed accordingly.


svn path=/trunk/; revision=22614
2007-05-25 11:42:28 +00:00
Michael Natterer 616ba659f3 removed lots of code...
2007-05-24  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpsessioninfo.[ch]: removed lots of code...

	* app/widgets/Makefile.am
	* app/widgets/gimpsessioninfoaux.[ch]
	* app/widgets/gimpsessioninfobook.[ch]
	* app/widgets/gimpsessioninfodockable.[ch]: ...and added it here.
	Also allocate all structs using GSLice.

	* app/widgets/gimpcoloreditor.c
	* app/widgets/gimpcursorview.c
	* app/widgets/gimpdataeditor.c
	* app/widgets/gimpdialogfactory.c
	* app/widgets/gimpdocked.c
	* app/widgets/gimphistogrameditor.c
	* app/widgets/gimpmenudock.c
	* app/widgets/gimppaletteeditor.c: changed accordingly.


svn path=/trunk/; revision=22603
2007-05-24 19:22:06 +00:00
Sven Neumann 41237259c9 In all files, changed the standard copyright notice to say "GIMP - The GNU
2006-12-09  Sven Neumann  <sven@gimp.org>

        * In all files, changed the standard copyright notice to say
        "GIMP - The GNU Image Manipulation Program".
2006-12-09 21:33:38 +00:00
Sven Neumann 6ebcf700d1 removed erroneous semicolon after G_DEFINE_TYPE macros.
2006-05-15  Sven Neumann  <sven@gimp.org>

	* app/*/*.c:
	* lib*/*.c: removed erroneous semicolon after G_DEFINE_TYPE macros.
2006-05-15 09:46:31 +00:00
Sven Neumann 049872b361 app/*.[ch] converted tabs to spaces.
2006-04-12  Sven Neumann  <sven@gimp.org>

	* app/*.[ch]
	* app/*/*.[ch]: converted tabs to spaces.
2006-04-12 12:49:29 +00:00
Sven Neumann 905fdfcbed did a global gimage -> image substitution.
2006-03-28  Sven Neumann  <sven@gimp.org>

	* app/*: did a global gimage -> image substitution.
2006-03-28 17:08:36 +00:00
Michael Natterer 61df53ec54 port to G_DEFINE_TYPE() and friends. Some related cleanup.
2005-12-19  Michael Natterer  <mitch@gimp.org>

	* app/widgets/*.c: port to G_DEFINE_TYPE() and friends. Some
	related cleanup.
2005-12-19 22:37:49 +00:00
Sven Neumann 4bb311bbd7 do not calculate the histogram if the histogram dock is invisible.
2005-09-28  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimphistogrameditor.[ch]: do not calculate the
	histogram if the histogram dock is invisible.
2005-09-28 00:31:46 +00:00
Sven Neumann 1a94b2be20 app/actions/channels-commands.c app/actions/qmask-commands.c
2005-08-23  Sven Neumann  <sven@gimp.org>

	* app/actions/channels-commands.c
	* app/actions/qmask-commands.c
	* app/dialogs/channel-options-dialog.c
	* app/dialogs/layer-options-dialog.c
	* app/dialogs/module-dialog.c
	* app/dialogs/palette-import-dialog.c
	* app/dialogs/preferences-dialog.c
	* app/dialogs/resize-dialog.c
	* app/dialogs/stroke-dialog.c
	* app/dialogs/vectors-options-dialog.c
	* app/display/gimpdisplayshell-scale.c
	* app/tools/gimpaligntool.c
	* app/tools/gimpblendoptions.c
	* app/widgets/gimphistogrameditor.c
	* app/widgets/gimpstrokeeditor.c
	* libgimpwidgets/gimpcolorselection.c
	* modules/cdisplay_colorblind.c
	* modules/cdisplay_highcontrast.c
	* modules/colorsel_cmyk.c
	* plug-ins/Lighting/lighting_ui.c
	* plug-ins/common/colorify.c
	* plug-ins/common/film.c
	* plug-ins/common/iwarp.c
	* plug-ins/common/lic.c
	* plug-ins/common/pixelize.c
	* plug-ins/common/sample_colorize.c
	* plug-ins/common/sinus.c
	* plug-ins/common/sparkle.c
	* plug-ins/gflare/gflare.c
	* plug-ins/ifscompose/ifscompose.c
	* plug-ins/imagemap/imap_cmd_guides.c
	* plug-ins/imagemap/imap_preferences.c
	* plug-ins/metadata/interface.c
	* plug-ins/print/gimp_color_window.c
	* plug-ins/print/gimp_main_window.c
	* plug-ins/rcm/rcm_dialog.c
	* plug-ins/script-fu/script-fu-server.c: applied patch from
	Stephan Binner that fixes capitalization issues (bug #309657).
2005-08-22 23:39:12 +00:00
Sven Neumann 1e76f341f9 try a different style for the info labels below the histogram; mainly to
2005-07-19  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimphistogrameditor.c: try a different style for the
	info labels below the histogram; mainly to avoid repositioning.
2005-07-19 09:44:46 +00:00
Sven Neumann e09ee5e501 app/widgets/gimpcoloreditor.c app/widgets/gimpcursorview.c
2005-06-05  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpcoloreditor.c
	* app/widgets/gimpcursorview.c
	* app/widgets/gimpdataeditor.c
	* app/widgets/gimpeditor.c
	* app/widgets/gimphistogrameditor.c
	* app/widgets/gimppaletteeditor.c: peek at the default interface to
	get the parent interface. Unconditionally chain up in get_aux_info()
	and set_aux_info() methods.
2005-06-04 22:49:53 +00:00
Sven Neumann 93eab43eef Use the canonical form for signal names.
2005-05-27  Sven Neumann  <sven@gimp.org>

	* (lots of files): Use the canonical form for signal names.
2005-05-27 16:51:39 +00:00
Sven Neumann 9a5cd29c69 connect to "name-changed" of the active drawable and change the name
2005-05-27  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimphistogrameditor.[ch]: connect to "name-changed"
	of the active drawable and change the name displayed in the editor.
2005-05-27 11:48:50 +00:00
Sven Neumann 684591f81c added a name label (with properties to show/hide and to set it).
2005-05-27  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpeditor.[ch]: added a name label (with properties
	to show/hide and to set it).

	* app/widgets/gimpcontainergridview.[ch]
	* app/widgets/gimphistogrameditor.[ch]: removed the label here and
	use the functionality now provided by GimpEditor instead.

	* app/widgets/gimpcontainerpopup.c: changed accordingly.
2005-05-27 11:40:06 +00:00