47 lines
2.6 KiB
Text
47 lines
2.6 KiB
Text
Visual Formula Editor for LibreOffice Math
|
|
==========================================
|
|
|
|
This file contains a list of things to do for the visual formula editor.
|
|
The visual formula editor hack was started by Jonas during GSoC...
|
|
He is, as of writing this, still working on this features, but do by all
|
|
means feel free to help out.
|
|
|
|
Here is the list of things to be done. They are organized by complexity and necessity, note that
|
|
some of the items are wishful thinking... If you have questions please feel free to ping me (Jonas)
|
|
on IRC (jopsen) or e-mail me at jopsen@gmail.com.
|
|
|
|
Easy
|
|
----
|
|
1. Draw a non-blinking line under the visual line that the caret is in, in SmCaretDrawingVisitor.
|
|
2. SmGraphicWindow::KeyInput relies on comparison of sal_Char, a better way must be available for CTRL+c
|
|
3. Code style (missing spaces, linebreaks and a few renames)
|
|
4. More documentation
|
|
5. Replace j_assert with DBG_ASSERT (don't do this yet).
|
|
6. Remove the CreateTextFromNode methods and replace calls to it with NodeToTextVisitor
|
|
7. Extend NodeToTextVisitor to update token offsets so SmNode::GetRow and SmNode::GetColumn will work.
|
|
(These methods can be used to enable synchronization of caret positions between visual and non-visual editor).
|
|
|
|
Medium
|
|
------
|
|
1. SmCursor::InsertCol() method for added columns to matrices should be implemented.
|
|
2. SmCursor` should support deletion of lines, rows, cols and sub-/superscripts.
|
|
3. SmCursor::InsertSubSup() should wrap the body in a SmBraceNode if the body is an SmOperNode, SmBinVerNode, etc.
|
|
4. Make caret in visual editor blink.
|
|
5. When OpenOffice Math runs in standalone mode it centers the current formula, this is not nice for visual editing.
|
|
|
|
Complex
|
|
-------
|
|
1. SmAlignNode and SmFontNode are ignored by visual editor, figure out how these should work.
|
|
2. Solve the flickering issue when drawing formulas (See dev@gsl.OpenOffice.org)
|
|
3. Make " a shortcut for creating an SmTextNode with FNT_TEXT, also check that SmNodeToTextVisitor supports this.
|
|
4. parse.cxx merges multiple blanks into one SmBlankNode, the visual editor doesn't...
|
|
|
|
Complex and non-essential
|
|
-------------------------
|
|
1. Global clipboard integration
|
|
2. Support undo/redo with UndoManager integration
|
|
3. Consider improving GUI for "Formula Elements"-dialog, most buttons work with visual editor
|
|
4. Consider allowing users to enter commands in visual editor, by prefixing the command...
|
|
5. Optimize things, for instance SmCursor::AnnotateSelection() is called way too many places...
|
|
6. Improve handling of MoveUp and MoveDown in SmCursor::Move, SmCaretPos2LineVisitor might need improvement.
|
|
7. Synchronized command text caret and visual editor caret.
|