Initial checkin of Pika from heckimp
This commit is contained in:
46
.clang-format
Normal file
46
.clang-format
Normal file
@ -0,0 +1,46 @@
|
||||
# For more information, see:
|
||||
#
|
||||
# https://clang.llvm.org/docs/ClangFormat.html
|
||||
# https://clang.llvm.org/docs/ClangFormatStyleOptions.html
|
||||
#
|
||||
---
|
||||
|
||||
BasedOnStyle: GNU
|
||||
|
||||
AlignAfterOpenBracket: Align
|
||||
AlignArrayOfStructures: Left
|
||||
AlignConsecutiveAssignments: Consecutive
|
||||
AlignConsecutiveDeclarations: Consecutive
|
||||
AlignConsecutiveMacros: Consecutive
|
||||
AlignEscapedNewlines: Left
|
||||
|
||||
AllowAllParametersOfDeclarationOnNextLine: false
|
||||
AlwaysBreakAfterReturnType: AllDefinitions
|
||||
BinPackParameters: false
|
||||
BreakBeforeBraces: GNU
|
||||
IndentWidth: 2
|
||||
PointerAlignment: Right
|
||||
UseTab: Never
|
||||
|
||||
SpaceBeforeParens: Always
|
||||
SpaceAfterLogicalNot: true
|
||||
SpaceAfterCStyleCast: true
|
||||
|
||||
# Our column limit is more around 80 characters but we want to avoid
|
||||
# this rule to be over-agressive. So for clang-format, let's use a
|
||||
# higher limit. Then let's put some biggish penalties on breaking on
|
||||
# assignment, or parentheses, or other similar cases. Actually with such
|
||||
# limits, if clang-format really ends up re-formatting, there might be
|
||||
# something better to do code-wise (i.e. we might be in an akwardly
|
||||
# over-nested block case).
|
||||
ColumnLimit: 80
|
||||
PenaltyBreakAssignment: 60
|
||||
PenaltyBreakBeforeFirstCallParameter: 100
|
||||
PenaltyBreakString: 60
|
||||
# Uncomment this when we start using clang-format 14 in the CI.
|
||||
# PenaltyBreakOpenParenthesis: 40
|
||||
PenaltyExcessCharacter: 1
|
||||
# Strings are more often longer by usage, so let's give these slightly
|
||||
# more space to breath.
|
||||
PenaltyBreakString: 60
|
||||
PenaltyReturnTypeOnItsOwnLine: 50
|
||||
4
.dir-locals.el
Normal file
4
.dir-locals.el
Normal file
@ -0,0 +1,4 @@
|
||||
((c-mode . ((c-file-style . "GNU")
|
||||
(c-basic-offset . 2)
|
||||
(indent-tabs-mode . nil)
|
||||
(show-trailing-whitespace . t))))
|
||||
6
.gitignore
vendored
Normal file
6
.gitignore
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
# Meson
|
||||
/_build
|
||||
/compile_commands.json
|
||||
|
||||
# Atom editor
|
||||
/.vscode
|
||||
1096
.gitlab-ci.yml
Normal file
1096
.gitlab-ci.yml
Normal file
File diff suppressed because it is too large
Load Diff
32
.gitlab/cp-plug-in-subfolder.py
Normal file
32
.gitlab/cp-plug-in-subfolder.py
Normal file
@ -0,0 +1,32 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
# Equivalent to:
|
||||
# configure_file(input: src,
|
||||
# output: name / src,
|
||||
# copy: true,
|
||||
# install_dir: pikaplugindir / 'plug-ins' / name,
|
||||
# install_mode: 'rwxr-xr-x')
|
||||
# Except that configure_file() does not accept output in a subdirectory. So we
|
||||
# use this wrapper for now.
|
||||
# See: https://github.com/mesonbuild/meson/issues/2320
|
||||
import os
|
||||
import shutil
|
||||
import stat
|
||||
import sys
|
||||
|
||||
src_file = sys.argv[1]
|
||||
dir_name = sys.argv[2]
|
||||
dummy_path = None
|
||||
if len(sys.argv) > 3:
|
||||
dummy_path = sys.argv[3]
|
||||
|
||||
os.makedirs(dir_name, exist_ok=True)
|
||||
|
||||
file_name = os.path.basename(src_file)
|
||||
dst_file = os.path.join(dir_name, file_name)
|
||||
shutil.copyfile(src_file, dst_file)
|
||||
os.chmod(dst_file, stat.S_IRWXU | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH)
|
||||
|
||||
if dummy_path is not None:
|
||||
# Just touch the dummy file.
|
||||
open(dummy_path, mode='w').close()
|
||||
41
.gitlab/issue_templates/Default.md
Normal file
41
.gitlab/issue_templates/Default.md
Normal file
@ -0,0 +1,41 @@
|
||||
<!-- โ ๏ธ IMPORTANT: READ ME! โ ๏ธ
|
||||
This is the default template for bug reports.
|
||||
For feature requests or performance issues, please switch instead to the appropriate template in the "Choose a template" list.
|
||||
|
||||
It is important that you fill all the fields of the template.
|
||||
-->
|
||||
|
||||
### Environment/Versions
|
||||
|
||||
- PIKA version:
|
||||
- Package: <!--[flatpak? Installer from https://heckin.technology/AlderconeStudio/PIKApp? If another installer, tell us where from] (write it after the > symbol)-->
|
||||
- Operating System: <!--[Windows? macOS? Linux? All?] (write it after the > symbol) -->
|
||||
|
||||
<!--Note: bug reporters are expected to have verified the bug still exists
|
||||
either in the last stable version of PIKA or on updated development code
|
||||
(master branch).-->
|
||||
|
||||
### Description of the bug
|
||||
|
||||
<!--Please describe your issue with details.
|
||||
Add screenshot or other files if needed.(write it after the > symbol)-->
|
||||
|
||||
### Reproduction
|
||||
|
||||
Is the bug reproducible? <!--[Always / Randomly / Happened only once ] (write it after the > symbol)-->
|
||||
|
||||
Reproduction steps:
|
||||
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
|
||||
โฆ
|
||||
|
||||
Expected result:
|
||||
|
||||
Actual result:
|
||||
|
||||
### Additional information
|
||||
|
||||
If you have a backtrace for a crash or a warning, paste it here.
|
||||
15
.gitlab/issue_templates/feature.md
Normal file
15
.gitlab/issue_templates/feature.md
Normal file
@ -0,0 +1,15 @@
|
||||
**Operating System:** <!--[Windows? macOS? Linux? All?] (write it after the > symbol) -->
|
||||
|
||||
### Description of the feature
|
||||
|
||||
<!-- Please describe your feature with details.
|
||||
|
||||
Add screenshots, design images or other files which would help for
|
||||
understanding the feature or for implementation.
|
||||
Also add links when needed, for instance for implementation standards
|
||||
or other relevant resources.-->
|
||||
|
||||
### Use cases
|
||||
|
||||
<!-- If not obvious, explain the use cases or problems to solve. -->
|
||||
|
||||
34
.gitlab/issue_templates/performance.md
Normal file
34
.gitlab/issue_templates/performance.md
Normal file
@ -0,0 +1,34 @@
|
||||
### Environment/Versions
|
||||
|
||||
- PIKA Version:
|
||||
- Package: <!--[flatpak? Installer from https://heckin.technology/AlderconeStudio/PIKApp? If another installer, tell us where from] (write it after the > symbol)-->
|
||||
- Operating System: <!--[Windows? macOS? Linux? All?] (write it after the > symbol) -->
|
||||
|
||||
<!-- Note: bug reporters are expected to have verified the bug still exists
|
||||
either in the last stable version of PIKA or on updated development code
|
||||
(master branch). -->
|
||||
|
||||
### Issue Description
|
||||
|
||||
<!-- Please provide a general description of the issue. -->
|
||||
|
||||
### Performance Log
|
||||
|
||||
<!-- Please record a performance log demonstrating the issue, and attach it to the report.
|
||||
For more information, see
|
||||
|
||||
https://developer.pika.org/core/debug/performance-logs/
|
||||
|
||||
-->
|
||||
|
||||
### Performance Log Description
|
||||
|
||||
<!-- Please describe in detail the actions performed in the performance log.
|
||||
If you added empty event markers to the log, please provide a description for them here.
|
||||
If you recorded a screencast while recording the log, please attach it here. -->
|
||||
|
||||
### Additional Information
|
||||
|
||||
<!-- If there is any additional information, please provide it here. -->
|
||||
|
||||
/label ~"1. Performance"
|
||||
15
.gitlab/merge_request_templates/default.md
Normal file
15
.gitlab/merge_request_templates/default.md
Normal file
@ -0,0 +1,15 @@
|
||||
Contribution guidelines:
|
||||
|
||||
- Follow our coding style, which is mostly the GNU coding style
|
||||
with some specificities: see [Coding Style](https://developer.pika.org/core/coding_style/).
|
||||
|
||||
- Make sure no trailing spaces or tabs are left out.
|
||||
|
||||
- Check the following option when making your request:
|
||||
"*Allow commits from members who can merge to the target branch.*"
|
||||
|
||||
- Enable the container registry for your repository by following this
|
||||
documentation, but enabling the feature instead of disabling it
|
||||
(unlike what the docs says, Container Registry is disabled by default
|
||||
on our Gitlab instance):
|
||||
https://docs.gitlab.com/ee/user/packages/container_registry/#disable-the-container-registry-for-a-project
|
||||
30
.gitlab/run_style_check_diff.sh
Normal file
30
.gitlab/run_style_check_diff.sh
Normal file
@ -0,0 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
ancestor_horizon=28 # days (4 weeks)
|
||||
|
||||
echo ""
|
||||
echo "This script may be wrong. You may disregard it if it conflicts with"
|
||||
echo "https://gitlab.gnome.org/GNOME/pika/-/blob/master/CODING_STYLE.md"
|
||||
|
||||
clang-format --version
|
||||
|
||||
# Wrap everything in a subshell so we can propagate the exit status.
|
||||
(
|
||||
|
||||
source .gitlab/search-common-ancestor.sh
|
||||
|
||||
git diff -U0 --no-color "${newest_common_ancestor_sha}" | clang-format-diff -p1 > format-diff.log
|
||||
)
|
||||
exit_status=$?
|
||||
|
||||
[ ${exit_status} == 0 ] || exit ${exit_status}
|
||||
|
||||
format_diff="$(<format-diff.log)"
|
||||
|
||||
if [ -n "${format_diff}" ]; then
|
||||
cat format-diff.log
|
||||
exit 1
|
||||
fi
|
||||
|
||||
39
.gitlab/search-common-ancestor.sh
Normal file
39
.gitlab/search-common-ancestor.sh
Normal file
@ -0,0 +1,39 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
ancestor_horizon=28 # days (4 weeks)
|
||||
|
||||
# We need to add a new remote for the upstream target branch, since this script
|
||||
# could be running in a personal fork of the repository which has out of date
|
||||
# branches.
|
||||
#
|
||||
# Limit the fetch to a certain date horizon to limit the amount of data we get.
|
||||
# If the branch was forked from origin/main before this horizon, it should
|
||||
# probably be rebased.
|
||||
if ! git ls-remote --exit-code upstream >/dev/null 2>&1 ; then
|
||||
git remote add upstream https://gitlab.gnome.org/GNOME/pika.git
|
||||
fi
|
||||
git fetch --shallow-since="$(date --date="${ancestor_horizon} days ago" +%Y-%m-%d)" upstream &> ./fetch_upstream.log
|
||||
|
||||
# Work out the newest common ancestor between the detached HEAD that this CI job
|
||||
# has checked out, and the upstream target branch (which will typically be
|
||||
# `upstream/main` or `upstream/glib-2-62`).
|
||||
# `${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}` or `${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}`
|
||||
# are only defined if weโre running in a merge request pipeline,
|
||||
# fall back to `${CI_DEFAULT_BRANCH}` or `${CI_COMMIT_BRANCH}` respectively
|
||||
# otherwise.
|
||||
|
||||
# add mr-origin
|
||||
git remote add mr-origin ${CI_MERGE_REQUEST_SOURCE_PROJECT_URL}
|
||||
|
||||
source_branch="${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-${CI_COMMIT_BRANCH}}"
|
||||
git fetch --shallow-since="$(date --date="${ancestor_horizon} days ago" +%Y-%m-%d)" mr-origin "${source_branch}" &> ./fetch_origin.log
|
||||
|
||||
newest_common_ancestor_sha=$(diff --old-line-format='' --new-line-format='' <(git rev-list --first-parent "upstream/${CI_MERGE_REQUEST_TARGET_BRANCH_NAME:-${CI_DEFAULT_BRANCH}}") <(git rev-list --first-parent "mr-origin/${source_branch}") | head -1)
|
||||
if [ -z "${newest_common_ancestor_sha}" ]; then
|
||||
echo "Couldnโt find common ancestor with upstream main branch. This typically"
|
||||
echo "happens if you branched from main a long time ago. Please update"
|
||||
echo "your clone, rebase, and re-push your branch."
|
||||
exit 1
|
||||
fi
|
||||
4
.kateconfig
Normal file
4
.kateconfig
Normal file
@ -0,0 +1,4 @@
|
||||
kate: indent-mode cstyle;
|
||||
kate: indent-width 2; tab-width 8;
|
||||
kate: tab-indents off; replace-tabs on;
|
||||
kate: remove-trailing-spaces modified;
|
||||
397
AUTHORS
Normal file
397
AUTHORS
Normal file
@ -0,0 +1,397 @@
|
||||
-- This file is generated from authors.xml, do not edit it directly. --
|
||||
|
||||
PIKA was originally written by:
|
||||
|
||||
Spencer Kimball
|
||||
Peter Mattis
|
||||
|
||||
|
||||
The current maintainers are:
|
||||
|
||||
Michael Natterer
|
||||
Jehan
|
||||
|
||||
|
||||
The following people have contributed code to PIKA:
|
||||
|
||||
Lauri Alanko
|
||||
Fredrik Alstrรถmer
|
||||
Shawn Amundson
|
||||
Sven Anders
|
||||
Henrik Brix Andersen
|
||||
Karl-Johan Andersson
|
||||
Rob Antonishen
|
||||
Nicola Archibald
|
||||
Timm Bรคder
|
||||
Luis Barrancos
|
||||
Jerry Baker
|
||||
John Beale
|
||||
Zach Beane
|
||||
Tom Bech
|
||||
Daniel P. Berrange
|
||||
Marc Bless
|
||||
Edward Blevins
|
||||
Reagan Blundell
|
||||
Jacob Boerema
|
||||
Hendrik Boom
|
||||
Xavier Bouchoux
|
||||
Richard Bowers
|
||||
Roberto Boyd
|
||||
Stanislav Brabec
|
||||
Hans Breuer
|
||||
Simon Budig
|
||||
Joรฃo S. O. Bueno
|
||||
Seth Burgess
|
||||
Brent Burton
|
||||
Francisco Bustamante
|
||||
Albert Cahalan
|
||||
George J. Carrette
|
||||
Marco Ciampa
|
||||
Sean Cier
|
||||
Winston Chang
|
||||
Stephane Chauveau
|
||||
Zbigniew Chyla
|
||||
Lars-Peter Clausen
|
||||
Sven Claussner
|
||||
Branko Collin
|
||||
Ed Connel
|
||||
Piers Cornwell
|
||||
David Costanzo
|
||||
Daniel Cotting
|
||||
Jay Cox
|
||||
Kevin Cozens
|
||||
Jeremiah Darais
|
||||
Michael Deal
|
||||
Alexia Death
|
||||
Brian Degenhardt
|
||||
Karine Delvare
|
||||
Andreas Dilger
|
||||
Nicholas Doyle
|
||||
Austin Donnelly
|
||||
Scott Draves
|
||||
Daniel Dunbar
|
||||
Marek Dvoroznak
|
||||
Misha Dynin
|
||||
Daniel Eddeland
|
||||
Daniel Egger
|
||||
Ulf-D. Ehlert
|
||||
Gil Eliyahu
|
||||
Tobias Ellinghaus
|
||||
Ell
|
||||
Morton Eriksen
|
||||
Larry Ewing
|
||||
Dirk Farin
|
||||
Pedro Alonso Ferrer
|
||||
Nick Fetchak
|
||||
Piotr Filiciak
|
||||
Shlomi Fish
|
||||
Sylvain Foret
|
||||
David Forsyth
|
||||
Raphael Francois
|
||||
Gerald Friedland
|
||||
Jochen Friedrich
|
||||
Daniel Richard G
|
||||
Jordi Gay
|
||||
Jim Geuther
|
||||
GG
|
||||
Graeme Gill
|
||||
Pedro Gimeno
|
||||
Richard Gitschlag
|
||||
Scott Goehring
|
||||
Heiko Goller
|
||||
Marcelo de Gomensoro Malheiros
|
||||
Saul Goode
|
||||
David Gowers
|
||||
Niels De Graef
|
||||
Cameron Gregory
|
||||
Stanislav Grinkov
|
||||
Eric Grivel
|
||||
Stephen Griffiths
|
||||
Pavel Grinfeld
|
||||
Dov Grobgeld
|
||||
Michael Hammel
|
||||
Julien Hardelin
|
||||
Tim Harder
|
||||
Marcus Heese
|
||||
Robert Helgesson
|
||||
Michael Henning
|
||||
James Henstridge
|
||||
Eric Hernes
|
||||
Lukasz Hladowski
|
||||
David Hodson
|
||||
Christoph Hoegl
|
||||
Wolfgang Hofer
|
||||
รric Hoffman
|
||||
Patrick Horgan
|
||||
Alan Horkan
|
||||
Daniel Hornung
|
||||
Christopher Howard
|
||||
Jan Hubiฤka
|
||||
Alexander Hรคmmerle
|
||||
HJ Imbens
|
||||
Barak Itkin
|
||||
Ben Jackson
|
||||
Tim Janik
|
||||
Kristian Jantz
|
||||
Javier Jardรณn
|
||||
Tim Jedlicka
|
||||
Rรณman Joost
|
||||
Alexander Jones
|
||||
Geert Jordaens
|
||||
Aurimas Juลกka
|
||||
Povilas Kanapickas
|
||||
Malay Keshav
|
||||
Andrew Kieschnick
|
||||
Peter Kirchgessner
|
||||
Philipp Klaus
|
||||
David Koblas
|
||||
Daniel Kobras
|
||||
รyvind Kolรฅs
|
||||
Lloyd Konneker
|
||||
Robert L Krawitz
|
||||
Kretynofil
|
||||
Christian Krippendorf
|
||||
Hartmut Kuhse
|
||||
Tuomas Kuosmanen
|
||||
Olof S Kylander
|
||||
Philip Lafleur
|
||||
Chris Lahey
|
||||
Eric Lamarque
|
||||
Nick Lamb
|
||||
Marco Lamberto
|
||||
Jens Lautenbacher
|
||||
Laramie Leavitt
|
||||
Roman Lebedev
|
||||
Tom Lechner
|
||||
Elliot Lee
|
||||
Marc Lehmann
|
||||
Simone Karin Lehmann
|
||||
Ray Lehtiniemi
|
||||
Tobias Lenz
|
||||
Frederic Leroy
|
||||
Raph Levien
|
||||
Wing Tung Leung
|
||||
Dave Lichterman
|
||||
Adrian Likins
|
||||
lillolollo
|
||||
Tor Lillqvist
|
||||
Ingo Lรผtkebohle
|
||||
Nikc M.
|
||||
Josh MacDonald
|
||||
Ed Mackey
|
||||
Vidar Madsen
|
||||
Mikael Magnusson
|
||||
Luidnel Maignan
|
||||
Ian Main
|
||||
Thomas Manni
|
||||
Kjartan Maraas
|
||||
John Marshall
|
||||
Kelly Martin
|
||||
Torsten Martinsen
|
||||
Pascal Massimino
|
||||
Johannes Matschke
|
||||
Takeshi Matsuyama
|
||||
Gordon Matzigkeit
|
||||
Tรฉo Mazars
|
||||
Robert McHardy
|
||||
Gregory McLean
|
||||
Richard McLean
|
||||
Jรถrn Meier
|
||||
Mike Melancon
|
||||
Federico Mena Quintero
|
||||
Loren Merritt
|
||||
Jim Meyer
|
||||
James Mitchell
|
||||
Hirotsuna Mizuno
|
||||
Chris Mohler
|
||||
Chris Moller
|
||||
David Monniaux
|
||||
Christopher Montgomery
|
||||
Tim Mooney
|
||||
Adam D Moss
|
||||
Simon Mรผller
|
||||
Tobias Mueller
|
||||
Michael Murรฉ
|
||||
Lionel N.
|
||||
Balazs Nagy
|
||||
Yukihiro Nakai
|
||||
Shuji Narazaki
|
||||
Felix Natter
|
||||
David Neary
|
||||
David Necas
|
||||
Sven Neumann
|
||||
Andreas Neustifter
|
||||
Tim Newsome
|
||||
Jon Nordby
|
||||
Martin Nordholts
|
||||
Stephen Robert Norris
|
||||
Daniel Novomeskรฝ
|
||||
Erik Nygren
|
||||
Miles O'Neal
|
||||
Lukas Oberhuber
|
||||
David Odin
|
||||
Nelson A. de Oliveira
|
||||
Victor Oliveira
|
||||
Yoshio Ono
|
||||
Thom van Os
|
||||
Garry R. Osgood
|
||||
Nathan Osman
|
||||
Benjamin Otte
|
||||
Petr Ovtchenkov
|
||||
Alan Paeth
|
||||
Jay Painter
|
||||
Juan Palacios
|
||||
Ville Pรคtsi
|
||||
Akkana Peck
|
||||
Asbjorn Pettersen
|
||||
Fรฉlix Piรฉdallu
|
||||
Mike Phillips
|
||||
Nils Philippsen
|
||||
Ari Pollak
|
||||
Mircea Purdea
|
||||
Liam Quin
|
||||
Raphaรซl Quinet
|
||||
John Ralls
|
||||
Dennis Ranke
|
||||
Tom Rathborne
|
||||
Debarshi Ray
|
||||
Martin Renold
|
||||
Jens Restemeier
|
||||
Kristian Rietveld
|
||||
Maurits Rijk
|
||||
Daniel Risacher
|
||||
Clarence Risher
|
||||
Gilles Rochefort
|
||||
James Robinson
|
||||
Stefan Rรถllin
|
||||
Guillermo S. Romero
|
||||
Marco Rossini
|
||||
Tim Rowley
|
||||
Karthikeyan S
|
||||
Daniel Sabo
|
||||
Oleksii Samorukov
|
||||
Mike Schaeffer
|
||||
John Schlag
|
||||
Norbert Schmitz
|
||||
Thorsten Schnier
|
||||
Enrico Schrรถder
|
||||
Alexander Schulz
|
||||
Michael Schumacher
|
||||
Tracy Scott
|
||||
Craig Setera
|
||||
Elad Shahar
|
||||
shark0r
|
||||
Peter Sikking
|
||||
RyลTa SimaMoto
|
||||
Ted Shaneyfelt
|
||||
Aaron Sherman
|
||||
SHIRAKAWA Akira
|
||||
Jernej Simonฤiฤ
|
||||
Manish Singh
|
||||
Mukund Sivaraman
|
||||
William Skaggs
|
||||
Daniel Skarda
|
||||
Ville Sokk
|
||||
Kevin Sookocheff
|
||||
Adam Spiers
|
||||
Jakub Steiner
|
||||
Omari Stephens
|
||||
Tobias Stoeckmann
|
||||
Elle Stone
|
||||
Nathan Summers
|
||||
Mike Sweet
|
||||
Bogdan Szczurek
|
||||
Eiichi Takamori
|
||||
Tal Trachtman
|
||||
Tristan Tarrant
|
||||
Michael Taylor
|
||||
Owen Taylor
|
||||
Ian Tester
|
||||
Andy Thomas
|
||||
Mason Thomas
|
||||
Benoit Touchette
|
||||
Patrice Tremblay
|
||||
Kevin Turner
|
||||
Andreas Turtschan
|
||||
Massimo Valentini
|
||||
Brion Vibber
|
||||
Helvetix Victorinox
|
||||
Thorsten Vollmer
|
||||
Clayton Walker
|
||||
Rebecca Walter
|
||||
Martin Weber
|
||||
Rupert Weber
|
||||
James Wang
|
||||
Kris Wehner
|
||||
Nigel Wetten
|
||||
Alexis Wilhelm
|
||||
Calvin Williamson
|
||||
Matthew Wilson
|
||||
woob
|
||||
Karl Gรผnter Wรผnsch
|
||||
Andrew Wyatt
|
||||
Yoshinori Yamakawa
|
||||
Shirasaki Yasuhiro
|
||||
Mihail Zenkov
|
||||
Zhenfeng Zhao
|
||||
Simon Zilliken
|
||||
Przemyslaw Zych
|
||||
Robert รgren
|
||||
|
||||
|
||||
The following people have contributed art to PIKA:
|
||||
|
||||
Lapo Calamandrei
|
||||
Paul Davey
|
||||
Patrick David
|
||||
Alexia Death
|
||||
Aurore Derriennic
|
||||
Philipp Haegi
|
||||
Aryeom Han
|
||||
Tuomas Kuosmanen
|
||||
Karl La Rocca
|
||||
Andreas Nilsson
|
||||
Ville Pรคtsi
|
||||
Mike Schaeffer
|
||||
Carol Spears
|
||||
Klaus Staedtler
|
||||
Jakub Steiner
|
||||
William Szilveszter
|
||||
|
||||
|
||||
The following people have helped to document PIKA:
|
||||
|
||||
Ignacio AntI
|
||||
ลฝygimantas Beruฤka
|
||||
Jacob Boerema
|
||||
Carey Bunks
|
||||
Marco Ciampa
|
||||
Sven Claussner
|
||||
Patrick David
|
||||
Dust
|
||||
Ulf-D. Ehlert
|
||||
Alessandro Falappa
|
||||
Jakub Friedl
|
||||
Niels De Graef
|
||||
Michael Hammel
|
||||
Julien Hardelin
|
||||
Simon Janes
|
||||
Rรณman Joost
|
||||
Hans de Jonge
|
||||
Lloyd Konneker
|
||||
Semka Kuloviรฆ-Debals
|
||||
Karin Kylander
|
||||
Olof S Kylander
|
||||
Jean-Pierre Litzler
|
||||
Vitaly Lomov
|
||||
Ed Mackey
|
||||
Ian Main
|
||||
Akkana Peck
|
||||
Pierre Perrier
|
||||
Alexandre Prokoudine
|
||||
Manuel Quiรฑones
|
||||
James Robinson
|
||||
Nickolay V. Shmyrev
|
||||
Patrycja Stawiarska
|
||||
Kolbjรธrn Stuestรธl
|
||||
Axel Wernicke
|
||||
674
COPYING
Normal file
674
COPYING
Normal file
@ -0,0 +1,674 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<https://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<https://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||
3329
ChangeLog.pre-1-0
Normal file
3329
ChangeLog.pre-1-0
Normal file
File diff suppressed because it is too large
Load Diff
28795
ChangeLog.pre-1-2
Normal file
28795
ChangeLog.pre-1-2
Normal file
File diff suppressed because it is too large
Load Diff
61186
ChangeLog.pre-2-0
Normal file
61186
ChangeLog.pre-2-0
Normal file
File diff suppressed because it is too large
Load Diff
21166
ChangeLog.pre-2-2
Normal file
21166
ChangeLog.pre-2-2
Normal file
File diff suppressed because it is too large
Load Diff
42277
ChangeLog.pre-2-4
Normal file
42277
ChangeLog.pre-2-4
Normal file
File diff suppressed because it is too large
Load Diff
16113
ChangeLog.pre-2-6
Normal file
16113
ChangeLog.pre-2-6
Normal file
File diff suppressed because it is too large
Load Diff
5959
ChangeLog.pre-git
Normal file
5959
ChangeLog.pre-git
Normal file
File diff suppressed because it is too large
Load Diff
488
INSTALL.in
Normal file
488
INSTALL.in
Normal file
@ -0,0 +1,488 @@
|
||||
---------------------------------------
|
||||
Installation instructions for PIKA @PIKA_APP_VERSION@
|
||||
---------------------------------------
|
||||
|
||||
There are some basic steps to building and installing PIKA.
|
||||
|
||||
PIKA @PIKA_APP_VERSION@ replaces earlier PIKA 2.99.x versions. It is advised to
|
||||
uninstall them before installing PIKA @PIKA_APP_VERSION@. Since libpika* libraries
|
||||
and data are all versionned anyway, it is possible to keep your older
|
||||
PIKA 2.x installation in parallel to PIKA @PIKA_APP_VERSION@ on a same prefix.
|
||||
|
||||
PIKA @PIKA_APP_VERSION@ is not backward compatible with PIKA 2.10 and earlier
|
||||
versions. Plug-ins and scripts written for PIKA 2.10, 2.8, 2.6 or
|
||||
earlier PIKA 2.x versions will not work because the API changed.
|
||||
|
||||
The most important part is to make sure the requirements for a build
|
||||
are fulfilled. We depend on a number of tools and libraries which are
|
||||
listed below. For libraries this means you need to also have the
|
||||
header files installed.
|
||||
|
||||
This file is generated (versions are filled by our build system) and
|
||||
focuses on keeping an up-to-date list of dependencies intended to
|
||||
packagers, contributors or whoever wants to compile PIKA from source.
|
||||
Building and running self-built software often requires more setup, in
|
||||
particular environment variables so that your system knows where to
|
||||
find the various pieces of the software. The following document can
|
||||
help in that regard:
|
||||
|
||||
https://developer.pika.org/core/setup/build/
|
||||
|
||||
|
||||
******************************************************************
|
||||
* Unless you are experienced with building software from source, *
|
||||
* you should not attempt to build all these libraries yourself! *
|
||||
* We suggest that you check if your distributor has development *
|
||||
* packages of them and use these instead. *
|
||||
******************************************************************
|
||||
|
||||
|
||||
1. You need to have installed a recent version of pkg-config (>= @PIKA_PKGCONFIG_VERSION@) available
|
||||
from https://www.freedesktop.org/software/pkgconfig/.
|
||||
The compatible pkgconf utility would also work.
|
||||
|
||||
2. You need gettext version 0.19.8 or newer. Older versions did not have support yet
|
||||
for certain file formats.
|
||||
|
||||
3. You need to have GEGL version @GEGL_REQUIRED_VERSION@ or newer and babl version
|
||||
@BABL_REQUIRED_VERSION@ or newer. You can get them from https://gegl.org/ or clone
|
||||
them from the GNOME git repository:
|
||||
|
||||
https://gitlab.gnome.org/GNOME/babl.git
|
||||
https://gitlab.gnome.org/GNOME/gegl.git
|
||||
|
||||
GEGL must be built with Cairo support, i.e. -Dcairo=enabled option (required
|
||||
for some mandatory operations such as "gegl:npd").
|
||||
|
||||
Introspection must be enabled for both babl and GEGL with -Denable-gir=true
|
||||
and -Dintrospection=true respectively. The only case where we don't build
|
||||
GIR data is when cross-compiling because of the difficulty to make cross-tools
|
||||
for GObject Introspection.
|
||||
Nevertheless if you have working GIR cross-tools, you can force the expected
|
||||
behavior with PIKA's meson option -Dcan-crosscompile-gir=true
|
||||
|
||||
Optional:
|
||||
|
||||
- build GEGL with libumfpack (SuiteSparse) (`-Dumfpack=enabled`)
|
||||
for alternative Matting engine "gegl:matting-levin" and OpenEXR
|
||||
library (`-Dopenexr=enabled`) for OpenEXR format support.
|
||||
- build GEGL with maxflow (https://github.com/gerddie/maxflow) and
|
||||
the option -Dworkshop=true in order to be able to select the
|
||||
experimental Paint Select tool in the Playground (operation
|
||||
"gegl:paint-select" is needed).
|
||||
- The "Show Image Graph" item in the "Debug" menu (hidden by
|
||||
default on stable release) requires the GEGL operation
|
||||
"gegl:introspect" which is always built but deactivated unless
|
||||
the `dot` tool from graphviz is available (runtime dependency).
|
||||
|
||||
4. You need to have installed GTK version @GTK_REQUIRED_VERSION@ or newer.
|
||||
PIKA also needs a recent version of GLib (>= @GLIB_REQUIRED_VERSION@), GDK-Pixbuf
|
||||
(>= @GDK_PIXBUF_REQUIRED_VERSION@), and Pango (>= @PANGO_REQUIRED_VERSION@). Sources for these can be grabbed
|
||||
from https://download.gnome.org/sources/.
|
||||
|
||||
5. We use cairo >= @CAIRO_REQUIRED_VERSION@, which is hosted at
|
||||
https://www.cairographics.org/.
|
||||
|
||||
6. We require PangoCairo, a Pango backend using Cairo. Make sure you
|
||||
have Cairo, FreeType2 and fontconfig installed before you compile
|
||||
Pango. PIKA depends on freetype2 being newer than version @FREETYPE2_REQUIRED_VERSION@
|
||||
and fontconfig @FONTCONFIG_REQUIRED_VERSION@ or newer. Older versions are known to have
|
||||
bugs that seriously affect the stability of PIKA.
|
||||
|
||||
On Windows, we recommend fontconfig 2.13.95 (or over) where support
|
||||
of fonts in user directory (Windows 1809 feature) appeared.
|
||||
|
||||
We also require HarfBuzz @HARFBUZZ_REQUIRED_VERSION@ or newer, an OpenType text shaping
|
||||
tool. As this is a dependency for Pango, you will likely have it
|
||||
installed, but you may have to install a development package for
|
||||
the headers.
|
||||
|
||||
7. The file-compressor plug-in requires zlib, libbzip2, and liblzma to
|
||||
be installed. All these libraries are required dependencies.
|
||||
|
||||
8. For metadata access PIKA requires the gexiv2 @GEXIV2_REQUIRED_VERSION@ or newer library.
|
||||
It is hosted at: https://wiki.gnome.org/Projects/gexiv2
|
||||
|
||||
9. libpng, libjpeg, libtiff, librsvg and lcms are hard dependencies
|
||||
that can not be disabled.
|
||||
|
||||
There might be some issues with librsvg, based on the fact newer
|
||||
versions are in Rust which is not buildable on all platforms. Yet
|
||||
SVG support was deemed too important to be considered "optional"
|
||||
for a decent graphics activity. Nevertheless a packager really
|
||||
intent to have PIKA running on an architecture with no Rust support
|
||||
could still:
|
||||
|
||||
1) easily patch out the file-svg plug-in from build system;
|
||||
2) build PIKA with -Dvector-icons=false. Ironically librsvg is
|
||||
needed at build time for this option, in order to create PNG
|
||||
variants of icons (making librsvg unneeded at runtime). So all it
|
||||
takes is to have a build machine with librsvg to create the PNG
|
||||
icons, package and deliver them for machines without librsvg.
|
||||
|
||||
This is the compromise we came with, i.e. officially making SVG a
|
||||
first-class file format, yet explaining how you could ignore it if
|
||||
you really wanted or needed to.
|
||||
|
||||
10. For MyPaint brushes, brushlib (libmypaint) @LIBMYPAINT_REQUIRED_VERSION@ is used.
|
||||
The libmypaint repository is hosted at:
|
||||
|
||||
https://github.com/mypaint/libmypaint
|
||||
|
||||
If installing from repository, do not install the master branch!
|
||||
Checkout the last tag "v1.y.z" from `libmypaint-v1` branch instead
|
||||
(for instance "v1.6.1" tag at time of writing), or simply install
|
||||
from a tarball or from your favorite package manager.
|
||||
|
||||
In particular, do NOT install tags or release tarballs versioned
|
||||
"v2.y.z". PIKA depends on the version 1 of libmypaint and is
|
||||
incompatible with the version 2 (which is still experimental anyway
|
||||
and has no stable release at time of writing).
|
||||
|
||||
11. We also need the mypaint-brushes data package:
|
||||
|
||||
https://github.com/mypaint/mypaint-brushes
|
||||
|
||||
If installing from repository, install from branch "v1.3.x" or the
|
||||
last tag "v1.y.z" (e.g. "v1.3.1" at time of writing).
|
||||
In particular do NOT install from `master` branch which installs
|
||||
brushes incompatible with PIKA (the `master` branch and v2 brushes
|
||||
are targeted to software using recent libmypaint which PIKA wasn't
|
||||
ported to yet).
|
||||
|
||||
Also this is a data packages and therefore it will install the
|
||||
pkg-config file inside `$PREFIX/share/pkgconfig/`. If you install
|
||||
mypaint-brushes from repository in a non-standard prefix, you will
|
||||
have to make sure your $PKG_CONFIG_PATH environment variable also
|
||||
lists `$PREFIX/share/pkgconfig/`.
|
||||
|
||||
12. PIKA uses GLib's GIO library to handle file URIs and any I/O in
|
||||
general, transparently, regardless where the file is stored, i.e.
|
||||
locally, remotely, with which scheme, and so on. GIO in turn
|
||||
supports various backends through modules. We don't know all the
|
||||
modules available but since HTTP and HTTPS are so pervasive
|
||||
nowadays, we kind of consider a least GIO modules for these schemes
|
||||
mandatory (it allows to open from a pasted URL or just drag'n drop
|
||||
from e.g. a browser).
|
||||
|
||||
For HTTP support (and many other schemes), on Linux at least, you
|
||||
should install `gvfs`:
|
||||
|
||||
https://wiki.gnome.org/Projects/gvfs
|
||||
|
||||
It is unclear whether `gvfs` can be built and installed on other
|
||||
platforms such as Windows and macOS.
|
||||
|
||||
For HTTPS support, you should install `glib-networking`:
|
||||
|
||||
https://gitlab.gnome.org/GNOME/glib-networking
|
||||
|
||||
Of course there might be more modules providing support of more
|
||||
storage backends. Ideally PIKA would have support to load from any
|
||||
backend so packaging together with more GIO modules or recommending
|
||||
them in a package manager would be ideal. In any case, installing
|
||||
the ones for HTTP and HTTPS seems like the minimum nowadays.
|
||||
|
||||
13. You may want to install other third party libraries or programs
|
||||
that are needed for some of the available plug-ins. We recommend
|
||||
to check that the following libraries are installed: openjpeg,
|
||||
libmng, libwmf, libaa and libgs (Ghostscript).
|
||||
|
||||
14. HEIF support depends on the libheif library. If you don't have
|
||||
access to pre-built packages, the code is available at:
|
||||
|
||||
https://github.com/strukturag/libheif
|
||||
|
||||
Make sure you build libheif with libde265 and libx265 support (for
|
||||
respectively decoding and encoding of HEVC, i.e. HEIC files), and
|
||||
libaom decoder and encoder (for AV1, i.e. AVIF files), otherwise
|
||||
the plug-in is mostly useless.
|
||||
|
||||
15. GObject Introspection requires the following dependencies to be
|
||||
built and installed with introspection as well: babl, cairo,
|
||||
GdkPixbuf, GEGL, GIO, GLib, GObject and GTK.
|
||||
|
||||
16. Windows builds can now generate backtrace logs upon a crash.
|
||||
The logs will be available in: %APPDATA%\PIKA\@PIKA_APP_VERSION@\CrashLog\
|
||||
The feature depends on Dr.MinGW's ExcHndl library:
|
||||
|
||||
https://github.com/jrfonseca/drmingw
|
||||
|
||||
17. Configure PIKA by running `meson _build`. You may want to pass some
|
||||
options to it, see below.
|
||||
|
||||
18. Build PIKA by running `ninja -C _build'.
|
||||
|
||||
19. Install PIKA by running `ninja -C _build install'. In order to
|
||||
avoid clashes with other versions of PIKA, we install a binary
|
||||
called pika-@PIKA_APP_VERSION@. By default there's also a link created so that
|
||||
you can type 'pika' to start pika-@PIKA_APP_VERSION@.
|
||||
|
||||
20. Summary of required packages and what version you need:
|
||||
|
||||
Package Name Version
|
||||
|
||||
appstream-glib @APPSTREAM_GLIB_REQUIRED_VERSION@
|
||||
ATK @ATK_REQUIRED_VERSION@
|
||||
babl @BABL_REQUIRED_VERSION@
|
||||
cairo @CAIRO_REQUIRED_VERSION@
|
||||
Fontconfig @FONTCONFIG_REQUIRED_VERSION@
|
||||
freetype2 @FREETYPE2_REQUIRED_VERSION@
|
||||
GDK-PixBuf @GDK_PIXBUF_REQUIRED_VERSION@
|
||||
GEGL @GEGL_REQUIRED_VERSION@
|
||||
gexiv2 @GEXIV2_REQUIRED_VERSION@
|
||||
GIO
|
||||
GLib @GLIB_REQUIRED_VERSION@
|
||||
glib-networking
|
||||
GTK @GTK_REQUIRED_VERSION@
|
||||
gvfs (on Linux)
|
||||
HarfBuzz @HARFBUZZ_REQUIRED_VERSION@
|
||||
libbzip2
|
||||
libjpeg
|
||||
liblzma @LIBLZMA_REQUIRED_VERSION@
|
||||
libmypaint @LIBMYPAINT_REQUIRED_VERSION@
|
||||
libpng @LIBPNG_REQUIRED_VERSION@
|
||||
libpoppler-glib @POPPLER_REQUIRED_VERSION@
|
||||
librsvg @RSVG_REQUIRED_VERSION@
|
||||
libtiff @LIBTIFF_REQUIRED_VERSION@
|
||||
Little CMS @LCMS_REQUIRED_VERSION@
|
||||
mypaint-brushes-1.0
|
||||
pangocairo @PANGO_REQUIRED_VERSION@
|
||||
poppler-data @POPPLER_DATA_REQUIRED_VERSION@
|
||||
zlib
|
||||
|
||||
21. Summary of optional packages:
|
||||
|
||||
Package Name Version Feature
|
||||
|
||||
cairo-pdf @CAIRO_PDF_REQUIRED_VERSION@ PDF export
|
||||
cfitsio - FITS
|
||||
ExcHndl - Crash logs on Windows with Dr. MinGW
|
||||
gs - ghostscript
|
||||
libaa - ASCII art
|
||||
libheif @LIBHEIF_REQUIRED_VERSION@ HEIF
|
||||
libilbm - Amiga IFF/ILBM
|
||||
libmng - MNG
|
||||
libwebp @WEBP_REQUIRED_VERSION@ WebP (built with --enable-libwebpmux and --enable-libwebpdemux)
|
||||
libwmf @WMF_REQUIRED_VERSION@ WMF
|
||||
libXcursor - X11 Mouse Cursor
|
||||
libxpm - XPM
|
||||
openexr @OPENEXR_REQUIRED_VERSION@ OpenEXR
|
||||
OpenJPEG @OPENJPEG_REQUIRED_VERSION@ JPEG 2000
|
||||
qoi - QOI
|
||||
webkit @WEBKITGTK_REQUIRED_VERSION@ Help browser & webpage
|
||||
vala - Vala plug-ins
|
||||
|
||||
22. Summary of optional runtime dependencies:
|
||||
|
||||
darktable >= 1.7, with lua support enabled for raw loading
|
||||
RawTherapee >= 5.2 for raw loading
|
||||
xdg-email for sending emails
|
||||
sendmail for sending emails if --with-sendmail enabled
|
||||
gdb or lldb for our new bug-reporting dialog
|
||||
"gegl:matting-levin" GEGL operation for alternative matting engine
|
||||
Python @PYTHON3_REQUIRED_VERSION@ and PyGObject for Python 3 plug-ins
|
||||
GJS for Javascript plug-ins
|
||||
LuaJIT and LGI for Lua plug-ins
|
||||
dot for "Show Image Graph" (unstable branches)
|
||||
xdg-desktop-portal implemented for your desktop for various D-Bus API (screenshot, color-pickingโฆ)
|
||||
|
||||
|
||||
|
||||
Generic instructions for configuring and compiling auto-configured
|
||||
packages are included below. Here is an illustration of commands that
|
||||
might be used to build and install PIKA. The actual configuration,
|
||||
compilation and installation output is not shown.
|
||||
|
||||
% tar xvf pika-@PIKA_VERSION@.tar.xz # unpack the sources
|
||||
% cd pika-@PIKA_VERSION@ # change to the toplevel directory
|
||||
% meson _build # `configure' step
|
||||
% ninja -C _build # build PIKA
|
||||
% ninja -C _build install # install PIKA
|
||||
|
||||
|
||||
The `configure' step examines your system, and adapts PIKA to run on
|
||||
it. The script has many options, some of which are described in the
|
||||
generic instructions included at the end of this file. All of the
|
||||
options can be listed using the command `meson configure' if you
|
||||
successfully configured already, or by reading the file `meson_options.txt`.
|
||||
There are several special options the PIKA configure script recognizes.
|
||||
These are:
|
||||
|
||||
-Dvector-icons=false This option installs raster icons instead of
|
||||
vector icons.
|
||||
|
||||
-Drelocatable-bundle=yes This option forces PIKA to search some
|
||||
resources (e.g. MyPaint brushes or libwmf fonts) relatively to the
|
||||
running prefix, rather than using build-time paths.
|
||||
|
||||
-Dansi=true This option causes stricter ANSI C checking to be
|
||||
performed when compiling with GCC. The default is for strict
|
||||
checking to be disabled. NOTE: This option is intended primarily as
|
||||
a convenience for developers.
|
||||
|
||||
-Dpikadir=DIR. This option changes the default directory PIKA uses to
|
||||
search for its configuration files from ~/.config/PIKA/@PIKA_APP_VERSION@ (the
|
||||
directory .config/PIKA/@PIKA_APP_VERSION@ in the user's home directory) to
|
||||
~/.config/DIR/@PIKA_APP_VERSION@.
|
||||
If DIR is an absolute path, the directory will be changed to DIR.
|
||||
|
||||
-Dshmem-type=[none|sysv|posix|win32|auto]. This option allows you to
|
||||
specify how image data is transported between the core and plug-ins.
|
||||
Usually the best way to do this is detected automatically.
|
||||
|
||||
-Daa=disabled The AA plug-in needs libaa and configure checks for
|
||||
its presence. Use -Daa=disabled if you run into problems.
|
||||
|
||||
-Dxpm=disabled The XPM plug-in needs libxpm and configure checks
|
||||
for its presence. If for some reason you don't want to build the
|
||||
XPM plug-in even though the library is installed, use
|
||||
-Dxpm=disabled to disable it explicitly.
|
||||
|
||||
-Dmng=disabled The MNG plug-in needs libmng and configure checks
|
||||
for its presence. If for some reason you don't want to build the
|
||||
MNG plug-in even though the library is installed, use
|
||||
-Dmng=disabled to disable it explicitly.
|
||||
|
||||
-Dwmf=disabled The WMF plug-in needs libwmf2 and configure checks for
|
||||
its presence. Use -Dwmf=disabled if you run into problems.
|
||||
|
||||
-Dwebkit-unmaintained=true We do not recommend to install the Help
|
||||
browser and Webpage plug-ins anymore. If for some reason you want
|
||||
these anyway, you can force the build with this explicit option.
|
||||
|
||||
-Dprint=false If for some reason you don't want to build the Print
|
||||
plug-in based on the GtkPrint API, you can build with -Dprint=false.
|
||||
|
||||
-Dalsa=disabled If you don't want to compile ALSA support into the
|
||||
MIDI input controller module, you can use the -Dalsa=disabled option.
|
||||
|
||||
-Dlinux-input=disabled If you don't want to compile the Linux Input
|
||||
controller module, you can use the -Dlinux-input=disabled option.
|
||||
|
||||
-Dgi-docgen=enabled|disabled This option controls whether the libpika
|
||||
C API references will be created using gi-docgen.
|
||||
|
||||
-Dg-ir-doc=true This option controls whether the libpika API
|
||||
references for some binding languages will be created using
|
||||
g-ir-doc-tool and yelp-build.
|
||||
|
||||
-Denable-multiproc=false This option allows you to disable support for
|
||||
multiple processors. It is enabled by default.
|
||||
|
||||
-Dwith-sendmail[=PATH] This option is used to tell PIKA to send email
|
||||
through sendmail instead of xdg-email. You can optionally indicate
|
||||
where to find the sendmail command. Otherwise sendmail will simply
|
||||
be searched in your $PATH at runtime.
|
||||
|
||||
-Denable-default-bin=false Use this option if you don't want to make
|
||||
pika-@PIKA_APP_VERSION@ the default PIKA installation. Otherwise a link called
|
||||
pika pointing to the pika-@PIKA_APP_VERSION@ executable will be installed.
|
||||
|
||||
-Denable-console-bin=false Use this option if you don't want the
|
||||
pika-console binary to be built in addition to the standard binary.
|
||||
pika-console is useful for command-line batch mode or as a server.
|
||||
|
||||
-Dpython=false If for some reason you don't want to install the
|
||||
Python plug-ins, you can use -Dpython=false.
|
||||
|
||||
-Djavascript=false If for some reason you don't want to install the
|
||||
JavaScript plug-ins, you can use -Djavascript=false.
|
||||
|
||||
-Dlua=false If for some reason you don't want to install the
|
||||
Lua plug-ins, you can use -Dlua=false.
|
||||
|
||||
-Dvala-plugins=disabled If for some reason you don't want to install the
|
||||
Vala plug-ins, you can use -Dvala-plugins=disabled.
|
||||
|
||||
|
||||
This list is manually maintained. To get an exhaustive listing of options,
|
||||
read `meson_options.txt'.
|
||||
Additionally meson supports a wide range of common built-in options. See
|
||||
documentation: https://mesonbuild.com/Builtin-options.html
|
||||
|
||||
The `ninja' command builds several things:
|
||||
- A bunch of public libraries in the directories starting with 'libpika'.
|
||||
- The plug-in programs in the 'plug-ins' directory.
|
||||
- Some modules in the 'modules' subdirectory.
|
||||
- The main PIKA program 'pika-@PIKA_APP_VERSION@' in `app'.
|
||||
|
||||
The `ninja install' command installs the PIKA header files associated
|
||||
with the libpika libraries, the plug-ins, some data files and the PIKA
|
||||
executable. After running `ninja install' and assuming the build process
|
||||
was successful you should be able to run `pika'.
|
||||
|
||||
|
||||
When configure fails
|
||||
======================
|
||||
|
||||
The configuration step uses pkg-config, a tool that replaces the old foo-config
|
||||
scripts. The most recent version is available from
|
||||
https://www.freedesktop.org/software/pkgconfig/
|
||||
|
||||
'configure' tries to compile and run a short GTK program. There are
|
||||
several reasons why this might fail:
|
||||
|
||||
* pkg-config could not find the file 'gtk+-3.0.pc' that gets installed
|
||||
with GTK. (This file is used to get information about where GTK+ is
|
||||
installed.)
|
||||
|
||||
Fix: Either make sure that this file is in the path where pkg-config
|
||||
looks for it (try 'pkg-config --debug' or add the location of
|
||||
gtk+-3.0.pc to the environment variable PKG_CONFIG_PATH before running
|
||||
configure.
|
||||
|
||||
* Libraries you installed are not found when you attempt to start PIKA.
|
||||
The details of how to fix this problem will depend on the system:
|
||||
|
||||
On Linux and other systems using ELF libraries, add the directory to
|
||||
holding the library to /etc/ld.so.conf or to the environment variable
|
||||
LD_LIBRARY_PATH, and run 'ldconfig'.
|
||||
|
||||
On other systems, it may be necessary to encode this path
|
||||
into the executable, by setting the LDFLAGS environment variable
|
||||
before running configure. For example:
|
||||
|
||||
LDFLAGS="-R/home/joe/lib" ./configure
|
||||
or
|
||||
LDFLAGS="-Wl,-rpath -Wl,/home/joe/lib" ./configure
|
||||
|
||||
* An old version of the GTK libraries was found instead of
|
||||
your newly installed version. This commonly happens if a
|
||||
binary package of GTK was previously installed on your system,
|
||||
and you later compiled GTK from source.
|
||||
|
||||
Fix: Remove the old libraries and include files. If you are afraid
|
||||
that removing the old libraries may break other packages supplied by
|
||||
your distributor, you can try installing GLib, GTK and other
|
||||
libraries in a different prefix after setting the environment
|
||||
variable PKG_CONFIG_LIBDIR to point to lib/pkgconfig/ in that new
|
||||
prefix so that it does not try to read the *.pc files from the
|
||||
default directory (/usr/lib/pkgconfig). However, removing the old
|
||||
packages is often the easier solution.
|
||||
|
||||
A detailed log of the meson output is written to the file meson-logs/meson-log.txt.
|
||||
This may help diagnose problems.
|
||||
|
||||
|
||||
When meson configure fails on plug-ins
|
||||
======================================
|
||||
|
||||
There are some PIKA plug-ins that need additional third-party libraries
|
||||
installed on your system. For example to compile the plug-ins that load
|
||||
and save JPEG, PNG or TIFF files you need the related libraries and header
|
||||
files installed, otherwise you'll get a message that plug-in xyz will not
|
||||
be built.
|
||||
|
||||
If you are sure that those libraries are correctly installed, but configure
|
||||
fails to detect them, the following might help:
|
||||
|
||||
Set your LDFLAGS environment variable to look for the library in a certain
|
||||
place, e.g. if you are working in a bash shell you would say:
|
||||
export LDFLAGS="-L<path_to_library> -L<path_to_another_one>"
|
||||
before you run configure.
|
||||
|
||||
Set your CPPFLAGS environment variable to look for the header file in a
|
||||
certain place, e.g. if you are working in a bash shell you would say:
|
||||
export CPPFLAGS="-I<path_to_header_file> -I<path_to_another_one>"
|
||||
before you run meson.
|
||||
49
LICENSE
Normal file
49
LICENSE
Normal file
@ -0,0 +1,49 @@
|
||||
* The GIMP application core, and other portions of the official GIMP
|
||||
distribution not explicitly licensed otherwise, are licensed under
|
||||
the GNU GENERAL PUBLIC LICENSE -- see the 'COPYING' file in this
|
||||
directory for details.
|
||||
|
||||
[ The below explicit exemption, we hope, clears up the GIMP
|
||||
developers' position concerning an ambiguity with the GNU General
|
||||
Public License concerning what constitutes a 'mere aggregation'
|
||||
versus a combined or derived work. The intention is to make it
|
||||
clear that arbitrarily-licensed programs such as GIMP plug-ins do
|
||||
not automatically assume the GNU General Public License (GPL)
|
||||
themselves simply because of their invocation of (or by) procedures
|
||||
implemented in GPL-licensed code, via libgimp or a similar interface
|
||||
to methods provided by the pdb: ]
|
||||
|
||||
* If you create a program which invokes (or provides) methods within
|
||||
(or for) the GPL GIMP application core through the medium of libgimp
|
||||
or another implementation of the 'procedural database' (pdb) serial
|
||||
protocol, then the GIMP developers' position is that this is a 'mere
|
||||
aggregation' of the program invoking the method and the program
|
||||
implementing the method as per section 2 of the GNU General Public
|
||||
License.
|
||||
|
||||
* 'libgimp' and the other GIMP libraries are licensed under the
|
||||
GNU LESSER GENERAL PUBLIC LICENSE -- see the 'COPYING' file in the
|
||||
libgimp directory for details.
|
||||
|
||||
* Icon themes are licensed under Creative Commons by-sa 3.0 or 4.0. See
|
||||
the 'COPYING' files in icons/Symbolic and icons/Color respectively.
|
||||
|
||||
* Any data used in artworks, such as brushes, patterns and the like, and more
|
||||
broadly likely all data inside the data/ folder should be under a CC0 license
|
||||
(Creative Commons Zero) or equivalent, i.e. "No rights Reserved", because GIMP
|
||||
contributors clearly don't intend to claim any right on anyone's work just
|
||||
because they used GIMP and its default data.
|
||||
We cannot clearly give proper licensing on all existing data, prior to the
|
||||
addition of this note in the LICENSE file (for historical reasons, simply
|
||||
because their contributors are since long gone), though we can say that an
|
||||
uncountable number of users have used these for dozens of years and never had
|
||||
legal problems as far as we know (it is anyway unclear whether anyone could
|
||||
really claim any right for very basic brush or pattern usage). Since 2015, we
|
||||
even have a clear FAQ entry to explicitly say the GIMP project has no
|
||||
intention whatsoever to put restrictions on people's work:
|
||||
https://www.gimp.org/docs/userfaq.html#can-i-use-gimp-commercially
|
||||
|
||||
Therefore any new data file under the data/ folder will be expected to be CC0.
|
||||
All contributors are expected to read the LICENSE file and therefore are
|
||||
implicitly agreeing to license their data under CC0 by contributing it as core
|
||||
GIMP data.
|
||||
10
MAINTAINERS
Normal file
10
MAINTAINERS
Normal file
@ -0,0 +1,10 @@
|
||||
Currently active maintainers
|
||||
----------------------------
|
||||
|
||||
Michael Natterer
|
||||
E-mail: mitch@gimp.org
|
||||
Userid: mitch
|
||||
|
||||
Jehan
|
||||
E-mail: jehan@girinstud.io
|
||||
Userid: Jehan
|
||||
807
NEWS.pre-2-0
Normal file
807
NEWS.pre-2-0
Normal file
@ -0,0 +1,807 @@
|
||||
|
||||
The GNU Image Manipulation Program Version 1.3
|
||||
A Colorspace Odyssey
|
||||
|
||||
|
||||
GIMP 1.3 used to be the development branch of The GIMP. Here's where
|
||||
the development took place on the road to GIMP version 2.0. This file
|
||||
lists the changes for each release in this development cycle.
|
||||
|
||||
|
||||
Bugs fixed in GIMP 2.0.0
|
||||
========================
|
||||
- 137766: compress text undo steps (Sven)
|
||||
- 137876: set a default height for dock windows (Sven, Simon)
|
||||
- 137502: check for buggy intltool versions (Raphael)
|
||||
- 137930: portability fix for Solaris (Sven)
|
||||
- 137968: workaround GIOChannel misfeature on win32 (Tor)
|
||||
- 137957: bugfix in floating selection code (Sven, Mitch)
|
||||
- 136868: fixed alien glow arrow script (Simon)
|
||||
|
||||
|
||||
Bugs fixed in GIMP 2.0rc1
|
||||
=========================
|
||||
- 136124: count animation frames starting with 1 (Simon)
|
||||
- 122519: allow to share paint options between tools (Mitch)
|
||||
- 136227: allow to toggle the histogram scale from the tool dialogs (Sven)
|
||||
- 136303: fixed translation of preview widget (Sven)
|
||||
- 136321: fixed bug in Plasma plug-in (Sven)
|
||||
- 136371: fixed a crash caused by gimp_query_boolean_box (Sven)
|
||||
- 119905: configurable undo preview size (Sven)
|
||||
- 136524: fixed Shadow Bevel script (Yosh)
|
||||
- 136535: enable i18n in SVG plug-in (Yuheng Xie, Sven)
|
||||
- 136081: allow to use the webbrowser to access help (Brix, Sven)
|
||||
- 128588: resurrected Save button in input devices dialog (Simon)
|
||||
- 136489: added boolean return values to gimp_edit_[cut|copy] (Mitch)
|
||||
- 136706: added missing i18n in IfsCompose plug-in (Sven)
|
||||
- 136713: added missing i18n in ImageMap plug-in (Sven)
|
||||
- 131965: cancel tools instead of resetting when image becomes dirty (Mitch)
|
||||
- 12253: only cancel tool operation if tool is active on the image that
|
||||
is becoming dirty (Mitch)
|
||||
- 136343: fixed wrong function prototypes (Mitch)
|
||||
- 136636: workaround a GDK problem on win32 (Mitch)
|
||||
- 136747: fixed problem in gimp-print configure check (Yosh)
|
||||
- 136850: fixed crash when toggling tool preview (Sven)
|
||||
- 136937: allow translation of tool-option menus (Sven)
|
||||
- 136645: fixed crash when dropping pattern on a text layer (Sven)
|
||||
- 136907: fixed off-by-one error in gimp_pixel_fetcher_get_pixel() (Simon)
|
||||
- 73610: improvements to Script-Fu error reporting (Kevin Cozen)
|
||||
- 136702: made supersampling in transform tools optional (Raphael, Mitch)
|
||||
- 118356: keep the font size fixed when changing the unit (Sven)
|
||||
- 136623: don't set the text color on modified text layers (Sven)
|
||||
- 135023: show mask state on unselected layers also (Simon)
|
||||
- 137076: don't discard session info for dialogs hidden with Tab (Mitch)
|
||||
- 124176: use a counter to track undo_[freeze|thaw] (Simon)
|
||||
- 128833: don't make tool dialogs transient to the image window (Sven)
|
||||
- 64835: on startup test if a swap file can be created (Simon, Raphael)
|
||||
- 136909, 137242, 81479: update the menus when a plug-in finished (Simon)
|
||||
- 137435: fixed sort order in plug-in menus for broken locales (Simon)
|
||||
- 137529: don't crash on invalid brush hoses (Simon)
|
||||
- 136996: search help pages in the users locale (Sven)
|
||||
- 137151: make accelerators work in gtk+-2.4 if there's no menubar (Mitch)
|
||||
- 136623, 136645: properly handle modifications to text layers (Sven)
|
||||
- 130985, 120021: implemented text undo (Sven)
|
||||
- 137612: improve tooltips for GimpScaleEntry (Sven)
|
||||
- 137737: show all user interface elements in the Jigsaw plug-in (Sven)
|
||||
- 137753: added a shortcut for the Path tool (Simon)
|
||||
- 137754: added a menu entry and shortcut for "Path to Selection" (Simon)
|
||||
- 137170: fixed crash with floating selections on quick-mask (Simon, Sven)
|
||||
- 137786: duplicate the text when duplicating a text layer (Sven)
|
||||
- 137566: fixed off-by-one errors on the canvas (Pedro)
|
||||
|
||||
Other contributions:
|
||||
Jakub Steiner, Eric Pierce
|
||||
|
||||
|
||||
Bugs fixed in GIMP 2.0pre4
|
||||
==========================
|
||||
- 128825: Improved misleading debug output and hide it in the stable branch
|
||||
(Raphael)
|
||||
- 133467: Fixed autoshrink selection (Mitch)
|
||||
- 131634: Fixed text-circle script-fu (David Odin)
|
||||
- 133532: Quit the imagemap plug-in when it is finished (Sven)
|
||||
- 133456: Disallow editing of data objects which have no save functionality
|
||||
(Mitch)
|
||||
- 113142: Don't attempt to render the display out of bounds (Mitch)
|
||||
- 133763: Fix use of EXEEXT in tiff checks (Yosh)
|
||||
- 131044: Attempt to read layer names from TIFF files (Pablo d'Angelo)
|
||||
- 133490: Fixed handling of missing pluginrc file (Sven)
|
||||
- 121074: Suppress some harmless warnings in the stable branch (Sven)
|
||||
- 132351: Fixed harmless iscissors tool warnings (Sven)
|
||||
- 97999: Indicate progress when scaling a drawable (Sven)
|
||||
- 133244: Fixed crash in Curve Bend plug-in (Wolfgang Hofer)
|
||||
- 133818: Added a runtime check for fontconfig >= 2.2.0 (Mitch)
|
||||
- 130636: Fixed undo handling in Add Bevel script (Simon)
|
||||
- 133067: Connect the text tool font with the global font selector (Sven)
|
||||
- 133958: Made color values in color picker selectable (Mariano Suรกrez-Alvarez)
|
||||
- 125283: Have configure warn when gimp-print is older than 4.2.6 (Sven)
|
||||
- 112012: Use default preview if none can be generated (Mitch)
|
||||
- 124969: Improve text tool logic (Sven)
|
||||
- 121033: Ensure that non-indexed images cannot have a colormap (Mitch)
|
||||
- 132356: Curves tool trapped the mouse (Mitch)
|
||||
- 123321: UTF-8 and zero-size layer bug (Adam Moss, Daniel Rogers, Piotr
|
||||
Krysiuk)
|
||||
- 134274: Behave correctly for edit and delete functions for data files (Mitch)
|
||||
- 134285: Improve snap behaviour for grid and guides (Simon)
|
||||
- 134274: Fix data file initialisation routine (Mitch)
|
||||
- 134423: Fix GIF plug-in when used without display (Sven)
|
||||
- 134419: Fix undo button behaviour in GFig plug-in (Sven)
|
||||
- 134562: Ensure tile cache cannot write to freed memory (Mitch)
|
||||
- 134512: Exclude undo stack from size of memory in an image when scaling
|
||||
(Sven)
|
||||
- 134694: Fix bug in Preferences (Mitch)
|
||||
- 134410: Make drawing of straight lines better for fuzzy brushes (Simon)
|
||||
- 125303: Remove per-channel gray point picker from levels dialog (Dave
|
||||
Neary)
|
||||
- 134752: Improve clipboard buffer detection between different images in
|
||||
the same GIMP instance (Mitch)
|
||||
- 122049: Validate numerical input in pygimp plug-ins, and fix the Sphere
|
||||
plug-in (Dave Neary, Florian Traverse)
|
||||
- 130568: Mostly fix Van Gogh (LIC) plug-in (Simon)
|
||||
- 70673: Let Curves and Levels widgets scale with the dialog (Sven)
|
||||
- 135059: Remember the preview setting for all ImageMap tools (Sven)
|
||||
- 135630: Don't make the resolution calibration dialog modal (Sven, Pedro)
|
||||
- 133266: Saner max. value for the blend tool's supersampling (Sven, Pedro)
|
||||
- 135866: Fix displacement handling in bumpmap plug-in (Pedro, Joao)
|
||||
- 135994: Fix offsets when scaling or resizing vectors (Simon)
|
||||
- 133453: Experiments with global shortcuts (Mitch, Simon)
|
||||
|
||||
Other contributions:
|
||||
Manish Singh, Michael Natterer, Sven Neumann, Henrik Brix Andersen,
|
||||
Jakub Steiner, Simon Budig
|
||||
|
||||
|
||||
Bugs fixed in GIMP 2.0pre3
|
||||
==========================
|
||||
- 127451: Anchor floating selection when creating a text layer (Mitch)
|
||||
- 50649: Allow to call script-fu scripts from plug-ins (Mitch)
|
||||
- 132617: Improved gimp-remote behaviour (Sven)
|
||||
- 132036: Fixed issues with libart scan conversion (Simon)
|
||||
- 132041: Made info window not grab the focus (Mitch)
|
||||
- 132077: Redraw layer boundary when using transform tools (Mitch)
|
||||
- 132089: Flip tool misbehaviours (Mitch)
|
||||
- 132032: User interface issues with Plugin Details (David Odin)
|
||||
- 132145: Use default values when stroking from the PDB (Mitch)
|
||||
- 132162: Anchoring a floating selection on a channel (Mitch)
|
||||
- 132271: Mosaic filter on selections (Simon)
|
||||
- 132322: gimp-levels on grayscale images (Mitch)
|
||||
- 132329: Info window doesn't show initial values (Shlomi Fish)
|
||||
- 118084: Info window not updated in automatic mode (Shlomi Fish)
|
||||
- 132495: Positioning of glyphs that extend the logical rectangle (Sven)
|
||||
- 108659: Use g_spawn in postscript plug-in (Peter Kirchgessner)
|
||||
- 132508: Problems with path tool in Edit mode (Simon)
|
||||
- 132504: Fixed unsharp mask script (Mitch)
|
||||
- 132595: Don't draw the selection if it's hidden (Sven)
|
||||
- 132027: Crash in gimpressionist (Sven)
|
||||
- 132596: Use default values for color DND (Mitch)
|
||||
- 132493: Tuned Comic Logo script (Pedro Gimeno)
|
||||
- 132649: Allow to fill the whole selection using bucket-fill (Mitch)
|
||||
- 131902: Improved handling of missing tags in TIFF loader (Andrey Kiselev)
|
||||
- 93806: Validate script-fu input (Yosh)
|
||||
- 132214: Differentiate writable and readonly data directories (Mitch)
|
||||
- 131964: Zoom ratio problem (Simon)
|
||||
- 132969: Set help-id for tool on tool options dock (Mitch)
|
||||
- 132999: Make assembler code PIC safe (Yosh)
|
||||
- 119878: Use the same keyboard shortcuts in all GIMP windows
|
||||
(except the toolbox window) (Mitch)
|
||||
- 131975 &
|
||||
- 132297: Disable some warnings while loading TIFFs (Raphael)
|
||||
- 129529: Add a "randomize" toggle to random number widget (Dave Neary)
|
||||
- 133099: Duplicate PDB entries problem (Mitch)
|
||||
- 133122: Disallow renaming of layer masks and some floating selections (Mitch)
|
||||
- 130118: Allow non-UTF8 characters in the GIMP home directory (Mitch)
|
||||
- 122026: Workaround a bug in gdk_draw_segments() (David Odin)
|
||||
- 133280: Remove deleted scripts from the menu (Mitch)
|
||||
- 133270: Replace deprecated enum values in scripts (Kevin Cozens)
|
||||
- 133180: Sort menu entries for save and load procedures (Mitch)
|
||||
- 131563: Use percentages for zoom ratios (Simon, Sven)
|
||||
|
||||
Other contributions:
|
||||
Manish Singh, Tor Lillqvist, Jakub Steiner, Michael Natterer,
|
||||
Sven Neumann, Kevin Cozens
|
||||
|
||||
|
||||
Bugs fixed in GIMP 2.0pre2
|
||||
==========================
|
||||
- 130828: Compile error with gcc 2.95 (Adrian Bunk)
|
||||
- 35335: Curve tool doesn't conserve black (Simon)
|
||||
- 130866: Remove multiple PNG entries in file type dropdown (Brix)
|
||||
- 106991: Add mnemonics for all menu items (finished by Mitch)
|
||||
- 130869: Add smaller image templates (Dave Neary)
|
||||
- 130916: Handle multiline texts better (Mitch)
|
||||
- 120424: Add dirty flag to default image title (Brix)
|
||||
- 130912: Fix rounding errors in JPEG plug-in (keith@goatman.me.uk)
|
||||
- 131016: Add support for layer offsets in multipage tiff loading (Pablo
|
||||
d'Angelo)
|
||||
- 124073: Modify behaviour of zoom tool to avoid funny fractions (Dave Neary,
|
||||
Simon)
|
||||
- 131088: fix select-to-pattern script-fu (Mitch)
|
||||
- 82478: Fix zoom handling in fractal explorer (Pedro Gimeno)
|
||||
- 115793: Make thumbnail preview of indexed images match display (Pedro Gimeno)
|
||||
- 130471: Handle RGBA images correctly in the CEL plug-in (Dov Grobgeld)
|
||||
- 131109: Remove EMX specific code (Sven)
|
||||
- 130118: Handle GIMP2_DIRECTORY with non-UTF-8 characters correctly (Tor
|
||||
Lillqvist, Sven)
|
||||
- 82465: Make preview match image when image is greyscale (Sven)
|
||||
- 92586: Force SF_IMAGE value to reflect the selected image (Sven)
|
||||
- 116765: Fix selection artifacts while moving selections (Pedro Gimeno, Mitch)
|
||||
- 131215: Only call bind_textdomain_codeset when available (Reinhard Geissler)
|
||||
- 125141: Resolve API issues with GimpPixelFetcher and GimpRegionIterator
|
||||
(David Odin, Maurits Rijk)
|
||||
- 109078: Fix histogram for graylevel images (Pedro Gimeno, Mitch)
|
||||
- 131146: Fix drag & drop of patterns to layer masks (Dave Neary, Mitch)
|
||||
- 128112: Use a better error message if help files are not present (Mitch)
|
||||
- 78732: Don't paste outside the visible screen, if possible (Mitch)
|
||||
- 131561: Make "Condensed" fonts available for use (Manish Singh)
|
||||
- 71922: Fix SuperNova preview for Alpha channel (David Odin)
|
||||
- 82464: Fix SuperNova preview for greyscale images (David Odin)
|
||||
- 121966: Fix SuperNova plug-in (David Odin)
|
||||
- 110610: Allow user to choose file formats even if the current image type is
|
||||
not supported by them (Pedro Gimeno)
|
||||
- 131980: Fix crash in crop tool (David Odin, Sven)
|
||||
- 131030: Allow saving data without pre-multiplying by alpha channel in tiff
|
||||
plug-in (Pablo d'Angelo, Dave Neary)
|
||||
- 125864: Guides behave correctly when spacing is set to 1px (Brix)
|
||||
- 131721: Fix handling of alpha channels across undo steps (Mitch)
|
||||
- 128025: Fix behaviour when there is a floating selection (Mitch)
|
||||
- 131076: Make fuzzy select tool respect alpha channel in indexed mode (Mitch)
|
||||
- 131779: Improve indexed scaling dialog (Mitch)
|
||||
- 127673: Overlapping widgets in gradient editor (Mitch)
|
||||
|
||||
Other contributions:
|
||||
David Odin, Manish Singh, Simon Budig, Michael Natterer, Sven Neumann,
|
||||
Tor Lillqvist, Henrik Brix Andersen
|
||||
|
||||
|
||||
Overview of Changes in GIMP 2.0pre1
|
||||
===================================
|
||||
- Persistent user preferences for PNG save [Yosh]
|
||||
- Replaced old "About" dialog [Simon]
|
||||
- Allow removal of text attributes from text layer [Sven]
|
||||
- Add optimisation option to png (clear transparent pixels) [Joao]
|
||||
- Add POSIX shared memory implementation, and use it on MacOS X [Yosh]
|
||||
- Dashed selection and path stroking [Simon]
|
||||
- Grey picker in Levels dialog conserves lightness [Bolsh]
|
||||
- Created a library for handling thumbnails [Sven]
|
||||
- Support for multipage TIFFs [Andrey Kiselev]
|
||||
- Added a channel mixer plug-in [Martin Guldahl, Yosh]
|
||||
- PDB cleanup and compatibility mode [Mitch]
|
||||
- Cleaned up libgimp API [David Odin]
|
||||
- Lots of bug fixes
|
||||
|
||||
Other contributors:
|
||||
Adam Moss, Jakub Steiner, Helvetix Victorinox, Pedro Gimeno, Adrian
|
||||
Bunk, Abel Cheung, Maurits Rijk, Ville Pรคtsi, Marco Munari, Shlomi
|
||||
Fish, Jakub Steiner, Raphaรซl Quinet, David Gowers, Michael Schumacher
|
||||
|
||||
|
||||
Overview of Changes in GIMP 1.3.23
|
||||
==================================
|
||||
- Color proof display filter using ICC profiles written by Banlu Kemiyatorn
|
||||
- New gimprc options to work around window management problems [Sven, Brix]
|
||||
- Fixes for using GIMP on Xinerama setups [Sven]
|
||||
- Numerous libgimp* API cleanups [Mitch, Sven]
|
||||
- Theme switching in the preferences dialog [Mitch]
|
||||
- Added a small theme [Mitch]
|
||||
- Cleanup and unification of message strings [Mitch]
|
||||
- 64bit clean libgimp API [Yosh]
|
||||
- New plug-in color selector using color-selector modules [Mitch]
|
||||
- GimpCanvas drawing abstraction [Sven]
|
||||
- Added DICOM file plug-in by Dov Grobgeld
|
||||
- Imported new WMF plug-in from libwmf2 [Sven, Mitch]
|
||||
- A session name can be given on the command-line [Sven]
|
||||
- Allow to move image windows and docks between screens [Mitch, Sven]
|
||||
- Fixed multi-head issues [Mitch]
|
||||
- Allow to merge visible paths [Simon]
|
||||
- Redone GimpDialog API [Mitch]
|
||||
- Load GIMP brush format version 3 [Sven]
|
||||
- Allow to use GIMP without any fonts [Sven]
|
||||
- Improved animoptimize plug-in [Raphaรซl]
|
||||
- Lots of bug fixes
|
||||
|
||||
Other contributors:
|
||||
Ville Pรคtsi, Eric Pierce, Tor Lillqvist, Henrik Brix Andersen,
|
||||
Manish Singh, Dom Lachowicz, Francis James Franklin, Dave Neary,
|
||||
Maurits Rijk, Joao S. O. Bueno, Michael Schumacher, Daniel Rogers,
|
||||
Hans Breuer, Jakub Steiner
|
||||
|
||||
|
||||
Overview of Changes in GIMP 1.3.22
|
||||
==================================
|
||||
- Made GIMP compile and work with gtk+-2.3 [Yosh]
|
||||
- Replaced histogram tool with a histogram dialog [Sven]
|
||||
- Multi-head safety [Sven, Yosh]
|
||||
- Changes for future compatibility of text layers [Sven]
|
||||
- Histogram scale configurable for all tools and defaults to linear [Sven]
|
||||
- Better default settings
|
||||
- Completed configurability of normal and fullscreen view [Sven, Bolsh]
|
||||
- GimpConfig cleanups and improvements [Mitch, Sven]
|
||||
- Allow to configure the default grid in your gimprc [Brix]
|
||||
- Improved session handling; store more settings like the position of
|
||||
dock panes and the selected page in the dockbook [Mitch]
|
||||
- Auto-scrolling for DND in list views [Mitch]
|
||||
- Refresh rendering of paint strokes more often [Mitch]
|
||||
- Refactored handling of modifier keys for tools [Mitch]
|
||||
- Changed the redo shortcut to Ctrl-Y [Sven]
|
||||
- Numerous plug-in cleanups [Maurits, Bolsh]
|
||||
- Code documentation [Bolsh, Helvetix, Sven, Mitch]
|
||||
- Lots of bug fixes
|
||||
|
||||
Other contributors:
|
||||
Ville Pรคtsi, Simon Budig, Tor Lillqvist, Pedro Gimeno, Seth Burgess,
|
||||
Jakub Steiner, David Odin, Ed Halley, Wolfgang Hofer, Vesa Halttunen
|
||||
|
||||
|
||||
Overview of Changes in GIMP 1.3.21
|
||||
==================================
|
||||
- Allow to save tool options as named presets [Mitch].
|
||||
- Stroke paths using libart [Simon, Bolsh, Mitch, Sven, Ville]
|
||||
- Better looking and more accessible dockables [Mitch, Sven]
|
||||
- Fixes for right-to-left rendering [Sven, Mitch]
|
||||
- Rewritten webbroswer plug-in [Brix]
|
||||
- Much improved path tool [Simon, Mitch]
|
||||
- Export GIMP paths to SVG [Sven, Simon]
|
||||
- Import SVG paths as GIMP paths [Sven, Simon]
|
||||
- Added SVG file plug-in from librsvg and improved it [Sven]
|
||||
- Store new vectors in XCF [Simon, Mitch]
|
||||
- Allow to toggle visibility of paths in path list [Mitch]
|
||||
- Move tool now also moves paths [Mitch]
|
||||
- Some progress towards gimp-console, a gtk-less GIMP for batch mode [Mitch]
|
||||
- Improved Decompose/Compose plug-ins [Alexey Dyachenko, Sven]
|
||||
- More SIMD compositing code [Helvetix]
|
||||
- Right mouse buttons now also cancels paint operations [Mitch]
|
||||
- More internal code cleanup and documentation [Mitch, Sven]
|
||||
- Documented libgimpmath [DindinX]
|
||||
- Lots of bug fixes
|
||||
|
||||
Other contributors:
|
||||
Adam D. Moss, Dom Lachowicz, Manish Singh, Jakub Steiner,
|
||||
Christian Neumair, Seth Burgess, Maurits Rijk, David Necas,
|
||||
Tor Lillqvist, Ville Pรคtsi, Morten Eriksen, Pedro Gimeno
|
||||
|
||||
|
||||
Overview of Changes in GIMP 1.3.20
|
||||
==================================
|
||||
- Improved documentation of the app directory [Mitch, Sven]
|
||||
- Image update optimizations [Mitch]
|
||||
- font-map script improvements [Sven]
|
||||
- PDB API to access fonts [Sven]
|
||||
- Portability fixes for x86-64 [Yosh]
|
||||
- Enabled SSE and SSE2 compositing code [Helvetix]
|
||||
- GimpSelection class added [Mitch]
|
||||
- Pullout parameter added to RGB->CMYK conversions [Sven]
|
||||
- Basic framework for future help system in place [Mitch]
|
||||
- Screenshot plug-in rewritten [Brix]
|
||||
- Font list updates on the fly [Yosh]
|
||||
- Generic interface for stroking selections and paths [Mitch]
|
||||
- Further improvements to the path tool [Simon]
|
||||
- Remove libgck from public API [Mitch]
|
||||
- Lots of bug fixes
|
||||
|
||||
Other contributors:
|
||||
Maurits Rijk, Ville Pรคtsi, Larry Ewing, Dmitry G. Mastrukov,
|
||||
Pedro Gimeno, Raphaรซl Quinet, S. Mukund, Andy Wallis, Carl Adams,
|
||||
Tino Schwarz, Tor Lillqvist, Emmet Caulfield, Guillermo S. Romero,
|
||||
Dave Neary, Wolfgang Hofer
|
||||
|
||||
|
||||
Overview of Changes in GIMP 1.3.19
|
||||
==================================
|
||||
- Migration towards new gimp-help system [Mitch]
|
||||
- Deletion of anchor points on a path [Simon]
|
||||
- Path stroke moving [Simon]
|
||||
- Path stroke splitting by deleting an edge (Ctrl-click while in
|
||||
Delete mode) [Simon]
|
||||
- Drag path edges modifies curve [Simon]
|
||||
- DInsertion of points on path edges [Simon]
|
||||
- Joining two stroke paths is possible (Shift-Ctrl-Alt-Click on
|
||||
the second end-point) [Simon]
|
||||
- Polygonal paths [Simon]
|
||||
- Improved new composite functions and enabled them by default [Helvetix]
|
||||
- UTF-8 validate all strings coming in from the PDB [Yosh, Mitch]
|
||||
- Paint-core improvements and bug-fixes [Jay Cox]
|
||||
- Added more mnemonics [Brix]
|
||||
- Lots of bug fixes
|
||||
|
||||
Other contributors:
|
||||
Adam D. Moss, Tor Lillqvist, Jakub Steiner, Alan Horkan,
|
||||
Avi Bercovich, S. Mukund, Maurits Rijk, Guillermo S. Romero,
|
||||
Seth Burgess, Wolfgang Hofer, Ville Pรคtsi, Sven Neumann
|
||||
|
||||
|
||||
Overview of Changes in GIMP 1.3.18
|
||||
==================================
|
||||
- Made a bunch of improvements to the path tool [Simon]
|
||||
- Added lots of mnemonnics for plug-ins [Brix]
|
||||
- Build fixes for Win32 [Hans, Tor]
|
||||
- Improvements to the grid [Brix]
|
||||
- Improved compiler checks for MMX code [Helvetix, Sven]
|
||||
- Allow patent-free compression for GIF [Cameron]
|
||||
- Add several edge detection algorithms to the edge tool [Bolsh]
|
||||
- Fixed handle leak in plug-ins on Win32 [Tor]
|
||||
- Changed default quality for jpegs [Raphaรซl]
|
||||
- Add changing opacity via cursor keys [Simon]
|
||||
- Fix text tool outlines [Mitch]
|
||||
- Serialize/deserialize documentation [Sven]
|
||||
- Colourcube analysis plug-in added [Yosh]
|
||||
- Lots of code clean-up in displayshell [Mitch]
|
||||
- Camp organisation [Sven, Mitch]
|
||||
- Added a working gimp.spec for building RPMs [drc]
|
||||
- Lots of bug fixes
|
||||
|
||||
Other contributors:
|
||||
Maurits Rijk, Raphaรซl Quinet, Adam Moss
|
||||
|
||||
|
||||
Overview of Changes in GIMP 1.3.17
|
||||
==================================
|
||||
- Made the text tool optionally create a path [Sven, Mitch]
|
||||
- Added the ability to reverse gradients to the blend tool [Mitch]
|
||||
- Added dithering to the blend tool [Alastair M. Robinson]
|
||||
- Changed all(?) GIMP-1.4 references to GIMP-2.0 [Sven]
|
||||
- Allow to transform paths using the transform tools [Mitch]
|
||||
- Added a simple CMYK color selector [Sven]
|
||||
- Added naive RGB <-> CMYK conversion routines [Sven]
|
||||
- Generalized paint tools [Mitch]
|
||||
- Finally a brush-shaped cursor for all paint tools [Mitch]
|
||||
- Started to integrate new composite functions [Helvetix]
|
||||
- Made the style for dockable tabs configurable [Mitch]
|
||||
- Some preparations for text transformations [Sven]
|
||||
- Store grid settings in XCF [Brix]
|
||||
- Redone assembly checks and run-time checks for CPU features [Sven]
|
||||
- Added lots of mnemonics to the menus [Jimmac]
|
||||
- Support for comments in PNG files [Sven]
|
||||
- Constified the libgimp API and adapted all plug-ins [Yosh, Sven]
|
||||
- Cleaned up the brush/font/gradient/pattern selector API [Mitch]
|
||||
- Support for patterns with alpha channel [Bolsh]
|
||||
- Lots of bug fixes
|
||||
|
||||
Other contributors:
|
||||
Eric Pierce, Joao S. O. Bueno, Tor Lillqvist, Damien Carbery,
|
||||
Maurits Rijk
|
||||
|
||||
|
||||
Overview of Changes in GIMP 1.3.16
|
||||
==================================
|
||||
- Vector tool improvements [Simon]
|
||||
- Import GDynText layers [Sven]
|
||||
- Save and load text layers to/from XCF files [Sven]
|
||||
- Added the ability to show a grid over the canvas [Brix]
|
||||
- Keep EXIF data in JPEG files using libexif [Bolsh]
|
||||
- Changed a couple of gimprc defaults [Bolsh]
|
||||
- Updated PS keybindings (ps-menurc) [Eric Pierce]
|
||||
- Clarified the semantics of EXTENSION and PLUGIN [Mitch]
|
||||
- Updates to the Win32 build system [Hans]
|
||||
- Improved brush/pattern/font/gradient selectors in libgimp [Sven]
|
||||
- Improved handling of transparency in GIF files [Adam]
|
||||
- Cleaned up and improved the message dialogs and error console [Mitch]
|
||||
- Added a sample sessionrc [Sven]
|
||||
- Lots of bug fixes
|
||||
|
||||
Other contributors:
|
||||
Yohei Honda, Elad Shahar, Dave Neary, Jakub Steiner
|
||||
|
||||
|
||||
Overview of Changes in GIMP 1.3.15
|
||||
==================================
|
||||
|
||||
- Removed color correction tools from toolbox again [Sven]
|
||||
- Factored out color-picking code into a GimpColorTool class [Sven]
|
||||
- Updates to the Win32 build system [Tor Lillqvist, Hans Breuer]
|
||||
- Removed the need for special casing for some platforms [Yosh, Sven]
|
||||
- Added item rotation (90, 180, 270 degrees) [Sven, Mitch]
|
||||
- Load old paths as new vector objects [Mitch]
|
||||
- Apply transformations to linked items [Mitch]
|
||||
- Generalized item transformations [Mitch]
|
||||
- Improved session management [Mitch]
|
||||
- Speed up fonts query [Yosh]
|
||||
- Backed out pluggable tools [Sven]
|
||||
- Lots of bug fixes
|
||||
|
||||
Other contributors:
|
||||
Branko Collin, Pedro Gimeno, Dave Neary, Raphaรซl Quinet, Maurits Rijk,
|
||||
Adam D. Moss, Jakub Steiner
|
||||
|
||||
|
||||
Overview of Changes in GIMP 1.3.14
|
||||
==================================
|
||||
|
||||
- Better resampling for the transform tools [OEyvind Kolaas]
|
||||
- Added MNG save plug-in [S. Mukund]
|
||||
- Added framework for image templates [Mitch]
|
||||
- Vector tool improvements [Simon]
|
||||
- Improved look and feel if layer previews are disabled [Mitch, Sven, Jimmac]
|
||||
- Keyboard navigation for grid views [Sven]
|
||||
- List and grid views for fonts [Mitch, Sven]
|
||||
- Some text tool improvements [Sven]
|
||||
- Moved gimp-gap into it's own CVS module [Yosh, Sven]
|
||||
- More icons in even more sizes [Jimmac, Mitch, Sven]
|
||||
- I18n header cleanup [Sven]
|
||||
- Lots of bug fixes
|
||||
|
||||
Other contributors:
|
||||
Pedro Gimeno, Owen, Raphaรซl Quinet
|
||||
|
||||
|
||||
Overview of Changes in GIMP 1.3.13
|
||||
==================================
|
||||
|
||||
- New tree-view based popup to select brushes, gradients and such [Mitch]
|
||||
- Added color pickers to levels tool for easier color correction [Sven]
|
||||
- Allow to create channels from an image's color component [Sven, Mitch]
|
||||
- Added a full-screen mode for the image window [Sven, Mitch]
|
||||
- Added a simple config file writer to GimpConfig [Sven]
|
||||
- Moved gimp-perl into it's own CVS module [Yosh]
|
||||
- Migrated all core dialogs from GtkList to GtkTreeView [Mitch]
|
||||
- Refactored the GimpDisplayShell update/draw code [Mitch, Sven]
|
||||
- Rewrote the Undo History as a GimpDockable [Mitch]
|
||||
- Lots of bug fixes
|
||||
|
||||
Other contributors:
|
||||
Sunil Mohan Adapa, Tor Lillqvist, Jay Cox, Dave Neary, Michael J. Hammel,
|
||||
Toralf Lund, Raphaรซl Quinet, Hans Breuer, Tuomas Kuosmanen, David Necas,
|
||||
Jakub Steiner, Simon Budig
|
||||
|
||||
|
||||
Overview of Changes in GIMP 1.3.12
|
||||
==================================
|
||||
|
||||
- Improved and cleaned up undo system [Mitch]
|
||||
- Added hooks for plug-in debugging [Yosh]
|
||||
- Redesigned the tool options code [Mitch]
|
||||
- Converted the API reference to DocBook XML [Sven]
|
||||
- Lots of text tool changes [Sven]
|
||||
- Factored common code out of a number of plug-ins [Maurits]
|
||||
- Cleaned up and improved the code that handles the plug-ins [Mitch]
|
||||
- Finished colorblindness display filter using the algorithm contributed
|
||||
by Alex Wade and Robert Dougherty.
|
||||
- Updated the gimprc man-page, or actually, wrote a tool that does it [Sven]
|
||||
- Improved the code that handles all the menus [Mitch]
|
||||
- Added new PSD save plug-in [Bolsh]
|
||||
- Added back SphereDesigner plug-in [Sven]
|
||||
- More plug-ins cleaned up [Maurits, Sven]
|
||||
- Reorganized startup code [Yosh]
|
||||
- Portability fixes for 64bit platforms [Yosh, Sven]
|
||||
- Handle large swap files (>2GB) [Sven]
|
||||
- Updates to the Win32 build system [Tor Lillqvist, Hans Breuer]
|
||||
- More work on the vectors tool [Simon, Mitch]
|
||||
- Lots of bug fixes
|
||||
|
||||
Other contributors:
|
||||
Garry R. Osgood, Jakub Steiner, Simon Budig, Henrik Brix Andersen,
|
||||
Akkana, Carol Spears, Seth Burgess, Nathan Summers, David Necas,
|
||||
Cameron Gregory, Larry Ewing
|
||||
|
||||
|
||||
Overview of Changes in GIMP 1.3.11
|
||||
==================================
|
||||
|
||||
- Allow to stroke bezier curves with the vectors tool [Simon]
|
||||
- Added a first draft of a display filter that simulates
|
||||
color-deficient vision [Mitch, Sven]
|
||||
- Added an optional menubar per display [Mitch]
|
||||
- Added PDB functions needed by GAP [Wolfgang Hofer, Sven]
|
||||
- Updated the Win32 build system [Tor Lillqvist, Hans Breuer]
|
||||
- Factored common code out of a number of plug-ins [Maurits]
|
||||
- Use g_rand* functions wherever random numbers are needed [Bolsh]
|
||||
- GimpPressionist plug-in cleaned up [Maurits]
|
||||
- Finally landed the new gimprc code based on GimpConfig [Sven, Mitch]
|
||||
- Added widgets for views on object properties [Mitch]
|
||||
- Reimplemented the preferences dialog using GimpConfig [Mitch]
|
||||
- Transform tool cleanup [Mitch]
|
||||
- Modify the environment of plug-ins according to files installed with the
|
||||
plug-ins. Allows to install Python modules into the GIMP tree. [Yosh]
|
||||
- Start plug-ins using g_spawn_async() [Yosh]
|
||||
- Lots of bug fixes.
|
||||
|
||||
Other contributors:
|
||||
Jim Meyer, Jakub Steiner, Guillermo S. Romero, Henrik Brix Andersen,
|
||||
Nathan Summers, Jeroen Lamain
|
||||
|
||||
|
||||
Overview of Changes in GIMP 1.3.10
|
||||
==================================
|
||||
|
||||
- Text tool can load text files now [Sven]
|
||||
- Some unfinished work on the imagemap tools and related widgets [Sven]
|
||||
- Undeprecated ink tool [Bolsh, Sven]
|
||||
- Slightly tweaked the look and feel of the toolbox [Mitch, Sven]
|
||||
- Ported module loading to GTypeModule [Mitch]
|
||||
- Resurrected the water color selector [Mitch]
|
||||
- Reworked module browser [Mitch]
|
||||
- Moved generic datafile loading to LibGimpBase [Mitch]
|
||||
- Added GimpColorScale widget [Mitch, Sven]
|
||||
- Added GimpPickButton widget [Mitch]
|
||||
- Added a color selector dock [Mitch]
|
||||
- Added new layer modes (Softlight, Grain Extract, Grain Merge) [UnNamed]
|
||||
- Included Gimp-Python with the tarball (try --enable-python)
|
||||
- Lots of bug fixes
|
||||
|
||||
Other contributors:
|
||||
Maurits Rijk, Michael Niedermayer, Garry R. Osgood, David Necas,
|
||||
Toby Smith, Raphaรซl Quinet, Dave Neary, Jim Meyer
|
||||
|
||||
|
||||
Overview of Changes in GIMP 1.3.9
|
||||
=================================
|
||||
|
||||
- Some minor improvements to the text tool [Sven]
|
||||
- Started to cleanup DND code [Mitch]
|
||||
- Added GimpViewableDialog [Mitch]
|
||||
- Improved UI of color adjustment tools [Mitch]
|
||||
- Added new icons [Jimmac, Mitch]
|
||||
- Added GimpSelectionEditor, a view on the current selection [Mitch]
|
||||
- Improved imagemap plug-in [Maurits]
|
||||
- GUI cleanups [Mitch, Sven, Maurits]
|
||||
- Build fixes [Hans, Yosh, Sven]
|
||||
- Lots of bug fixes
|
||||
|
||||
Other contributors:
|
||||
James Henstridge, Dave Neary, Simon Budig
|
||||
|
||||
|
||||
Overview of Changes in GIMP 1.3.8
|
||||
=================================
|
||||
|
||||
- Lots of plug-ins cleaned up and improved [Maurits]
|
||||
- More work on the help browser [Sven]
|
||||
- Core code cleanup [Mitch, Sven]
|
||||
- Improved icons [Jimmac]
|
||||
- Fixed permissions of shared memory segments
|
||||
- Build fixes [Yosh, Sven]
|
||||
- Bug fixes
|
||||
|
||||
Other contributors:
|
||||
Dave Neary, Zbigniew Chyla, Simon Budig
|
||||
|
||||
|
||||
Overview of Changes in GIMP 1.3.7
|
||||
=================================
|
||||
|
||||
- Build fixes
|
||||
- Bug fixes
|
||||
|
||||
|
||||
Overview of Changes in GIMP 1.3.6
|
||||
=================================
|
||||
|
||||
- Support tile cache > 4GB on machines with 64bit long integers [Sven]
|
||||
- Added support for large files (> 2GB) [Sven]
|
||||
- Cleaned up configure, updated to autoconf-2.52 [Sven]
|
||||
- Temporary switch to the Move tool when Space is pressed [Mitch]
|
||||
- More cleanup of display code [Mitch]
|
||||
- Added mnemonics to lots of plug-ins and fixed some bugs [Maurits Rijk]
|
||||
- Added new PDB function gimp_image_get_name and corrected behaviour of
|
||||
gimp_image_get_filename [Yosh, Sven]
|
||||
- Navigation dialog redone as a dockable [Mitch]
|
||||
- Updated print plug-in to new version and depend on libgimpprint [Sven]
|
||||
- Generalized and improved the new config framework; use it for parasites,
|
||||
documents and devices [Mitch, Sven]
|
||||
- Started to port the help browser to GtkHtml2 [Sven]
|
||||
- Finished implementation of the Thumbnail Managing Standard [Mitch, Sven]
|
||||
- Improved Open dialog using the new thumbnails [Mitch, Sven]
|
||||
- Use UTF-8 encoded URIs where we used to use filenames [Mitch]
|
||||
- Plug-in fixes [Iccii]
|
||||
- Added shortcuts to crop layer or image to selection boundary [Mitch]
|
||||
- Changes for build on Win32 [Tor Lillqvist, Hans Breuer]
|
||||
- Started framework for tools loaded as modules or plug-ins [Nathan]
|
||||
- Lots of bugfixes
|
||||
- More stuff not mentioned here (see the ChangeLog)
|
||||
|
||||
Other contributors:
|
||||
Zbigniew Chyla, OEyvind Kolaas, Nick Lamb, David Monniaux, Raphaรซl Quinet,
|
||||
Jakub Steiner, Simon Budig
|
||||
|
||||
|
||||
Overview of Changes in GIMP 1.3.5
|
||||
=================================
|
||||
|
||||
- Improved tool options and made them dockable [Mitch]
|
||||
- Cleanup of brush, gradient, pattern and palette PDB functions [Mitch]
|
||||
- Autogenerate libgimp/gimp_pdb.h [Yosh]
|
||||
- Converted the toolbox to a dock [Mitch]
|
||||
- Resurrected display filter modules [Mitch]
|
||||
- Plug-in code cleanup (colorify) [Maurits Rijk]
|
||||
- New menu icons [Jimmac, Mitch]
|
||||
- New widgets to choose from enum values [Sven]
|
||||
- Enum cleanups [Yosh, Sven]
|
||||
- Resizeable docks [Mitch]
|
||||
- Parse unitrc and document history using GScanner [Mitch]
|
||||
- Fixes for build on Win32 [Hans]
|
||||
- Treeviewified user installation dialog [Yosh]
|
||||
- Bugfixes
|
||||
- More stuff not mentioned here (see the ChangeLog)
|
||||
|
||||
Other Contributors:
|
||||
Rebecca Walter, Tuomas Kuosmanen, Marcel Telka
|
||||
|
||||
|
||||
Overview of Changes in GIMP 1.3.4
|
||||
=================================
|
||||
|
||||
- Improved image status bar and image title [Mitch]
|
||||
- Updated thumbnail code according to changes in proposed standard [Sven]
|
||||
- Implemented init_proc in plug-ins [Nathan]
|
||||
- Allow to choose interpolation for individual transformations [Mitch]
|
||||
- More framework for tool plug-ins, landed a first tool [Nathan]
|
||||
- Started core/UI separation for the paint tools [Mitch]
|
||||
- Win32 fixes [Hans Breuer]
|
||||
- Plug-in code cleanups (aa, colortoalpha, glasstile, guillotine, vinvert,
|
||||
pagecurl) [Maurits Rijk, Sven]
|
||||
- I18n changes, we now use glib-gettextize and intltoolize [Sven]
|
||||
- New layer mask initialization modes [Mitch]
|
||||
- Colorpicker, Transform tool and PDB fixes [Mitch]
|
||||
- Factored out paint code from the paint tools [Mitch]
|
||||
- New vectors infrastructure [Simon]
|
||||
- First draft of a new vectors tool [Simon, Mitch]
|
||||
- Scanline conversion (Path to selection etc.) changed to use libart [Simon]
|
||||
- Undo cleanups [Mitch]
|
||||
- Changed tips file format to XML [Sven]
|
||||
- Added desktop file for GNOME-2 [Sven]
|
||||
- Added GimpItem class to generalize core code even further [Mitch]
|
||||
- Improved preferences dialog [Mitch, Sven, Jimmac]
|
||||
- New tool icons [Jimmac]
|
||||
- Editor widgets for brushes, gradients and palettes [Mitch]
|
||||
- Revival of the API reference [Sven]
|
||||
- Bugfixes
|
||||
- More stuff not mentioned here (see the ChangeLog)
|
||||
|
||||
Other Contributors:
|
||||
Manish Singh, Rebecca Walter, Guillermo S. Romero
|
||||
|
||||
|
||||
Overview of Changes in GIMP 1.3.3
|
||||
=================================
|
||||
|
||||
- Most of the code is free of deprecated GTK+ calls now [Mitch, Yosh, Sven]
|
||||
- More use of stock icons [Sven, Mitch]
|
||||
- New RGB->Indexed quantizer [Adam]
|
||||
- Framework for pluggable tools [Nathan]
|
||||
- More tool system cleanups [Mitch]
|
||||
- Improved image status bar [Mitch]
|
||||
- GimpObjects now know their memory footprint [Mitch]
|
||||
- GimpUnit cleanup [Sven]
|
||||
- Message proofreading [Bex]
|
||||
- configure.in should work with autoconf-2.5 [Raja R Harinath]
|
||||
- Bugfixes
|
||||
- More stuff not mentioned here (see the ChangeLog)
|
||||
|
||||
Other Contributors:
|
||||
Simon Budig
|
||||
|
||||
|
||||
Overview of Changes in GIMP 1.3.2
|
||||
=================================
|
||||
|
||||
- Cleanup of display and tools [Mitch]
|
||||
- Improvements to tools UI [Mitch]
|
||||
- Reenabled brush pipes [Mitch]
|
||||
- Started to reorganize menus [Mitch]
|
||||
- Cleanup of internal enums [Sven]
|
||||
- New config file framework (yet unused) [Sven]
|
||||
- Fixes to the Undo and PixelRegion code [Kelly]
|
||||
- Optimization and cleanup of the paint-funcs [Daniel]
|
||||
- Message proofreading [Bex]
|
||||
- Most stuff compiles with -DGTK_DISABLE_DEPRECATED [Mitch]
|
||||
- More stuff not mentioned here (see the ChangeLog)
|
||||
|
||||
Other Contributors:
|
||||
Guillermo S. Romero, David Neary, David Odin, Roger Leigh,
|
||||
Ville Pรคtsi.
|
||||
|
||||
|
||||
Overview of Changes in GIMP 1.3.1
|
||||
=================================
|
||||
|
||||
- Follow GTK+-2.0 and Pango API changes [Yosh, Mitch, Sven]
|
||||
- Added Color Erase paint mode [Simon Budig]
|
||||
- Proofreading of messages [Rebecca Walter]
|
||||
- Improvements to container views [Mitch]
|
||||
- Improved tool options [Mitch]
|
||||
- Made --no-interface mode work without calling gtk_init() [Mitch]
|
||||
- Reworked paint_funcs [Daniel Egger]
|
||||
- Added SF-DIRNAME script-fu parameter [Matteo Nastasi]
|
||||
- Lots of internal cleanups [Mitch, Sven]
|
||||
- More stuff not mentioned here (see the ChangeLog)
|
||||
|
||||
Other Contributors:
|
||||
Guillermo S. Romero, David Neary
|
||||
|
||||
|
||||
Overview of Changes in GIMP 1.3.0
|
||||
=================================
|
||||
|
||||
- Ported almost everything to the GTK+-2.0 API. Check the file INSTALL
|
||||
to learn what libraries we require in detail.
|
||||
- Cleaned up the core a lot. The app directory is now broken up into
|
||||
subdirectories that define subsystems with defined dependencies.
|
||||
- Separated GUI from core functionality in almost all places.
|
||||
- The core object system does not depend on GTK+ any more.
|
||||
- Rewrote large parts of the user interface in a more generic way.
|
||||
- Started to rewrite the text tool (completely broken at the moment)
|
||||
- Lots of changes in the tool system. All paint tool PDB wrappers are
|
||||
broken at the moment.
|
||||
- Split up libgimp and libgimpui in a bunch of smaller utility
|
||||
libraries for plug-ins and the core.
|
||||
- Removed GIMP 1.0 compatibility wrappers.
|
||||
- Lots of stuff not mentioned here. See the file ChangeLog for more info.
|
||||
1184
NEWS.pre-2-10
Normal file
1184
NEWS.pre-2-10
Normal file
File diff suppressed because it is too large
Load Diff
578
NEWS.pre-2-2
Normal file
578
NEWS.pre-2-2
Normal file
@ -0,0 +1,578 @@
|
||||
The GNU Image Manipulation Program Version 2.2
|
||||
----------------------------------------------
|
||||
|
||||
This is version 2.2 of The GIMP. Version 2.2 is an update on GIMP 2.0.
|
||||
GIMP 2.2 is fully backward compatible to GIMP 2.0. Plug-ins and
|
||||
scripts written for GIMP 2.0 will continue to work and don't need to
|
||||
be changed nor recompiled to be used with GIMP 2.2. We do however
|
||||
hope that plug-in authors will update their plug-ins for GIMP 2.2 and
|
||||
adapt the GUI changes we did with this version.
|
||||
|
||||
Please follow the installation instructions in INSTALL.
|
||||
|
||||
|
||||
Overview of Changes in GIMP 2.2.0 (since 2.2-pre2 was released)
|
||||
=================================
|
||||
|
||||
- More work on GFig plug-in.
|
||||
|
||||
- Build fixes for Win32 and IRIX.
|
||||
|
||||
- Added --no-splash command-line option for gimp-remote.
|
||||
|
||||
- More tweaks to the migration of user settings.
|
||||
|
||||
- Improved input controller modules, added ALSA support to the MIDI module.
|
||||
|
||||
- Allow to transform layers with masks.
|
||||
|
||||
- Let the histogram respect the selection.
|
||||
|
||||
- Added gimp_edit_copy_visible as a replacement for the "Copy Visible" script.
|
||||
|
||||
- Improved color dithering routines.
|
||||
|
||||
- Lots of bug fixes and some optimizations.
|
||||
|
||||
|
||||
Contributors:
|
||||
|
||||
Michael Natterer, Sven Neumann, David Odin, Manish Singh, Kevin Cozens,
|
||||
Joao S. O. Bueno, Karine Proot, Tim Mooney, Wolfgang Hofer, Simon Budig,
|
||||
Bill Skaggs, รyvind Kolรฅs, Adam D. Moss, Brion Vibber, Maurits Rijk,
|
||||
Bill Luhtala, Philip Lafleur
|
||||
|
||||
|
||||
|
||||
Overview of Changes in GIMP 2.2-pre2
|
||||
====================================
|
||||
|
||||
- More work on GFig (still more to come here).
|
||||
|
||||
- Improvements and fixes to the migration of user settings.
|
||||
|
||||
- Final touches to the new PDB APIs.
|
||||
|
||||
- Ported some more item factories to GtkUIManager.
|
||||
|
||||
- Added new PDB function gimp_layer_from_mask().
|
||||
|
||||
- User interface cleanup in IFS Fractal plug-in (former IfsCompose).
|
||||
|
||||
- Allow file plug-ins to provide a way to access an image thumbnail if
|
||||
the file format provides one or can be rendered at small sizes.
|
||||
|
||||
- Load and save EXIF thumbnails in JPEG files.
|
||||
|
||||
- Render in small resolution when creating a thumbnail for a
|
||||
Postscript or PDF document or from an SVG or WMF image file.
|
||||
|
||||
- Allow to import Photoshop (.act) palette files.
|
||||
|
||||
- Added a Print Size dialog to bring back missing functionality from 2.0.
|
||||
|
||||
- Several improvements to the GIMP Python bindins.
|
||||
|
||||
- Guard the core better against misbehaving scripts and plug-ins.
|
||||
|
||||
- Changed the way that Script-Fu scripts register their menus (in a
|
||||
backward compatible way).
|
||||
|
||||
- Added ALSA support for the MIDI controller module.
|
||||
|
||||
- Resurrected the glob plug-in.
|
||||
|
||||
- Lots of bug fixes and some optimizations.
|
||||
|
||||
|
||||
Contributors:
|
||||
|
||||
Michael Natterer, Sven Neumann, David Odin, Manish Singh, Kevin Cozens,
|
||||
Joao S. O. Bueno, Geert Jordaens, David Gowers, รyvind Kolรฅs, Cai Qian,
|
||||
Simon Budig, Jakub Steiner, Philip Lafleur, Nickolay V. Shmyrev,
|
||||
Karine Proot, S. Mukund, Dave Neary, Keith Goatman
|
||||
|
||||
|
||||
|
||||
Overview of Changes in GIMP 2.2-pre1
|
||||
====================================
|
||||
|
||||
- Added more plug-in previews (Displace, Color To Alpha, Newsprint)
|
||||
and ported existing previews to the new widgets (Glass Tiles).
|
||||
|
||||
- Added preview to WMF loader plug-in.
|
||||
|
||||
- Added Retinex plug-in for color normalization.
|
||||
|
||||
- Added plug-in to load and save raw image data (_not_ the raw format
|
||||
used by some digital cameras)
|
||||
|
||||
- Added a GUI to configure controller modules.
|
||||
|
||||
- Let lots of core dialogs remember their last values and add
|
||||
shortcuts to run with the last values w/o opening the dialog.
|
||||
|
||||
- Added new PDB API for drawable transformations.
|
||||
|
||||
- Register all libgimp enums to allow language bindings such as
|
||||
Script-Fu to access them using GType introspection.
|
||||
|
||||
- Improved how we attach user-visible strings to enums registered with
|
||||
the type system. Added API to access these strings to libgimpbase.
|
||||
|
||||
- Cleanups to the new GFig GUI (still work in progress).
|
||||
|
||||
- HIGification of the ImageMap plug-in.
|
||||
|
||||
- Cleaned up dialogs code.
|
||||
|
||||
- Added Auto Whitebalance menu item.
|
||||
|
||||
- Redid Scale and Resize dialogs.
|
||||
|
||||
- Added code to migrate user settings from ~/.gimp-2.0.
|
||||
|
||||
- lots of bug fixes.
|
||||
|
||||
|
||||
Contributors:
|
||||
|
||||
Michael Natterer, Sven Neumann, David Odin, Manish Singh, Kevin Cozens,
|
||||
Joao S. O. Bueno, Geert Jordaens, Yeti, Karine Proot, รyvind Kolรฅs,
|
||||
Simon Budig
|
||||
|
||||
|
||||
|
||||
Overview of Changes in GIMP 2.1.7
|
||||
=================================
|
||||
|
||||
- Added even more plug-in previews (Value Propagate, Cubism, Colorify)
|
||||
and ported existing previews to the new widgets (AlienMap2, FlareFX,
|
||||
Jigsaw, NL Filter, Waves, Scatter HSV).
|
||||
|
||||
- More PDB API cleanups.
|
||||
|
||||
- Allow to specify the batch interpreter on the command-line.
|
||||
|
||||
- Improved selection-round script and moved it to the Select menu.
|
||||
|
||||
- Don't switch the active layer when using the Move tool.
|
||||
|
||||
- Updated libgimpthumb to support local thumbnails as introduced by
|
||||
version 0.7 of the thumbnail spec.
|
||||
|
||||
- Automatically create thumbnails from the Open dialog.
|
||||
|
||||
- Added entries next to most viewable buttons.
|
||||
|
||||
- Added a bunch of scripts to manipulate guides.
|
||||
|
||||
- Improved confirmation and warning dialogs.
|
||||
|
||||
- Lots of bug fixes.
|
||||
|
||||
|
||||
Contributors:
|
||||
|
||||
Michael Natterer, Sven Neumann, David Odin, Manish Singh, Kevin Cozens,
|
||||
Alan Horkan, Jakub Steiner
|
||||
|
||||
|
||||
|
||||
Overview of Changes in GIMP 2.1.6
|
||||
=================================
|
||||
|
||||
- Added more drawable previews (Color Exchange, DOG, Deinterlace,
|
||||
Engrave, Oilify, Ripple, Shift).
|
||||
|
||||
- Added new preview widget that shows a scaled view of the full
|
||||
drawable. Use it for Apply Lens, Blinds, Channel Mixer, Destripe,
|
||||
Emboss, Illusion, Map Color, Max RGB, Plasma, Polar, Solid Noise,
|
||||
Supernova, Whirl and Pinch.
|
||||
|
||||
- Added "Open as Layer" functionality to the menus.
|
||||
|
||||
- Implemented the recent-file-spec for shared storage of a list of
|
||||
recently used files (really URIs).
|
||||
|
||||
- Cleaned up plug-in procedure handling. Added the possibility to let
|
||||
plug-ins and scripts run using a private GimpContext.
|
||||
|
||||
- Added multi-line text entries for Script-Fu and Gimp-Python.
|
||||
|
||||
- Cleaned up PDB API for brushes, gradients, palettes and patterns.
|
||||
Deprecated lots of functions and added saner replacements. Added
|
||||
gimp-context-* PDB namespace with replacements for some of the
|
||||
deprecated stuff.
|
||||
|
||||
- Let GimpView handle pixbuf previews. Added a (themable) drop shadow
|
||||
to image-file previews.
|
||||
|
||||
- Cleaned up the dbbrowser and plugindetails code and GUI and factored
|
||||
out common code. Renamed both executables and menu entries.
|
||||
|
||||
- Made tools cancelable with <Escape>.
|
||||
|
||||
- Dim the outer (to be cropped) area when using the Crop tool.
|
||||
|
||||
- Let GimpDialog add a help button to give easier access to the help pages.
|
||||
|
||||
|
||||
Contributors:
|
||||
|
||||
Michael Natterer, Sven Neumann, David Odin, Maurits Rijk, Dave Neary,
|
||||
Manish Singh, Robert Oegren, Kevin Cozens, Kevin Turner, Dov Grobgeld,
|
||||
Joao S. O. Bueno, Michael Schumacher, Jonathan Levi, Daniel Egger
|
||||
|
||||
|
||||
|
||||
Overview of Changes in GIMP 2.1.5
|
||||
=================================
|
||||
|
||||
- Ask the user to save the image when closing the last display.
|
||||
|
||||
- Restored compatibility of the wire protocol that was accidentally
|
||||
broken in 2.1.4.
|
||||
|
||||
- Added layer and mask actions to allow to create keybindings for them.
|
||||
|
||||
- Preview widget improvements:
|
||||
* let the preview expand with the plug-in dialog
|
||||
* added a navigation popup similar to the one in the image window
|
||||
* respect the selection and show how it will affect the filter
|
||||
* added API to draw to a GimpDrawablePreview from a GimpPixelRgn
|
||||
|
||||
- Added preview to more plug-ins: Cartoon, Apply Canvas, Photocopy,
|
||||
Motion Blur,
|
||||
|
||||
- Ported the Bumpmap plug-in preview to GimpDrawablePreview.
|
||||
|
||||
- Removed -u linker hacks from all Makefiles.
|
||||
|
||||
|
||||
Contributors:
|
||||
|
||||
Michael Natterer, Sven Neumann, David Odin, Manish Singh, Simon
|
||||
Budig, Nathan Summers, Alan Horkan, David Gowers, Bill Skaggs,
|
||||
Joao S. O. Bueno, Peter Kirchgessner
|
||||
|
||||
|
||||
|
||||
Overview of Changes in GIMP 2.1.4
|
||||
=================================
|
||||
|
||||
- Rewritten internal handling of progress indicators. Embed progress
|
||||
bars to the File Open dialog to reduce annoying dialogs popping up.
|
||||
|
||||
- Added an API for plug-ins to embed a progress bar. Let the Script-Fu
|
||||
dialog swallow the progress bars created by running the script.
|
||||
|
||||
- Ported remaining plug-ins and modules to GimpPreviewArea and removed
|
||||
GimpOldPreview.
|
||||
|
||||
- Show progress while converting from RGB to Indexed Colors.
|
||||
|
||||
- Added new plug-ins Cartoon, Neon, Photocopy and Softglow.
|
||||
|
||||
- Let color selectors adapt to the given size.
|
||||
|
||||
- Import basic SVG shapes as paths.
|
||||
|
||||
- Improved GIH and guillotine plug-ins.
|
||||
|
||||
- Added GimpMessageBox widget. Collect error messages in a single
|
||||
dialog to reduce popups.
|
||||
|
||||
- Renamed the core GimpPreview widget to GimpView.
|
||||
|
||||
- Added a GimpPreview widget to libgimpwidgets. This is an abstract
|
||||
class that combines a GimpPreviewArea with scrollbars and a "Preview"
|
||||
toggle button.
|
||||
|
||||
- Added GimpDrawablePreview derived from GimpPreview.
|
||||
|
||||
- Improved previews in Unsharp Mask, Scatter RGB, Sharpen, Spread and
|
||||
Grid plug-ins.
|
||||
|
||||
- Added previews to Edge, Gaussian Blur, Neon, Soft Glow, Sobel and
|
||||
Selective Gaussian Blur.
|
||||
|
||||
- Added a logarithmic mode for the slider in a GimpScaleEntry.
|
||||
|
||||
- Script-Fu code cleanups.
|
||||
|
||||
- Fixed composite assembly code.
|
||||
|
||||
- Pass user settings for the checkerboard to plug-ins.
|
||||
|
||||
- Image comment, if any, is now shown within the info window.
|
||||
|
||||
- New function "Fit Canvas to Layers" (gimp_image_resize_to_layers)
|
||||
|
||||
|
||||
Contributors:
|
||||
|
||||
Michael Natterer, Sven Neumann, David Odin, Shlomi Fish, Bill Skaggs,
|
||||
Simon Budig, Ari Pollak, Spencer Kimball, Michael Schumacher, Joao
|
||||
S. O. Bueno, Manish Singh, Helvetix Victorinox, Kevin Cozens
|
||||
|
||||
|
||||
|
||||
Overview of Changes in GIMP 2.1.3
|
||||
=================================
|
||||
|
||||
- Cleanups to the MMX code and the composite subsystem in general
|
||||
|
||||
- Cleanups and fixes to Gimpressionst plug-in (bug #148088)
|
||||
|
||||
- Redone light settings GUI for Lighting plug-in.
|
||||
|
||||
- Added keyboard shortcut editor to preferences dialog (bug #142922)
|
||||
|
||||
- Implemented the callbacks for the various "Clear saved foobar now"
|
||||
buttons in the preferences dialog.
|
||||
|
||||
- Added support for loading gradients from SVG files. This allows to
|
||||
share gradient definitions with Inkscape and Sodipodi (bug #148127)
|
||||
|
||||
- Added parsers for the various ways to define a color in SVG to
|
||||
libgimpcolor.
|
||||
|
||||
- Added GimpColorHexEntry widget to libgimpwidgets. It displays colors
|
||||
in hexadecimal represention and takes hex and SVG color names as input.
|
||||
|
||||
- Added GimpCellRendererColor and GimpCellRendererToggle to libgimpwidgets.
|
||||
|
||||
- Renamed GimpColor boxed type to GimpRGB and moved it to libgimpcolor.
|
||||
|
||||
- Moved GIMP_TYPE_UNIT and GIMP_TYPE_MEMSIZE to libgimpbase.
|
||||
|
||||
- Fixes to the BMP loader plug-in (bug #143682).
|
||||
|
||||
- Fixes to the Decompose plug-in (bug #147603).
|
||||
|
||||
- Added palette selector widgets to libgimpui.
|
||||
|
||||
- Allow to disable mnemonics in menus (bug #120034).
|
||||
|
||||
- Ported TWAIN plug-in to Mac OS X (bug #147962).
|
||||
|
||||
- Support motion event history as provided by some input device drivers.
|
||||
|
||||
- Let the undo system know more specifically what an undo step
|
||||
does. Use that info to keep tools active across modifications to
|
||||
the image that don't affect the tool (bug #109561).
|
||||
|
||||
- Changed default config for keyboard controller to allow scrolling
|
||||
the display using the cursor keys (#53988).
|
||||
|
||||
- Added GimpPreviewArea widget as replacement for the deprecated
|
||||
GtkPreview widget. Ported most plug-ins to the new widget.
|
||||
|
||||
- Added shapes for generated brushes and allow for softer brushes.
|
||||
|
||||
- Allow to specify the aspect ratio in the scale tool.
|
||||
|
||||
- Lots of bug fixes and other goodies. Check the ChangeLog for details.
|
||||
|
||||
|
||||
Contributors:
|
||||
|
||||
Michael Natterer, Sven Neumann, Helvetix Victorinox, Shlomi Fish,
|
||||
Bill Skaggs, Brion Vibber, Raphael Quinet, Simon Budig, David Odin,
|
||||
Manish Singh, Hans Breuer, Michael Schumacher, Dave Neary
|
||||
|
||||
|
||||
|
||||
Overview of Changes in GIMP 2.1.2
|
||||
=================================
|
||||
|
||||
- Further improvements to the new input controllers; added a keyboard
|
||||
controller.
|
||||
|
||||
- Show image preview in GFig plug-in, started a complete overhaul.
|
||||
|
||||
- Added Difference of Gaussians edge detection plug-in.
|
||||
|
||||
- Added more possibilities for drag'n'drop:
|
||||
* layers dialog accepts URI, color and pattern drops
|
||||
* path dialog takes and offers DND of SVG data
|
||||
|
||||
- Implemented PDB function gimp-path-get-point-at-dist.
|
||||
|
||||
- Allow to use the color picker to edit palettes (as in gimp-1.2).
|
||||
|
||||
- Improvements and code cleanup in gimpressionist plug-in.
|
||||
|
||||
- Allow to cut'n'paste image data between GIMP and other applications
|
||||
(for example Abiword) using the system clipboard.
|
||||
|
||||
- List unsaved images in Quit dialog.
|
||||
|
||||
- Completed core/gui separation. Optionally build a gimp-console
|
||||
application that behaves like 'gimp --no-interface' and doesn't link
|
||||
to GTK+ at all.
|
||||
|
||||
- Deprecated GimpPixmap and ported almost all users to GtkImage.
|
||||
|
||||
- Moved display projection code into a GimpProjection object. This means
|
||||
there's finally only a single projection per image.
|
||||
|
||||
- Introduced GimpPickable interface and implemented it for all core
|
||||
objects that you can pick colors from.
|
||||
|
||||
- Write smaller indexed MNG files.
|
||||
|
||||
- Fixed issues with the internal statusbar API.
|
||||
|
||||
- Allow for multiple light sources in the Lighting plug-in.
|
||||
|
||||
- Redone file type selection in file load/save dialogs.
|
||||
|
||||
- Removed HRZ plug-in.
|
||||
|
||||
- Improved developers documentation.
|
||||
|
||||
- Improved quality of antialiasing in the ellipse select tool.
|
||||
|
||||
- Lots of bug fixes and other goodies. Check the ChangeLog for details.
|
||||
|
||||
|
||||
Contributors:
|
||||
|
||||
Michael Natterer, Sven Neumann, Philip Lafleur, William Skaggs,
|
||||
Geert Jordaens, Simon Budig, Roman Joost, Michael Schumacher,
|
||||
Shlomi Fish, Hans Breuer, Brion Vibber, Robert Oegren, Kevin
|
||||
Cozens, Helvetix Victorinox
|
||||
|
||||
|
||||
|
||||
Overview of Changes in GIMP 2.1.1
|
||||
=================================
|
||||
|
||||
- Added support for loading patterns in formats supported by GdkPixbuf
|
||||
(most notably PNG and JPEG).
|
||||
|
||||
- Use ARGB cursors when supported by the windowing system. Added nice
|
||||
new tool cursors.
|
||||
|
||||
- Added previews to Solid Noise and Unsharp Mask plug-ins.
|
||||
|
||||
- Improvements for painting with pressure-sensitive devices.
|
||||
|
||||
- Added preview for transform tools.
|
||||
|
||||
- Merged the Gaussian Blur plug-ins.
|
||||
|
||||
- Simplified the Blur plug-in.
|
||||
|
||||
- Reorganized the Preferences dialog.
|
||||
|
||||
- Dispatch Enter, Return, Backspace and Delete key events to the tools
|
||||
and use them where it makes sense.
|
||||
|
||||
- Some optimizations to the tile system, the gradient rendering and to
|
||||
the cubic interpolation routine.
|
||||
|
||||
- Show the brush outline while painting.
|
||||
|
||||
- Added an interface that allows to add controller modules. Such a module
|
||||
can dispatch events to The GIMP which are mapped to actions by a
|
||||
user-configurable mapping table. Added controller modules for mouse
|
||||
wheel, midi and linux_input devices.
|
||||
|
||||
- Applied HIG capitalization style to all(?) dialogs.
|
||||
|
||||
- Lots of bug fixes and other goodies. Check the ChangeLog for details.
|
||||
|
||||
|
||||
Contributors:
|
||||
|
||||
Michael Natterer, Sven Neumann, Manish Singh, Philip Lafleur,
|
||||
William Skaggs, Geert Jordaens, Yeti, Dave Neary, Jakub Steiner,
|
||||
David Gowers, Henrik Brix Andersen, Simon Budig, Pedro Gimeno,
|
||||
lots of translators and the contributors that I accidentally missed...
|
||||
|
||||
|
||||
|
||||
Overview of Changes in GIMP 2.1.0
|
||||
=================================
|
||||
|
||||
GIMP 2.1.0 includes the following enhancements over GIMP 2.0:
|
||||
|
||||
- Major user interface improvements.
|
||||
|
||||
* Large parts of the GIMP user interface have been changed to
|
||||
comply better with the GNOME Human Interface Guidelines. This is
|
||||
an ongoing effort and the interface may still be inconsistent in
|
||||
a few places.
|
||||
|
||||
* Users are now allowed to clear the undo history.
|
||||
|
||||
* The unit to be used for the rulers and the coordinates display is now
|
||||
a display property and can be changed in the statusbar of the image
|
||||
window.
|
||||
|
||||
* New widgets and frameworks provided by GTK+ 2.4 are used; this means
|
||||
|
||||
+ uses the new GtkFileChooser dialog, vastly improving the file
|
||||
dialogs.
|
||||
+ includes port of menus to GtkUIManager, which creates all core
|
||||
menus from XML files at runtime. This means that menu items can
|
||||
be rearranged by users simply by editing these files.
|
||||
+ uses a global accelerator table in all docks and image windows.
|
||||
This means that a hotkey will do the same thing regardless of
|
||||
which dock or image window you are using.
|
||||
+ adds replacement widgets based on GtkComboBox for most uses of
|
||||
GtkOptionMenu (GimpUnitMenu remains to be ported)
|
||||
+ adds GimpContainerEntry, a GtkEntry with completion based on
|
||||
the contents of a GimpContainer.
|
||||
+ makes the order and visibility of tools in the toolbox configurable
|
||||
+ allows keeping toolbox and dock windows above other windows (if
|
||||
the WM supports this hint)
|
||||
|
||||
* The toolbox now has an optional preview of the active image.
|
||||
|
||||
* The image window now accepts file/uri drops.
|
||||
|
||||
- More internal cleanup and refactoring of the core object model.
|
||||
|
||||
- The brush rendering code has been separated from the generic paint
|
||||
tool code. The ink tool is now a paint tool (it can do straight
|
||||
lines) and the new infrastructure allows to implement new kinds of
|
||||
paint methods like vector based painting.
|
||||
|
||||
- Gradients can now be created, deleted, renamed and edited through
|
||||
the PDB.
|
||||
|
||||
- Some changes to plug-ins.
|
||||
|
||||
* Plug-ins can now register the same procedures in multiple places (the
|
||||
API to register menu entries has been changed in a backward-compatible
|
||||
fashion).
|
||||
|
||||
* Plug-ins can now optionally register a menu icon.
|
||||
|
||||
* File plug-ins can now register a mime-type.
|
||||
|
||||
* All plug-in dialogs have been reviewed and changed to make them
|
||||
comply better with the GNOME Human Interface Guidelines.
|
||||
|
||||
* All plug-ins that need to access files use the new GtkFileChooser
|
||||
dialog.
|
||||
|
||||
* The obsolete AlienMap and GIcon plug-ins were removed. AlienMap2
|
||||
does everything than AlienMap did, and the GIMP-specific GIcon format
|
||||
has not been used by anything for quite some time now.
|
||||
|
||||
* A plug-in to load and save windows icon files has been added.
|
||||
|
||||
|
||||
Contributors:
|
||||
|
||||
Michael Natterer, Sven Neumann, Maurits Rijk, Manish Singh,
|
||||
Henrik Brix Andersen, Philip Lafleur, Raphael Quinet, Simon Budig,
|
||||
William Skaggs, Shlomi Fish, Kevin Cozens, Jakub Steiner, Dave Neary,
|
||||
Daniel Kobras, Jordi Gay, Yeti, Marco Munari, David Necas, Nils
|
||||
Philippsen, Soeren Wedel Nielsen, Joao S. O. Bueno, lots of translators
|
||||
and the contributors that I accidentally missed...
|
||||
570
NEWS.pre-2-4
Normal file
570
NEWS.pre-2-4
Normal file
@ -0,0 +1,570 @@
|
||||
------------------------------
|
||||
GNU Image Manipulation Program
|
||||
Development Branch
|
||||
------------------------------
|
||||
|
||||
This used to be the development branch that lead to GIMP 2.4.
|
||||
|
||||
|
||||
Changes in GIMP 2.4.0
|
||||
=====================
|
||||
|
||||
- further improved the rectangle select and crop tools
|
||||
- allow to mark out-of-gamut colors when doing a soft proof
|
||||
- bug fixes
|
||||
|
||||
|
||||
Changes in GIMP 2.4.0-rc3
|
||||
=========================
|
||||
|
||||
- use the new format for storing recently used files
|
||||
- added conversion options to the color profile conversion plug-in
|
||||
- allow to disable the toolbox menu on all platforms
|
||||
- further improved handling of the JPEG settings
|
||||
- switch tabs when hovering over them
|
||||
- added a PDB function to remove the alpha channel from a layer
|
||||
- plug-in previews remember the state of the Preview checkbox (bug #478657)
|
||||
- allow to grow the image/layer using the Crop tool
|
||||
- bug fixes
|
||||
|
||||
|
||||
Changes in GIMP 2.4.0-rc2
|
||||
=========================
|
||||
|
||||
- more improvements and bug fixes in the rectangle tools
|
||||
- antialias the display for zoom levels between 100% and 200%
|
||||
- fix zoomed-out display problems
|
||||
- improve handling of JPEG settings
|
||||
- fix script-fu error reporting
|
||||
- on OS X, get rid of menubars in windows and use the global menubar
|
||||
- fix plug-ins using GimpZoomPreview
|
||||
- throw properly catchable exceptions from foreign script-fu function
|
||||
(like PDB wrappers)
|
||||
- bug fixes
|
||||
|
||||
|
||||
Changes in GIMP 2.4.0-rc1
|
||||
=========================
|
||||
|
||||
- further improvement to the Print plug-in
|
||||
- completed the color management functionality for 2.4
|
||||
- store JPEG setting with the image and use them when saving as JPEG
|
||||
- further improved the rectangle tools, in particular handling of the
|
||||
fixed aspect ratio
|
||||
- added color profile selector widget
|
||||
- further improved the display quality for zoomed-out views
|
||||
|
||||
|
||||
Changes in GIMP 2.3.19
|
||||
======================
|
||||
|
||||
- support long layer names in PSD files
|
||||
- improved EXIF handling in the JPEG file plug-in
|
||||
- added control for the playback speed in the Animation Playback plug-in
|
||||
- avoid needless image preview invalidation
|
||||
- allow to edit the image comment in the Image Properties dialog
|
||||
- further improved rectangle tools
|
||||
- made JPEG save parameters user-configurable
|
||||
- avoid color conversions between identical ICC color profiles
|
||||
- improved Print plug-in
|
||||
- improved loading and saving of indexed TGA images
|
||||
- bug fixes and code cleanup
|
||||
|
||||
|
||||
Changes in GIMP 2.3.18
|
||||
======================
|
||||
|
||||
- temporarily show the hidden image statusbar while the progress is active
|
||||
- added support for loading .abr v6 Photoshop brushes
|
||||
- improved usability of color scales
|
||||
- improved display quality of zoomed-out image view
|
||||
- bug fixes and code cleanup
|
||||
|
||||
|
||||
Changes in GIMP 2.3.17
|
||||
======================
|
||||
|
||||
- improved import of multi-page TIFF files
|
||||
- reduced rounding errors in Blur routines (core and plug-ins)
|
||||
- further improved parameter checks in the PDB
|
||||
- added support for loading .abr v2 Photoshop brushes
|
||||
- improved border behavior of the Blur tool
|
||||
- show the brush outline at the Clone tool's source position
|
||||
- added libgimpbase API to retrieve the user's Pictures folder
|
||||
- add a shortcut to the user's Pictures folder to the file-chooser dialog
|
||||
- improved the quality of the Motion Blur filter
|
||||
- save paths in TIFF files
|
||||
- let the Screenshot plug-in name the new layer after the window
|
||||
- use memory slices to reduce memory fragmentation
|
||||
- some code cleanup
|
||||
- lots of bug fixes
|
||||
|
||||
|
||||
Changes in GIMP 2.3.16
|
||||
======================
|
||||
|
||||
- make the XOR color configurable as a workaround for broken drivers
|
||||
- allow to assign keyboard shortcuts to procedures without menu entry
|
||||
- allow to configure the height of the preview area in data editors
|
||||
- improved file detection in TGA plug-in
|
||||
- improved brush scaling code, now also scales up
|
||||
- converted standard pixmap brushes to parametric ones
|
||||
- improved zoom tool behavior
|
||||
- D-Bus methods now have a return value indicating success or failure
|
||||
- added more menu tooltips
|
||||
- allow procedures to request the display ID they are being called from
|
||||
- depend on GTK+ >= 2.10.6 and use some of the new functions in GTK+ 2.10
|
||||
- allow filename passed on the command-line to be opened as new images
|
||||
- various optimizations
|
||||
- bug fixes and code cleanup
|
||||
|
||||
|
||||
Changes in GIMP 2.3.15
|
||||
======================
|
||||
|
||||
- added keyboard control to rectangle tools and improved their tool options
|
||||
- improved console handling on Win32
|
||||
- support large XCF files (> 2GB) on Win32 also
|
||||
- cleanup of the internal undo system
|
||||
- ask before overwriting files, not only for image files
|
||||
- added "Revert Zoom" functionality
|
||||
- added GimpStringComboBox widget to libgimpwidgets
|
||||
- added HAL support for hotplug of Linux Input devices
|
||||
- added support for shaped windows to the Screenshot plug-in
|
||||
- improved handling of incomplete PNG files
|
||||
- categorize contributors into active and inactive
|
||||
- added controller module for DirectInput controllers on Win32
|
||||
- speed up transform tools
|
||||
- improved tool cancellation framework
|
||||
- fixed Select -> Border behaviour and added option for 'sticky image edges'
|
||||
- bug fixes and code cleanup
|
||||
|
||||
|
||||
Changes in GIMP 2.3.14
|
||||
======================
|
||||
|
||||
- added actions to control brush spacing
|
||||
- polished appearance of image window
|
||||
- scale the brush's spacing when scaling the brush
|
||||
- save tool presets when they are changed
|
||||
- improved handling of vectors in the Python bindings
|
||||
- allow for auto-cropping the result of the transform tools
|
||||
- added GimpRatioEntry widget and use it in the rectangle tool options
|
||||
- added functions to transform between preview and image coordinates
|
||||
- added PDB functions to validate display, drawable, image and vectors IDs
|
||||
- added HSL color model to Decompose and Compose plug-ins
|
||||
- further improved status bar messages for tools
|
||||
- on systems with D-Bus build gimp-remote functionality into gimp executable
|
||||
- bug fixes and code cleanup
|
||||
|
||||
|
||||
Changes in GIMP 2.3.13
|
||||
======================
|
||||
|
||||
- show information about embedded color profiles in Image Properties dialog
|
||||
- allow to apply color profiles on load (still work in progress)
|
||||
- new vectors PDB API to replace the old path API
|
||||
- added "Auntie Alias" plug-in for antialiasing on lineart
|
||||
- added Edit->Fade operation
|
||||
- added Rounded Corners option to Rectangle Select tool
|
||||
- improved WinIcon plug-in (now loads and saves 24 bit and Vista icons)
|
||||
- merged gimp-tiny-fu; replaces Script-Fu Scheme interpreter with TinyScheme
|
||||
- remember unit and interpolation type in scale and resize dialogs
|
||||
- changed default interpolation type to Cubic
|
||||
- show comment in Image Properties dialog
|
||||
- when loading in image as layers, don't merge the layers
|
||||
- added experimental palette color selector module
|
||||
- don't save thumbnails that don't match the image
|
||||
- increased tool handle sizes for better usability
|
||||
- implemented brush scaling from the tool options (only downscaling yet)
|
||||
- import paths embedded into TIFF files
|
||||
- support vectors in the Script-Fu and Python-Fu user interfaces
|
||||
- added PDB functions to retrieve position of layers/channels/vectors
|
||||
- added side pane with table of contents to the Help Browser
|
||||
- bug fixes and code cleanup
|
||||
|
||||
|
||||
Changes in GIMP 2.3.12
|
||||
======================
|
||||
|
||||
- merged the Perspective Clone tool
|
||||
- allow to pan the image view using the Space bar
|
||||
- show a thumbnail in the "Rotate JPEG?" query dialog
|
||||
- added file information to the Image Properties dialog
|
||||
- more work on the new selection tools
|
||||
- give immediate feedback when tool modifier keys are pressed
|
||||
- added Lens Distortion plug-in
|
||||
- internationalize Python binding and Python plug-ins
|
||||
- improved internal message infrastructure, use the statusbar for warnings
|
||||
- added an URL loader backend based on libcurl
|
||||
- build a color-managed CMYK color selector if lcms is available
|
||||
- localize Script-Fu procedure descriptions
|
||||
- lots of user interface polishing
|
||||
- bug fixes and code cleanup
|
||||
|
||||
|
||||
Changes in GIMP 2.3.11
|
||||
======================
|
||||
|
||||
- depend on newer versions of glib, gtk+ and pango and use some of the new
|
||||
features in these libraries
|
||||
- made Ctrl-P the default shortcut for Print
|
||||
- show progress when loading/saving XCF files
|
||||
- added support for 16/32 bit bitmaps and alpha channel to the BMP plug-in
|
||||
- if possible, detect the number of CPUs
|
||||
- allow to disable the build of the Script-Fu extension
|
||||
- many improvements to the Python bindings and the pygimp user interface
|
||||
- made message dialogs transient for the progress window
|
||||
- added PDB API for creating a selection from vectors
|
||||
- further improved status bar messages for tools
|
||||
- derive ByColorSelect and FuzzySelect tools from a common base class
|
||||
- finer control over select-by-color functionality
|
||||
- minor optimizations in the drawing code
|
||||
- abstract brush outline drawing into the common base class GimpBrushTool
|
||||
- store sample points in XCF files
|
||||
- added extended PDB API for selection procedures
|
||||
- added convenience API to libgimp that creates a layer from a GdkPixbuf
|
||||
- added midpoint handles to Scale tool for scaling with fixed width or height
|
||||
- let color picker tools select a matching color in the Palette Editor
|
||||
- allow to use foreground and background color in gradients
|
||||
- added first draft of a new Healing Brush tool
|
||||
- abstract clone tool functionality into the common base class GimpSourceTool
|
||||
- improvements to the new selection tools
|
||||
- don't wake up the gimp every so often
|
||||
- added GimpHintBox widget to libgimpwidgets
|
||||
- bug fixes and code cleanup
|
||||
|
||||
|
||||
Changes in GIMP 2.3.10
|
||||
======================
|
||||
|
||||
- added support for a registration color in the Decompose plug-in
|
||||
- the Align tool now also aligns to guides
|
||||
- allow use of CSS color notation in Script-Fu
|
||||
- more work on the new selection tools
|
||||
- let Fractal Explorer work on grayscale and give it a larger preview
|
||||
- speed up Value Invert plug-in
|
||||
- added strong undo/redo functions bound to Shift-Ctrl-[ZY]
|
||||
- use radio items for the image mode menu
|
||||
- applied Tango style on the default iconset
|
||||
- added plug-in for colormap manipulation
|
||||
- allow plug-ins to register in Layers, Channels, Vectors and Colormap dialog
|
||||
- added load plug-in to open desktop links
|
||||
- removed print plug-ins and started work on a replacement using the
|
||||
new GTK+ Print API
|
||||
- added replacements for gimp_foo_select widgets, akin to GimpFontSelectButton
|
||||
- introduced translation context to a number of colliding strings
|
||||
- bug fixes and code cleanup
|
||||
|
||||
|
||||
Changes in GIMP 2.3.9
|
||||
=====================
|
||||
|
||||
- better interpolation for "smooth" curves in the Curve tool
|
||||
- added an Auto button to the Threshold tool that picks a suitable value
|
||||
- simplified user installation, only display a dialog in case of an error
|
||||
- added Red Eye Removal plug-in
|
||||
- added thumbnail loader to GIF load plug-in
|
||||
- declared even more data as const
|
||||
- refactoring of the PDB and plug-in management code
|
||||
- allow Merge to work on a single layer
|
||||
- added a way to remove all keyboard shortcuts from the Preferences dialog
|
||||
- added menu items for "Text to Path", "Text along Path" and "Text to
|
||||
Selection"
|
||||
- allow to initialize a new layer mask with any of the image's channels
|
||||
- added clipboard brush and clipboard pattern
|
||||
- added scripts to sort color palettes
|
||||
- swap meanings of "dilate" and "erode" which have been wrong for a long time
|
||||
- show Clone tool source location while painting
|
||||
- use GtkFileChooserButton in place of GimpFileEntry
|
||||
- added script to reverse the order of layers
|
||||
- added "Sample merged" and "Selected Pixels only" options to Palette import
|
||||
- added actions to select palette and colormap colors
|
||||
- new environment variable to control which batch interpreter to use
|
||||
- give plug-ins access to the CPU detection so that they can use MMX code
|
||||
- speed up Selective Gaussian Blur plug-in
|
||||
- improved tool cursors, added edge resizing cursors
|
||||
- improved behaviour of new selection tools
|
||||
- allow to reset all gimprc values from the Preferences dialog
|
||||
- optionally show guides in the Crop tool
|
||||
- bug fixes and code cleanup
|
||||
|
||||
|
||||
Changes in GIMP 2.3.8
|
||||
=====================
|
||||
|
||||
- added new tile primitive Triangle to Mosaic plug-in
|
||||
- speed up Gaussian Blur plug-in
|
||||
- suppress redundant progress updates from plug-ins
|
||||
- changed some gimprc and sessionrc default values (window hints,
|
||||
fullscreen mode)
|
||||
- do not focus transform tool dialogs on map
|
||||
- renamed Magnify tool to Zoom tool and added some missing tool shortcuts
|
||||
- added a submenu with recently used plug-ins to the Filters menu
|
||||
- fixed look-up table used for Contrast adjustments
|
||||
- improved the user interface of the Animation Playback plug-in
|
||||
- added framework for describing menu entries in the statusbar
|
||||
- added lots of helpful blurbs to procedures and core actions
|
||||
- remove color from the Watercolor selector if Shift is being pressed
|
||||
- ported PDB internals to GParamSpec and GValue
|
||||
- speedup and UI improvements for the SIOX tool
|
||||
- added parasite getters and settors for vectors
|
||||
- made PSD load and save plug-ins 64bit clean
|
||||
- some string review
|
||||
- ported ellipse select tool to the new rectangle tool
|
||||
- added basic support for layer masks to the PSD save plug-in
|
||||
- avoid relocations by declaring more data as const
|
||||
- new application icons in more sizes and as a SVG
|
||||
- provide script-specific samples instead of hard-coding "Aa" for font preview
|
||||
- build the Screenshot plug-in on all platforms
|
||||
- allow to discard invisible layers when merging visible layers
|
||||
- nicer output from gimp-procedural-db-dump
|
||||
- bug fixes and code cleanup
|
||||
|
||||
|
||||
Changes in GIMP 2.3.7
|
||||
=====================
|
||||
|
||||
- depend on GTK+ 2.8, use some of the new features
|
||||
- removed workarounds for problems in GTK+ 2.6
|
||||
- moved Align Visible Layers to the Image menu
|
||||
- started to add a new vectors PDB API
|
||||
- make it more obvious that docks can be rearranged by drag and drop
|
||||
- modified the behaviour of the Tab key
|
||||
- added --license command-line option
|
||||
- improved dither matrix for RGB->Indexed conversion
|
||||
- added PDB API to stroke with any paint method
|
||||
- gave some plug-ins more sensible names
|
||||
- keep settings of brush/pattern/font/... button popups across sessions
|
||||
- reduced number of memory allocations by declaring some strings as static
|
||||
- some improvements to the plug-in preview widgets
|
||||
- added links to important topics in the user manual
|
||||
- let the configure script display a summary of options
|
||||
- bug fixes and code cleanup
|
||||
|
||||
|
||||
Changes in GIMP 2.3.6
|
||||
=====================
|
||||
|
||||
- even faster application startup
|
||||
- binary relocatibility on Linux by means of binreloc
|
||||
- be more verbose when being asked for it
|
||||
- select color index when picking from an indexed drawable
|
||||
- allow to migrate windows between displays
|
||||
- mouse-wheel scrolling and zooming in plug-in previews
|
||||
- added keyboard shortcuts ([ and ]) for changing the brush radius
|
||||
- improved Oilify plug-in
|
||||
- made the IWarp plug-in preview resizeable
|
||||
- added alignment mode for cloning from a fixed location source
|
||||
- completed core/ui separation of paint tools and paint methods
|
||||
- bug fixes and code cleanup
|
||||
|
||||
|
||||
Changes in GIMP 2.3.5
|
||||
=====================
|
||||
|
||||
- optionally add jitter to paint strokes
|
||||
- implemented Snap to Path
|
||||
- added PDB API to access the Image Grid
|
||||
- ease access to Keyboard Shortcuts editor
|
||||
- optimizations to the Tile Cache and Undo/Redo implementations
|
||||
- more work on the Buffer PDB API
|
||||
- bug fixes to the new zoomable plug-in previews
|
||||
- optimization of the SIOX algorithm
|
||||
- menu reorganisation in the Toolbox menu
|
||||
- export "Open As Layer" to the PDB as file-load-layer
|
||||
- added keyboard control for the Curves tool
|
||||
- load and save embedded ICC profiles from/to PNG images
|
||||
- improved appearance of some tool icons on dark background
|
||||
- added PDB API to get and set path visibility
|
||||
- let data editors follow the active brush, palette and gradient (optional)
|
||||
- some rearrangements in the new toplevel Colors menu
|
||||
- speed up reloading of data files
|
||||
- allow to copy the location of data files to the clipboard
|
||||
- allow to disable saving of the document history in the preferences
|
||||
- slightly faster application startup
|
||||
- more use of ngettext for plural forms
|
||||
- bug fixes and code cleanup
|
||||
|
||||
|
||||
Changes in GIMP 2.3.4
|
||||
=====================
|
||||
|
||||
- allow plug-ins and scripts to register menu entries in the <Brushes>,
|
||||
<Gradients>, <Palettes>, <Patterns> and <Fonts> menus
|
||||
- replaced Selection to Brush/Pattern scripts with scripts that paste
|
||||
a new brush/pattern from the content of the clipboard
|
||||
- allow to easily close all opened images
|
||||
- added a first version of a Print plug-in using libgnomeprint
|
||||
- improved Sphere Designer plug-in
|
||||
- improved Compose plug-in
|
||||
- added a zoomable preview widget for plug-ins
|
||||
- implement copy and paste of paths as SVG
|
||||
- use new stock icons introduced with GTK+ 2.6
|
||||
- allow to zoom in/out using the +/- keys on the numerical keypad
|
||||
- make it easier to drop dockables below the toolbox
|
||||
- set plug-in dialogs transient to the window they have been called from
|
||||
- added PDB function to obtain handles to the image and progress windows
|
||||
- export named buffers to the PDB
|
||||
- easier access to the popup menu in empty container views
|
||||
- use ngettext for plural forms
|
||||
- implement "Sample Merged" for the Clone tool
|
||||
- various Win32 fixes
|
||||
- fixed capitalization for better HIG compliance
|
||||
- use a descriptive verb instead of "OK" as button label in most dialogs
|
||||
- redone About dialog to be more informative
|
||||
- take the default unit from the locale settings
|
||||
- moved color-related tools and plug-ins to a new toplevel Colors menu
|
||||
- let the gnomevfs plug-in use GNOME authentication manager if available
|
||||
- rewritten Crop tool (work in progress)
|
||||
- added page selector to the Postscript Import plug-in
|
||||
- added preview to Checkerboard and Threshold Alpha plug-ins
|
||||
- more PDB procedure and parameter name canonicalization
|
||||
- touched up new path tool cursors and added one for the Join operation
|
||||
- bug fixes and code cleanup
|
||||
|
||||
|
||||
Changes in GIMP 2.3.3
|
||||
=====================
|
||||
|
||||
- improved new GimpPageSelector widget
|
||||
- minor improvements to the Procedure and Plug-In browsers
|
||||
- set alternative button order in some places that were missed earlier
|
||||
- added SIOX algorithm for foreground extraction
|
||||
- fixed most gcc 4.0 warnings
|
||||
- improved Cursor view and Sample Points functionality
|
||||
- prepared code and UI for more layer lock types
|
||||
- added new PDF import plug-in based on libpoppler
|
||||
- undeprecated and improved palette editor, added cursor navigation
|
||||
- show more information in the Image Properties dialog
|
||||
- added prototype of SIOX foreground selection tool
|
||||
- fixed build of MMX code on gcc 4.0
|
||||
- moved procedure browser to libgimpwidgets as GimpProcBrowserDialog
|
||||
- canonicalize PDB procedure and parameter names
|
||||
- use the coefficients from the sRGB spec when calculating luminance
|
||||
- allow to remove alpha channel from a layer
|
||||
- added more different cursors for the paths tool
|
||||
- bug fixes and code cleanup
|
||||
|
||||
|
||||
Changes in GIMP 2.3.2
|
||||
=====================
|
||||
|
||||
- more standard way of dealing with translation of the startup tips
|
||||
- allow to use the selected font in the text tool's text editor
|
||||
- some minor UI changes for HIG compliance
|
||||
- redid the framework that deals with installing desktop files
|
||||
- started to reorganize menus, mainly plug-ins and scripts
|
||||
- renamed "Scatter RGB" and "Scatter HSV" to "RGB Noise" and "HSV Noise"
|
||||
- allow to clear the document history
|
||||
- don't normalize the result in the Laplace plug-in (bug #306874)
|
||||
- ported FractalExplorer GUI to GtkTreeView, getting rid of the last
|
||||
XPM icons that were being used
|
||||
- added an option to Motion Blur to blur outwards
|
||||
- added support for the proposed ICC Profiles In X Specification
|
||||
- added new widget GimpEnumLabel to libgimpwidgets
|
||||
- let the lcms display filter module show information about the used
|
||||
color profiles
|
||||
- improved drawing of the brush outline
|
||||
- fixed build of Python language binding on Win32
|
||||
- allow plug-ins to access the user's color management configuration
|
||||
- added new widget GimpPageSelector to libgimpwidgets
|
||||
- reenabled the Debug menu
|
||||
- load and save ICC color profiles from/to JPEG images
|
||||
- bug fixes and code cleanup
|
||||
|
||||
|
||||
Changes in GIMP 2.3.1
|
||||
=====================
|
||||
|
||||
- allow to copy and paste SVG between GIMP and other applications
|
||||
- added a utility for testing and debugging clipboard operations
|
||||
- more work on the new vectors PDB API
|
||||
- made screen edges active in the image display in fullscreen mode
|
||||
- made file and color selection dialogs transient to their parent windows
|
||||
- moved browser widget from Procedure Browser plug-in to libgimpwidgets
|
||||
- allow more search types in the Procedure Browser
|
||||
- reduced size of the Colors dockable by moving the hex entry down
|
||||
- added object properties to GimpColorArea and GimpColorButton
|
||||
- changed default for RGB->Indexed conversion to not to any dithering
|
||||
- allow to paste a new image using Ctrl-V on the toolbox
|
||||
- show previews of dash presets in Stroke Options dialog
|
||||
- Escape key cancels the window selection in the Screenshot plug-in
|
||||
- allow to operate the Brightness Contrast tool by clicking and dragging
|
||||
on the canvas
|
||||
- improved Sample Points dockable
|
||||
- added first draft of new align tool
|
||||
- turned image and drawable combo boxes in libgimpui into real widgets
|
||||
- further improved Python bindings
|
||||
- nicer DND icons for viewables
|
||||
- allow to hide the button-bar found at the bottom of most dockables
|
||||
- turned font selection in libgimpui into a real widget
|
||||
- added support for BMP files with alpha channel (RGBA)
|
||||
- bug fixes and code cleanup
|
||||
|
||||
|
||||
Changes in GIMP 2.3.0
|
||||
=====================
|
||||
|
||||
- added Recompose plug-in
|
||||
- added rectangle tool in GFig plug-in
|
||||
- improved palette editor color DND
|
||||
- improved EXIF handling in JPEG plug-in
|
||||
- smoother autoscrolling in image display
|
||||
- added Snap to Canvas Border and Snap to Path (yet unimplemented)
|
||||
- added previews to Mosaic, Pixelize and Sparkle plug-ins
|
||||
- added Lanczos interpolation method
|
||||
- added Open as Image menu entries to brushes and patterns dialogs
|
||||
- improved drag-n-drop of drawables within GIMP
|
||||
- added a prototype of a new rectangular select tool
|
||||
- moved a bunch of enums from core into libgimpbase
|
||||
- moved GimpConfig functionality from core into libgimpconfig
|
||||
- moved GimpEnumStore and GimpEnumComboBox to libgimpwidgets
|
||||
- moved convenience constructors for property views to libgimpwidgets
|
||||
- ported ImageMap plug-in to action based menus.
|
||||
- first steps towards color management
|
||||
- use GOptionContext for command-line parsing
|
||||
- added a gnome-vfs backend for the uri plug-in (former url plug-in)
|
||||
- prepared code for accessing remote files in the file-chooser
|
||||
- let all dialogs obey the gtk-alternative-button-order setting
|
||||
- extended GimpProgress PDB API
|
||||
- improved file type handling in file save dialog
|
||||
- resurrected threaded pixel processor and enable it by default
|
||||
- parallelized a few more internal functions
|
||||
- speed up gradient dithering
|
||||
- improved PSD save plug-in
|
||||
- improved Python bindings
|
||||
- allow to resize layers with the image
|
||||
- allow to control letter spacing in the text tool
|
||||
- added path-on-path functionality, use it to implement Text on Path
|
||||
- improved gradient editor
|
||||
- allow to import paths from a string
|
||||
- ported all code to gstdio wrappers
|
||||
- added infrastructure for color sample points
|
||||
- added first draft of a metadata editor plug-in
|
||||
- speed up burn compositing function
|
||||
- added Altivec versions of some compositing functions
|
||||
- added PDB API to control the number of columns in a palette
|
||||
- allow to control hue overlap in Hue-Saturation tool
|
||||
- added a PDB API to register menu branches
|
||||
- added missing mnemonics
|
||||
- improved Screenshot plug-in
|
||||
- allow to drag brushes/patterns/gradients... to the selectors in Script-Fu
|
||||
- allow to save images by dragging them to a filemanager that supports the
|
||||
XDS protocol
|
||||
- optimizations in the Color Deficiency display filter
|
||||
- transfer the clipboard content to a clipboard manager on exit
|
||||
- moved cursor info out of the Info window into a dockable
|
||||
- moved remaining bits of the Info Window to a new Image Properties dialog
|
||||
- build and install gimp-console by default
|
||||
- allow to drag and drop image data into GIMP
|
||||
- use the statusbar more to display hints and info about the tool state
|
||||
- resurrected --no-data functionality
|
||||
- zoom to the cursor position instead of the display center
|
||||
- some improvements to the Helpbrowser plug-in
|
||||
- load PS brushes in the .abr format
|
||||
- allow to choose between different algorithms for Desaturate
|
||||
- added thumbnail loader to Winicon plug-in
|
||||
- improved configuration of input controllers
|
||||
- added an option to make the dock windows transient to the active image display
|
||||
- lots of code cleanup and bug-fixes
|
||||
254
NEWS.pre-2-6
Normal file
254
NEWS.pre-2-6
Normal file
@ -0,0 +1,254 @@
|
||||
------------------------------
|
||||
GNU Image Manipulation Program
|
||||
Development Branch
|
||||
------------------------------
|
||||
|
||||
This is the unstable development branch of GIMP. Here we are working
|
||||
towards the next stable release, which will be GIMP 2.6.
|
||||
|
||||
|
||||
Changes in GIMP 2.6.0
|
||||
=====================
|
||||
|
||||
- further improved error reporting and parameter checks for some procedures
|
||||
- fixed printing of indexed images (bug #552609)
|
||||
- further code cleanup in Script-Fu extension
|
||||
- improved Brightness->Contrast -> Levels -> Curves parameter conversion
|
||||
- made the font size in the docks configurable in the gtkrc file
|
||||
- renamed File->New submenu to File->Create
|
||||
- moved the "Use GEGL" check-box to the Colors menu
|
||||
- added new scale procedures allowing to specify the interpolation
|
||||
explicitly (bug #486977)
|
||||
- lots of bug fixes
|
||||
|
||||
|
||||
Contributors:
|
||||
|
||||
Sven Neumann, Michael Natterer, Martin Nordholts, Simon Budig,
|
||||
Tor Lillqvist, Barak Itkin
|
||||
|
||||
|
||||
|
||||
Changes in GIMP 2.5.4
|
||||
=====================
|
||||
|
||||
- improved look and feel of the Navigation dialog and navigation popups
|
||||
- improved positioning of the image in the image window
|
||||
- by default turned off use of GEGL for color operations
|
||||
- moved the "Use GEGL" checkbox to the Debug menu
|
||||
- optimized the new scaling code
|
||||
- various fixes to the Python bindings
|
||||
- added Python bindings for most GIMP widgets to the gimpui module
|
||||
- merged GimpHRuler and GimpVRuler classes into GimpRuler
|
||||
- added Search entry to the Keyboard Shortcuts and Input Controller
|
||||
configuration dialogs
|
||||
- allow to drop images (in addition to URIs) on the empty image window
|
||||
- improved error handling in Script-Fu
|
||||
- merged upstream TinyScheme changes into Script-Fu interpreter
|
||||
- bug fixes and code cleanup
|
||||
|
||||
|
||||
Contributors:
|
||||
|
||||
Sven Neumann, Michael Natterer, Martin Nordholts, Tor Lillqvist,
|
||||
Lars-Peter Clausen, Michael Schumacher, Kevin Cozens, Barak Itkin,
|
||||
David Gowers, Dennis Ranke
|
||||
|
||||
|
||||
|
||||
Changes in GIMP 2.5.3
|
||||
=====================
|
||||
|
||||
- some fixes for the 64-bit Windows platform
|
||||
- optionally emulate brush dynamics when stroking a path or selection
|
||||
- further work on the scroll-beyond-image-borders feature, improving the
|
||||
behavior of the image display when zooming or when the image size changes
|
||||
- added links to the user manual to the Tips dialog
|
||||
- largely rewritten scaling code improves scaling quality, in particular
|
||||
when scaling down
|
||||
- allow to copy-on-write from the image projection
|
||||
- added "Paste as new layer" to Edit menu
|
||||
- added "New from visible" to the Layer menu allowing to create a new
|
||||
layer from the image projection
|
||||
- added new procedure 'gimp-layer-new-from-visible'.
|
||||
- renamed all file plug-in executables to a have a file prefix
|
||||
- changed the HSV color selector to use the GtkHSV widget
|
||||
- changed the default for the 'trust-dirty-flag' gimprc property
|
||||
- dropped the "Starburst" logo script
|
||||
- improved the behavior of the zoom button in the upper right corner of
|
||||
the image window
|
||||
- allow PDB procedures to pass an error message with their return values
|
||||
- changed all file plug-ins to pass their error messages with the
|
||||
return values instead of raising an error dialog
|
||||
- adapt the display of the pointer position in the statusbar to the
|
||||
pointer precision of the active tool
|
||||
- bug fixes and code cleanup
|
||||
|
||||
|
||||
Contributors:
|
||||
|
||||
Sven Neumann, Michael Natterer, Martin Nordholts, Alexia Death,
|
||||
Tor Lillqvist, Geert Jordaens, Daniel Eddeland, Aurimas Juลกka,
|
||||
Rรณman Joost, Luidnel Maignan, Barak Itkin, Aurore Derriennic
|
||||
|
||||
|
||||
|
||||
Changes in GIMP 2.5.2
|
||||
=====================
|
||||
|
||||
- final touches on the combined Freehand/Polygon Select tool
|
||||
- added a dialog for managing Color tool settings
|
||||
- prepared the code for changes in the upcoming GTK+ release
|
||||
- improved popup scale button
|
||||
- mark the center of rectangles/bounding rectangles during moves
|
||||
- added dialog to query for using the online user manual
|
||||
- allow to map dynamics to hardness for the Eraser tool
|
||||
- provide gimp-remote functionality on Windows
|
||||
- disable the build and install of the gimp-remote tool by default
|
||||
- allow to scroll beyond the image borders
|
||||
- added new PDB data type for transferring color arrays
|
||||
- added new PDB function gimp-palette-get-colors
|
||||
- added text search to the Help Browser plug-in
|
||||
- bug fixes and code cleanup
|
||||
|
||||
|
||||
Contributors:
|
||||
|
||||
Sven Neumann, Michael Natterer, Martin Nordholts, Manish Singh,
|
||||
Lars-Peter Clausen, Alexia Death, Tor Lillqvist, Rรณman Joost,
|
||||
Jakub Steiner
|
||||
|
||||
|
||||
Changes in GIMP 2.5.1
|
||||
=====================
|
||||
|
||||
- further improvements to the status bar
|
||||
- made the center point of rectangles snap to the grid and rulers
|
||||
- improved Alpha to Logo filters
|
||||
- better cursor feedback in the Intelligent Scissors tool
|
||||
- rotate JPEG thumbnails according to the EXIF orientation
|
||||
- improved event smoothing for paint tools
|
||||
- prepared PSP plug-in to deal with newer versions of the file format
|
||||
- allow plug-ins to work in parallel on different layers of the same image
|
||||
- pass through GEGL command-line options
|
||||
- added 22 new variations to the Flame plugin
|
||||
- only show operations from relevant categories in the GEGL tool
|
||||
- allow to enter the zoom ratio in the status bar
|
||||
- don't keep the file-chooser dialogs around
|
||||
- ported scan-convert code to Cairo, removing libart dependency
|
||||
- allow the paint velocity to affect brush size, opacity and the like
|
||||
- allow for random variations of the brush size, opacity and the like
|
||||
- renamed Dialogs menu to Windows
|
||||
- keep a list of recently closed docks in the Windows menu
|
||||
- allow to go from Brightness-Contrast to Levels to Curves
|
||||
- improved the handling of color tool settings
|
||||
- merged the new Polygon Selection tool with the Freehand Select tool
|
||||
- allow to lock dockables
|
||||
- made Desaturate into a tool with preview in the image window
|
||||
- ported translation contexts to msgctxt
|
||||
- added GimpRuler widgets, an improved version of GtkRuler
|
||||
- moving the selection mask now commits a pending rectangle selection
|
||||
- added keyboard shortcut for resetting the brush scale (Backslash)
|
||||
- ported the Help Browser plug-in to WebKit
|
||||
- allow to use the online user manual
|
||||
- added new translation (Icelandic)
|
||||
- bug fixes and code cleanup
|
||||
|
||||
|
||||
Contributors:
|
||||
|
||||
Sven Neumann, Michael Natterer, Martin Nordholts, รyvind Kolรฅs,
|
||||
Alexia Death, Ulf-D. Ehlert, Daniel Hornung, Michael Deal, Aurimas Juลกka,
|
||||
Luis Barrancos
|
||||
|
||||
|
||||
|
||||
Changes in GIMP 2.5.0
|
||||
=====================
|
||||
|
||||
Core:
|
||||
|
||||
- improved rectangle tool drawing for narrow mode
|
||||
- ported lots (but not all) drawing code to Cairo
|
||||
- optimized image rendering by using pre-multiplied alpha
|
||||
- use new GLib features such as GRegex
|
||||
- use new GTK+ features such as the new GtkTooltip API
|
||||
- much improved GimpCurve object
|
||||
- cleaner and smaller tool options
|
||||
- enable brush scaling for the Smudge tool
|
||||
- added debugging framework that can be enabled at run-time
|
||||
- depend on GEGL and use it optionally in some color operations
|
||||
- optional GEGL processing for all color tools
|
||||
- add proper settings objects for all color tools
|
||||
- add list of recently used settings to all color tools
|
||||
- added experimental GEGL tool to use arbitrary GEGL operations
|
||||
- event filtering and smoothing for better paint tool performance
|
||||
- added motion constraints in the Move Tool
|
||||
- some operations do not any longer automatically add an alpha channel
|
||||
- some preparation for tagging resource files
|
||||
- cutting a selection doesn't clear the selection any longer
|
||||
- added new polygon select tool
|
||||
- load brushes and other data files recursively (search through subdirs)
|
||||
- started work on language selector for the text tool (unfinished)
|
||||
- allow to set opacity of the transform tool preview
|
||||
- merged toolbox menu into the image menu
|
||||
- always keep an image window around
|
||||
- improved image statusbar
|
||||
- dropped 'documents' in favor of ~/.recently-used.xbel
|
||||
- started to work on text box functionality in the text tool
|
||||
- numerous bug fixes and cleanups
|
||||
|
||||
|
||||
Plug-ins:
|
||||
|
||||
- dicom: improved handling of 16 bit image data
|
||||
- help: use GIO to access the help index
|
||||
- print: moved Page Setup out of the Print dialog
|
||||
- psd-load: rewritten, cleaner and more features
|
||||
- randomize: added previews
|
||||
- ripple: added a Phase Shift control
|
||||
- screenshot: optionally add the mouse cursor image on an extra layer
|
||||
- uri: use GIO/GVfs where available
|
||||
- whirlpinch: allow a larger range for the whirl angle
|
||||
|
||||
|
||||
Python binding:
|
||||
|
||||
- allow to specify colors using CSS color names
|
||||
- added new method Image.new_layer()
|
||||
|
||||
|
||||
Script-Fu:
|
||||
|
||||
- enforce R5RS syntax for 'let'
|
||||
- improved Frosty Logo script
|
||||
|
||||
|
||||
PDB:
|
||||
|
||||
- added new text layer API
|
||||
- added gimp-vectors-export-to-file and gimp-vectors-export-to-string
|
||||
- added procedure to test for existence of a procedure in the PDB
|
||||
- improved error handling for procedures
|
||||
|
||||
|
||||
Libraries:
|
||||
|
||||
- added some Cairo utilities
|
||||
- allow to use markup in tooltips
|
||||
- libgimpthumb doesn't any longer depend on other GIMP libraries
|
||||
|
||||
|
||||
Miscellaneous:
|
||||
|
||||
- use the gimptool program on Unix, too, instead of the gimptool script
|
||||
- create the list of supported MIME types at compile-time
|
||||
- gimp shows library versions when called with '--version --verbose'
|
||||
|
||||
|
||||
Contributors:
|
||||
|
||||
Sven Neumann, Michael Natterer, Martin Nordholts, Bill Skaggs,
|
||||
รyvind Kolรฅs, Manish Singh, Kevin Cozens, Alexia Death, Tor Lillqvist,
|
||||
Marcus Heese, John Marshall, Joao S. O. Bueno, Jakub Steiner,
|
||||
Simon Budig, Tom Lechner, Hans Breuer, ...
|
||||
642
NEWS.pre-2-8
Normal file
642
NEWS.pre-2-8
Normal file
@ -0,0 +1,642 @@
|
||||
------------------------------
|
||||
GNU Image Manipulation Program
|
||||
Development Branch
|
||||
------------------------------
|
||||
|
||||
This used to be the development branch that lead to GIMP 2.8.
|
||||
|
||||
|
||||
Changes in GIMP 2.8.0
|
||||
=====================
|
||||
|
||||
|
||||
Core:
|
||||
|
||||
- Add our own GimpOperationBrightnessContrast because GEGL one is different
|
||||
|
||||
|
||||
Plug-ins:
|
||||
|
||||
- Fix some GFig rendering issues
|
||||
|
||||
|
||||
Source and build system:
|
||||
|
||||
- Depend on Babl 0.1.10, GEGL 0.2.0 and some other new library versions
|
||||
|
||||
|
||||
General:
|
||||
|
||||
- Bug fixes
|
||||
- Translation updates
|
||||
|
||||
|
||||
Changes in GIMP 2.7.5
|
||||
=====================
|
||||
|
||||
|
||||
UI:
|
||||
|
||||
- Minor application menu fixes on the Mac
|
||||
- Make the toolbox arbitrarily resizable again
|
||||
- Add axis labels to the dynamics curves to make them more obvious
|
||||
- Fix dockable showing to do the right thing in both MWM and SWM
|
||||
- Fix some glitches in the tool preset UI, like proper sensitivity
|
||||
|
||||
|
||||
Core:
|
||||
|
||||
- Restore autoshrink functionality in the rectangle tools
|
||||
- Allow smudge to work with dynamic brushes
|
||||
- Make sure tool presets and tool options are consistent after loading
|
||||
- Add automatic tags for the folders a file lives in
|
||||
- Make the default Quick Mask color configurable
|
||||
- Fix Color Balance so the "range" setting actually makes a difference
|
||||
|
||||
|
||||
Plug-ins:
|
||||
|
||||
- Proper toplevel item sorting in the help browser
|
||||
- Use libraries instead of launching programs in file-compressor
|
||||
- Use the Ghostscript library instead of launching ghostscript
|
||||
- Allow to switch off antialiasing when importing from PDF
|
||||
- Embed the page setup in the main print dialog
|
||||
- Port Gfig to cairo
|
||||
|
||||
|
||||
Libgimp:
|
||||
|
||||
- Add PDB API to modify a lot of paint and ink options
|
||||
|
||||
|
||||
Data:
|
||||
|
||||
- Add a new set of default brushes and tool presets from Ramon Miranda
|
||||
|
||||
|
||||
Developer documentation:
|
||||
|
||||
- Update everything including app/ so all functions appear again
|
||||
|
||||
|
||||
Source and build system:
|
||||
|
||||
- Remove the unmaintained makefile.msc build system
|
||||
- Explicitly link plug-ins to -lm when needed
|
||||
- Also create .xz tarballs
|
||||
|
||||
|
||||
General:
|
||||
|
||||
- Lots of bug fixes
|
||||
- Tons and tons of translation updates
|
||||
|
||||
|
||||
Changes in GIMP 2.7.4
|
||||
=====================
|
||||
|
||||
|
||||
UI:
|
||||
|
||||
- Add a close button to image tabs in single-window mode
|
||||
- Improve the transform tools' undo strings to be more descriptive
|
||||
- Render the layer's "eye" icon in inconsistent state if the layer is
|
||||
visible, but one of its parents isn't
|
||||
- Add proper stacking for canvas items, so things don't hide each other
|
||||
- Make sure single-window-mode and multi-window-mode are always saved
|
||||
consistently in sessionrc
|
||||
|
||||
|
||||
Core:
|
||||
|
||||
- Fix "render_image_tile_fault: assertion `tile[4] != NULL' failed"
|
||||
warnings that occurred for some image sizes
|
||||
- Fix attachment of the floating selection when the gegl projection
|
||||
is enabled
|
||||
- Replace heal algorithm with a new one by Jean-Yves Couleaud that
|
||||
works much better
|
||||
- Make resource sub-folders show up in UI as tags, allowing users
|
||||
to easily locate resource collections they may have installed
|
||||
- Fix graphics tablet canvas interaction by moving from
|
||||
gdk_pointer_grab() to gtk_grab_add() for most grabs
|
||||
- Stop using motion hints, they are a concept from the dark ages
|
||||
|
||||
|
||||
Libgimp:
|
||||
|
||||
- Add a basic paint dynamics PDB interface
|
||||
|
||||
|
||||
Plug-ins:
|
||||
|
||||
- Make writing color space information to BMP files optional
|
||||
- PSD loader now reads and imports working paths
|
||||
|
||||
|
||||
Script-Fu:
|
||||
|
||||
- Lots and lots of undeprecations
|
||||
|
||||
|
||||
Developer documentation:
|
||||
|
||||
- Add devel-docs/gegl-porting-plan.txt
|
||||
|
||||
|
||||
Source and build system:
|
||||
|
||||
- Make git-version.h generation work in shallow git clones
|
||||
- Modernize use of autotools a bit, maintainer-mode and pdbgen
|
||||
are now enabled by default
|
||||
|
||||
|
||||
General:
|
||||
|
||||
- Make gimptool install scripts in the correct system-wide directory
|
||||
- Fix lots and lots of stuff found by static code analysis
|
||||
|
||||
|
||||
Changes in GIMP 2.7.3
|
||||
=====================
|
||||
|
||||
|
||||
UI:
|
||||
|
||||
- Use GimpSpinScales instead of scale entries in all dockable widgets
|
||||
- Allow the spin scale to control a range larger than its scale's range
|
||||
- Implement RTL mode in GimpSpinScale
|
||||
- Add lots of tooltips to tool options
|
||||
- Allow to drop more things to the empty image window, and simply
|
||||
create new images from them
|
||||
- Cage tool: allow to add handle to the cage when clicking on an edge
|
||||
- Cage tool: allow to remove selected handles from the cage by hitting delete
|
||||
- Remember column widths in multi-column dock windows
|
||||
- Support starting GIMP in single-window mode
|
||||
- When the brush is shared among paint tools, also share all
|
||||
brush-modifying paint options
|
||||
- Use ALT+number and ALT+Tab shortcuts to navigate between images
|
||||
in both single- and multi-window mode
|
||||
- Make 'Export to' always activatable and fall back to 'Export...' if
|
||||
no export target has been set yet
|
||||
- In single-window mode, add new dockable dialogs to the image window
|
||||
instead of in a new window
|
||||
- When switching on single-window mode, put docks in the image window
|
||||
depending on what side of the window they originally had
|
||||
- When switching off single-window mode, distribute dock windows
|
||||
better
|
||||
- Add a canvas item for the transform grid, fixing a major speed
|
||||
regression, and add the same guides options as in the rectangle tools
|
||||
- Don't unmaximize the single-window mode image window when closing
|
||||
images
|
||||
- Resurrect the "You can drop dockable dialogs here" help string
|
||||
below the toolbox
|
||||
- Make pick-and-move with the Move Tool work for layers in a layer
|
||||
group
|
||||
|
||||
|
||||
Core:
|
||||
|
||||
- Add GimpMotionBuffer which abstracts away stroke smoothing behind
|
||||
a simple API and takes it out of GimpDisplayShell
|
||||
- Add a GimpIdTable utility class
|
||||
- Add a GimpDockContainer interface
|
||||
- Add a GimpSessionManaged interface
|
||||
- Add GimpCanvasRectangleGuides which makes the rectangle tool's
|
||||
guides draw properly
|
||||
|
||||
|
||||
Libgimp:
|
||||
|
||||
- Make libgimp depend on GdkPixbuf
|
||||
- Add API to create layers from cairo surfaces
|
||||
- Make it impossible to include individual files from any GIMP
|
||||
library. This was always forbidden and designed so it most
|
||||
probably breaks, but now it reliably breaks using #error
|
||||
- Deprecate the "set_sensitive" logic and use g_object_bind_property()
|
||||
|
||||
|
||||
Plug-ins:
|
||||
|
||||
- Use poppler's cairo API to load PDFs, the pixbuf API is removed
|
||||
- Port screenshot from GdkPixbuf to cairo
|
||||
- Fix the annoying parser build warnings in imagemap
|
||||
- Add a check-for-deprecated-procedures-in-script-fu make target
|
||||
- Update libpng code to not use deprecated API (file-mng and file-png)
|
||||
- Add an Item class to pygimp
|
||||
- Correct/update some labels and defaults in the JPEG plug-in's save dialog UI
|
||||
- Fix "Bug 596410 - gimp-image-get-filename returns NULL for imported files"
|
||||
|
||||
|
||||
Developer documentation:
|
||||
|
||||
- Many updates
|
||||
|
||||
|
||||
Source and build system:
|
||||
|
||||
- Make cairo a global dependency, starting at libgimpcolor
|
||||
- Require poppler >= 0.12.4
|
||||
- Remove gimp-remote for good, it has been disabled for years
|
||||
|
||||
|
||||
General:
|
||||
|
||||
- Some more undeprecations now that we use GTK+ 2.24
|
||||
- Fix lots of warnings that are new in -Wall in GCC 4.6
|
||||
- Lots of bug fixes and cleanup
|
||||
- Lots of translation updates
|
||||
|
||||
|
||||
Changes in GIMP 2.7.2
|
||||
=====================
|
||||
|
||||
|
||||
UI:
|
||||
|
||||
- A lot of undeprecations due to GTK+ 2.22 and 2.24
|
||||
- Lots and lots of cairo porting, calls to gdk_draw_* are gone
|
||||
- Merge the cage transform tool from GSoC
|
||||
- Remove the old bitmap cursors completely and always use RGBA cursors
|
||||
also for compat cursors for old X servers
|
||||
- Add new GimpCanvasItem infrastructure with subclasses for everything
|
||||
that needs to be drawn on the canvas and port all tools to canvas items,
|
||||
this is a huge change that touches all tools and almost all display
|
||||
code, and which finally gets rid of XOR drawing altogether
|
||||
- Switch from purely idle-rendering the display to something that ensures
|
||||
a minimum framerate, so we don't fail to update under heavy load
|
||||
- Make the text tool handle RTL mode better
|
||||
- Change GimpColorMapEditor to use the newly added proxy GimpPalette
|
||||
- Replace the brush scale control in tool options by a brush size
|
||||
one that works in pixels, and does the right thing when the brush
|
||||
changes
|
||||
- Add new widget GimpSpinScale which is a scale with number entry,
|
||||
and use it in all tool options
|
||||
- Make the brush, pattern etc. selectors in tool options more
|
||||
compact and allow to directly jump to the editor dialogs
|
||||
- Make handle sizes in tools consistent
|
||||
- Add an on-canvas progress and use it for tool progress instead of
|
||||
the statusbar
|
||||
- Add a new GimpToolPalette class with lots of code that was
|
||||
in GimpToolBox
|
||||
- Allow to properly drop into and after a layer group
|
||||
- Refactor and clean up the dynamics editor widget, and add colors
|
||||
for the curves
|
||||
- Add support for F2 to rename items in lists
|
||||
- Clean up GimpDeviceStatus internally and visually
|
||||
- Allow to set GimpToolPreset's icon using the new GimpIconPicker widget
|
||||
- Make the text tool's style overlay show default values from the
|
||||
text object if there is no style active at the cursor position/selection
|
||||
- Show the the text size's unit in the text style overlay
|
||||
- Make tool dialogs transient to the image window again
|
||||
- Consistently add a "gimp-" prefix to all window roles
|
||||
- Make the preset buttons in tool options work on the global tool
|
||||
presets instead of the removed per-tool preset lists
|
||||
- Add GimpControllerMouse, which allows to bind extra mouse buttons to
|
||||
arbitrary actions
|
||||
|
||||
|
||||
Core:
|
||||
|
||||
- Add uniform API to turn any GimpItem's outline into a selection
|
||||
- Add support for color tags in text layers
|
||||
- Remove the selection_control() stuff from GimpImage and with it
|
||||
maybe last piece of UI code still not properly separated
|
||||
- Add more validation code for XCF loading
|
||||
- Add accessors to GimpPalette and use them globally
|
||||
- Keep a proxy GimpPalette around for the image's colormap
|
||||
- Don't scale SVGs when pasting or importing them
|
||||
- A lot of changes to the input device handling code, partly
|
||||
merged from the gtk3-port branch, add GimpDeviceManager class
|
||||
- Add smoothing of paint strokes
|
||||
- Fix display filters to work on a cairo surface
|
||||
- Fix and enhance GimpImage's URI/filename handling API
|
||||
- Unset "removed" flag on items when they get added back to
|
||||
the image from the undo stack
|
||||
- Change item creation to properly use GObject properties and
|
||||
remove item_configure() and drawable_configure()
|
||||
- Refactor tool event handling and move lots of stuff into
|
||||
utility functions
|
||||
- Clean up GimpViewRenderer API
|
||||
- Implement transforms on group layers
|
||||
- Clean up the transform tool a lot, and refactor away old junk
|
||||
- Tool and tool event cleanup: enforce tool activate/halt invariants,
|
||||
consistently shutdown all tools in control(HALT), and many other
|
||||
tool fixes
|
||||
- Remove GimpToolPresets object, this functionality got merged into
|
||||
the new GimpToolPreset system
|
||||
- Rename GimpFilteredContainer to GimpTaggedContainer and add a new
|
||||
GimpFilteredContainer parent class which is a generic filter
|
||||
- Remove the concept of an "offset" from TileManager and instead
|
||||
pass around the offsets explicitly when needed, like when
|
||||
transforming
|
||||
- Move GimpBezier desc from vectors/ to core/ and add API to create
|
||||
one from sorted BoundSegs
|
||||
- Change GimpBrush boundary API to return a GimpBezierDesc
|
||||
- Add GimpBrushCache object and use it to cache a brush's transformed
|
||||
pixels and its outline, remove the caching code from GimpBrushCore
|
||||
- Add GimpBezierDesc based API to GimpScanConvert and use it
|
||||
|
||||
|
||||
GEGL:
|
||||
|
||||
- Add operations and gegl infrastructure for the cage tool
|
||||
- Disable View -> Use GEGL as we will not have time to finish the
|
||||
GEGL projection code for GIMP 2.8
|
||||
|
||||
|
||||
Libgimp:
|
||||
|
||||
- Introduce an "item" type in the PDB and libgimp and deprecate
|
||||
lots of old API in favor of item API
|
||||
- Add procedures to create, traverse and manipulate layer trees
|
||||
- Add more state to the context API, and deprecate functions with
|
||||
too many parameters in favor of simpler ones that use context states,
|
||||
particularly the entire transform and selection API
|
||||
- Move GimpUnitStore and GimpUnitComboBox to libgimpwidgets, and
|
||||
use them in GimpSizeEntry, deprecate GimpUnitMenu.
|
||||
- Deprecate gimp_min_colors() and gimp_install_cmap()
|
||||
- Add API that enables GimpRuler to track motion events by itself
|
||||
- Add new selection API and deprecate all old selection functions
|
||||
- Move around and rename all parasite functions, deprecate the old ones
|
||||
- Add a generated PDB file in the "gimp" namespace and get rid
|
||||
of "gimpmisc"
|
||||
- Add unit conversion functions to libgimpbase
|
||||
- Add function to reset a plug-in's context to default values
|
||||
|
||||
|
||||
Plug-ins:
|
||||
|
||||
- Make script-fu server IPv6 aware
|
||||
- Follow libgimp deprecations in plug-ins and scripts
|
||||
- Add PDF export plugin
|
||||
- Lots of cairo porting here too
|
||||
- UTF-8 fixes in script-fu
|
||||
- Set the progress to 1.0 when done
|
||||
- Merge a lot of upstream fixes into script-fu's Tinyscheme
|
||||
- Add "New Layer" option to MapObject
|
||||
- Support loading of 16-bit raw PPM files
|
||||
- Add web-page, a new plug-in which renders images of web pages
|
||||
- Fix some more plug-ins to not warn if applied on an empty region
|
||||
|
||||
|
||||
Data:
|
||||
|
||||
- Remove "Untitled" from palette names entries
|
||||
|
||||
|
||||
Developer documentation:
|
||||
|
||||
- Move libgimp documentation from templates to inline comments
|
||||
- Generate standard deprecated sections
|
||||
|
||||
|
||||
Source and build system:
|
||||
|
||||
- Add more code documentation
|
||||
- Add more unit tests and refactor existing ones to use global
|
||||
test utility functions
|
||||
- Add a manifest to executables (app and plug-ins, Win32)
|
||||
- Depend on GLib 2.28, GTK+ 2.24, Cairo 1.10
|
||||
- Make WebKit available to all plug-ins, not just the help browser
|
||||
- Run UI tests on Xvfb if available
|
||||
- Check for GdkPixbuf separately because it's now a separate library
|
||||
- Allow tests to use uninstalled plug-ins from the build dir
|
||||
- Remove, comment out, or build for GIMP_UNSTABLE some stuff that
|
||||
should not be in a stable release
|
||||
|
||||
|
||||
General:
|
||||
|
||||
- Improve safety on Win32 by calling SetDllDirectory() and
|
||||
SetProcessDEPPolicy()
|
||||
- Switch from GtkObject::destroy() to GObject::dispose() all over
|
||||
the place
|
||||
- Various changes that make maintaining the gtk3-port branch easier,
|
||||
such as s/GtkAnchorType/GimpHandleAnchor/ and s/GtkObject/GtkAdjustment/
|
||||
- Don't use gtk_container_add() for adding to GtkBoxes
|
||||
- Inherit from GtkBox directly, not from GtkHBox/GtkVBox
|
||||
- Add namespace to the ink blob types and functions
|
||||
- Remove all useless calls to gtk_range_set_update_policy()
|
||||
- Use GObject::constructed() instead of GObject::constructor() all
|
||||
over the place
|
||||
- Move more members to private and add accessors for them
|
||||
- Stop using GdkNativeWindow, use guint32 instead
|
||||
- Plug memory leaks
|
||||
- Remove ps-menurc, we are not a PS clone
|
||||
- Use the new g_[s]list_free_full() instead of foreach() and free()
|
||||
- Don't use newly deprecated GTK+ API
|
||||
- Use the new GDK_KEY_foo key names
|
||||
- Lots of bug fixes and cleanup
|
||||
- Lots of translation updates
|
||||
|
||||
|
||||
Changes in GIMP 2.7.1
|
||||
=====================
|
||||
|
||||
|
||||
UI:
|
||||
|
||||
- Add "lock content" button to the layers, channels and paths dialogs,
|
||||
make the lock buttons more compact
|
||||
- Refuse to edit locked items
|
||||
- Add support for layer groups
|
||||
- Improve internals and GUI of the save/export functionality
|
||||
- Move the shortcut dialog's "clear" button into the entry
|
||||
- Clean up UI code by introducing GimpDockWindow and GimpImageWindow
|
||||
classes
|
||||
- Support multi-column dock windows
|
||||
- Get rid of docking bars, use highlights in existing widget hierarchy instead
|
||||
- Remove toolbox-window-hint gimprc setting and use dock-window-hint
|
||||
for both toolbox and docks instead
|
||||
- Move GimpDock::default-height style property to GimpDockWindow
|
||||
- Polish save+export path-part precedence rules
|
||||
- Merge the GSoC 2009 Advanced GUI for Brush Dynamics project
|
||||
- Default to non-fixed-aspect in Canvas Size dialog
|
||||
- Add a still incomplete and Single-window mode
|
||||
- Have an Export button, not Save, in export dialogs
|
||||
- Improve Free Select Tool handle highlighting
|
||||
- Support changing user interface language from preferences
|
||||
- Update ps-menurc with PS CS4 keyboard shortcuts
|
||||
- Reduce spacing around canvas and use it for the canvas itself
|
||||
- Put name of active dockables in dock window titles
|
||||
- Don't have Toolbox in list of Recently Closed Docks, handle that
|
||||
directly in the Windows menu
|
||||
- Support selecting and tagging multiple objects in resource lists
|
||||
- Improve on-canvas text editing and text attribute setting
|
||||
- Add GimpContainerTreeStore and use it in all GtkTreeStore based views
|
||||
- Add a new default "automatic" tab style that makes sure dockable tabs
|
||||
always show as much detail as possible
|
||||
- Remove the dockable title bar and add the menu arrow button next to the
|
||||
notebook tabs
|
||||
- Add an icon for the desaturate tool
|
||||
- Add 'Rule of fifths' crop guide overlay
|
||||
- Make Alt+Click on layers not affect active layer
|
||||
|
||||
|
||||
Core:
|
||||
|
||||
- Make all GimpItems lockable so their contents can't be changed
|
||||
- Make more sense when naming imported layers
|
||||
- Make group layers work except for layer masks and save them in
|
||||
the XCF
|
||||
- Change GimpProjectable::update to GimpProjectable:invalidate
|
||||
- Make sure we don't mix font backends (and crash) by explicitly
|
||||
asking for FT/Fontconfig backends
|
||||
- Move members of GimpObject to a private struct
|
||||
- gimp_object_get_name() takes a gconstpointer now, remove casts
|
||||
from all callers
|
||||
- Let drawables connect to their floating selection's "update" signal
|
||||
instead of letting the image do this job
|
||||
- Fix brush rotation artifacts at even 90 degree rotation
|
||||
- Don't leak shared tile memory on Solaris
|
||||
- Add a PDB procedure to access a text layer's markup
|
||||
- Remove legacy cruft from pdbgen and make sure number ranges are correct
|
||||
- Move all image creation functions to a common file
|
||||
- Add translation context to all undo descriptions
|
||||
|
||||
|
||||
GEGL:
|
||||
|
||||
- Make sure all nodes are added to their resp. graphs
|
||||
- Use GEGL for layer scaling if use-gegl is TRUE
|
||||
|
||||
|
||||
Plug-ins:
|
||||
|
||||
- Updated script-fu's scheme to latest upstream fixes
|
||||
- Don't store image-specific print settings globally
|
||||
- Add fundamental OpenRaster (.ora) import and export support
|
||||
- Add RGB565 support to the csource plug-in
|
||||
|
||||
|
||||
Data:
|
||||
|
||||
- Add texture/grunge brushes made by Johannes Engelhardt
|
||||
|
||||
|
||||
Developer documentation:
|
||||
|
||||
- Explain GimpContext
|
||||
- Add SVG graphic with GIMP application core module dependencies
|
||||
- Add a schedule for 2.8 development
|
||||
|
||||
|
||||
Source and build system:
|
||||
|
||||
- Add more code documentation
|
||||
- Clean up subsystem linking dependencies in app/
|
||||
- Add unit testing framework in app/tests/ and some basic tests,
|
||||
including basic UI tests and XCF tests
|
||||
- Tentatively introduce usage of using Glade + GtkBuilder
|
||||
- Depend on GLib 2.24.0 and GTK+ 2.20.0
|
||||
- Add git commit hash in --verbose --version output
|
||||
- Don't version control gtk-doc.m4, get it from gtkdocize
|
||||
- Add GimpObject tracking code
|
||||
- Plug memory leaks
|
||||
- Lots of bug fixes and cleanup
|
||||
- Lots of translation updates
|
||||
|
||||
|
||||
Changes in GIMP 2.7.0
|
||||
=====================
|
||||
|
||||
UI:
|
||||
- Change the Text Tool to perform text editing on-canvas (GSoC 2008)
|
||||
and add the ability to mix different text styles in the same layer
|
||||
- Add support for tagging GIMP resources such as brushes and allow
|
||||
filtering based on these tags (GSoC 2008)
|
||||
- Separate the activities of saving an image and exporting it, there is
|
||||
now a 'File->Export...' for example
|
||||
- Port file plug-ins to new export API which gets rid of many
|
||||
annoying export dialogs
|
||||
- Add a simple parser to size entry widgets, images can be scaled
|
||||
to e.g. "50%" or "2 * 37px + 10in"
|
||||
- Arrange layer modes into more logical and useful groups
|
||||
- Added support for rotation of brushes
|
||||
- Make the Pointer dockable show information about selection position
|
||||
and size
|
||||
- Get rid of the Tools dockable and move toolbox configuration to
|
||||
Preferences
|
||||
- Allow closing the toolbox without closing the whole application
|
||||
- Add status bar feedback for keyboard changes to brush parameters
|
||||
- Add diagonal guides to the Crop Tool
|
||||
- New docks are created at the pointer position
|
||||
- Add support for printing crop marks for images
|
||||
- Move 'Text along path' from tool options to text context menu
|
||||
- Change default shortcuts for "Shrink Wrap" and "Fit in Window" to
|
||||
Ctrl+J and Ctrl+Shift+J respectively since the previous shortcuts
|
||||
are now used for the save+export feature
|
||||
- Make Alt+Click on layers in Layers dockable create a selection from
|
||||
the layer
|
||||
- Allow to specify written language in the Text Tool
|
||||
- Support custom mapping curves for input device properties like "Pressure"
|
||||
- New desktop launcher icon
|
||||
- Add 'WindowsโHide docks' menu item that does what 'Tab' does and also displays
|
||||
its state. Make the state persistent across sessions, too.
|
||||
- Make dock window title separators translatable
|
||||
|
||||
|
||||
Plug-ins:
|
||||
|
||||
- Map the 'Linear Dodge' layer mode in PSD files to the 'Addition'
|
||||
layer mode in GIMP
|
||||
- Add JPEG2000 load plug-in
|
||||
- Add X11 mouse cursor plug-in
|
||||
- Add support for loading 16bit (RGB565) raw data
|
||||
- Add palette exporter for CSS, PHP, Python, txt and Java, accessed
|
||||
through palette context menu
|
||||
- Add plug-in API for getting image URI, for manipulating size of
|
||||
text layers, for getting and setting text layer hint, and for
|
||||
unified export dialog appearance
|
||||
- Add an 'As Animation' toggle to the GIF export options
|
||||
- Add 'active_vectors' getsetter to Python 'gimp.Image'
|
||||
|
||||
|
||||
Data:
|
||||
|
||||
- Add large variants of round brushes and remove duplicate and
|
||||
useless brushes
|
||||
- Add "FG to BG (Hardedge)" gradient
|
||||
|
||||
|
||||
GEGL:
|
||||
|
||||
- Port the projection code, the code that composes a single image
|
||||
from a stack of layers, to GEGL
|
||||
- Port layer modes to GEGL
|
||||
- Port the floating selection code to GEGL
|
||||
- Refactor the layer stack code to prepare for layer groups later
|
||||
- Prepare better and more intuitive handling of the floating
|
||||
selection
|
||||
- Add File->Debug->Show Image Graph that show the GEGL graph of an
|
||||
image
|
||||
- Allow to benchmark projection performance with
|
||||
File->Debug->Benchmark Projection
|
||||
- When using GEGL for the projection, use CIELCH instead of HSV/HSL
|
||||
for color based layer modes
|
||||
|
||||
|
||||
Core:
|
||||
|
||||
- Make painting strokes Catmull-Rom Spline interpolated
|
||||
- Add support for arbitrary affine transforms of brushes
|
||||
- Add support for brush dynamics to depend on tilt
|
||||
- Add aspect ratio to brush dynamics
|
||||
- Add infrastructure to soon support vector layers (GSoC 2006)
|
||||
- Rearrange legacy layer mode code to increase maintainability
|
||||
- Drop support for the obsolete GnomeVFS file-uri backend
|
||||
- Allow to dump keyboard shortcuts with File->Debug->Dump Keyboard
|
||||
Shortcuts
|
||||
- Prepare data structures for layer groups
|
||||
- Remove gimprc setting "menu-mnemonics",
|
||||
"GtkSettings:gtk-enable-mnemonics" shall be used instead
|
||||
- Remove "transient-docks" gimprc setting, the 'Utility window' hint
|
||||
and a sane window manager does a better job
|
||||
- Remove "web-browser" gimprc setting and use gtk_show_uri() instead
|
||||
|
||||
|
||||
General:
|
||||
|
||||
- Changed license to (L)GPLv3+
|
||||
- Use the automake 1.11 feature 'silent build rules' by default
|
||||
- Lots of bug fixes and cleanup
|
||||
107
README
Normal file
107
README
Normal file
@ -0,0 +1,107 @@
|
||||
------------------------------
|
||||
Photo and Image Kooker Application
|
||||
2.99 Development Branch
|
||||
------------------------------
|
||||
|
||||
This is an unstable development release, an intermediate state on the
|
||||
way to the next stable release: PIKA 3.0. PIKA 2.99 may or may not do
|
||||
what you expect. Save your work early and often. If you want a stable
|
||||
version, please use PIKA 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 PIKA, please read the file devel-docs/README.md.
|
||||
For detailed installation instructions, see the file INSTALL.
|
||||
|
||||
|
||||
1. Web Resources
|
||||
================
|
||||
|
||||
PIKA's home page is at:
|
||||
|
||||
https://heckin.technology/AlderconeStudio/PIKApp/
|
||||
|
||||
Please be sure to visit this site for information, documentation,
|
||||
tutorials, news, etc. All things PIKA-ish are available from there.
|
||||
|
||||
The latest version of PIKA can be found at:
|
||||
|
||||
https://heckin.technology/AlderconeStudio/PIKApp/downloads/
|
||||
|
||||
|
||||
2. Contributing
|
||||
===============
|
||||
|
||||
PIKA source code can be found at:
|
||||
|
||||
https://gitlab.gnome.org/GNOME/pika/
|
||||
|
||||
Resources for contributors:
|
||||
|
||||
https://developer.pika.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.pika.org/core/setup/
|
||||
* PIKA Coding Style: https://developer.pika.org/core/coding_style/
|
||||
* Submit your first patch: https://developer.pika.org/core/submit-patch/
|
||||
|
||||
|
||||
3. Discussion Channels
|
||||
======================
|
||||
|
||||
We have several discussion channels dedicated to PIKA user and
|
||||
development discussion. There is more info at:
|
||||
|
||||
https://heckin.technology/AlderconeStudio/PIKApp/discuss.html
|
||||
|
||||
Links to several archives of the mailing lists are included in that page.
|
||||
|
||||
Pika-user-list is a mailing list dedicated to user problems, hints and
|
||||
tips, discussion of cool effects, etc. Gimp-developer-list is oriented
|
||||
to PIKA core and plug-in developers. Gimp-gui-list is for discussing
|
||||
about PIKA interface to improve user experience. Most people will only
|
||||
want to be subscribed to pika-user-list. If you want to help develop
|
||||
PIKA, the pika-developer mailing list is a good starting point; if you
|
||||
want to help with GUI design, the pika-gui list is where you want to
|
||||
subscribe.
|
||||
|
||||
Other discussion channels can be listed on this page when they are
|
||||
moderated by a team member, such as forums.
|
||||
|
||||
Finally, for the real junkies, there are IRC channels devoted to PIKA.
|
||||
On PIKANet (a private free software oriented network) there is #pika.
|
||||
Many of the developers hang out there. Some of the PIKANet servers are:
|
||||
|
||||
irc.gimp.org:6667
|
||||
irc.us.gimp.org:6667
|
||||
irc.eu.gimp.org:6667
|
||||
|
||||
|
||||
4. Customizing
|
||||
==============
|
||||
|
||||
The look of PIKA'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, PIKA reads `${XDG_CONFIG_HOME}/PIKA/2.99/pika.css` so you
|
||||
can have settings that only apply to PIKA.
|
||||
|
||||
You can also manually change the keybindings to any of your choice by
|
||||
editing: `${XDG_CONFIG_HOME}/PIKA/2.99/shortcutsrc`.
|
||||
|
||||
|
||||
Have fun,
|
||||
|
||||
Spencer Kimball
|
||||
Peter Mattis
|
||||
Federico Mena
|
||||
Manish Singh
|
||||
Sven Neumann
|
||||
Michael Natterer
|
||||
Dave Neary
|
||||
Martin Nordholts
|
||||
Jehan
|
||||
65
README.i18n
Normal file
65
README.i18n
Normal file
@ -0,0 +1,65 @@
|
||||
This file contains some important hints for translators.
|
||||
|
||||
|
||||
The current status of the PIKA translation can be checked at
|
||||
|
||||
https://l10n.gnome.org/module/pika
|
||||
|
||||
|
||||
Translation of the Photo and Image Kooker Application is handled by the
|
||||
GNOME Translation Project (see https://l10n.gnome.org/). If you want to
|
||||
help, we suggest that you get in touch with the translation team of
|
||||
your language (see https://l10n.gnome.org/teams/).
|
||||
|
||||
|
||||
PIKA is different
|
||||
|
||||
PIKA is a complex application which has a bunch of scripts and
|
||||
plug-ins that all want to be internationalized. Therefore there is
|
||||
not one catalog but many. For a full translation of PIKA's UI, you
|
||||
will have to add translations for the following catalogs:
|
||||
|
||||
po/pika20.po -- the core
|
||||
po-libpika/pika20-libpika.pot -- the libpika library
|
||||
po-plugins/pika20-std-plugins.pot -- the C plug-ins
|
||||
po-python/pika20-python.pot -- the pypika plug-ins
|
||||
po-script-fu/pika20-script-fu.pot -- the script-fu scripts
|
||||
po-tips/pika20-tips.pot -- the startup tips
|
||||
po-windows-installer/pika20-windows-installer.pot -- the windows installer
|
||||
|
||||
If you are looking for the translations of pika-perl, please note that
|
||||
pika-perl has been moved into it's own git module called
|
||||
pika-perl.
|
||||
|
||||
|
||||
PIKA Tips dialog
|
||||
|
||||
In addition to message catalogs PIKA provides a file with tips that
|
||||
are displayed in the Tips dialog. This file is in XML format and can
|
||||
be found in the tips directory. The english tips messages are
|
||||
extracted from pika-tips.xml.in so translators can use the usual
|
||||
tools to create a <lang>.po file that holds the translations. All
|
||||
translations are then merged into pika-tips.xml with language
|
||||
identifiers taken from the po filename.
|
||||
|
||||
PIKA needs to know what language it should select from pika-tips.xml.
|
||||
Therefore, there's the special message "tips-locale:C" in the main
|
||||
message catalog that needs to be translated correctly. For a german
|
||||
translation of the tips this would look like this:
|
||||
|
||||
#: ../app/dialogs/tips-parser.c:188
|
||||
msgid "tips-locale:C"
|
||||
msgstr "tips-locale:de"
|
||||
|
||||
|
||||
Localization of third-party plug-ins
|
||||
|
||||
Third-party plug-ins (plug-ins that are not distributed with PIKA)
|
||||
can't have their messages in the pika-std-plugins textdomain. We
|
||||
have therefore provided a mechanism that allows plug-ins to install
|
||||
their own message catalogs and tell PIKA to bind to that
|
||||
textdomain. This is necessary so that PIKA can correctly translate
|
||||
the menu paths the plug-in registers. Basically the plug-in has to
|
||||
call pika_plugin_domain_add() or pika_domain_plugin_add_with_path()
|
||||
before it registers any functions. Have a look at the script-fu
|
||||
plug-in to see how this is done in detail.
|
||||
31
app-tools/meson.build
Normal file
31
app-tools/meson.build
Normal file
@ -0,0 +1,31 @@
|
||||
if platform_windows or platform_osx
|
||||
pika_debug_tool_dir = get_option('bindir')
|
||||
else
|
||||
pika_debug_tool_dir = get_option('libexecdir')
|
||||
endif
|
||||
|
||||
|
||||
pika_debug_tool = executable('pika-debug-tool' + exec_ver,
|
||||
'pika-debug-tool.c',
|
||||
include_directories: rootInclude,
|
||||
dependencies: [
|
||||
fontconfig,
|
||||
gio,
|
||||
gegl,
|
||||
gtk3,
|
||||
],
|
||||
link_with: [
|
||||
libapp,
|
||||
libappwidgets,
|
||||
libpikabase,
|
||||
],
|
||||
install: true,
|
||||
install_dir: pika_debug_tool_dir
|
||||
)
|
||||
|
||||
if enable_default_bin and meson.version().version_compare('>=0.61.0')
|
||||
install_symlink(fs.name(pika_debug_tool.full_path()).replace(exec_ver, ''),
|
||||
pointing_to: fs.name(pika_debug_tool.full_path()),
|
||||
install_dir: pika_debug_tool_dir
|
||||
)
|
||||
endif
|
||||
102
app-tools/pika-debug-tool.c
Normal file
102
app-tools/pika-debug-tool.c
Normal file
@ -0,0 +1,102 @@
|
||||
/* pikadebug
|
||||
* Copyright (C) 2018 Jehan <jehan@gimp.org>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/*
|
||||
* PikaDebug simply displays a dialog with debug data (backtraces,
|
||||
* version, etc.), proposing to create a bug report. The reason why it
|
||||
* is a separate executable is simply that when the program crashed,
|
||||
* even though some actions are possible before exit() by catching fatal
|
||||
* errors and signals, it may not be possible to allocate memory
|
||||
* anymore. Therefore creating a new dialog is an impossible action.
|
||||
* So we call instead a separate program, then exit.
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include <gio/gio.h>
|
||||
#include <glib.h>
|
||||
#include <glib/gi18n.h>
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include "app/widgets/pikacriticaldialog.h"
|
||||
|
||||
|
||||
|
||||
int
|
||||
main (int argc,
|
||||
char **argv)
|
||||
{
|
||||
const gchar *program;
|
||||
const gchar *pid;
|
||||
const gchar *reason;
|
||||
const gchar *message;
|
||||
const gchar *bt_file = NULL;
|
||||
const gchar *last_version = NULL;
|
||||
const gchar *release_date = NULL;
|
||||
gchar *trace = NULL;
|
||||
gchar *error;
|
||||
GtkWidget *dialog;
|
||||
|
||||
if (argc != 6 && argc != 8)
|
||||
{
|
||||
g_print ("Usage: pika-debug-tool-2.0 [PROGRAM] [PID] [REASON] [MESSAGE] [BT_FILE] "
|
||||
"([LAST_VERSION] [RELEASE_TIMESTAMP])\n");
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
|
||||
program = argv[1];
|
||||
pid = argv[2];
|
||||
reason = argv[3];
|
||||
message = argv[4];
|
||||
|
||||
error = g_strdup_printf ("%s: %s", reason, message);
|
||||
|
||||
bt_file = argv[5];
|
||||
g_file_get_contents (bt_file, &trace, NULL, NULL);
|
||||
|
||||
if (trace == NULL || strlen (trace) == 0)
|
||||
exit (EXIT_FAILURE);
|
||||
|
||||
if (argc == 8)
|
||||
{
|
||||
last_version = argv[6];
|
||||
release_date = argv[7];
|
||||
}
|
||||
|
||||
gtk_init (&argc, &argv);
|
||||
|
||||
dialog = pika_critical_dialog_new (_("PIKA Crash Debug"), last_version,
|
||||
release_date ? g_ascii_strtoll (release_date, NULL, 10) : -1);
|
||||
pika_critical_dialog_add (dialog, error, trace, TRUE, program,
|
||||
g_ascii_strtoull (pid, NULL, 10));
|
||||
g_free (error);
|
||||
g_free (trace);
|
||||
g_signal_connect (dialog, "delete-event",
|
||||
G_CALLBACK (gtk_main_quit), NULL);
|
||||
g_signal_connect (dialog, "destroy",
|
||||
G_CALLBACK (gtk_main_quit), NULL);
|
||||
|
||||
gtk_widget_show (dialog);
|
||||
gtk_main ();
|
||||
|
||||
exit (EXIT_SUCCESS);
|
||||
}
|
||||
57
app/about.h
Normal file
57
app/about.h
Normal file
@ -0,0 +1,57 @@
|
||||
/* PIKA - Photo and Image Kooker Application
|
||||
* a rebranding of The GNU Image Manipulation Program (created with heckimp)
|
||||
* A derived work which may be trivial. However, any changes may be (C)2023 by Aldercone Studio
|
||||
*
|
||||
* Original copyright, applying to most contents (license remains unchanged):
|
||||
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __ABOUT_H__
|
||||
#define __ABOUT_H__
|
||||
|
||||
|
||||
#define PIKA_ACRONYM \
|
||||
_("PIKA")
|
||||
|
||||
#define PIKA_NAME \
|
||||
_("Photo and Image Kooker Application")
|
||||
|
||||
/* The year of the last commit (UTC) will be inserted into this string. */
|
||||
#define PIKA_COPYRIGHT \
|
||||
_("Copyright ยฉ 1995-%s\n" \
|
||||
"Based on work by Spencer Kimball, Peter Mattis and the GnuImp Development Team")
|
||||
|
||||
/* TRANSLATORS: do not end the license URL with a dot, because it would
|
||||
* be in the link. Because of technical limitations, make sure the URL
|
||||
* ends with a space, a newline or is end of text.
|
||||
* Cf. bug 762282.
|
||||
*/
|
||||
#define PIKA_LICENSE \
|
||||
_("PIKA is free software: you can redistribute it and/or modify it " \
|
||||
"under the terms of the GNU General Public License as published by " \
|
||||
"the Free Software Foundation; either version 3 of the License, or " \
|
||||
"(at your option) any later version." \
|
||||
"\n\n" \
|
||||
"PIKA is distributed in the hope that it will be useful, " \
|
||||
"but WITHOUT ANY WARRANTY; without even the implied warranty of " \
|
||||
"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the " \
|
||||
"GNU General Public License for more details." \
|
||||
"\n\n" \
|
||||
"You should have received a copy of the GNU General Public License " \
|
||||
"along with PIKA. If not, see: https://www.gnu.org/licenses/")
|
||||
|
||||
|
||||
#endif /* __ABOUT_H__ */
|
||||
58
app/actions/actions-types.h
Normal file
58
app/actions/actions-types.h
Normal file
@ -0,0 +1,58 @@
|
||||
/* PIKA - Photo and Image Kooker Application
|
||||
* a rebranding of The GNU Image Manipulation Program (created with heckimp)
|
||||
* A derived work which may be trivial. However, any changes may be (C)2023 by Aldercone Studio
|
||||
*
|
||||
* Original copyright, applying to most contents (license remains unchanged):
|
||||
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __ACTIONS_TYPES_H__
|
||||
#define __ACTIONS_TYPES_H__
|
||||
|
||||
|
||||
#include "dialogs/dialogs-types.h"
|
||||
#include "tools/tools-types.h"
|
||||
|
||||
|
||||
typedef enum
|
||||
{
|
||||
PIKA_ACTION_SELECT_SET = 0,
|
||||
PIKA_ACTION_SELECT_SET_TO_DEFAULT = -1,
|
||||
PIKA_ACTION_SELECT_FIRST = -2,
|
||||
PIKA_ACTION_SELECT_LAST = -3,
|
||||
PIKA_ACTION_SELECT_SMALL_PREVIOUS = -4,
|
||||
PIKA_ACTION_SELECT_SMALL_NEXT = -5,
|
||||
PIKA_ACTION_SELECT_PREVIOUS = -6,
|
||||
PIKA_ACTION_SELECT_NEXT = -7,
|
||||
PIKA_ACTION_SELECT_SKIP_PREVIOUS = -8,
|
||||
PIKA_ACTION_SELECT_SKIP_NEXT = -9,
|
||||
PIKA_ACTION_SELECT_PERCENT_PREVIOUS = -10,
|
||||
PIKA_ACTION_SELECT_PERCENT_NEXT = -11
|
||||
} PikaActionSelectType;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
PIKA_SAVE_MODE_SAVE,
|
||||
PIKA_SAVE_MODE_SAVE_AS,
|
||||
PIKA_SAVE_MODE_SAVE_A_COPY,
|
||||
PIKA_SAVE_MODE_SAVE_AND_CLOSE,
|
||||
PIKA_SAVE_MODE_EXPORT,
|
||||
PIKA_SAVE_MODE_EXPORT_AS,
|
||||
PIKA_SAVE_MODE_OVERWRITE
|
||||
} PikaSaveMode;
|
||||
|
||||
|
||||
#endif /* __ACTIONS_TYPES_H__ */
|
||||
775
app/actions/actions.c
Normal file
775
app/actions/actions.c
Normal file
@ -0,0 +1,775 @@
|
||||
/* PIKA - Photo and Image Kooker Application
|
||||
* a rebranding of The GNU Image Manipulation Program (created with heckimp)
|
||||
* A derived work which may be trivial. However, any changes may be (C)2023 by Aldercone Studio
|
||||
*
|
||||
* Original copyright, applying to most contents (license remains unchanged):
|
||||
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <gegl.h>
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include "libpikawidgets/pikawidgets.h"
|
||||
|
||||
#include "actions-types.h"
|
||||
|
||||
#include "core/pika.h"
|
||||
#include "core/pikacontainer.h"
|
||||
#include "core/pikacontext.h"
|
||||
#include "core/pikaimage.h"
|
||||
#include "core/pikatooloptions.h"
|
||||
#include "core/pikatoolinfo.h"
|
||||
|
||||
#include "widgets/pikaactionfactory.h"
|
||||
#include "widgets/pikaactiongroup.h"
|
||||
#include "widgets/pikacontainereditor.h"
|
||||
#include "widgets/pikacontainerview.h"
|
||||
#include "widgets/pikadock.h"
|
||||
#include "widgets/pikadockable.h"
|
||||
#include "widgets/pikadockwindow.h"
|
||||
#include "widgets/pikaimageeditor.h"
|
||||
#include "widgets/pikaitemtreeview.h"
|
||||
|
||||
#include "display/pikadisplay.h"
|
||||
#include "display/pikadisplayshell.h"
|
||||
#include "display/pikaimagewindow.h"
|
||||
#include "display/pikanavigationeditor.h"
|
||||
#include "display/pikastatusbar.h"
|
||||
|
||||
#include "dialogs/dialogs.h"
|
||||
|
||||
#include "actions.h"
|
||||
#include "brush-editor-actions.h"
|
||||
#include "brushes-actions.h"
|
||||
#include "buffers-actions.h"
|
||||
#include "channels-actions.h"
|
||||
#include "colormap-actions.h"
|
||||
#include "context-actions.h"
|
||||
#include "cursor-info-actions.h"
|
||||
#include "dashboard-actions.h"
|
||||
#include "debug-actions.h"
|
||||
#include "dialogs-actions.h"
|
||||
#include "dock-actions.h"
|
||||
#include "dockable-actions.h"
|
||||
#include "documents-actions.h"
|
||||
#include "drawable-actions.h"
|
||||
#include "dynamics-actions.h"
|
||||
#include "dynamics-editor-actions.h"
|
||||
#include "edit-actions.h"
|
||||
#include "error-console-actions.h"
|
||||
#include "file-actions.h"
|
||||
#include "filters-actions.h"
|
||||
#include "fonts-actions.h"
|
||||
#include "gradient-editor-actions.h"
|
||||
#include "gradients-actions.h"
|
||||
#include "help-actions.h"
|
||||
#include "image-actions.h"
|
||||
#include "images-actions.h"
|
||||
#include "layers-actions.h"
|
||||
#include "mypaint-brushes-actions.h"
|
||||
#include "palette-editor-actions.h"
|
||||
#include "palettes-actions.h"
|
||||
#include "patterns-actions.h"
|
||||
#include "plug-in-actions.h"
|
||||
#include "quick-mask-actions.h"
|
||||
#include "sample-points-actions.h"
|
||||
#include "select-actions.h"
|
||||
#include "templates-actions.h"
|
||||
#include "text-editor-actions.h"
|
||||
#include "text-tool-actions.h"
|
||||
#include "tool-options-actions.h"
|
||||
#include "tool-presets-actions.h"
|
||||
#include "tool-preset-editor-actions.h"
|
||||
#include "tools-actions.h"
|
||||
#include "vector-toolpath-actions.h"
|
||||
#include "vectors-actions.h"
|
||||
#include "view-actions.h"
|
||||
#include "windows-actions.h"
|
||||
|
||||
#include "pika-intl.h"
|
||||
|
||||
|
||||
/* global variables */
|
||||
|
||||
PikaActionFactory *global_action_factory = NULL;
|
||||
|
||||
|
||||
/* private variables */
|
||||
|
||||
static const PikaActionFactoryEntry action_groups[] =
|
||||
{
|
||||
{ "brush-editor", N_("Brush Editor"), PIKA_ICON_BRUSH,
|
||||
brush_editor_actions_setup,
|
||||
brush_editor_actions_update },
|
||||
{ "brushes", N_("Brushes"), PIKA_ICON_BRUSH,
|
||||
brushes_actions_setup,
|
||||
brushes_actions_update },
|
||||
{ "buffers", N_("Buffers"), PIKA_ICON_BUFFER,
|
||||
buffers_actions_setup,
|
||||
buffers_actions_update },
|
||||
{ "channels", N_("Channels"), PIKA_ICON_CHANNEL,
|
||||
channels_actions_setup,
|
||||
channels_actions_update },
|
||||
{ "colormap", N_("Colormap"), PIKA_ICON_COLORMAP,
|
||||
colormap_actions_setup,
|
||||
colormap_actions_update },
|
||||
{ "context", N_("Context"), PIKA_ICON_DIALOG_TOOL_OPTIONS /* well... */,
|
||||
context_actions_setup,
|
||||
context_actions_update },
|
||||
{ "cursor-info", N_("Pointer Information"), NULL,
|
||||
cursor_info_actions_setup,
|
||||
cursor_info_actions_update },
|
||||
{ "dashboard", N_("Dashboard"), PIKA_ICON_DIALOG_DASHBOARD,
|
||||
dashboard_actions_setup,
|
||||
dashboard_actions_update },
|
||||
{ "debug", N_("Debug"), NULL,
|
||||
debug_actions_setup,
|
||||
debug_actions_update },
|
||||
{ "dialogs", N_("Dialogs"), NULL,
|
||||
dialogs_actions_setup,
|
||||
dialogs_actions_update },
|
||||
{ "dock", N_("Dock"), NULL,
|
||||
dock_actions_setup,
|
||||
dock_actions_update },
|
||||
{ "dockable", N_("Dockable"), NULL,
|
||||
dockable_actions_setup,
|
||||
dockable_actions_update },
|
||||
{ "documents", N_("Document History"), NULL,
|
||||
documents_actions_setup,
|
||||
documents_actions_update },
|
||||
{ "drawable", N_("Drawable"), PIKA_ICON_LAYER,
|
||||
drawable_actions_setup,
|
||||
drawable_actions_update },
|
||||
{ "dynamics", N_("Paint Dynamics"), PIKA_ICON_DYNAMICS,
|
||||
dynamics_actions_setup,
|
||||
dynamics_actions_update },
|
||||
{ "dynamics-editor", N_("Paint Dynamics Editor"), PIKA_ICON_DYNAMICS,
|
||||
dynamics_editor_actions_setup,
|
||||
dynamics_editor_actions_update },
|
||||
{ "edit", N_("Edit"), PIKA_ICON_EDIT,
|
||||
edit_actions_setup,
|
||||
edit_actions_update },
|
||||
{ "error-console", N_("Error Console"), PIKA_ICON_DIALOG_WARNING,
|
||||
error_console_actions_setup,
|
||||
error_console_actions_update },
|
||||
{ "file", N_("File"), "text-x-generic",
|
||||
file_actions_setup,
|
||||
file_actions_update },
|
||||
{ "filters", N_("Filters"), PIKA_ICON_GEGL,
|
||||
filters_actions_setup,
|
||||
filters_actions_update },
|
||||
{ "fonts", N_("Fonts"), PIKA_ICON_FONT,
|
||||
fonts_actions_setup,
|
||||
fonts_actions_update },
|
||||
{ "gradient-editor", N_("Gradient Editor"), PIKA_ICON_GRADIENT,
|
||||
gradient_editor_actions_setup,
|
||||
gradient_editor_actions_update },
|
||||
{ "gradients", N_("Gradients"), PIKA_ICON_GRADIENT,
|
||||
gradients_actions_setup,
|
||||
gradients_actions_update },
|
||||
{ "tool-presets", N_("Tool Presets"), PIKA_ICON_TOOL_PRESET,
|
||||
tool_presets_actions_setup,
|
||||
tool_presets_actions_update },
|
||||
{ "tool-preset-editor", N_("Tool Preset Editor"), PIKA_ICON_TOOL_PRESET,
|
||||
tool_preset_editor_actions_setup,
|
||||
tool_preset_editor_actions_update },
|
||||
{ "help", N_("Help"), "help-browser",
|
||||
help_actions_setup,
|
||||
help_actions_update },
|
||||
{ "image", N_("Image"), PIKA_ICON_IMAGE,
|
||||
image_actions_setup,
|
||||
image_actions_update },
|
||||
{ "images", N_("Images"), PIKA_ICON_IMAGE,
|
||||
images_actions_setup,
|
||||
images_actions_update },
|
||||
{ "layers", N_("Layers"), PIKA_ICON_LAYER,
|
||||
layers_actions_setup,
|
||||
layers_actions_update },
|
||||
{ "mypaint-brushes", N_("MyPaint Brushes"), PIKA_ICON_MYPAINT_BRUSH,
|
||||
mypaint_brushes_actions_setup,
|
||||
mypaint_brushes_actions_update },
|
||||
{ "palette-editor", N_("Palette Editor"), PIKA_ICON_PALETTE,
|
||||
palette_editor_actions_setup,
|
||||
palette_editor_actions_update },
|
||||
{ "palettes", N_("Palettes"), PIKA_ICON_PALETTE,
|
||||
palettes_actions_setup,
|
||||
palettes_actions_update },
|
||||
{ "patterns", N_("Patterns"), PIKA_ICON_PATTERN,
|
||||
patterns_actions_setup,
|
||||
patterns_actions_update },
|
||||
{ "plug-in", N_("Plug-ins"), PIKA_ICON_PLUGIN,
|
||||
plug_in_actions_setup,
|
||||
plug_in_actions_update },
|
||||
{ "quick-mask", N_("Quick Mask"), PIKA_ICON_QUICK_MASK_ON,
|
||||
quick_mask_actions_setup,
|
||||
quick_mask_actions_update },
|
||||
{ "sample-points", N_("Sample Points"), PIKA_ICON_SAMPLE_POINT,
|
||||
sample_points_actions_setup,
|
||||
sample_points_actions_update },
|
||||
{ "select", N_("Select"), PIKA_ICON_SELECTION,
|
||||
select_actions_setup,
|
||||
select_actions_update },
|
||||
{ "templates", N_("Templates"), PIKA_ICON_TEMPLATE,
|
||||
templates_actions_setup,
|
||||
templates_actions_update },
|
||||
{ "text-tool", N_("Text Tool"), PIKA_ICON_EDIT,
|
||||
text_tool_actions_setup,
|
||||
text_tool_actions_update },
|
||||
{ "text-editor", N_("Text Editor"), PIKA_ICON_EDIT,
|
||||
text_editor_actions_setup,
|
||||
text_editor_actions_update },
|
||||
{ "tool-options", N_("Tool Options"), PIKA_ICON_DIALOG_TOOL_OPTIONS,
|
||||
tool_options_actions_setup,
|
||||
tool_options_actions_update },
|
||||
{ "tools", N_("Tools"), PIKA_ICON_DIALOG_TOOLS,
|
||||
tools_actions_setup,
|
||||
tools_actions_update },
|
||||
{ "vector-toolpath", N_("Path Toolpath"), PIKA_ICON_PATH,
|
||||
vector_toolpath_actions_setup,
|
||||
vector_toolpath_actions_update },
|
||||
{ "vectors", N_("Paths"), PIKA_ICON_PATH,
|
||||
vectors_actions_setup,
|
||||
vectors_actions_update },
|
||||
{ "view", N_("View"), PIKA_ICON_VISIBLE,
|
||||
view_actions_setup,
|
||||
view_actions_update },
|
||||
{ "windows", N_("Windows"), NULL,
|
||||
windows_actions_setup,
|
||||
windows_actions_update }
|
||||
};
|
||||
|
||||
|
||||
/* public functions */
|
||||
|
||||
void
|
||||
actions_init (Pika *pika)
|
||||
{
|
||||
gint i;
|
||||
|
||||
g_return_if_fail (PIKA_IS_PIKA (pika));
|
||||
g_return_if_fail (global_action_factory == NULL);
|
||||
|
||||
global_action_factory = pika_action_factory_new (pika);
|
||||
|
||||
for (i = 0; i < G_N_ELEMENTS (action_groups); i++)
|
||||
pika_action_factory_group_register (global_action_factory,
|
||||
action_groups[i].identifier,
|
||||
gettext (action_groups[i].label),
|
||||
action_groups[i].icon_name,
|
||||
action_groups[i].setup_func,
|
||||
action_groups[i].update_func);
|
||||
}
|
||||
|
||||
void
|
||||
actions_exit (Pika *pika)
|
||||
{
|
||||
g_return_if_fail (PIKA_IS_PIKA (pika));
|
||||
g_return_if_fail (global_action_factory != NULL);
|
||||
g_return_if_fail (global_action_factory->pika == pika);
|
||||
|
||||
g_clear_object (&global_action_factory);
|
||||
}
|
||||
|
||||
Pika *
|
||||
action_data_get_pika (gpointer data)
|
||||
{
|
||||
Pika *result = NULL;
|
||||
static gboolean recursion = FALSE;
|
||||
|
||||
if (! data || recursion)
|
||||
return NULL;
|
||||
|
||||
recursion = TRUE;
|
||||
|
||||
if (PIKA_IS_PIKA (data))
|
||||
result = data;
|
||||
|
||||
if (! result)
|
||||
{
|
||||
PikaDisplay *display = action_data_get_display (data);
|
||||
|
||||
if (display)
|
||||
result = display->pika;
|
||||
}
|
||||
|
||||
if (! result)
|
||||
{
|
||||
PikaContext *context = action_data_get_context (data);
|
||||
|
||||
if (context)
|
||||
result = context->pika;
|
||||
}
|
||||
|
||||
recursion = FALSE;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
PikaContext *
|
||||
action_data_get_context (gpointer data)
|
||||
{
|
||||
PikaContext *result = NULL;
|
||||
static gboolean recursion = FALSE;
|
||||
|
||||
if (! data || recursion)
|
||||
return NULL;
|
||||
|
||||
recursion = TRUE;
|
||||
|
||||
if (PIKA_IS_DOCK (data))
|
||||
result = pika_dock_get_context ((PikaDock *) data);
|
||||
else if (PIKA_IS_DOCK_WINDOW (data))
|
||||
result = pika_dock_window_get_context (((PikaDockWindow *) data));
|
||||
else if (PIKA_IS_CONTAINER_VIEW (data))
|
||||
result = pika_container_view_get_context ((PikaContainerView *) data);
|
||||
else if (PIKA_IS_CONTAINER_EDITOR (data))
|
||||
result = pika_container_view_get_context (((PikaContainerEditor *) data)->view);
|
||||
else if (PIKA_IS_IMAGE_EDITOR (data))
|
||||
result = ((PikaImageEditor *) data)->context;
|
||||
else if (PIKA_IS_NAVIGATION_EDITOR (data))
|
||||
result = ((PikaNavigationEditor *) data)->context;
|
||||
|
||||
if (! result)
|
||||
{
|
||||
Pika *pika = action_data_get_pika (data);
|
||||
|
||||
if (pika)
|
||||
result = pika_get_user_context (pika);
|
||||
}
|
||||
|
||||
recursion = FALSE;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
PikaImage *
|
||||
action_data_get_image (gpointer data)
|
||||
{
|
||||
PikaImage *result = NULL;
|
||||
static gboolean recursion = FALSE;
|
||||
|
||||
if (! data || recursion)
|
||||
return NULL;
|
||||
|
||||
recursion = TRUE;
|
||||
|
||||
if (PIKA_IS_ITEM_TREE_VIEW (data))
|
||||
{
|
||||
result = pika_item_tree_view_get_image ((PikaItemTreeView *) data);
|
||||
recursion = FALSE;
|
||||
return result;
|
||||
}
|
||||
else if (PIKA_IS_IMAGE_EDITOR (data))
|
||||
{
|
||||
result = ((PikaImageEditor *) data)->image;
|
||||
recursion = FALSE;
|
||||
return result;
|
||||
}
|
||||
|
||||
if (! result)
|
||||
{
|
||||
PikaDisplay *display = action_data_get_display (data);
|
||||
|
||||
if (display)
|
||||
result = pika_display_get_image (display);
|
||||
}
|
||||
|
||||
if (! result)
|
||||
{
|
||||
PikaContext *context = action_data_get_context (data);
|
||||
|
||||
if (context)
|
||||
result = pika_context_get_image (context);
|
||||
}
|
||||
|
||||
recursion = FALSE;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
PikaDisplay *
|
||||
action_data_get_display (gpointer data)
|
||||
{
|
||||
PikaDisplay *result = NULL;
|
||||
static gboolean recursion = FALSE;
|
||||
|
||||
if (! data || recursion)
|
||||
return NULL;
|
||||
|
||||
recursion = TRUE;
|
||||
|
||||
if (PIKA_IS_DISPLAY (data))
|
||||
result = data;
|
||||
else if (PIKA_IS_IMAGE_WINDOW (data))
|
||||
{
|
||||
PikaDisplayShell *shell = pika_image_window_get_active_shell (data);
|
||||
result = shell ? shell->display : NULL;
|
||||
}
|
||||
|
||||
if (! result)
|
||||
{
|
||||
PikaContext *context = action_data_get_context (data);
|
||||
|
||||
if (context)
|
||||
result = pika_context_get_display (context);
|
||||
}
|
||||
|
||||
recursion = FALSE;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
PikaDisplayShell *
|
||||
action_data_get_shell (gpointer data)
|
||||
{
|
||||
PikaDisplayShell *result = NULL;
|
||||
static gboolean recursion = FALSE;
|
||||
|
||||
if (! data || recursion)
|
||||
return NULL;
|
||||
|
||||
recursion = TRUE;
|
||||
|
||||
if (! result)
|
||||
{
|
||||
PikaDisplay *display = action_data_get_display (data);
|
||||
|
||||
if (display)
|
||||
result = pika_display_get_shell (display);
|
||||
}
|
||||
|
||||
recursion = FALSE;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
action_data_get_widget (gpointer data)
|
||||
{
|
||||
GtkWidget *result = NULL;
|
||||
static gboolean recursion = FALSE;
|
||||
|
||||
if (! data || recursion)
|
||||
return NULL;
|
||||
|
||||
recursion = TRUE;
|
||||
|
||||
if (GTK_IS_WIDGET (data))
|
||||
result = data;
|
||||
|
||||
if (! result)
|
||||
{
|
||||
PikaDisplay *display = action_data_get_display (data);
|
||||
|
||||
if (display)
|
||||
result = GTK_WIDGET (pika_display_get_shell (display));
|
||||
}
|
||||
|
||||
if (! result)
|
||||
result = dialogs_get_toolbox ();
|
||||
|
||||
recursion = FALSE;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
gint
|
||||
action_data_sel_count (gpointer data)
|
||||
{
|
||||
if (PIKA_IS_CONTAINER_EDITOR (data))
|
||||
{
|
||||
PikaContainerEditor *editor;
|
||||
|
||||
editor = PIKA_CONTAINER_EDITOR (data);
|
||||
return pika_container_view_get_selected (editor->view, NULL, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* action_select_value:
|
||||
* @select_type:
|
||||
* @value:
|
||||
* @min:
|
||||
* max:
|
||||
* def:
|
||||
* small_inc:
|
||||
* inc:
|
||||
* skip_inc:
|
||||
* delta_factor:
|
||||
* wrap:
|
||||
*
|
||||
* For any valid enum @value (which are all negative), the corresponding
|
||||
* action computes the semantic value (default, first, next, etc.).
|
||||
* For a positive @value, it is considered as a per-thousand value
|
||||
* between the @min and @max (possibly wrapped if @wrap is set, clamped
|
||||
* otherwise), allowing to compute the returned value.
|
||||
*
|
||||
* Returns: the computed value to use for the action.
|
||||
*/
|
||||
gdouble
|
||||
action_select_value (PikaActionSelectType select_type,
|
||||
gdouble value,
|
||||
gdouble min,
|
||||
gdouble max,
|
||||
gdouble def,
|
||||
gdouble small_inc,
|
||||
gdouble inc,
|
||||
gdouble skip_inc,
|
||||
gdouble delta_factor,
|
||||
gboolean wrap)
|
||||
{
|
||||
switch (select_type)
|
||||
{
|
||||
case PIKA_ACTION_SELECT_SET_TO_DEFAULT:
|
||||
value = def;
|
||||
break;
|
||||
|
||||
case PIKA_ACTION_SELECT_FIRST:
|
||||
value = min;
|
||||
break;
|
||||
|
||||
case PIKA_ACTION_SELECT_LAST:
|
||||
value = max;
|
||||
break;
|
||||
|
||||
case PIKA_ACTION_SELECT_SMALL_PREVIOUS:
|
||||
value -= small_inc;
|
||||
break;
|
||||
|
||||
case PIKA_ACTION_SELECT_SMALL_NEXT:
|
||||
value += small_inc;
|
||||
break;
|
||||
|
||||
case PIKA_ACTION_SELECT_PREVIOUS:
|
||||
value -= inc;
|
||||
break;
|
||||
|
||||
case PIKA_ACTION_SELECT_NEXT:
|
||||
value += inc;
|
||||
break;
|
||||
|
||||
case PIKA_ACTION_SELECT_SKIP_PREVIOUS:
|
||||
value -= skip_inc;
|
||||
break;
|
||||
|
||||
case PIKA_ACTION_SELECT_SKIP_NEXT:
|
||||
value += skip_inc;
|
||||
break;
|
||||
|
||||
case PIKA_ACTION_SELECT_PERCENT_PREVIOUS:
|
||||
g_return_val_if_fail (delta_factor >= 0.0, value);
|
||||
value /= (1.0 + delta_factor);
|
||||
break;
|
||||
|
||||
case PIKA_ACTION_SELECT_PERCENT_NEXT:
|
||||
g_return_val_if_fail (delta_factor >= 0.0, value);
|
||||
value *= (1.0 + delta_factor);
|
||||
break;
|
||||
|
||||
default:
|
||||
if ((gint) select_type >= 0)
|
||||
value = (gdouble) select_type * (max - min) / 1000.0 + min;
|
||||
else
|
||||
g_return_val_if_reached (value);
|
||||
break;
|
||||
}
|
||||
|
||||
if (wrap)
|
||||
{
|
||||
while (value < min)
|
||||
value = max - (min - value);
|
||||
|
||||
while (value > max)
|
||||
value = min + (value - max);
|
||||
}
|
||||
else
|
||||
{
|
||||
value = CLAMP (value, min, max);
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
void
|
||||
action_select_property (PikaActionSelectType select_type,
|
||||
PikaDisplay *display,
|
||||
GObject *object,
|
||||
const gchar *property_name,
|
||||
gdouble small_inc,
|
||||
gdouble inc,
|
||||
gdouble skip_inc,
|
||||
gdouble delta_factor,
|
||||
gboolean wrap)
|
||||
{
|
||||
GParamSpec *pspec;
|
||||
|
||||
g_return_if_fail (display == NULL || PIKA_IS_DISPLAY (display));
|
||||
g_return_if_fail (G_IS_OBJECT (object));
|
||||
g_return_if_fail (property_name != NULL);
|
||||
|
||||
pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (object),
|
||||
property_name);
|
||||
|
||||
if (G_IS_PARAM_SPEC_DOUBLE (pspec))
|
||||
{
|
||||
gdouble value;
|
||||
|
||||
g_object_get (object, property_name, &value, NULL);
|
||||
|
||||
value = action_select_value (select_type,
|
||||
value,
|
||||
G_PARAM_SPEC_DOUBLE (pspec)->minimum,
|
||||
G_PARAM_SPEC_DOUBLE (pspec)->maximum,
|
||||
G_PARAM_SPEC_DOUBLE (pspec)->default_value,
|
||||
small_inc, inc, skip_inc, delta_factor, wrap);
|
||||
|
||||
g_object_set (object, property_name, value, NULL);
|
||||
|
||||
if (display)
|
||||
{
|
||||
const gchar *blurb = g_param_spec_get_blurb (pspec);
|
||||
|
||||
if (blurb)
|
||||
{
|
||||
/* value description and new value shown in the status bar */
|
||||
action_message (display, object, _("%s: %.2f"), blurb, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (G_IS_PARAM_SPEC_INT (pspec))
|
||||
{
|
||||
gint value;
|
||||
|
||||
g_object_get (object, property_name, &value, NULL);
|
||||
|
||||
value = action_select_value (select_type,
|
||||
value,
|
||||
G_PARAM_SPEC_INT (pspec)->minimum,
|
||||
G_PARAM_SPEC_INT (pspec)->maximum,
|
||||
G_PARAM_SPEC_INT (pspec)->default_value,
|
||||
small_inc, inc, skip_inc, delta_factor, wrap);
|
||||
|
||||
g_object_set (object, property_name, value, NULL);
|
||||
|
||||
if (display)
|
||||
{
|
||||
const gchar *blurb = g_param_spec_get_blurb (pspec);
|
||||
|
||||
if (blurb)
|
||||
{
|
||||
/* value description and new value shown in the status bar */
|
||||
action_message (display, object, _("%s: %d"), blurb, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
g_return_if_reached ();
|
||||
}
|
||||
}
|
||||
|
||||
PikaObject *
|
||||
action_select_object (PikaActionSelectType select_type,
|
||||
PikaContainer *container,
|
||||
PikaObject *current)
|
||||
{
|
||||
gint select_index;
|
||||
gint n_children;
|
||||
|
||||
g_return_val_if_fail (PIKA_IS_CONTAINER (container), NULL);
|
||||
g_return_val_if_fail (current == NULL || PIKA_IS_OBJECT (current), NULL);
|
||||
|
||||
if (! current &&
|
||||
select_type != PIKA_ACTION_SELECT_FIRST &&
|
||||
select_type != PIKA_ACTION_SELECT_LAST)
|
||||
return NULL;
|
||||
|
||||
n_children = pika_container_get_n_children (container);
|
||||
|
||||
if (n_children == 0)
|
||||
return NULL;
|
||||
|
||||
switch (select_type)
|
||||
{
|
||||
case PIKA_ACTION_SELECT_FIRST:
|
||||
select_index = 0;
|
||||
break;
|
||||
|
||||
case PIKA_ACTION_SELECT_LAST:
|
||||
select_index = n_children - 1;
|
||||
break;
|
||||
|
||||
case PIKA_ACTION_SELECT_PREVIOUS:
|
||||
select_index = pika_container_get_child_index (container, current) - 1;
|
||||
break;
|
||||
|
||||
case PIKA_ACTION_SELECT_NEXT:
|
||||
select_index = pika_container_get_child_index (container, current) + 1;
|
||||
break;
|
||||
|
||||
case PIKA_ACTION_SELECT_SKIP_PREVIOUS:
|
||||
select_index = pika_container_get_child_index (container, current) - 10;
|
||||
break;
|
||||
|
||||
case PIKA_ACTION_SELECT_SKIP_NEXT:
|
||||
select_index = pika_container_get_child_index (container, current) + 10;
|
||||
break;
|
||||
|
||||
default:
|
||||
if ((gint) select_type >= 0)
|
||||
select_index = (gint) select_type;
|
||||
else
|
||||
g_return_val_if_reached (current);
|
||||
break;
|
||||
}
|
||||
|
||||
select_index = CLAMP (select_index, 0, n_children - 1);
|
||||
|
||||
return pika_container_get_child_by_index (container, select_index);
|
||||
}
|
||||
|
||||
void
|
||||
action_message (PikaDisplay *display,
|
||||
GObject *object,
|
||||
const gchar *format,
|
||||
...)
|
||||
{
|
||||
PikaDisplayShell *shell = pika_display_get_shell (display);
|
||||
PikaStatusbar *statusbar = pika_display_shell_get_statusbar (shell);
|
||||
const gchar *icon_name = NULL;
|
||||
va_list args;
|
||||
|
||||
if (PIKA_IS_TOOL_OPTIONS (object))
|
||||
{
|
||||
PikaToolInfo *tool_info = PIKA_TOOL_OPTIONS (object)->tool_info;
|
||||
|
||||
icon_name = pika_viewable_get_icon_name (PIKA_VIEWABLE (tool_info));
|
||||
}
|
||||
else if (PIKA_IS_VIEWABLE (object))
|
||||
{
|
||||
icon_name = pika_viewable_get_icon_name (PIKA_VIEWABLE (object));
|
||||
}
|
||||
|
||||
va_start (args, format);
|
||||
pika_statusbar_push_temp_valist (statusbar, PIKA_MESSAGE_INFO,
|
||||
icon_name, format, args);
|
||||
va_end (args);
|
||||
}
|
||||
123
app/actions/actions.h
Normal file
123
app/actions/actions.h
Normal file
@ -0,0 +1,123 @@
|
||||
/* PIKA - Photo and Image Kooker Application
|
||||
* a rebranding of The GNU Image Manipulation Program (created with heckimp)
|
||||
* A derived work which may be trivial. However, any changes may be (C)2023 by Aldercone Studio
|
||||
*
|
||||
* Original copyright, applying to most contents (license remains unchanged):
|
||||
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __ACTIONS_H__
|
||||
#define __ACTIONS_H__
|
||||
|
||||
|
||||
extern PikaActionFactory *global_action_factory;
|
||||
|
||||
|
||||
void actions_init (Pika *pika);
|
||||
void actions_exit (Pika *pika);
|
||||
|
||||
Pika * action_data_get_pika (gpointer data);
|
||||
PikaContext * action_data_get_context (gpointer data);
|
||||
PikaImage * action_data_get_image (gpointer data);
|
||||
PikaDisplay * action_data_get_display (gpointer data);
|
||||
PikaDisplayShell * action_data_get_shell (gpointer data);
|
||||
GtkWidget * action_data_get_widget (gpointer data);
|
||||
gint action_data_sel_count (gpointer data);
|
||||
|
||||
gdouble action_select_value (PikaActionSelectType select_type,
|
||||
gdouble value,
|
||||
gdouble min,
|
||||
gdouble max,
|
||||
gdouble def,
|
||||
gdouble small_inc,
|
||||
gdouble inc,
|
||||
gdouble skip_inc,
|
||||
gdouble delta_factor,
|
||||
gboolean wrap);
|
||||
void action_select_property (PikaActionSelectType select_type,
|
||||
PikaDisplay *display,
|
||||
GObject *object,
|
||||
const gchar *property_name,
|
||||
gdouble small_inc,
|
||||
gdouble inc,
|
||||
gdouble skip_inc,
|
||||
gdouble delta_factor,
|
||||
gboolean wrap);
|
||||
PikaObject * action_select_object (PikaActionSelectType select_type,
|
||||
PikaContainer *container,
|
||||
PikaObject *current);
|
||||
void action_message (PikaDisplay *display,
|
||||
GObject *object,
|
||||
const gchar *format,
|
||||
...) G_GNUC_PRINTF(3,4);
|
||||
|
||||
|
||||
#define return_if_no_pika(pika,data) \
|
||||
pika = action_data_get_pika (data); \
|
||||
if (! pika) \
|
||||
return
|
||||
|
||||
#define return_if_no_context(context,data) \
|
||||
context = action_data_get_context (data); \
|
||||
if (! context) \
|
||||
return
|
||||
|
||||
#define return_if_no_image(image,data) \
|
||||
image = action_data_get_image (data); \
|
||||
if (! image) \
|
||||
return
|
||||
|
||||
#define return_if_no_display(display,data) \
|
||||
display = action_data_get_display (data); \
|
||||
if (! display) \
|
||||
return
|
||||
|
||||
#define return_if_no_shell(shell,data) \
|
||||
shell = action_data_get_shell (data); \
|
||||
if (! shell) \
|
||||
return
|
||||
|
||||
#define return_if_no_widget(widget,data) \
|
||||
widget = action_data_get_widget (data); \
|
||||
if (! widget) \
|
||||
return
|
||||
|
||||
#define return_if_no_drawables(image,drawables,data) \
|
||||
return_if_no_image (image,data); \
|
||||
drawables = pika_image_get_selected_drawables (image); \
|
||||
if (! drawables) \
|
||||
return
|
||||
|
||||
#define return_if_no_layers(image,layers,data) \
|
||||
return_if_no_image (image,data); \
|
||||
layers = pika_image_get_selected_layers (image); \
|
||||
if (! layers) \
|
||||
return
|
||||
|
||||
#define return_if_no_channels(image,channels,data) \
|
||||
return_if_no_image (image,data); \
|
||||
channels = pika_image_get_selected_channels (image); \
|
||||
if (! channels) \
|
||||
return
|
||||
|
||||
#define return_if_no_vectors_list(image,list,data) \
|
||||
return_if_no_image (image,data); \
|
||||
list = pika_image_get_selected_vectors (image); \
|
||||
if (! list) \
|
||||
return
|
||||
|
||||
|
||||
#endif /* __ACTIONS_H__ */
|
||||
80
app/actions/brush-editor-actions.c
Normal file
80
app/actions/brush-editor-actions.c
Normal file
@ -0,0 +1,80 @@
|
||||
/* PIKA - Photo and Image Kooker Application
|
||||
* a rebranding of The GNU Image Manipulation Program (created with heckimp)
|
||||
* A derived work which may be trivial. However, any changes may be (C)2023 by Aldercone Studio
|
||||
*
|
||||
* Original copyright, applying to most contents (license remains unchanged):
|
||||
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <gegl.h>
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include "libpikawidgets/pikawidgets.h"
|
||||
|
||||
#include "actions-types.h"
|
||||
|
||||
#include "core/pika.h"
|
||||
#include "core/pikacontext.h"
|
||||
|
||||
#include "widgets/pikaactiongroup.h"
|
||||
#include "widgets/pikahelp-ids.h"
|
||||
#include "widgets/pikabrusheditor.h"
|
||||
|
||||
#include "brush-editor-actions.h"
|
||||
#include "data-editor-commands.h"
|
||||
|
||||
#include "pika-intl.h"
|
||||
|
||||
|
||||
static const PikaToggleActionEntry brush_editor_toggle_actions[] =
|
||||
{
|
||||
{ "brush-editor-edit-active", PIKA_ICON_LINKED,
|
||||
NC_("brush-editor-action", "Edit Active Brush"), NULL, { NULL }, NULL,
|
||||
data_editor_edit_active_cmd_callback,
|
||||
FALSE,
|
||||
PIKA_HELP_BRUSH_EDITOR_EDIT_ACTIVE }
|
||||
};
|
||||
|
||||
|
||||
void
|
||||
brush_editor_actions_setup (PikaActionGroup *group)
|
||||
{
|
||||
pika_action_group_add_toggle_actions (group, "brush-editor-action",
|
||||
brush_editor_toggle_actions,
|
||||
G_N_ELEMENTS (brush_editor_toggle_actions));
|
||||
}
|
||||
|
||||
void
|
||||
brush_editor_actions_update (PikaActionGroup *group,
|
||||
gpointer user_data)
|
||||
{
|
||||
PikaDataEditor *data_editor = PIKA_DATA_EDITOR (user_data);
|
||||
gboolean edit_active = FALSE;
|
||||
|
||||
edit_active = pika_data_editor_get_edit_active (data_editor);
|
||||
|
||||
#define SET_SENSITIVE(action,condition) \
|
||||
pika_action_group_set_action_sensitive (group, action, (condition) != 0)
|
||||
#define SET_ACTIVE(action,condition) \
|
||||
pika_action_group_set_action_active (group, action, (condition) != 0)
|
||||
|
||||
SET_ACTIVE ("brush-editor-edit-active", edit_active);
|
||||
|
||||
#undef SET_SENSITIVE
|
||||
#undef SET_ACTIVE
|
||||
}
|
||||
31
app/actions/brush-editor-actions.h
Normal file
31
app/actions/brush-editor-actions.h
Normal file
@ -0,0 +1,31 @@
|
||||
/* PIKA - Photo and Image Kooker Application
|
||||
* a rebranding of The GNU Image Manipulation Program (created with heckimp)
|
||||
* A derived work which may be trivial. However, any changes may be (C)2023 by Aldercone Studio
|
||||
*
|
||||
* Original copyright, applying to most contents (license remains unchanged):
|
||||
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __BRUSH_EDITOR_ACTIONS_H__
|
||||
#define __BRUSH_EDITOR_ACTIONS_H__
|
||||
|
||||
|
||||
void brush_editor_actions_setup (PikaActionGroup *group);
|
||||
void brush_editor_actions_update (PikaActionGroup *group,
|
||||
gpointer data);
|
||||
|
||||
|
||||
#endif /* __BRUSH_EDITOR_ACTIONS_H__ */
|
||||
149
app/actions/brushes-actions.c
Normal file
149
app/actions/brushes-actions.c
Normal file
@ -0,0 +1,149 @@
|
||||
/* PIKA - Photo and Image Kooker Application
|
||||
* a rebranding of The GNU Image Manipulation Program (created with heckimp)
|
||||
* A derived work which may be trivial. However, any changes may be (C)2023 by Aldercone Studio
|
||||
*
|
||||
* Original copyright, applying to most contents (license remains unchanged):
|
||||
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <gegl.h>
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include "libpikawidgets/pikawidgets.h"
|
||||
|
||||
#include "actions-types.h"
|
||||
|
||||
#include "core/pikabrushgenerated.h"
|
||||
#include "core/pikacontext.h"
|
||||
|
||||
#include "widgets/pikaactiongroup.h"
|
||||
#include "widgets/pikahelp-ids.h"
|
||||
|
||||
#include "actions.h"
|
||||
#include "brushes-actions.h"
|
||||
#include "data-commands.h"
|
||||
|
||||
#include "pika-intl.h"
|
||||
|
||||
|
||||
static const PikaActionEntry brushes_actions[] =
|
||||
{
|
||||
{ "brushes-open-as-image", PIKA_ICON_DOCUMENT_OPEN,
|
||||
NC_("brushes-action", "_Open Brush as Image"), NULL, { NULL },
|
||||
NC_("brushes-action", "Open brush as image"),
|
||||
data_open_as_image_cmd_callback,
|
||||
PIKA_HELP_BRUSH_OPEN_AS_IMAGE },
|
||||
|
||||
{ "brushes-new", PIKA_ICON_DOCUMENT_NEW,
|
||||
NC_("brushes-action", "_New Brush"), NULL, { NULL },
|
||||
NC_("brushes-action", "Create a new brush"),
|
||||
data_new_cmd_callback,
|
||||
PIKA_HELP_BRUSH_NEW },
|
||||
|
||||
{ "brushes-duplicate", PIKA_ICON_OBJECT_DUPLICATE,
|
||||
NC_("brushes-action", "D_uplicate Brush"), NULL, { NULL },
|
||||
NC_("brushes-action", "Duplicate this brush"),
|
||||
data_duplicate_cmd_callback,
|
||||
PIKA_HELP_BRUSH_DUPLICATE },
|
||||
|
||||
{ "brushes-copy-location", PIKA_ICON_EDIT_COPY,
|
||||
NC_("brushes-action", "Copy Brush _Location"), NULL, { NULL },
|
||||
NC_("brushes-action", "Copy brush file location to clipboard"),
|
||||
data_copy_location_cmd_callback,
|
||||
PIKA_HELP_BRUSH_COPY_LOCATION },
|
||||
|
||||
{ "brushes-show-in-file-manager", PIKA_ICON_FILE_MANAGER,
|
||||
NC_("brushes-action", "Show in _File Manager"), NULL, { NULL },
|
||||
NC_("brushes-action", "Show brush file location in the file manager"),
|
||||
data_show_in_file_manager_cmd_callback,
|
||||
PIKA_HELP_BRUSH_SHOW_IN_FILE_MANAGER },
|
||||
|
||||
{ "brushes-delete", PIKA_ICON_EDIT_DELETE,
|
||||
NC_("brushes-action", "_Delete Brush"), NULL, { NULL },
|
||||
NC_("brushes-action", "Delete this brush"),
|
||||
data_delete_cmd_callback,
|
||||
PIKA_HELP_BRUSH_DELETE },
|
||||
|
||||
{ "brushes-refresh", PIKA_ICON_VIEW_REFRESH,
|
||||
NC_("brushes-action", "_Refresh Brushes"), NULL, { NULL },
|
||||
NC_("brushes-action", "Refresh brushes"),
|
||||
data_refresh_cmd_callback,
|
||||
PIKA_HELP_BRUSH_REFRESH }
|
||||
};
|
||||
|
||||
static const PikaStringActionEntry brushes_edit_actions[] =
|
||||
{
|
||||
{ "brushes-edit", PIKA_ICON_EDIT,
|
||||
NC_("brushes-action", "_Edit Brush..."), NULL, { NULL },
|
||||
NC_("brushes-action", "Edit this brush"),
|
||||
"pika-brush-editor",
|
||||
PIKA_HELP_BRUSH_EDIT }
|
||||
};
|
||||
|
||||
|
||||
void
|
||||
brushes_actions_setup (PikaActionGroup *group)
|
||||
{
|
||||
pika_action_group_add_actions (group, "brushes-action",
|
||||
brushes_actions,
|
||||
G_N_ELEMENTS (brushes_actions));
|
||||
|
||||
pika_action_group_add_string_actions (group, "brushes-action",
|
||||
brushes_edit_actions,
|
||||
G_N_ELEMENTS (brushes_edit_actions),
|
||||
data_edit_cmd_callback);
|
||||
}
|
||||
|
||||
void
|
||||
brushes_actions_update (PikaActionGroup *group,
|
||||
gpointer user_data)
|
||||
{
|
||||
PikaContext *context = action_data_get_context (user_data);
|
||||
PikaBrush *brush = NULL;
|
||||
PikaData *data = NULL;
|
||||
GFile *file = NULL;
|
||||
|
||||
if (context)
|
||||
{
|
||||
brush = pika_context_get_brush (context);
|
||||
|
||||
if (action_data_sel_count (user_data) > 1)
|
||||
{
|
||||
brush = NULL;
|
||||
}
|
||||
|
||||
if (brush)
|
||||
{
|
||||
data = PIKA_DATA (brush);
|
||||
|
||||
file = pika_data_get_file (data);
|
||||
}
|
||||
}
|
||||
|
||||
#define SET_SENSITIVE(action,condition) \
|
||||
pika_action_group_set_action_sensitive (group, action, (condition) != 0, NULL)
|
||||
|
||||
SET_SENSITIVE ("brushes-edit", brush);
|
||||
SET_SENSITIVE ("brushes-open-as-image", file && ! PIKA_IS_BRUSH_GENERATED (brush));
|
||||
SET_SENSITIVE ("brushes-duplicate", brush && pika_data_is_duplicatable (data));
|
||||
SET_SENSITIVE ("brushes-copy-location", file);
|
||||
SET_SENSITIVE ("brushes-show-in-file-manager", file);
|
||||
SET_SENSITIVE ("brushes-delete", brush && pika_data_is_deletable (data));
|
||||
|
||||
#undef SET_SENSITIVE
|
||||
}
|
||||
31
app/actions/brushes-actions.h
Normal file
31
app/actions/brushes-actions.h
Normal file
@ -0,0 +1,31 @@
|
||||
/* PIKA - Photo and Image Kooker Application
|
||||
* a rebranding of The GNU Image Manipulation Program (created with heckimp)
|
||||
* A derived work which may be trivial. However, any changes may be (C)2023 by Aldercone Studio
|
||||
*
|
||||
* Original copyright, applying to most contents (license remains unchanged):
|
||||
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __BRUSHES_ACTIONS_H__
|
||||
#define __BRUSHES_ACTIONS_H__
|
||||
|
||||
|
||||
void brushes_actions_setup (PikaActionGroup *group);
|
||||
void brushes_actions_update (PikaActionGroup *group,
|
||||
gpointer data);
|
||||
|
||||
|
||||
#endif /* __BRUSHES_ACTIONS_H__ */
|
||||