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