Visual Formula Editor for LibreOffice Math
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 email@example.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
SmGraphicWindow::KeyInputrelies on comparison of
sal_Char, a better way must be available for CTRL+c
- Code style (missing spaces, linebreaks and a few renames)
- More documentation
SmCursor::InsertCol()method for added columns to matrices should be implemented.
SmCursorshould support deletion of lines, rows, cols and sub-/superscripts.
SmCursor::InsertSubSup()should wrap the body in a
SmBraceNodeif the body is an
- Make caret in visual editor blink.
- Don't draw visual editor caret, when
SmGraphicWindowdoesn't have focus.
- When OpenOffice Math runs in standalone mode it centers the current formula, this is not nice for visual editing.
SmFontNodeare 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
FNT_TEXT, also check that
parse.cxxmerges multiple blanks into one
SmBlankNode, the visual editor doesn't...
Complex and non-essential
- Global clipboard integration
- Support undo/redo with
- 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
SmCaretPos2LineVisitormight 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.