Updated Czech translation
[gnumeric.git] / BUGS
blob5e5f2c3e456109792506ebd5245124a16aa68381
1    To report Gnumeric bugs, please visit bugzilla.gnome.org.
3     This file is used as a scratch pad by developers.  It is a list of known
4 issues that need to be addressed.  Divided into, things that will prevent
5 release, and longer term bugs.
7 -------------------------------------------------------------------------------
8 For 1.10
9     - Bump libgsf version req and de-conditionalize xlsx pivot import.
11 Release Critical
12 ----------------
13     - hidding col/row headers should not hide outline symbols
14     - header selection broken when there are groups
16 In Progress
17 -----------
18     Jody
19         - xlsx chart axis export
20         - data slicers
21         - CELL translation & array handling
22         - INDEX range res, iteration
23         - ExprEntry extensions
24         - Tool to filter dups
25         - python wrapper for libspreadsheet
26         - mis-export of array expr
27             http://bugzilla.gnome.org/show_bug.cgi?id=322096
29     : s/range_equal/gnm_range_eq/
31 Review
32 ------
33     - func name translation             {Manny}
34     - merge libgda port
36 Target Features
37 ---------------
38 - insert cut
39 - clipboard handlers in plugins
40 - load/save of external references
41 - all the merged cell singleton bugs
42 - scripting
44 Short term goals
45 ----------------
46     - Use go_glade_signal_connect (and friends)
47     - ={A1:A3+rand()}   only calls rand() once.
49 Misc stuff that should be fixed
50 -------------------------------
52 - Missing undo/redo for
53     - Freeze panes (tricky this is a view attribute)
54     - `Add Scenario' Portion of Solver
56 - cols/rows
57     : Make unhide smarter to find hidden regions on either side of
58       selected ranges.
59     : drag based col/row resize should support negative sizes to
60       correspond to hiding.
61     : support delete for discontinuous ranges
63 Worries
64 -------
65     : range_translate in stf.c looks suspicous.
66     : Add bounds checking of integers on the xml based importers
67     : do bounds check in excel_get_text
68     : Select graph, Copy, and paste to Emacs: used to crash, but now it
69       just g_barfs and pastes empty string.
71     - Create new type string/double/int (not bool) for BIN2DEC etc.
72     - Allow missing arguments that are not '?' for ACCRINT.
74     - TestForBiffConsumer : #REF ??
75     - accrint-test.xls : why fail ?
76     - BAHT functions
77     - broken-name.xls
78     - database_test.xls
79     - div0-xp.xls
80     - edward~1.xls
81     - eng.xls
82         - XL returns real numbers as strings from complex functions
83         - Check difference in besseli
84     - errors.xls
85         : calc of interest
86         : #REF on sheet2
87     - extract-clean-new.xls : loss of data in col A ?
88     - furigana.xls : #NAME?
89     - global_calling_placeholder.xls
90     - named-expr-95.xls
91     - named-expr-97.xls
92     - operand.xls
93     - pivot-edited.xls : odd colours in the 'the range that contains' box
94     - store and persist view modes
95     - fix bogosity of 'ant' cursors being in sheet_view and having the app contact them.
97 -------------------------------------------------------------------------------
99 Pending Patches
100 ---------------
102 Blocked Patches
103 ---------------
105 -------------------------------------------------------------------------------
106 Architecture Changes
107 --------------------
109 - Merge wb_control_init_state and wb_control_set_view
110 - Use gtk_window_group_new to keep wbcg's distinct
112 1) things to move into libgoffice
113     1.1) plugin-manager dialog
114     1.2) doc meta data
115         1.2.1) doc meta data dialog     {Trelane and etrunko}
116     1.3) Insert hyperlink dialog
117         1.3.1) Integration with evo address book
118     1.4) move password dialog to goffice
120 2) Font handling (move to GOFont)
122 4) AutoFilter [share functionality with slicers]
123     4.19) Change value entries in expr dialog into combos
124     4.4) 2nd value in expr dialog only if 1st is active
125     4.25) Undo redo support for ins/del col/row with filters
126     4.27) combo contains start to end of continuous region
127            not just the end of the selected region
128     4.34) Tooltip on combo with the current filter details
129     4.35) Change icon in combo from arrow to filter instead
130             of changing colour
131     4.36) Support Office 2007 toggle selection
132     4.37) Add fun new types (std dev)
133     4.38) Add new condition types from style-condition
134     4.39) Look at merging style-condition and filter
135     4.40) col selector to autofilter dialog ala OOo
136     4.45) MOOX
137         4.45.1) import
138             4.45.1.1) top10                                     (DONE)
139             4.45.1.2) items
140             4.45.1.3) custom
141             4.45.1.4) dynamic
142         4.45.2) export
143             4.45.2.1) top10                                     (DONE)
144             4.45.2.2) items
145             4.45.2.3) custom
146             4.45.2.4) dynamic
147     4.51) #383400 : '95' should match 95
148     22.52) Clipboard ?? do we want this ?
149     4.53) Support Office 2007 toggle date based buckets
151 5) Data Slicers
152     5.1) I/O)
153         5.1.1) MOOX                                             {David Thorne/Jody}
154             5.1.1.1) import
155                 5.1.1.1.1) Cache Definition                     (DONE)
156                     5.1.1.1.1.1) Groups                         (DONE)
157                     5.1.1.1.1.2) Sources                        (DONE)
158                 5.1.1.1.2) Cache Records                        (DONE)
159                 5.1.1.1.3) Table
160                     5.1.1.1.3.1) Basic                          (DONE)
161             5.1.1.2) export
162                 5.1.1.2.1) Cache Definition                     (DONE)
163                     5.1.1.2.1.1) Groups                         (DONE)
164                     5.1.1.2.1.2) Sources                        (DONE)
165                 5.1.1.2.2) Cache Records                        (DONE)
166                 5.1.1.2.3) Table
167                     5.1.1.2.3.1) Basic
168         5.1.2) xls                                              {Jody}
169             5.1.2.1) import
170                 5.1.1.1) Basics                                 (DONE)
171                 5.1.1.2) sources                                (DONE)
172                 5.1.1.3) Groups                                 (DONE)
173             5.1.2.2) export pivot cache
174                 5.1.2.1) create streams                         (DONE)
175                 5.1.2.2) records                                (DONE)
176                     5.1.2.2.1) SXDB                             (DONE)
177                     5.1.2.2.2) SXFDB                            (DONE)
178                     5.1.2.2.3) SXDDB                            (DONE)
179                 5.1.2.3) streamId record
180         5.1.3) ODF
181     5.2) Data Structures
182         5.2.1) Cache & Fields
183         5.2.2) Slicer & fields
184     5.3) Control Logic
185         5.3.1) Sort by display fields                           (DONE)
186         5.3.2) dump as if all are row fields                    (DONE)
187         5.3.3) Grouping                                         (DONE)
188         5.3.4) Aggregations
189         5.3.5) Filters ('page')
190     5.4) Undo/Redo
191         5.4.1) refresh
192             5.4.1.1) stub                                       (DONE)
193         5.4.2) reconfigure
194         5.4.3) delete
195         5.4.4) create
196     5.5) UI
197         5.5.1) actions                                          (DONE)
198             5.5.1.1) stub                                       (DONE)
199             5.5.1.2) context sensitive                          (DONE)
200         5.5.2) context menu
201             5.5.2.1) hook it up                                 (DONE)
202         5.5.3) field dialog
203             5.5.3.1) stub                                       (DONE)
204             5.5.3.2) re-order fields
205             5.5.3.2) re-order fields
206         5.5.4) cell combos
207             5.5.4.1) create                                     (DONE)
208             5.5.4.2) display for headers                        (DONE)
209             5.5.4.3) support toggles                            (DONE)
210             5.5.4.4) Add ok/cancel buttons
211             5.5.4.5) filter/sort options
212     5.6) Functions
213         5.6.1) GETPIVOTDATA signature
215 6) Undo/redo improvements
216     6.1) Keep a .swp style log of user actions                  {Dan Hall}
217     6.2) Restore Row heights in CmdFormat::undo
218     6.3) X-GNOME-Bugzilla-ExtraInfoScript=myscript
220 7) Drag and Drop                                                {Jon Kare}
221     7.1) Common code framework for dnd and X/W32 clipboard
222     7.2) Find a better place than SheetControlGUI for dnd code
223     7.3) More formats, at least html and text
224     7.6) Autoscroll in 1 dimension and movement in other
226 8) Rich Text
227     8.13) xls
228         8.13.3) collect fonts from markup for export
229             8.13.3.2) comments                                  (partial)
230             8.13.3.2) text boxes                                (partial)
232 9) RTL
233     9.1) Drawing
234         9.1.2) item-cursor
235             9.1.2.4) re-position the autofill handle
236         9.1.4) item-edit
237             9.1.4.4) right alignment editing
238             9.1.4.4) center alignment editing
239             9.1.4.5) rotation
240         9.1.5) wbcg/scg/pane
241             9.1.5.10) autoscroll
242                 9.1.5.10.3) object drags outside window
243     9.2) spans
244         9.2.2) Respect style selected dir
245         9.2.3) add 'context' selected text dir
246     9.3) Model
247         9.3.10) swap action icon depending on state
248         9.3.11) Add entry to format dialog to set text dir
249     9.4) Persistence
250         9.4.5) csv
251         9.4.6) html
252         9.4.7) latex
253     9.5) Printing
254         9.5.7) init preview scroll to right in rtl mode
255         9.5.9) Patterns
256     9.7) Add entry to tab context menu (do we need ?)
257     9.11) sheet objects
258         9.11.7) set direction of views
259     9.12) preview grid ??
260         9.12.1) do we need/want the autoformat examples to swap dir ?
262 10) Functions
263     - Function range_min_k uses an O(n*log n) algorithm.  It should use O(n)
264       algorithm, see Knuth.
265     - Suport >100 style for SUBTOTAL
266     - docs
267         : Make 'func is foo compatible' a flag on the importers
268         : need conventions for including markup
269             - simple bold/italic/font
270             - links
271             - embedded images ??
272     - Support parsing and displaying locale specific function names.
273     - When loading a function that already has a definition (such as a stub),
274       we're in trouble: (a) we just overwrite the old definition in the symbol
275       table, (b) both old and new owner want to remove the symbol on exit.
277       We should somehow steal the old definition (and complain unless the old
278       was a stub) without changing the GnmFunc address.  On exit we should
279       explicitly check that it is ours to remove.
280     - examples
281         1) A registry of named data tables to reference from examples
282         2) The example text should have the expr in C locale
283                 ?? how to reference the sample data ??
284     : HARMEAN with no arguments (or just strings/booleans) should yield N/A,
285       not NUM.
286     : MAXA,MINA with no arguments should yield N/A, not NUM.
287     : STDEVPA,VARPA with no arguments should yield VALUE, not DIV0.
288     : STDEVA,VARA with 0-1 arguments should yield DIV0, not VALUE.
289     : DEVSQ with no arguments should yield #NUM, not zero.
290         ? How did you enter this.  xl-2k refuses to parse that
291         ! Import from a .csv file.
293     : tie the custom ui into action sensitivity pools
294     : support array evaluation for =LARGE and friends
295     : ISREF is a list function ?
297 11) Conditional formats
298     11.1) Data Structures in the core
299         11.1.5) Check re-merging on change
300         11.1.6) Check merging of auto pattern colours on link
301     11.2) Gnumeric XML
302         11.2.3) Add to .xsd schema
303     11.3) MOOX
304         11.3.1) import
305         11.3.2) export
306     11.6) Evaluation
307         11.6.3) Optimize constants (=1)
308         11.6.4) Optimize non-position dependent (=$A$1>3)
309     11.7) Rendering
310         11.7.5) Long spans
311     11.8) Printing
312         11.8.5) Long spans
314 12) Input Messages
315     12.1) Implement
316         12.1.1) Data Structure to store it                      (DONE)
317         12.1.2) Display them
318     12.2) UI to modify them
319     12.6) ODF
320         12.6.1) import
322 16) Protection limits for selection
323     16.2) I/O
324         16.2.1) Gnumeric
325             16.2.1.1) Extend XSD
326             16.2.1.2) SAX Export                        {partial}
327             16.2.1.3) SAX Import
328             16.2.2.4) DOM Import
329         16.2.3) ODF
330             16.2.3.1) Import
331             16.2.3.2) Export
332     16.3) Honour flags for Return/Tab
333         16.3.1) Return/Tab
334             16.3.1.1) Initial                                   (DONE)
335             16.3.1.2) Wrap around
336             16.3.1.3) Optimize finding next unlocked
337         16.3.2) mouse click                                     (DONE)
338         16.3.3) range selection                                 (DONE)
339         16.3.4) keyboard range extension
340         16.3.4) select all
341         16.3.5) cols/rows
343 17) Explicit Page Breaks
344    17.3.3) ODF
345     17.3.3.2) Export    {merge breaks and styles}
346     17.3.4) Lotus ?
347     17.3.5) Applix ?
348     17.3.6) Create User Interface for them
350 2) stf
351     2.4) Provide an optional mechanism for specifying the
352          target location useful for text to columns, and
353          import into sheet
354     2.8) Make listed separators locale dependent (ie translators
355          should be able to define separators)
356     2.14) Implement format guessing.
357     2.15) Put big "best guess" button on front page.
358     2.17) Tabs: handle optional expansion.
360 3) hlinks
361     3.4) XLS export (6.10)
362       3.4.1) fix import of short names without long names
363     3.5) ODF
364         3.5.1) import
365         3.5.2) export
366     3.6) Entering text of the form scheme://blah or a@b.c
367             should insert hyperlinks
368     3.7) HYPERLINK function should create link.
370 6) XL
371     6.5) Intersection, union and set export
372     6.12) Set operand classes
373         6.12.3) check target type of range/intersect
374     6.13) image export
375         6.13.1) Excel95
376     6.13) chart import
377         6.13.8) Axis
378             6.13.8.5) double axis import on simple_bar2
379             6.13.8.6) high/low flag is for partner not self
380         6.13.9) Gradients
381             6.13.9.5) From center
382             6.13.9.6) From corner
383             6.13.9.8) Two colour alpha (is this possible)
384             6.13.9.10) One colour alpha (is this possible)
385             6.13.9.11) presets
386         6.13.10) override auto series indexing for xls
387         6.13.11) error bars
388     6.14) chart export
389         6.14.1) Infrastructure
390             6.14.1.4) collect fonts
391             6.14.1.5) collect fmts
392             6.14.1.6) Create a NullRenderer for measurement
393             6.14.1.7) Handle multiple charts in a graph
394             6.14.1.8) spid group allocation for gradients
395         6.14.5) Axes
396             6.14.5.2) discrete axis
397             6.14.5.4) handle area plot axes
398             6.14.5.5) radar plot axes
399             6.14.5.7) label fmt
400         6.14.6) Area Formating
401             6.14.6.3) Gradient
402             6.14.6.3) Image
403         6.14.8) labels
404             6.14.8.1) Content
405             6.14.8.2) Placement
406             6.14.8.3) Markup
407         6.14.8) Legends
408             6.14.8.2) Exceptions
409         6.14.9) error bars
410         6.14.11) Singletons
411         6.14.12) Grid lines
412             6.14.12.1) Import
413             6.14.12.2) Export
414     6.15) Store and round trip macros (functional, but could be prettier)
415         6.15.7) generate CompObj stream
416         6.15.8) generate property streams to get the flags
417         6.15.9) Look into Michael's vba compressor
418     6.17) Excel95 object export
420 13) UI
421     13.1) Zoom
422         13.1.1) Add a 'global' flag for the zoom dialog
423         13.1.2) Zoom to selection
424     13.2) Formula Guru
425         13.2.1) Fix keyboard interface
426     13.3.1) Item Edit
427         13.3.1) Mouse select range
429 14) Polish up Open and Save
430     14.3) sort the file types by precedence and recently used
431     14.4) do we want to persist recently used ?
433 22) Validate from List
434     22.11) Odd .xls storage of aa,bb,cc
435     22.13) ODF
436         22.13.1) import
437         22.13.2) export
439 29) gconf.
440     29.1) Check for errors                                      (DONE)
441     29.2) update on remote changes
442     29.3) see if schema is installed                            (DONE)
443     29.4) Move the pref storage into app and compartmentalize   (DONE)
444           the use of gconf.
445     29.5) update the preference structure on local changes
446           (this is an automatic consequence of 29.2)
447     29.6) Lockdown
448             (from libgnome/schemas/desktop_gnome_lockdown.schemas)
449         29.6.1) /desktop/gnome/lockdown/disable_save_to_disk
450         29.6.2) /desktop/gnome/lockdown/disable_printing
451         29.6.3) /desktop/gnome/lockdown/disable_print_setup
453 30) Cleanup importers/exporters
454     30.1) multiple extensions for exporters, with a default
455     30.2) flag/virtual for an imp/exp to flag viability with current context
456    30.4) remove bogosity of function pointers that are unused
457         in the base instance.
458     30.5) Allow import of multiple views                        {jody}
459     30.5) Allow export of multiple views                        {jody}
461 31) sylk
462     31.1) importer
463         31.1.9) hidden cells
464         31.1.10) cell protection
465         31.1.11) comments
466     31.2) exporter
467         31.2.4) column widths
468         31.2.5) formats
469         31.2.6) fonts
470         31.2.7) styles
471         31.2.9) hidden cells
472         31.2.10) cell protection
473         31.2.11) comments
474         31.2.12) array row sep ';;'
476 32) SheetObjects
477     32.2) Add acetate_create virtual to handle shaped objects.
478     32.5) Use delta from start of drag rather than previous movement
479     32.8) Add ability to fix aspect ratio of drag resize
480     32.10) research the other xl object flags.
481     32.13) selecting object with other objects on top of it should
482            hide them while editing
483     32.14) ngettext for insert/delete objects undo message
484     32.15) Check the stacking of ctrl pts when moving multiple selections
485     32.17) Combos
486         32.17.2) XLS
487             32.17.2.2) export
488         32.17.3) MOOX
489             32.17.3.1) import
490             32.17.3.2) export
491     32.18) Lists
492         32.18.2) XLS
493             32.18.2.2) export
494         32.18.3) MOOX
495             32.18.3.1) import
496             32.18.3.2) export
497     32.19) SheetObjectGroup
498     32.20) editing text boxes (do a derived FooCanvasEditableTextItem) we can
499           steal some of the xim support from item-edit.
500     32.21) rich text for objects
502 33) Rotated text
503     33.2) Create new span type so drawing can overflow cells.
504     33.3) Draw borders sheared.
505     33.4) Draw background sheared when border present.
507 35) Accessibility
508     We can use
509         http://bugzilla.gnome.org/attachment.cgi?id=47315&action=view
510     as a template
512 36) OpenDocument (ODF)
513     36.2) Import
514          36.2.1)  We fail to do proper white space handling on import, see
515                  5.1.1 of the OpenDocument Standard. 
516         36.2.4) col/row manual vs auto
517     36.5) See 12.6 (Input Messages)
518     36.7) See 22.13 (Validation)
519     36.10) See 5.3 (pivots)
520     36.11) See 17.2.5 (page breaks)
522 37) MOOX
523     37.1) Import
524         37.1.2) Named expressions
525         37.1.3) Rich text
526         37.1.6) More print settings
527             37.1.6.1) PI:{error_display,comment_placement}
528         37.1.7) Comments
529         37.1.8) Text direction in styles
530     37.2) Export
531         37.2.2) Named expressions
532         37.2.3) Rich text
533         37.2.6) More print settings
534             37.2.6.1) PI:{error_display,comment_placement}
535         37.2.7) Comments
536         37.2.8) Text direction in styles
538 38) Printing
539     38.3) PI:comment_placement
541 39) Lotus filter
542     39.1) http://www.openoffice.org/issues/show_bug.cgi?id=84496
543          Lots of juicey warnings.  Although we do seem to handle the sheet
544          names correctly.
546 41) win32
547     41.1) Fix preview [#533795]
548         41.1.1) port over evince based preview from unix
549             41.1.1.1) port it
550             41.1.1.2) patch glib [#566348]
551     41.2) python installation [#549387]
552         41.2.1) pygobject build fix
553         41.2.2) automate pygobject build fix
554         41.2.3) package pygobject
555         41.2.4) install pygobject
556     41.6) long pause between license and screen ?
557     41.7) version dll.a the same way the .dll is handled
558     41.8) Add MS Office processing instruction hooks for us
559     41.10) Check registry/gconf wrapper
561 autoformat
562 ----------
563     - leaking styles when an edge is disabled
564     - consider either using the users data as a sample, or at least making the
565       sample adaptive based on which edges are disabled.
567 auto-fill
568 ---------
569     - The autocalc label should use a more readable format and should not get
570       clipped.
572     - Names
573         : references in names do not get changed with cut/paste or ins/del row/col.
574           How to handle relative references in names ?? here.
575         : Dialog
576             * We should start with the expr entry set to either the current cell,
577               or by selecting the first named expression in scope that contains the
578               current cell.
579         : Handle pasting an expression with an un-qualified sheet local name into
580           another sheet
582     - clean up the range_list codes to differentiate a list of ranges from a list
583       of cellranges.
585     - The max row/col canvas scroll size is still hard coded.
587     - let's add simple commands like inc/dec font size and things like that.
589     - Auto resize needs to handle empty cells.
591     - Styles
592         : improve uniform_get to handle full sheet more quickly.
593         : Borders
594             * use new border code for cell format dialog (possibly preview-grid)
596 Import/Export
597 -------------
598     : Look into octave/matlab filters
599     : look into maxima
600     : Talk to shaunm about mathematica
602 Clipboard
603 ---------
604     - May be not export html as table when just one cell is selected.
606 General Ideas
607 -------------
608     - A connection to swivel (www.swivel.com)
609     - Sugar/OLPC UI & collab
610     - Add 'send a frown/smile' button
611     - 'fish eye' zoom to around selection
612     - treemap for hierarchical data
613     - conditional / computed formats
614         : referenced styles (eg for time sheets)
615         : GnmColor computable to move the calculated aspect into the actual
616           selectors
617     - 'Custom' autofilter type to eval expr per cell
618     - autofilter : refresh
619     - macro hook in validation to run proc if valid
621 /* vim : ai, ts=8, sw=4, expandtab */