This repository facilitates development of a visual formula editor for LibreOffice/OpenOffice Math. This work was started by me (Jonas Finnemann Jensen) during GSoC 2010 with Go-OO. During development this repository will be merged with libreoffice/writer on a random basis, but will hopefully at some point be merged back into LibreOffice.
Description of the GSoC project that started this, be found here. Please note that this page will not be updated futher, but it does contain relevant information about the project and discusses the implementation strategy. I might also post progress updates on my blog. But the project status will be documented and updated in this file, see below.
Videos of the patch in action can be found at:
- Development Preview 3 (13th of August)
- Development Preview 2 (26th of July)
- Development Preview 1 (21th of July)
(All videos can also be found here better quality and various formats).
If you're interested in more technical details the source (that I've written) is extensively documented with doxygen comments. You're also welcome to contact me with any questions, or wish to help hacking. My email is jopsen@gmail.com and I'm jopsen on #LibreOffice (if I'm online), there's also a finite set of other options.
This is basically my todo list, so don't be surprised if things are not immediately obvious.
- Draw a non-blinking line under the the visual line that the caret is in, in
SmCaretDrawingVisitor
. SmGraphicWindow::KeyInput
relies on comparison ofsal_Char
, a better way must be available for CTRL+c- Code style (missing spaces, linebreaks and a few renames)
- More documentation
- Replace
j_assert
withDBG_ASSERT
SmCursor::InsertCol()
method for added columns to matrices should be implemented.SmCursor
should support deletion of lines, rows, cols and sub-/superscripts.SmCursor::InsertSubSup()
should wrap the body in aSmBraceNode
if the body is anSmOperNode
,SmBinVerNode
, etc.- Make caret in visual editor blink.
- Don't draw visual editor caret, when
SmGraphicWindow
doesn't have focus. - When OpenOffice Math runs in standalone mode it centers the current formula, this is not nice for visual editing.
SmAlignNode
andSmFontNode
are ignored by visual editor, figure out how these should work.- Solve the flickering issue when drawing formulas (See e-mail)
- Make " a shortcut for creating an
SmTextNode
withFNT_TEXT
, also check thatSmNodeToTextVisitor
supports this. parse.cxx
merges multiple blanks into oneSmBlankNode
, the visual editor doesn't...
- Global clipboard integration
- Support undo/redo with
UndoManager
integration - Consider improving GUI for "Formula Elements"-dialog, most buttons work with visual editor
- Consider allowing users to enter commands in visual editor, by prefixing the command...
- Optimize things, for instance
SmCursor::AnnotateSelection()
is called way too many places... - Improve handling of
MoveUp
andMoveDown
inSmCursor::Move
,SmCaretPos2LineVisitor
might need improvement.
Items are organized by complexity and importance, and I'm not sure everything needs to be addressed before release, but it constitutes a list of things I can work on.