No description
Find a file
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
.gitlab gitlab: Comment 'Contribution guidelines' in MR template 2024-06-21 15:06:29 +00:00
.vscode Add .vscode/settings.json compliant with Coding Style 2024-01-19 16:06:06 -03:00
app Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
app-tools Issue #4053: Add "*default_bin" support on Windows and enable it 2024-06-05 11:51:14 -03:00
build gitlab-ci, build/windows: Separate (again) Debian and Crossroad deps 2024-08-01 18:18:34 -03:00
data build/windows: Debloat 'lib/python3.11' bundling 2024-06-23 14:09:22 +00:00
desktop desktop: sync AppStream metadata after GIMP 2.10.38 release. 2024-06-06 21:12:32 +02:00
devel-docs build/linux: Sync with beta manifest regarding x265 2024-07-21 19:33:01 +00:00
docs Issue #4053: Add "*default_bin" support on Windows and enable it 2024-06-05 11:51:14 -03:00
etc Refreshing the templaterc 2024-04-15 23:46:32 +00:00
extensions build/windows, data, extensions, plug-ins: Fix Build omissions 2024-01-02 10:49:31 +00:00
gimp-data@c23a30befe libgimpwidgets, widgets: Fix icons on Path locks 2024-07-16 17:50:41 +00:00
libgimp Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
libgimpbase Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
libgimpcolor libgimpcolor: Make GimpColorProfile a final type 2024-07-28 05:28:31 +00:00
libgimpconfig Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
libgimpmath libgimpmath: Add missing (out) annotations 2024-05-11 15:01:23 +02:00
libgimpmodule app, libgimp*, plug-ins, tools: settings custom check colors now space-invaded. 2024-02-11 23:28:02 +01:00
libgimpthumb app, libgimp*, plug-ins, tools: settings custom check colors now space-invaded. 2024-02-11 23:28:02 +01:00
libgimpwidgets Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
menus menus: move menus to submenus of tab menu 2024-03-08 17:48:38 +00:00
modules modules: Remove last usage of GimpCMYK 2024-06-21 12:44:08 +00:00
pdb Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
plug-ins Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
po Update Georgian translation 2024-07-18 03:38:36 +00:00
po-libgimp Update Chinese (China) translation 2024-07-26 12:58:51 +00:00
po-plug-ins Update Ukrainian translation 2024-07-30 11:58:04 +00:00
po-python Update Norwegian Nynorsk translation 2024-07-14 15:55:08 +00:00
po-script-fu Update Norwegian Nynorsk translation 2024-07-14 16:08:37 +00:00
po-tags Add Hindi translation 2024-04-12 16:36:24 +00:00
po-tips Update Italian translation 2024-05-30 16:12:17 +00:00
po-windows-installer Update Norwegian Nynorsk translation 2024-07-14 15:33:12 +00:00
themes widgets, gui: Connect GimpToolBox to icon size changes 2024-07-28 13:25:51 +00:00
tools Issue #4053: Add "*default_bin" support on Windows and enable it 2024-06-05 11:51:14 -03:00
.clang-format .clang-format: Remove duplicate option 2024-02-21 15:44:48 +00:00
.dir-locals.el
.gitignore .gitignore: Delete unused exceptions 2024-01-19 15:43:46 -03:00
.gitlab-ci.yml gitlab-ci: Clarify a bit better Debian 'build' deps 2024-08-01 19:12:05 -03:00
.gitmodules gitmodules, gimp-data: set the default remote branch. 2024-03-28 04:30:59 +01:00
.kateconfig
AUTHORS AUTHORS: update. 2022-02-25 21:06:17 +01:00
authors.dtd
authors.xml authors: update. 2022-08-21 12:24:20 +02:00
authors.xsl
authors4gimp-web.xsl
ChangeLog.pre-1-0
ChangeLog.pre-1-2
ChangeLog.pre-2-0
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-git
COPYING
gimp.doap DOAP: Replace defunct mailing list 2023-12-13 10:16:27 +03:00
INSTALL.in Issue #11760: explain why poppler-data is a hard dependency. 2024-07-04 21:50:11 +02:00
LICENSE LICENSE: add a note about data/ licensing for future added data. 2023-03-16 23:20:44 +01:00
MAINTAINERS
meson.build meson, build/linux: Fix 'sed' hell in Flatpak build 2024-06-24 17:39:46 +00:00
meson_dist_script.sh meson: remove a reference to autotools files in the meson dist script. 2023-06-06 23:49:39 +02:00
meson_install_win_debug.sh meson, build/windows: generate .pdb (CodeView) debug symbols 2024-04-21 18:13:47 -03:00
meson_options.txt Issue #4053: Add "*default_bin" support on Windows and enable it 2024-06-05 11:51:14 -03:00
NEWS NEWS: update. 2024-07-24 19:14:50 +02:00
NEWS.pre-2-0
NEWS.pre-2-2
NEWS.pre-2-4
NEWS.pre-2-6
NEWS.pre-2-8
NEWS.pre-2-10
README README: some updates. 2023-11-05 22:25:09 +01:00
README.i18n

                   ------------------------------
                   GNU Image Manipulation Program
                      2.99 Development Branch
                   ------------------------------

This is an unstable development release, an intermediate state on the
way to the next stable release: GIMP 3.0. GIMP 2.99 may or may not do
what you expect. Save your work early and often. If you want a stable
version, please use GIMP 2.10 instead.

If you think you found a bug in this version, please make sure that it
hasn't been reported earlier and that it is not just new stuff that is
still being worked on and obviously not quite finished yet.

If you want to hack on GIMP, please read the file devel-docs/README.md.
For detailed installation instructions, see the file INSTALL.


1. Web Resources
================

GIMP's home page is at:

	https://www.gimp.org/

Please be sure to visit this site for information, documentation,
tutorials, news, etc.  All things GIMP-ish are available from there.

The latest version of GIMP can be found at:

	https://www.gimp.org/downloads/

We also have a website dedicated to documentation at:

        https://docs.gimp.org/


2. Contributing
===============

GIMP source code can be found at:

	https://gitlab.gnome.org/GNOME/gimp/

Resources for contributors:

        https://developer.gimp.org/

In particular, you may want to look in the "Core Development" section. Some
articles of particular interest for newcomers could be:

* Setting up your developer environment: https://developer.gimp.org/core/setup/
* GIMP Coding Style: https://developer.gimp.org/core/coding_style/
* Submit your first patch: https://developer.gimp.org/core/submit-patch/


3. Discussion Channels
======================

We have several discussion channels dedicated to GIMP user and
development discussion. There is more info at:

        https://www.gimp.org/discuss.html

For the real junkies, there are IRC channels (e.g. #gimp or #gimp-user)
devoted to GIMP on GIMPNet (a private free software oriented network).
Many of the developers hang out there. Some of the GIMPNet servers are:

	irc.gimp.org:6667
	irc.us.gimp.org:6667
	irc.eu.gimp.org:6667

More discussion channels, such as forums, will be listed on the above
"discuss" page when they are moderated by a team member.
Links to archives of former discussion methods (e.g. mailing lists) are
also included in that page.

4. Customizing
==============

The look of GIMP's interface can be customized like any other GTK+ app
by editing files in `${XDG_CONFIG_HOME}/gtk-3.0/` (settings.ini and
gtk.css in particular) or by using "themes" (ready-made customizations).
Additionally, GIMP reads `${XDG_CONFIG_HOME}/GIMP/2.99/gimp.css` so you
can have settings that only apply to GIMP.

You can also manually change the keybindings to any of your choice by
editing: `${XDG_CONFIG_HOME}/GIMP/2.99/shortcutsrc`.


Have fun,

  Spencer Kimball
  Peter Mattis
  Federico Mena
  Manish Singh
  Sven Neumann
  Michael Natterer
  Dave Neary
  Martin Nordholts
  Jehan