Add devel-docs/performance-logs/performance-logs.md, which
describes how to record and view performance logs, and how to
report perofrmance-related issues.
Nicknames on IRC/gitlab are hard, even more when they change depending
on the media! I realize we are regularly asking them or unsure of who to
contact (for instance here for releases). Let's associate each package
with its current maintainer to make it easy to contact the right person
to prepare our official packages before a release.
Add a gimp-register-file-handler-priority procedure, which can be
used to set the priority of a file-handler procedure. When more
than one file-handler procedure matches a file, the procedure with
the lowest priority is used; if more than one procedure has the
lowest priority, it is unspecified which one of them is used. The
default priority of file-handler procedures is 0.
Add the necessary plumbing (plus some fixes) to the plug-in manager
to handle file-handler priorities. In particular, use two
different lists for each type of file-handler procedures: one meant
for searching, and is sorted according to priority, and one meant
for display, and is sorted alphabetically.
Pass the current icon theme directory to plug-ins through the
config message, and add a gimp_icon_theme_dir() libgimp function
for retrieving it. Note that we already have a similar
gimp_icon_get_theme_dir() PDB function, which we keep around, since
it can be used to dynamically query for the current icon dir,
unlike the former, and since it returns a dynamically-allocated
string, while the rest of the config-related functions return
statically allocated strings.
Use the new function, instead of gimp_get_icon_theme_dir(), in
gimp_ui_init(). This allows gimp_ui_init() to run without making
any PDB calls. Consequently, this allows us to start plug-ins that
call gimp_ui_init() without entering the main loop in the main app.
We're going to add a plug-in that displays an interactive dialog
while the main app is blocking waiting for an operation to
complete, and we need to be able to start the plug-in without
entering the main loop, to avoid the possibility of arbitrary code
being executed during the wait.
Bump the protocol version.
GimpBusyBox is used to show a message indicating an operation is in
progress. It's basically just a spinner and a label, with some
styling.
We're going to use it both in app/ and in a plug-in.
Explaining in the intro that the reference is the code, and where to
find it.
Rather than writing uint32/64 for every offset, use "pointer" as a
proper and well defined basic data type, whose detailed description is
in the "BASIC CONCEPTS" section at the start of the file.
... for layer modes.
KDE developers asked me where the code was so that they could reproduce
actual algorithms in their XCF reader. This is obviously interesting
information to have around in our docs.
We should stop using MD5 sums altogether and push forward SHA256/SHA512
hash sums instead. The website is also being updated to display these in
favor of the deprecated MD5 sums.
We are most likely not going to remove previously computed MD5 sums, or
recompute SHA* hashes for older binaries, but at least we should stop
doing MD5 sums of any future binary.
Add new PDB group "drawable_edit" which has all procedures from the
"edit" group which are not cut/copy/paste.
The new group's procedures don't have opacity, paint_mode
etc. arguments but take them from the context instead. Unlike the old
gimp-edit-fill, gimp-drawable-edit-fill now uses the context's opacity
and paint_mode.
The new gimp-drawable-edit-gradient-fill procedure uses even more
context properties which are also newly added with this commit
(gradient_color_space, gradient_repeat_mode, gradient_reverse).
And some cleanup in context.pdb.
This is still WIP, nothing in the edit group is depcreated yet.
The upper text will be centered on the top quarter of the bottom quarter
of the splash image, whereas the bottom text will be centered on the
bottom quarter of the bottom quarter of the splash (unless the splash is
too small, in which case the double of the layout pixel extents will be
used). Basically don't use absolute pixel values anymore for
positionning. This should all be done relatively since there are
nowadays all kind of display size (and positionning the text 6 pixels to
the bottom, as it was done, may be ok on low density displays, yet will
look ugly on high density screens).
Also write this down in the splash requirements in the release howto so
that splash designers are aware that the bottom quarter of their image
will have to be adapted for printing text.
I create this file so that we can refer to it to know whether we can use
a OS-specific API, or if we want to know if we can safely bump a
dependency, etc.
Current splash is not right within these requirements. But that's all
right for this RC.
These requirements are meant to be followed from next release.
I completely forgot to rename the appstream file according to the new
ID. While doing so, I also make it a .in.in file, with initial
processing by the autotools. Indeed I need @GIMP_COMMAND@ to be replaced
by AC_CONFIG_FILES().
Finally I fix a badly closed XML tag (which reminds me I should always
test a commit, even when it's a simple non-C 1-liner change!).
Please don't forget to notify me too of an upcoming release. I need to
update the manifest (for stable releases at Flathub at least, since we
have not set the dev release process yet) and trigger a new build of our
flatpak.
Trying to manually read commits to acknowledge translators, designers,
developers, etc. is just ridiculous. Let's try to have a script doing
the work for us.
You use it like this:
- GIMP 2.9.8 stats: devel-docs/release-stats.sh GIMP_2_9_6 GIMP_2_9_8
- GIMP 2.10 stats: devel-docs/release-stats.sh GIMP_2_8_0
...of official binaries
Add this point right after "Announce on the GNOME I18N mailing list."
Also remove the "wait for mirrors" thing at the end, in a subsection
of that point we say "as fast as possible" and that contradicts each
other.
Move the "properly chilled beverage" to the end where i belongs
(or perhaps it belongs where the build starts...)
This will be a neat reminder for some of the hidden environment
variables helpful to debug GIMP in some cases, as well as some other
tricks, which we often have to tell people or even which we forget (or
don't even know sometimes) ourselves.
This will be less annoying to just remember to check this file if we
forget the name of some environment variable than to try and grep the
git log or the code.
If someone adds another environment variable which changes some behavior
of the code, please add it here. Also if you know some other helpful
tricks, share with all. Thanks.
I've made the download and home page of gimp-web as generic as possible
so that one will just have to update GIMP_VERSIONS in order to release a
new version. In particular, no boring editing of hardcoded versions in
html pages anymore.
Also adding an item to update the authors page as well (which is
generated so it's just a matter of moving a file).
The GNU coding standards rules can be found in:
https://gcc.gnu.org/wiki/FormattingCodeForGCC
I added a few rules, like if the file has existing tabs, we want to show
them as 8 columns. Yet typing tabs automatically expands to 2 spaces.
I also added a rule to highlight (in red) trailing whitespaces, but also
tabs (everywhere, not only trailing) making them easy to spot.
This file can be easily sourced from vimrc for the whole GIMP tree, but
I advise against setting VIM to automatic discover a locale .vimrc,
which is possible but a high security risk since a third-party vimrc
could contain random shell commands.
This explains a little better why some systems (i.e. GNOME…) would show
no icons in menus whereas other (i.e. Linux Mint, Windows…) would show
them. GIMP_ICONS_LIKE_A_BOSS environment variable is a developer trick
to show icons in menus anyway to see how things render on such systems.
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().
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.
gimp_color_config_get_foo_profile() -> get_foo_color_profile()
because the old names clash with possible future accessors for the raw
filename properties.
because it confuses gtk-doc and breaks some links. Also change the
"Index of new symbols in GIMP 2.x" sections to be what seems to be the
modern standard (looked at the GLib and GTK+ docs), and update some
other stuff.
GIMP's OVERLAY mode was identical to SOFTLIGHT. This commit fixes the
issue and introduces a NEW_OVERLAY mode and enum value.
- change gimp:overlay-mode to be a real (svg-ish) overlay mode
- when compositing, map OVERLAY to gimp:softlight-mode
- when compisiting, map NEW_OVERLAY to gimp:overlay-mode
- bump the XCF version when NEW_OVERLAY is used
- map OVERLAY to SOFTLIGHT when loading and saving XCF
- map OVERLAY to softlight in all PDB setters
- map OVERLAY to softlight when deserializing a GimpContext
- change all paint mode menus to show an entry for NEW_OVERLAY
instead of OVERLAY
- change PSP, PSD and OpenRaster to use NEW_OVERLAY
These changes should (redundantly) make sure that no OVERLAY enum
value is used in the core any longer because it gets mapped to
SOFTLIGHT at all entry points, with the downside of introducing a
setter/getter asymmetry when OVERLAY was set in a PDB api.
XCF spec:
- Update to GIMP 2.8.10
- Clarify role of file formats in the save-vs.-export-context
- Rearrange outline
- Collect infos on basic concepts in one chapter
- Add table of contents
- Add File format version history
- Add note on image size
- Add open questions and TODOs
- Sort properties alphabetically
- Unify tiles and hierarchy examples
- Wording
- Cosmetic cleanups
Extract compositing.txt from xcf.txt
Update parasites.txt:
- Replace SVN->Git
- Update contact e-mail address
- Add table of contents
Cherry-picked from commit a83791be19
This item caused builds with --enable-gtk-doc-app to
fail because of a typo and it was also misplaced in
app-core-containers.(cherry picked from commit e1564c44a8)
Add -lm to the linker flags for the doc-shooter binary. Actually add a
whole snippet of makefile boilerplate that also deals with -mwindows,
all other makefiles seem to have it. I have no clue what it does.
(cherry picked from commit ae5f847a11)
Apply patch from Hartmut Kuhse that enables plug-in debugging on
Windows by stopping the process using Windows API, and providing a
small executable "gimp-plugin-resume.exe" to resume the stopped
plug-in.
gimp_font_util_pango_font_description_to_string() isn't needed any
longer as this was fixed long ago in pango itself (and we require a much
higher version anyway). See Pango bug #166540 (at GNOME Bugzilla).
In order to effectively collaborate on this huge porting task, the
first step is to agree on exactly what we want to do.
In an effort to organize this, add gegl-porting-plan.txt to
devel-docs. In this document, we can describe how we want the port to
be done. This is not only for ourselves, but will also be useful for
non-core contributors.
Move the pixbuf layer and image thumbnail function from libgimpui to
libgimp and move gimp_layer_new_from_pixbuf() to gimplayer.[ch] where
it belongs. Change gimp-2.0.pc accordingly, adapt plug-in Makefiles
and update devel-docs.
Introduce gimp_vectors_get_bezier() which creates the bezier
representation on demand and then caches it for subsequent calls
until the vectors object is frozen.
At some point we should introduce GimpVectors::changed instead
of relying on the fact that a vectors object is always frozen
and thawn whenever it is changed...
In order to make a clear separation between the core modules and the
UI modules, move the necessary enums from display-enums.h and
widgets-enums.h to config-enums.h and the files
gimpdisplayoptions.[ch] from the display to the config module. This
removes the config -> display dependency.
This change has three main benefits
* It lets us remove includes of display files from the config module
* We don't have to link gimp-console and test-config with a subset of
object files from the display module
* It is reflected in devel-docs/gimp-module-dependencies.svg that the
application is made up of core modules and UI modules and that no
core module depends on any UI module
Some single-window mode tasks are completed, and some bugs on the 2.8
milestone have been postponed. New estimated release candidate date is
2010-12-27, but I expect more bugs and features to be de-scoped. The
updated estimates are put in a new snapshot, i.e. put in a new column.
Add an OpenOffice.org Calc document that contains a list of tasks that
needs to be done before GIMP 2.8 is ready for release. An estimate of
the time to complete each task, in 8-hour work days, is also
given. Based on this data an estimated date when we will have a GIMP
2.8 release candidate ready is calculated. The formula includes a
“days worked per week”-factor that specifies how many 8-hour work days
that the GIMP community together produces per week. There is also a
sheet where things planned for GIMP 2.10/3.0 is put. With this
document we will be able to better plan what features to include in
what version.
Add an SVG illustration of GIMP library and core modules and the
dependencies between them, created with
tools/module-dependencies.py. One obvoiusly evil dependency is
app/config -> app/display, if we get rid of that the cycle between
core modules might be broken.
This document describes how the GIMP UI framework functions and is
implemented. Here, "UI framework" refers to the system that saves the
UI layout between GIMP sessions, i.e. how docks, dockable dialogs etc
are setup.
The v1 brush name length was still shown as byte 20 - (header_size -20) instead of 20 - (headersize - 1).
The v3 explanation did use 'noticing' instead of 'notifying'.
Merge the rest of the tagging code developed on the tagging branch
by Aurimas Juška. Development will now continue in trunk.
* app/core/gimptag.[ch]: New files (not strictly true but almost)
implementing the represention of a tag.
* app/core/gimptagcache.[ch]: New files implementing functionality
for loading and saving tags to tags.xml, and assigning loaded tags
to tagged objects.
* app/core/gimpfilteredcontainer.[ch]: New files implementing a
tag filtered GimpContainer.
* app/widgets/gimptagentry.[ch]: New files implementing a
GtkEntry-like widget for entering tags.
* app/widgets/gimpcombotagentry.[ch]: New files implementing a
combobox-like widget for selecting tags.
* app/widgets/gimptagpopup.[ch]: New files implementing a popup of
all available tags that can be selected and combined in a
checkbox-like way.
* app/core/gimp.[ch]: Add a GimpTagCache member and manage tag
assignment and saving and loading to/from tags.xml.
* app/widgets/gimpdatafactoryview.c: Add the tag query and tag
assignment widgets to the UI and show the tag filtered items
instead of all items.
* app/core/Makefile.am
* app/widgets/Makefile.am: Add new files.
* app/core/core-types.h
* app/widgets/widgets-types.h: Add new types.
svn path=/trunk/; revision=27816
2008-10-06 Michael Natterer <mitch@gimp.org>
* plug-ins/common/file-gih.c
* plug-ins/common/file-xbm.c: setting a spin button's
page_increment to 1 is of no use, set it to 10 instead.
svn path=/trunk/; revision=27148
2008-09-29 Sven Neumann <sven@gimp.org>
* release-howto.txt: there's no need to fiddle with
po/Makefile.in.in these days.
svn path=/trunk/; revision=27078
2008-09-25 Sven Neumann <sven@gimp.org>
* app/app-sections.txt
* app/app.types: some updates; still a lot to do here...
svn path=/trunk/; revision=27051