-*-outline-*-
Gnumeric Spread Sheet task list
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
The bugs are listed in a separate file -> BUGS
Project
- Switch hard coded states on SAX in to use dynamic
- add a parallel i/o mechanism for SAX based i/o to sheet object
- a SAXOut struct and utils as a wrapper for FILE/gnome-vfs & indent info
- xml_sax out using ^^
Optimizations, Polish and Extensions
====================================
This section lists various optimizations/extensions that can be done
to features that already work.
* Component
+ Remove the hard-coded workbook hooks from the sheet.
Initialize the hooks on the workbook_new routine.
* Cell editing
+ Colouring a parsed formula for editing.
* Functions
+ Implement more functions :
- AREAS and GETPIVOTDATA
AMORDEGRC, AMORLINC, CUMIPMT, CUMPRINC, MDURATION, ODDFYIELD,
ODDLPRICE, ODDLYIELD, VDB, YIELDDISC, and YIELDMAT.
+ Fix or finish the following functions :
- COUPDAYS, ODDFPRICE, YIELD, and DURATION
* Data Analysis Tools
- Exponential smoothing
+ Implement standard errors
+ Chart output
- Histogram
+ Chart output
- Moving Average:
+ Chart output
- Random number generation
+ Implement patterned distribution
+ Random Seed input
- Regression
+ Residuals
+ Standardized Residuals
+ Residual Plots
+ Line Fit Plots
* Printing
+ Preview
- Stroke support for zoom etc.
+ Print setup:
- Options buttons
- Improve layout
+ Add the missing options to the Print Dialog
+ Display printing status (pages to go).
+ Add column/row title printing
* Font dialog
+ Get the list of *valid* fonts from GnomePrint
+ Filter font list by font encoding.
+ Create a simplistic dialog (to map to font-bold yes/no).
* Cut&Paste
+ when cuting & pasting a cell that is inside a range on another cell grow
the range of the formula if the cell is pasted in a place where it grows
it boundaries.
* Number formatting
+ FIXME : The formating is incomplete.
- It does not support seconds fractions.
- It incorrectly accepts mmm:ss as some sort of minute spec.
- Add/remove decimal buttons on the toolbar are screwed for
items with different formats for negatives.
- There is too much replicated code for generating formats
and recognizing them in the format dialog.
+ TODO :
- Too much parsing is taking place when formating. We should
have set all that up beforehand when the format was parsed.
A methodology similar to that used by the regexp compiler should
be used.
* Sheet
+ Column sizes
Columns should have an "auto-grow-up-to-this-point" feature. Beyond that
size, it would truncate as it does now.
+ Cell data entry
double click on cell allows editing as in main editing box.
+ Cell comments
Cell comments should be wrapped - at least so that they do not run
off the screen.
+ Headers for Columns and Rows
The captions should be customizable, ie instead of "A1", it should
be possible to display "Sales". We can use this with Michael's
name support.
+ Captions (ItemBar)
It should be possible to set the dimensions of the cols, rows to
contain information as "min_points", "max_points".
Interesting side effect: min_points == max_points means "fixed".
* Auditing
+ Write the sheet auditing code.
* Editing
+ Object Clipboard
If sheet->mode is OBJECT_SELECTED cut/copy/paste should operate on
the object.
+ Object properties
+ Objects
Load / save of Bonobo objects.
* File Load/Save
+ Support for popular formats.
I have the specs for the XS3 format. SC should be
trivial to support as well (from the guile sources)
+ star office, kspread ?
+ Add "hints" to the file save routine based on the registered
formats.
+ Supply default extension to use with a write operation.
+ Improve handling of unknown fonts and functions when importing.
* Unicode
+ Support throughout Gnumeric.
* Workbooks:
+ Consider addition of a cursor warping operation to jump between
open workbooks.
+ Notebook
- Decrease flicker when paging between sheets.
- Enable capability to select multiple sheets.
* Office compatibility
+ Write an XML plugin to output 'Publish as Web' style XML for
Office 2000 and 'explorer' compatibility.
* Parser
+ fully support R[-1]C[3] type references.
* Internals
+ When filling large regions (ie, select, enter data, control-enter),
we are taking ages. In those cases, we could probably:
1. Start using speciallized allocators for Cell, ExprTree, Value.
2. Do async rendering of cells. eg when they are being displayed or during an idle handler.
* Calculation
+ Rework 'Name' dependencies so we can re-express names.
+ Dependancies for - CELL, INDIRECT functions.
+ Implicit iteration. For an array expression that returns scalar results.
which takes a range as a scalar argument, apply the expression to each element
of the input range.
+ Make checks for inserting rows/cols more intelligent in the face of multiple selections.
Currently it just checks the first selected range for infiniteness we need to check all
selected ranges.
* Excel Import
+ Localise sheet/workbook Name import.
+ Import names even if they arn't referenced.
* Excel Export
+ Detect large style ranges and correctly set the default row/col/sheet styles.
1.1
==========
These section lists features that are for post 1.0 versions
and are mostly just ideas or things that can't be implemented
yet (on short term) for technical reasons. Feel free to step in
and try to implement them, but remember that the things listed
under "1.0" are more important.
* Page Borders
+ These are border that should be visible on the sheet and
indicate where new pages start when printing. Jody has been
doing work on this.
* Global Preferences Dialog (!)
+ Needs to be adopted.
* Conditional Formatting
+ Conceptual progress being made, nothing concrete yet.
Very tightly coupled with Data Validation, see below.
* Pivot Tables (!)
+ Needs to be adopted. Look at other implementations of this
feature to get an idea what needs to be done.
* Scripting (!)
+ Needs to be adopted.
* Function Documentation
+ There is some function documentation already, but
it's incomplete.
* Subtotals
+ This will really need to wait for a while.
* Autofilter
+ ?