TODO.xml 15.7 KB
Newer Older
1
<!-- Stuff that is scheduled to be done. Ideas do not go here, put
Sven Neumann's avatar
Sven Neumann committed
2
     them into the old TODO file for now.
3

Sven Neumann's avatar
Sven Neumann committed
4
5
6
7
     This is used to generate the online TODO list for GIMP using the 
     script docs/make-todo. There is a script on developer.gimp.org
     that updates this file daily from anoncvs. If you modify this file, 
     you should check for parse errors by running:
8
9
10

     $ docs/make-todo TODO.xml > /dev/null

Sven Neumann's avatar
Sven Neumann committed
11
     before committing, or you may screw up the online version   -->
12
13
14
15

<todo logourl="wilber.png">
  <title>GIMP TODO List</title>

Sven Neumann's avatar
Sven Neumann committed
16
  <section>
Sven Neumann's avatar
Sven Neumann committed
17
18
    <title>General</title>

19
    <entry size="big" difficulty="advanced" status="60%" target="1.4">
Sven Neumann's avatar
Sven Neumann committed
20
21
22
23
24
25
26
27
28
29
30
31
      <title>Port to glib-2.0 and gtk+-2.0</title>
      <description>
	<p>
	  This is directly connected to the objectification task mentioned
	  below and should probably be addressed after all objects have
	  been reviewed.
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>    
Sven Neumann's avatar
Sven Neumann committed
32

33
    <entry size="medium" difficulty="easy" status="90%" target="1.4">
Sven Neumann's avatar
Sven Neumann committed
34
35
36
37
      <title>Header cleanup</title>
      <description>
	<p>
	  Headers should only include other headers if absolutely necessary
Sven Neumann's avatar
Sven Neumann committed
38
39
	  (for derived objects for example). All functions must be
	  properly prototyped.
Sven Neumann's avatar
Sven Neumann committed
40
41
42
43
44
45
46
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>    

47
    <entry size="big" difficulty="medium" status="70%" target="1.4">
Sven Neumann's avatar
Sven Neumann committed
48
49
50
51
52
53
54
55
56
57
58
59
60
      <title>Code reorganization</title>
      <description>
	<p>
	  Split the core into several subdirectories and build libtool
	  convenience libraries which are then linked together to form
	  the gimp binary.
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>    

Sven Neumann's avatar
cleanup    
Sven Neumann committed
61
    <entry size="medium" difficulty="medium" status="80%" target="1.4">
Sven Neumann's avatar
Sven Neumann committed
62
      <title>Unify color data types</title>
63
64
65
66
67
68
69
70
71
72
73
74
75
      <description>
	<p>
	  LibGimp already has a new type GimpRGB. This should be used
	  whereever possible. If necessary we can change this to a
	  more generic struct later. Migrating to GimpRGB first will make
	  this much easier.
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>    

Sven Neumann's avatar
Sven Neumann committed
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
    <entry size="medium" difficulty="advanced" status="0%" target="1.4">
      <title>Script-Fu overhaul</title>
      <description>
	<p>
	  Script-Fu shouldn't be an extension running all the time, but
	  an interpreter that gets started once a script is run and
	  terminates after script execution. This should also solve the
	  problem of having multiple scripts running at the same time.
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>    

91
92
93
94
    <entry size="small" difficulty="easy" status="0%" target="1.4">
      <title>Image/File Information</title>
      <description>
	<p>
95
96
	  Additionally to the image comment, GIMP should save and 
	  manage File Information like "description", "keywords",
97
98
99
100
	  "copyright", "year", etc.
	</p>
	<p>
	  File Info data sets should be saveable separately and
101
102
103
	  importable from standard formats. See also 
          <a href="http://bugzilla.gnome.org/show_bug.cgi?id=56443">this
	    bug-report></a>.
104
105
106
107
108
109
110
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>    

Sven Neumann's avatar
Sven Neumann committed
111
  </section>  <!-- General -->
Sven Neumann's avatar
Sven Neumann committed
112

113
114
115
  <section>
    <title>Objectification</title>
    
Sven Neumann's avatar
Sven Neumann committed
116
    <entry size="small" difficulty="easy" status="80%" target="1.4">
117
118
119
120
121
122
123
124
125
126
127
128
      <title>Generic GimpObject</title>
      <description>
	<p>
	  Directly derived from GObject, should probably have a name 
	  argument.
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>    

Michael Natterer's avatar
Michael Natterer committed
129
    <entry size="medium" difficulty="medium" status="40%" target="1.4">
130
131
132
133
134
135
136
137
138
139
140
141
142
      <title>Cleanup existing internal objects</title>
      <description>
	<p>
	  GimpDrawable, Layer, GimpImage, GDisplay need to be redone as
	  proper GimpObjects. Write new objects (with proper names) and 
	  port all stuff to the new objects incrementally. 
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>

Michael Natterer's avatar
Michael Natterer committed
143
    <entry size="medium" difficulty="advanced" status="80%" target="1.4">
144
145
146
147
      <title>Generic data structures</title>
      <description>
	<p>
	  Brushes, Patterns, Gradients should be derived from a GimpData
Sven Neumann's avatar
Sven Neumann committed
148
	  object. This object has to provide hooks to generate previews.
149
150
151
152
153
154
155
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>

Michael Natterer's avatar
Michael Natterer committed
156
    <entry size="medium" difficulty="medium" status="70%" target="1.4">
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
      <title>Generic object container(s)</title>
      <description>
	<p>
	  A GimpContainer that holds GimpObject objects. Comparable to 
	  the GCimContainer, but no serialization for now. Should probably
	  dispatch "changed" (or other) signals from its children.
	</p>
	<p>
	  This container will be used for lists of brushes, patterns, 
	  layers, channels, paths, ...
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>

Sven Neumann's avatar
Sven Neumann committed
174
    <entry size="medium" difficulty="advanced" status="0%" target="1.4">
175
176
177
178
179
180
181
      <title>Abstract GimpBrush object and derived brush types</title>
      <description>
	<p>
	  The GimpBrush object we have now is not a generic BrushProvider.
	  We need an abstract object to derive the different kinds of brushes
	  from (BrushPipes, parametric brushes, ...). It has to provide 
	  methods for the PaintCore to transparently select and use the brush 
Sven Neumann's avatar
Sven Neumann committed
182
183
	  data. Paint tools should have to care about the brush type as less 
	  as possible.
184
185
186
187
188
189
190
191
192
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>

  </section> <!-- Objectification -->

193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
  <section>
    <title>Tools</title>

    <entry size="medium" difficulty="advanced" status="10%" target="1.4">
      <title>Rewrite Path Tool</title>
      <description>
	<p>
	  The Path tool should be rewritten from scratch.
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>
    
    <entry size="medium" difficulty="advanced" status="30%" target="1.4">
      <title>Rewrite Text Tool</title>
      <description>
	<p>
	  The Text tool should be rewritten from scratch using Pango to
	  layout and PangoFT2 to render.
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>

  </section> <!-- Tools -->

Sven Neumann's avatar
Sven Neumann committed
223
224
225
  <section>
    <title>LibGimp</title>

Michael Natterer's avatar
Michael Natterer committed
226
    <entry size="medium" difficulty="medium" status="50%" target="1.4">
Sven Neumann's avatar
Sven Neumann committed
227
228
229
      <title>Restructure LibGimp</title>
      <description>
	<p>
Michael Natterer's avatar
Michael Natterer committed
230
231
232
233
	  Put libgimp, libgimpui (and new libs) into their own
	  subdirectories. Install all header files under
	  $prefix/include/gimp-MAJOR.MINOR/ and change gimptool
	  accordingly.
Sven Neumann's avatar
Sven Neumann committed
234
235
236
237
238
239
240
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>

241
    <entry size="small" difficulty="easy" status="20%" target="1.4">
Sven Neumann's avatar
Sven Neumann committed
242
243
244
245
      <title>Utility library</title>
      <description>
	<p>
	  Put utility functions that are also used by the core into
Sven Neumann's avatar
Sven Neumann committed
246
	  a separate library.
Sven Neumann's avatar
Sven Neumann committed
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>

    <entry size="medium" difficulty="medium" status="0%" target="1.4">
      <title>File plug-in library</title>
      <description>
	<p>
	  Write a library with a bunch of common functions for file plug-ins
	  to remove code duplication in these plug-ins. 
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>
Sven Neumann's avatar
Sven Neumann committed
266
     
267
    <entry size="medium" difficulty="medium" status="90%" target="1.4">
Sven Neumann's avatar
Sven Neumann committed
268
269
270
271
272
273
274
275
276
277
278
279
280
      <title>Move GCK functionality into LibGimp</title>
      <description>
	<p>
	  libgck, as found in the plug-ins dir has some nice functions we
	  want to clean up and make available in LibGimp so they can be 
	  used by the core and plug-ins.
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>

Sven Neumann's avatar
Sven Neumann committed
281
282
  </section> <!-- LibGimp -->    

283
284
285
  <section>
    <title>User Interface</title>

Michael Natterer's avatar
Michael Natterer committed
286
    <entry size="medium" difficulty="medium" status="70%" target="1.4">
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
      <title>Abstract Container Views</title>
      <description>
	<p>
	  Views on data stored in a GimpContainer. The objects need to provide
	  hooks that this view can use to show data like patterns, brushes, 
	  etc. in different views (list, grid, ...)
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>

    <entry size="big" difficulty="advanced" status="0%" target="1.4">
      <title>Effect Preview Widget</title>
      <description>
	<p>
	  A generic preview widget with functions like scrolling and zooming
	  useable by effect filters. Should have adaptive supersampling, 
	  progressive display (if possible) and other neat stuff. 
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>

314
    <entry size="small" difficulty="easy" status="100%" target="1.4">
Sven Neumann's avatar
Sven Neumann committed
315
316
317
318
319
320
321
322
323
324
325
326
327
      <title>Optionally disable tearoff windows</title>
      <description>
	<p>
	  Add an option to the Preferences to disable tearoff menus. Some
	  people seem to be annoyed by it and it should be trivial to 
	  make them optional.
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>

328
    <entry size="small" difficulty="easy" status="100%" target="1.4">
329
      <title>Implement "Save a Copy as..."</title>
330
331
      <description>
	<p>
332
333
	  Add a "Save a Copy as" function which works as "Save as" but
	  leaves the image's name untouched.
334
335
336
337
338
339
340
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>

341
    <entry size="small" difficulty="easy" status="0%" target="1.4">
Zach Beane's avatar
Zach Beane committed
342
343
344
345
346
347
348
349
350
351
352
353
    <title>Implement "Open into layer"</title>
      <description>
        <p>
          Add "Open into layer" that will load a file into the
          current image as a new layer (or layers).
        </p>
      </description>
      <contact>
        GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>

354
    <entry size="small" difficulty="easy" status="20%" target="1.4">
355
356
357
358
359
360
361
362
363
364
365
366
367
      <title>Optionally set a different background for the image window</title>
      <description>
	<p>
	  It's often useful to view the image you're editing on a pure
	  white or pure black background instead of the theme's default
	  background.
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>

Sven Neumann's avatar
Sven Neumann committed
368
369
370
371
372
373
374
375
376
377
378
379
380
    <entry size="small" difficulty="medium" status="0%" target="1.4">
      <title>Fullscreen image view</title>
      <description>
	<p>
	  Add a possibility to show the image fullscreen (padded with the
	  configured canvas background color).
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>

381
    <entry size="medium" difficulty="medium" status="70%" target="1.4">
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
      <title>Cleanup GIMP's color selectors</title>
      <description>
	<p>
	  The pluggable color selectors need to be overhauled. Move
	  the numerical input fields, the sliders, the "old" and "new"
	  color buttons and a color history out of the notebook so
	  they are always visible. Optionally allow an alpha value to
	  be specified. Maybe reduce the size of the color area in the
	  "GIMP" color selector.
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>

Sven Neumann's avatar
Sven Neumann committed
398
399
400
401
402
403
404
405
406
407
408
409
    <entry size="medium" difficulty="medium" status="0%" target="1.4">
      <title>Better keyboard navigation</title>
      <description>
	<p>
	  Think about a proper way to make all menus and dialogs accesible
	  and navigationable without using a mouse.
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>
Sven Neumann's avatar
Sven Neumann committed
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
  
    <entry size="medium" difficulty="medium" status="0%" target="1.4">
      <title>Move DND functions into LibGimp</title>
      <description>
	<p>
	  Move the DND functionality into LibGimp. This needs to be done
	  differently for app and plug-ins, but should be handled 
	  transparently.
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>

    <entry size="medium" difficulty="medium" status="10%" target="1.4">
      <title>Add more widgets</title>
      <description>
	<p>
	  Lost of existing user interface elements can be implemented as
	  proper widgets in libgimpui, so they are useable from everywhere.
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>
Sven Neumann's avatar
Sven Neumann committed
437

438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
    <entry size="small" difficulty="easy" status="0%" target="1.4">
      <title>Add an Option to separately switch off the Layer Boundary</title>
      <description>
	<p>
	  Currently the Layer boundary (the yellow dotted line around
	  the active layer) can only be switched off together with the
	  selection. This is evil.
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>

    <entry size="small" difficulty="easy" status="0%" target="1.4">
      <title>Display the Memory Consumption of the Image</title>
      <description>
	<p>
	  The current memory size of the image should always be
	  available in the interface. Also show the new size of the
	  image in the "Resize" and "Set Canvas Size" dialogs.
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>

466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
  </section> <!-- User Interface -->

  <section>
    <title>Help System</title>

    <entry size="medium" difficulty="medium" status="0%" target="1.4">
      <title>Rethink Plug-In and Script Help</title>
      <description>
	<p>
	  Currently a Plug-In's help file determined by the application
	  from it's executable name. This is broken because is does not
	  cover multiple PDB procedures implemented in one Plug-In.
	</p>
	<p>
	  A possible solution would be to pass the relative path to the
	  help file to gimp_install_procedure(). A similar fix should be
	  applied to Script-Fu and Perl.
	</p>
      </description>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>

  </section> <!-- Help System -->

492
493
494
495
  <section>
    <title>Internationalization</title>

    <entry size="small" difficulty="medium" status="0%" target="1.4">
496
      <title>Context-Sensitive Translations</title>
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
      <description>
	<p>
	  The same english string used in different contexts may need to
	  be translated differently in other languages. Think of a way to
	  implement this using gettext or come up with something better.
	</p>
	<p>
	  There is a patch with a possible solution on ftp.gimp.org,
	  but actually we'd like something cleaner if possible.
	</p>
      </description>
      <url>ftp://ftp.gimp.org/pub/gimp/patches/gimp-chyla-20001207-0.patch</url>
      <contact>
	GIMP Developer List &lt;gimp-developer@xcf.berkeley.edu&gt;
      </contact>
    </entry>

  </section> <!-- Internationalization -->    

</todo>