Kaydet (Commit) 4a32655e authored tarafından Jonas Finnemann Jensen's avatar Jonas Finnemann Jensen

Updating todo-file for visual editor, and adding graph dump script

üst b9a06728
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](http://www.freedesktop.org/wiki/Software/ooo-build/SummerOfCode/2010/Jonas).
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](http://jopsen.dk/blog/category/computer/openoffice/).
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)](http://www.youtube.com/watch?v=3foNqKYAlYY)
* [Development Preview 2 (26th of July)](http://www.youtube.com/watch?v=tELPgJIC1sg)
* [Development Preview 1 (21th of July)](http://www.youtube.com/watch?v=W8yXyDiIQPc)
(All videos can also be found [here](http://jopsen.dk/downloads/GSoC2010/Videos/) 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](http://jopsen.dk/blog/about/) 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](http://jopsen.dk/blog/about/).
Project Status
==============
*This is basically my todo list, so don't be surprised if things are not immediately obvious.*
Easy
----
1. Draw a non-blinking line under the 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`
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. Don't draw visual editor caret, when `SmGraphicWindow` doesn't have focus.
6. 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 e-mail)
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.
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.
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).
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. Don't draw visual editor caret, when SmGraphicWindow doesn't have focus.
6. 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.
#!/bin/bash
# Watches for formula dumps by starmath and renders them
# If starmath is compiled with the macro DEBUG_ENABLE_DUMPASDOT defined.
# shift+enter, in the visual formula editor will make starmath dump a
# graphviz graph of the formula tree structure. This is very useful when
# debugging. The formula is dumped to /tmp/smath-dump.gv-
# This script monitors this file and renders the graph when written,
# after which the formula is displayed using feh.
#
# Usage: Let this script run in the background, e.g. start it in a terminal
# (and don't close the terminal). Then compile starmath with DEBUG_ENABLE_DUMPASDOT
# defined, use the visual formula editor to write something and hit shift+enter.
#
# Note: This won't work on Windows as the /tmp/ folder will be missing.
#
# Author: "Jonas Finnemann Jensen" <jopsen@gmail.com>
touch /tmp/smath-dump.gv;
while inotifywait -q -e close_write /tmp/smath-dump.gv;
do
dot -Tpng < /tmp/smath-dump.gv > /tmp/smath-dump.png; > /dev/null
kill `pidof -s feh`; > /dev/null
feh /tmp/smath-dump.png & > /dev/null
done
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment