mirror of https://github.com/GNOME/gimp.git
488 lines
17 KiB
Plaintext
488 lines
17 KiB
Plaintext
Please add things to this file when the need to do them is
|
|
discovered. Explanations of why or how this would be useful are
|
|
even better. Insight into possible ways to implement are even better
|
|
than that.
|
|
===================================================================
|
|
|
|
gui/functionality separation
|
|
|
|
both file scope wise and in use, particulary so that
|
|
the gui version of the tool uses the pdb whenever possible
|
|
(for finding bugs, and for macro recording)
|
|
|
|
May be a good idea to actually put the core and the gui in
|
|
separate subdirectories. --sg
|
|
|
|
fix the palette dialogs
|
|
|
|
(it would be nice to be able to actually edit
|
|
palettes and the like), also replace that menubox with a clist or
|
|
something. Right now, the palette dialog is unresizeable, and
|
|
mostly useledd useless for anything other than picking colors.
|
|
Import/Export options for palettes here would be good to.
|
|
|
|
Palettes should become a first-class core data structure (like
|
|
layers) with their own PDB interface. (Goes with below.) --sg
|
|
|
|
* User opinion: The menubox has one big advantage: it is
|
|
_small_ in size. The problem with _lots_ of palette files is
|
|
known. But is it possible to make the menubox make
|
|
submenus if it gets longer than the screen? Isnt this more
|
|
like a gtk-issue? * --tigert
|
|
|
|
integrate palette saving into core
|
|
|
|
An option to save a current images pallete to a file is
|
|
handy. Theres currently a plugin to do this, but for
|
|
integration it might be better in the core.
|
|
|
|
more configurabilty (eek)
|
|
|
|
I would like to be able to let the user stick arbitrary
|
|
buttons into the toolbox and attach arbitrary functions to
|
|
them. --sg
|
|
|
|
What about a second button-bar? We dont have icons to add to the
|
|
main toolbar anyway, so it would be hard to distinguish what
|
|
button does what (they are small -> text wont fit).
|
|
Look at my mockup:
|
|
http://tigert.gimp.org/files/temp/wilber_palette.gif
|
|
It might work in such way that
|
|
1. you click add -> new button
|
|
2. then right click on it -> you would get the normal <Image>
|
|
-menu (like when clicking right mousebutton over an image)
|
|
from which you could select the plugin/tool to assign to
|
|
this button.
|
|
3. To apply the thing to an image you first click on the
|
|
button and the statusbar would show something like 'click
|
|
on an image to apply function xxxx' -> click an image to
|
|
assign the tool an image and apply it.
|
|
Now this is just an idea, but it might solve the 'which image do
|
|
we want to apply things to? -problem.
|
|
Also see http://www.home.unix-ag.org/simon/gimp/gimpbuttons.html
|
|
Simon Budig has an experiment similar to this. Maybe it would
|
|
make sense to implement something like this?
|
|
--tigert
|
|
|
|
fix stuff so that the tile size could actually be changed eventually
|
|
|
|
Currently gimp core is mostly setup to use a potentially
|
|
variable tilesize, but lots of plugins and some internal stuff
|
|
are hardcoded to expect 64x64 tiles. This is good for 8-bit
|
|
images on x86, but with potential of deep images and other
|
|
platforms, having this variable could be a real gain in
|
|
performance tweaking.
|
|
|
|
This will be hard because the XCF file format assumes 64x64
|
|
tiles. XCF load/save will have to be written to retile
|
|
images, or the XCF file format redesigned. --sg
|
|
|
|
file new dialog stuff (i'm working on this...Adrian)
|
|
|
|
1. default to size of cut buffer
|
|
2. add units and resolution options
|
|
3. make x,y values have dropdowns for last 5 or so used sizes
|
|
4. maybe an estimate of how much ram the image will take?
|
|
5. maybe some "preset" common image sizes?
|
|
->
|
|
* 468x60 banner ad
|
|
* 88x31 banner ad (Netscape NOW! -button for example)
|
|
* A4, A5, A6, US Letter etc.. sizes so that they take
|
|
the chosen resolution into account ("Hm. I need to make
|
|
an A4 sized pic in 300DPI...") --tigert
|
|
6. resolution/units need to be exported to the whole app
|
|
(probabaly in gimage.c) so size/scale, text tool, etc can
|
|
use them.
|
|
|
|
export filters:
|
|
|
|
This is one that would make some alot of sense intuitively,
|
|
and could be very conveint for scripting. Currently, theres no
|
|
"one step" way to save images easily. This feaure would be
|
|
useful for example in the Mail plugin, where it could flatten,
|
|
convert, etc the image in one step.
|
|
|
|
previews in file save (for jpeg compression, etc):
|
|
|
|
Currently there is no easy way to see the effects of
|
|
compression or other image saving effects before actually
|
|
saving and reloading an image.
|
|
|
|
save/restore state of major dialogs:
|
|
|
|
Gimp currently has no way to save the state of the gimp
|
|
desktop. Perhaps some of the gnome session management stuff
|
|
could be useful here. It should be exported to the PDB too.
|
|
|
|
Saving of window geometry is now there. --Sven
|
|
|
|
keybindings for simple "binary" tools:
|
|
|
|
(for ex, flip should flip horiz normal, and shift+click to
|
|
shift vertically). The more that can be done by power-users
|
|
without having to delve through dialogs the better.
|
|
|
|
curve deal in the gradient editor?:
|
|
|
|
It could be useful to have a curve widget for each of the
|
|
color channels or hsv. For example, you have a custom palette
|
|
you like, but you want it to get dark from left to right. You
|
|
pop up the "Value" curve and make a curve getting darker.
|
|
|
|
(Note: this would require a complete rewrite of the gradient
|
|
_engine_, not just the editor. --sg)
|
|
|
|
some degree of drawing tools, straight line, etc:
|
|
|
|
Perhaps large parts of gfig could be salvaged for this. Its
|
|
not something "paint" programs traditionaly do, but there
|
|
usefulnes is obvious. square/circle/ellipse are already there
|
|
basically (just make a wrapper to select and stroke). need a
|
|
better straigh line drawing ui though.
|
|
|
|
paths, and better beziers would be a nice touch:
|
|
|
|
Being able to load, save bezier paths, and convert from bezier
|
|
to selection, and selection to bezier would be very
|
|
benificial. This combined with a working iscissors would make
|
|
for extremely flexible selection mechanisms.
|
|
|
|
Probably integrate the paths into the Layers&Channels dialog?
|
|
|
|
Macro recording and better scripting support:
|
|
|
|
This pretty much is going to require the aforementioned
|
|
gui/func seperation. More stuff needs to be triggered via pdb
|
|
to make thsi a possibilty.
|
|
|
|
More Xinput stuff ( gradient brushes, pen "strokes" ?):
|
|
|
|
This is very important for "artist" types. The more
|
|
value-added utility we can make for Xinput stuff the better.
|
|
|
|
natural media tools (raph?)
|
|
|
|
A "Revert To" menu options:
|
|
|
|
Open a image, munge it around a whole bunch, decide you dont
|
|
like the results, and you dont have enough undo
|
|
steps. File->revert would easily reload the file from disk.
|
|
|
|
Redesign of the Blend Tool dialog? (it's rather large...)
|
|
|
|
"Fit text to selection":
|
|
|
|
make selection, scale text to fit it... A suggestion from
|
|
Xach, Perhaps instead of rendering the text and font size
|
|
exactly, make a bounding box of it, then scale the bounding
|
|
box as approriate. When the box size is chosen, figure out the
|
|
best-fit font size and render it.
|
|
|
|
instead of rendering into a preview, render preview directly
|
|
onto the image.
|
|
|
|
(Text should be redone entirely, with a native T1/TTF
|
|
interpreter. Using X to render text is cheap but nasty. --sg)
|
|
|
|
a complete groundup rewrite of iscissors:
|
|
|
|
Isciissors in theory are very useful. 1.0 iscissors basically
|
|
dont work though. It has also been mentioned that the gui from
|
|
.54 was much better.
|
|
|
|
Interactive resizing/scaling of layers (maybe with handles on the edges)
|
|
|
|
progress bars on long proccesses:
|
|
|
|
Xcf loading/saving, transforms, complicated blend's etc. The
|
|
user gets no feedback about what is going on. This is bad.
|
|
|
|
(Maybe run core image ops from the idle loop? We already do
|
|
this for curves et al. --sg)
|
|
|
|
status bars on image window:
|
|
|
|
(maybe swallow plug-in progress bars, show current x,y, file
|
|
type, etc...)
|
|
|
|
This is mostly done.
|
|
|
|
- optionally show that information in the toolbar ?
|
|
- probably dragable to the toolbar and vice versa
|
|
|
|
"open into layer" and new image from cut buffer stuff should perhaps
|
|
be in core?:
|
|
|
|
This would be "Paste into New" and/or "Copy to New". Should be
|
|
simple. Theres a script to do this, but the functionailty is
|
|
so simple it perhaps would eb best to do in core.
|
|
|
|
drag & drop for layers:
|
|
|
|
(both in the dialog, and from image to image). Changing
|
|
postion of layers now is quite a pain. The onyl choices are to
|
|
raise by one, and lower by one. It would be much nicer to be
|
|
able to click & drag a layer to its new spot in the stack.
|
|
|
|
more indicators of current status:
|
|
|
|
(X,Y position, selection size and placement etc ), maybe in
|
|
another dialog, maybe a status bar? Lots of request for
|
|
this.
|
|
|
|
This is mostly done. --Sven
|
|
|
|
Clean up swapfiles:
|
|
|
|
Gimp is prone to leaving large swapfiles lying around. Perhaps
|
|
on startup or exit it could clean up unclaimed
|
|
swapfiles. Problem: how to tell a unclaimed swap file (one
|
|
could be in use by another gimp). Maybe add a unique id to the
|
|
swap file?
|
|
|
|
Also should handle out-of-space on swap device better.
|
|
(Couldn't be much worse.) --sg
|
|
|
|
Automagically guess whats a good tilecache size:
|
|
|
|
Not sure how to do this. maybe offer suggestions in the
|
|
preference dialog or install.
|
|
|
|
an artist palette type of color selector:
|
|
|
|
(maybe based on raphs watercolor deal?) notebooked with the
|
|
regular color selector? (believe seth is working on this).
|
|
|
|
BETTER FONT SUPPORT!
|
|
|
|
even if we have to go around X. and a better font selector
|
|
too. Perhaps the new gtk font selector could be used. It seems
|
|
handy. The actual support may require integration of type1lib
|
|
or freetype or similar. Probabaly be an extension, gimp could
|
|
fall back to X font rendering if need be.
|
|
|
|
Refresh font list while running.
|
|
|
|
(There's a good argument for making all text operations run
|
|
thru an extension. --sg)
|
|
|
|
ability to get an exact count of the total number of colors in the
|
|
image:
|
|
|
|
Xpm plugin has an algo to do this. Perhaps it should be in the
|
|
core.
|
|
|
|
indexed/color reducing to arbitrary number of colors:
|
|
|
|
Current convert.c is limited to indexing to 8-bit palettes or
|
|
less. Dont know what would be involved in making it work for
|
|
larger palettes. convert.c has some deep magic involved in it,
|
|
so who knows.
|
|
|
|
(Related: indexed images with more than 8 bits depth. --sg)
|
|
|
|
Folding box for the toolbar:
|
|
|
|
So you can have it be 9x3 like now, or 1x27, or
|
|
whatever... gyve has rough outlines of a widget to do this...
|
|
(belive msw is working on this)
|
|
|
|
optimize transform_core (special cases, fft stuff?, optimizations only
|
|
raph understands, etc...)
|
|
|
|
brush-shaped cursors:
|
|
|
|
Possible solutions, generate cursors on the fly, use shaped
|
|
pixmaps, possibly just draw directly on the preview, any other
|
|
ideas? Raphs caanvas might offer the oppurtunity to do this
|
|
in color and anti-aliased.
|
|
|
|
pixmap brushes:
|
|
|
|
Should be simple. maybe need a new format that would include
|
|
data/mask (probabaly just use a xcf). Once its loaded in as a
|
|
tempbuf, a few tweaks in the paint tools ought to handle
|
|
it. Should it be a new tool? jsut a new brush type for old
|
|
paint to ls?
|
|
|
|
Quickmask/paintable selections:
|
|
|
|
Any ideas on the best way to do the ui? The fundamentals of
|
|
beng able to do this are already there. Just need a good way to
|
|
present it.
|
|
|
|
let pdb stuff register under the layers_dialog menu:
|
|
|
|
Lots of potential in scripts to do layer/channel manip. Might
|
|
as well let them register on those menus.
|
|
|
|
some sort of mdi for dialogs so you could tab them together or
|
|
pull them apart:
|
|
|
|
Would be nice to be able to pile all the dialogs into one big
|
|
notebook. (think msw is working on this)
|
|
|
|
make color picker able to choose from any color on the screen.
|
|
|
|
This sounds really simple. Any ideas?
|
|
|
|
Also, set a radius for color picker to pick an "average" from
|
|
|
|
dodge/burn/sponge/smudge tools:
|
|
|
|
several people have commented on the need for this. Anyone
|
|
know how to do it well?
|
|
|
|
Maybe integrate iwarp stuff into 'convolve' tool (or into a separate
|
|
one)? Iwarp gui could be put into the tool options dialog
|
|
-tigert
|
|
|
|
session management
|
|
|
|
Well, what we have right now is the following:
|
|
Dialog geometries are always saved and restored. Dialogs that were
|
|
opened on last save (or last exit if "Save window positions on exit"
|
|
is choosen in the Preferences) are reopened on startup if you
|
|
call the gimp with command-line option -r or if you have
|
|
"Always try to resore session" checked in Preferences.
|
|
This allows to create a preferred gimp desktop, exit to have it
|
|
saved. If you toggle "Save window positions on exit" off now, the
|
|
settings will stay forever.
|
|
|
|
The device status is saved and restored too, with a similar scheme.
|
|
|
|
Text Tool
|
|
More complete font selection
|
|
Multiple lines and alignment
|
|
Kerning, hints, etc.
|
|
|
|
big cad style cross-hairs cursor:
|
|
guides come close, but we probabaly dont wont somethign like
|
|
that again.
|
|
|
|
more info available to the user in general (current brush, etc)
|
|
|
|
some sort of image locking:
|
|
so we don't munge images by doing >1 ops on them at once.
|
|
For plugins in particular, may also simplifie some of the tool
|
|
redesign.
|
|
|
|
Suggestion from Ville Hautamaki (CW):
|
|
Pattern groups
|
|
Especially once patterns are demand-loaded. It would be
|
|
very conveint to say "load all the wood patterns",
|
|
or even just "set 1" etc.
|
|
|
|
Overwork the transform tools UI:
|
|
It would be nice if the transformation wouldn't automatically
|
|
start when releasing the mouse. Instead have a window that
|
|
shows the currently choosen transformation numerically
|
|
(e.g. Scale X: 0.75 | Scale Y: 1.00). The transformation
|
|
should be editable there and with handles on the
|
|
outline. Perform the transformation when "OK" is clicked in
|
|
the dialog or when you doubleclick(?) into the image.
|
|
|
|
The new transform tool UI is almost there, and it rocks!! --Sven
|
|
|
|
Probably have a "Preview" button too that performs the transformation
|
|
without interpolation:
|
|
As it stands, transforms can be very slow and feedback to the
|
|
user is smalld. A preiview would save much time and maek the action
|
|
more accururate.
|
|
|
|
Selections should always be bezierifyable.
|
|
|
|
Selections should be transformable:
|
|
(e.g. rotate an elliptical selection; the selection, not it's
|
|
content!!).
|
|
This shouldnt be too hard. Perhaps just need to add the hooks
|
|
for the selection info (usually in TileManager structs) to
|
|
be passed to the existent image ops.
|
|
|
|
Have a possibility to add a text as selection:
|
|
If selections would be editable as described above, we'd
|
|
then have editable vector-text. Is this possibel with type1 fonts?
|
|
|
|
option to create New Indexed image (with the choice of pattern foo) ?
|
|
|
|
Integrate gimp-16 stuff?
|
|
Would be difficult, but possibly very useful.
|
|
see http://www.netrover.com/~rayl/gimp/
|
|
|
|
A way to define a default comment
|
|
|
|
larry is working on named data attachments for images. More
|
|
or less a generic way to define image comments and other
|
|
embedded info.
|
|
|
|
Better use of wm hints.
|
|
|
|
Not sure where the line between dialogs and windows
|
|
lies, but it's something to look into.
|
|
|
|
Make file load/save errors not worthy of existence.
|
|
|
|
Right now the errors from the file plugins pop
|
|
up in weird places, at weird times, and are often
|
|
basically useless. This is bad.
|
|
|
|
Image pager/explorer
|
|
|
|
Basically similar in idea to a pager on a virtual desktop
|
|
wm, except a large image is the pager. Pop up a small preview
|
|
of the image, with a higlighted rectangle indicaing the currently
|
|
viewable area. User can then move around in the preview and the
|
|
highlighted area becomes the on screen viewable part. May
|
|
also be useful in file loading, where one could see a preview of a
|
|
large image and then jsut select a subset toa ctually load into
|
|
mem.
|
|
|
|
Code to set built in icons or icon path?
|
|
|
|
Is this the wm's job or soemthing internal?
|
|
|
|
|
|
Action/active/Procedural Layers
|
|
|
|
People seem to want them. For some ops it would be painfully
|
|
easy. For alot of stuff i havent a clue. Anyone have a good plan
|
|
on how to potentialy implement this?
|
|
|
|
generic preview code in libgimp for use by plugins
|
|
|
|
All plugins should have a preview. it would be nice if there
|
|
were code in libgimp to make this easier. Possibly just
|
|
generalize a good exmaple of preview code (quartics?) and
|
|
slap it in libgimp. Maybe throw some of the gck stuff in there
|
|
too. Or possibly make a new plugin helper lib combining
|
|
gck, megawidget, preview code, etc.
|
|
|
|
abiltiy to specify which gimprc to parse on commandline
|
|
|
|
Some people need to be able to use different gimprc on
|
|
different machines (for ex, 8-bit vs 24 bit display).
|
|
|
|
Undo groups
|
|
|
|
basically for snapshots for the UNDO stack instead of realying on
|
|
everything to be recorded. Particualr useful in scripts.
|
|
|
|
gradient map layer/paint mode
|
|
|
|
map values from current gradient to value/intensity
|
|
|
|
script-fu
|
|
|
|
proper font selector instead of typing the silly thing in
|
|
maybe a color history too...
|
|
|
|
Well, the script-fu interface has seen a few extensions and Adrian
|
|
is working on adapting the scripts to the new interface.
|
|
|
|
tools
|
|
|
|
Make tools listen for gimage dirty signals to fix munging.
|
|
When a tool caches image data privately, you need to reset
|
|
when the image gets dirty.
|
|
|