1
1
mirror of https://gitlab.gnome.org/GNOME/gimp.git synced 2025-10-06 01:12:40 +02:00

108 Commits

Author SHA1 Message Date
Jehan
d493f0537f Issue #8900 and #9923: reimplementing GimpUnit as a proper class.
This fixes all our GObject Introspection issues with GimpUnit which was
both an enum and an int-derived type of user-defined units *completing*
the enum values. GIR clearly didn't like this!

Now GimpUnit is a proper class and units are unique objects, allowing to
compare them with an identity test (i.e. `unit == gimp_unit_pixel ()`
tells us if unit is the pixel unit or not), which makes it easy to use,
just like with int, yet adding also methods, making for nicer
introspected API.

As an aside, this also fixes #10738, by having all the built-in units
retrievable even if libgimpbase had not been properly initialized with
gimp_base_init().
I haven't checked in details how GIR works to introspect, but it looks
like it loads the library to inspect and runs functions, hence
triggering some CRITICALS because virtual methods (supposed to be
initialized with gimp_base_init() run by libgimp) are not set. This new
code won't trigger any critical because the vtable method are now not
necessary, at least for all built-in units.

Note that GimpUnit is still in libgimpbase. It could have been moved to
libgimp in order to avoid any virtual method table (since we need to
keep core and libgimp side's units in sync, PDB is required), but too
many libgimpwidgets widgets were already using GimpUnit. And technically
most of GimpUnit logic doesn't require PDB (only the creation/sync
part). This is one of the reasons why user-created GimpUnit list is
handled and stored differently from other types of objects.

Globally this simplifies the code a lot too and we don't need separate
implementations of various utils for core and libgimp, which means less
prone to errors.
2024-08-02 10:46:38 +02:00
Michael Natterer
7ada432690 app: big porting of weak pointers to g_set,clear_weak_pointer()
This started as review of weak pointers, but using
g_set_weak_pointer() and g_clear_weak_pointer() is almost always
better, and shorter.
2023-05-22 18:16:09 +02:00
Alx Sa
e3074df900 tools: Correct Fixed Size toggle behavior
gimp_rectangle_options_fixed_rule_changed is called when either the
checkbox or the dropdown for Fixed Size is changed.
However, the "fixed-size-active" property was not updated until after
it ran, so the toggle behavior is inverted.
This checks to see if the toggle was changed and updates the boolean 
before setting the size field as (in)sensitive.
2023-04-18 01:37:25 +00:00
lapaz
9908a06896 app: Increase width of position/size boxes ...
... in rectangle select tool. This allows boxes to display larger
values up to 7 characters.

Resolves: #9034 (GNOME/GIMP tracker)
2023-03-03 09:57:14 +06:00
Jehan
7056f1b960 app, libgimpwidgets: move gimp_prop_spin_scale_new() and…
… gimp_prop_widget_set_factor() to libgimpwidgets.

Now that GimpSpinScale is in libgimpwidgets, it's time to move the
associated prop too, to make it a prop widget with such a widget easily
creatable by plug-ins.

While doing so, I update both these functions logic, binding properties
together with the g_object_bind_property*() APIs (as we do already in
some other recent prop functions) rather than connecting to signals
ourselves. It makes for much simpler code.
2022-02-19 00:14:44 +01:00
Michael Natterer
9593121431 app, libgimpwidgets: return visible widgets from all gimp_prop_foo_new()
and remove a gazillion gtk_widget_show() all over the place, some
places need a gtk_widget_hide() now, and I'm pretty sure I broke at
least one thing in all those files...
2019-09-25 20:24:06 +02:00
Niels De Graef
1dda60154c Use "Returns:" to annotate return values
To be able to annotate return values through GObject-introspection, you
need to make sure it is tagged with `Returns:` and not something else.
2019-08-03 07:53:47 +00:00
Michael Natterer
e249a42226 Issue #3343 - Some translated tooltips are appearing untranslated
Tool options properties must be translated with _() not N_().
2019-05-25 11:42:07 +02:00
Ell
8954d1f386 libgimpwidgets, app, plug-ins: use GimpSpinButton everywhere
Replace all direct uses of GtkSpinButton with GimpSpinButton, so
that its modified behavior extends to all our spin buttons.
2019-03-09 07:28:52 -05:00
Michael Natterer
5f700549e7 Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
Michael Natterer
6c3b1112be app: make the rectangle options a bit narrower, still too wide... 2018-07-08 14:45:48 +02:00
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
b4e5b4ae91 app: fix GimpRectangleOptions' packing after the GimpFrame change 2018-05-30 00:39:15 +02:00
Ell
cdd96059f7 app: port all interfaces to G_DEFINE_INTERFACE()
... instead of calling g_type_register_static() ourselves.
2018-05-27 05:56:34 -04:00
Simon Budig
72e63887ba libgimpwidgets: convert GimpSizeEntry to a GtkGrid. 2018-05-20 21:06:32 +02:00
Ell
7959c7bf61 app: set GimpRectangleOptions highlight-opacity scale to 100
Set the scale of the GimpRectangleOptions highlight-opacity
spinscale to 100, so that the spinscale's range is 0-100, instead
of 0-1, like the rest of our opacity spinscales.
2018-02-15 17:06:51 -05:00
Massimo Valentini
423ce6fca3 Bug 770689 - Custom transparency controller for dark...
...outside area of Crop Tool -> Highlight option

Add "highlight-opacity" property and turn the controlling GUI into an
expanding toggle that reveals an opacity slider.
2018-01-02 14:33:27 +01:00
Ell
e06a18b944 app: use a single size entry for the pos/size props of GimpRectangleOptions
Repalce the two separate size entries, used for the position and
size properties of GimpRectangleOptions, with a single size entry
with two fields, so that they accept ratio expressions.  Note that
this doesn't change the UI.
2017-10-04 14:25:02 -04: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
2f0963589b app: add gimp_rectangle_options_connect() and _disconnect()
and use the new function from GimpRectangleTool. We need this also in
the new GimpToolWidget-base code, so it has to move out of
gimprectangletool.c.
2017-06-26 19:19:16 +02:00
Michael Natterer
d089aa629b app: rename enum GimpRectangleToolFixedRule to GimpRectangleFixedRule 2017-06-24 19:48:09 +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
Michael Natterer
47ef3be145 Initialize GValues with G_VALUE_INIT instead of { 0, } 2016-03-26 15:59:26 +01:00
Michael Natterer
e5b6806fe2 app: port tons of files to the new GIMP_CONFIG_PROP_FOO() macros
and remove lots of labels from calls to gimp_prop_foo_new(). Also
had to manually remove some unwanted labels that are now added
automatically, fixes bug #761880.
2016-02-11 23:46:24 +01:00
Michael Natterer
17167594ea app: use the newly added libgimpwidgets icon name APIs 2014-05-07 21:32:09 +02:00
Michael Natterer
fc0765ce16 app: ellipsize most tool options combo boxes
which means that now check/radio button labels are our biggest
width-wasters.
2013-06-03 17:35:36 +02:00
Michael Natterer
a5d2123adf app: use the new combo box label in many tool options
and generally clean up a bit. Reuse the clone options code in the
perspective clone options. Addresses bug #122862.
2013-06-03 16:40:24 +02:00
Michael Natterer
867da8f293 app: add gimp_context_get_foreground,background_pixel()
which takes a Babl format to convert from/to.
Include <gegl.h> in a million places.
2012-05-02 17:50:41 +02:00
Michael Natterer
3e336199b9 app: use gtk_box_new() 2011-09-30 11:29:11 +02:00
Michael Natterer
f7a390d5d0 app: add N_LINES and SPACING to enum GimpGuidesType
but don't show them in the rectangle options UI, this is just a step
towards unifying the enums.
2011-07-24 17:47:08 +02:00
Michael Natterer
0dcdfe9e80 app: move enum GimpRectangleGuide from tools/ to display/
and rename it to enum GimpGuidesType.
2011-05-20 19:41:48 +02:00
Michael Natterer
909e7833a3 app: remove some more -Wunused-but-set-variable 2011-05-02 13:53:58 +02:00
Alexandre Prokoudine
c5b44f6bd0 More tooltips for tools options
Added previously missing tooltips for rectangular and region
selection based tools.
2011-04-21 00:17:31 +04:00
Michael Natterer
c48c77b2e0 app: NULLify GimpRectangleOptions widget pointers upon destruction
so the NULL checks in GimpRectangleTool work no matter what the
shutdown order is.
2011-04-01 22:56:33 +02:00
Martin Nordholts
df0772fcde app: Add 'crop_set_width_without_pending_rect' regression test
Add regression test 'crop_set_width_without_pending_rect' for "Bug
322396 - Crop dimension entering causes crash".
2010-10-31 15:09:03 +01:00
Michael Natterer
c36f762f7d libgimpwidgets: deprecate GimpUnitMenu and gimp_prop_unit_menu_new()
Add gimp_prop_unit_combo_box_new() and adapt all places using the
prop_unit_menu. Some things are broken now, like there are no pixel
digits set, resolution unit menus show "pixels" and warn badly when
pixels is selected, and file-pdf-load is not built right now.
More fixes to come...
2010-10-14 23:03:34 +02:00
Martin Nordholts
876e99fdd0 app: Rectangle tool: Allow 'size' separators in 'aspect' and vice versa
In the Rectangle tool options, allow 'Fixed: Size' separators in
'Fixed: Aspect ratio' and vice versa, no point in being strict.
2010-08-16 22:00:06 +02:00
Barak Itkin
5a9f2f1eac app: Add '/' as a seperator for the rectangle tools options (in the Fixed field) 2010-07-23 19:17:12 +03: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
176f4c5689 app/dialogs/module-dialog.c app/display/gimpscalecombobox.c
2008-11-16  Michael Natterer  <mitch@gimp.org>

	* app/dialogs/module-dialog.c
	* app/display/gimpscalecombobox.c
	* app/tools/gimpgegltool.c
	* app/tools/gimprectangleoptions.c
	* app/widgets/gimpactionview.[ch]
	* app/widgets/gimpcomponenteditor.c
	* app/widgets/gimpcontainerentry.[ch]
	* app/widgets/gimpcontrollereditor.c
	* app/widgets/gimpcontrollerlist.c
	* app/widgets/gimpfileprocview.c: s/NUM_COLUMNS/N_COLUMNS/


svn path=/trunk/; revision=27674
2008-11-16 20:17:43 +00:00
Sven Neumann
b1f1852e50 app/tools/gimpcropoptions.c app/tools/gimprectangleoptions.c fixed
2008-06-04  Sven Neumann  <sven@gimp.org>

	* app/tools/gimpcropoptions.c
	* app/tools/gimprectangleoptions.c
	* app/tools/gimprectangleselectoptions.c: fixed handling of the
	"highlight" property that needs different default values for the
	Crop and Rectangle Select tools (bug #536582).

svn path=/trunk/; revision=25890
2008-06-04 13:57:39 +00:00
Martin Nordholts
c94eb4d170 Fix indentation.
2007-11-24  Martin Nordholts  <martinn@svn.gnome.org>

	* app/tools/gimprectangleoptions.c
	(gimp_rectangle_options_iface_base_init): Fix indentation.

svn path=/trunk/; revision=24227
2007-11-24 10:09:09 +00:00
Martin Nordholts
e157ac06b1 Lessen code bloat by removing code that manages center-[xy] properies of
2007-11-11  Martin Nordholts  <martinn@svn.gnome.org>

	* app/tools/gimprectangletool.c: Lessen code bloat by removing
	code that manages center-[xy] properies of GimpRectangleOptions.
	Instead use x1, y1 and x2, y2 when working with the rectangle
	center.

	* app/tools/gimprectangleoptions.[ch]: Removed "center-x" and
	"center-y" properties.

svn path=/trunk/; revision=24115
2007-11-11 07:44:17 +00:00
Michael Natterer
74be00e0b6 redid the x, y, width and height entries according to a mockup from peter.
2007-10-16  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimprectangleoptions.c: redid the x, y, width and
	height entries according to a mockup from peter.


svn path=/trunk/; revision=23843
2007-10-16 14:24:08 +00:00
Sven Neumann
f72606f09b more translator comments
svn path=/trunk/; revision=23835
2007-10-15 20:53:41 +00:00
Sven Neumann
46fa984a2d added translator comment for the string "Current". Changed "Auto Shrink
2007-10-15  Sven Neumann  <sven@gimp.org>

	* app/tools/gimprectangleoptions.c: added translator comment for 
the
	string "Current". Changed "Auto Shrink Selection" to "Auto 
Shrink".


svn path=/trunk/; revision=23834
2007-10-15 20:49:27 +00:00
Michael Natterer
6a6591b457 split the "unit" property into "position-unit" and "size-unit" and added a
2007-10-15  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimprectangleoptions.[ch]: split the "unit" property
	into "position-unit" and "size-unit" and added a unit menu to the
	position widget group. UI pending further changes...


svn path=/trunk/; revision=23831
2007-10-15 16:47:07 +00:00
Michael Natterer
2d4ce38ae4 moved the "Highlight" toggle down to the "Guides" combo.
2007-10-15  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimprectangleoptions.c (gimp_rectangle_options_gui):
	moved the "Highlight" toggle down to the "Guides" combo.


svn path=/trunk/; revision=23830
2007-10-15 16:34:58 +00:00
Michael Natterer
a16e2c9a9f added the x and y size entries to the GimpRectangleOptionPrivate struct.
2007-10-15  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimprectangleoptions.[ch]: added the x and y size
	entries to the GimpRectangleOptionPrivate struct.

	* app/tools/gimprectangletool.c (gimp_rectangle_tool_start): set
	the image's resolution on the x, y, width and height size entries.


svn path=/trunk/; revision=23829
2007-10-15 16:26:05 +00:00
Michael Natterer
3b2fa02a6e Reduced the Width: and Height: labels to W: and H:. Please check and
2007-10-14  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimprectangleoptions.c (gimp_rectangle_options_gui):
	Reduced the Width: and Height: labels to W: and H:. Please check
	and comment, we need some solution for this group of widgets
	including the unit menu.


svn path=/trunk/; revision=23825
2007-10-14 20:24:57 +00:00