GSoC 2007 Math Plugin Progress

From Scribus Wiki
Jump to navigation Jump to search

Back to Main Progress Page

Application Text

Stage 1

Plan

  • Familiarize with scribus' code.
  • Write a very basic latex template, so I have something to test in later stages.

Notes

Code:

Latex:

Completion

DONE!

Stage 2

Plan

Start writing a very simple dummy frame and show it to the community to see if I'm doing it right.

Notes

This is not expected to do something useful just a kind of "hello world" so I'm sure that I use the right base-classes, integrate it correctly with the UI and don't make huge mistakes.

Completion

DONE!

Report

(11 Jun 2007)

Hello!
 
Here's my report for this week:
- I checked out 1.3.5
- Finally got it to compile (some problems with qt4)
- Integrated my latexframe code
- Wrote all functions that are required to compile without linker errors
- Checked the QT docs for differences between QT3 and 4. (I didn't work with 4 before)
- Took me quite some time to find out that the build error in
[ 98%] Building CXX object scribus/plugins/svgexplugin/CMakeFiles/svgexplugin.dir/svgexplugin.o
is not related to my changes but was a faulty version in svn.
- Still having some problems with the buildprocess:
 a) is it normal that a full build takes more than one hour or is my machine just too slow?
 b) I can't currently install my build:
 
CMake Error: Error in cmake code at
/home/r2d2/build/Scribus/builddir/scribus/cmake_install.cmake:41:
FILE INSTALL cannot find file "/home/r2d2/build/Scribus/scribus/edit1format.h" to install.
Current CMake stack: /home/r2d2/build/Scribus/builddir/scribus/cmake_install.cmake
 
however I think this is a problem with the "svn up" run after running cmake.
I have to read some cmake docs tomorrow and hope that I don't have to rebuild the whole thing again.
 
Regards,
 
Hermann

Report

(17 Jun 2007)

Hello!

Here is my progress report for this week:
- I finally got my code to a point where it can call
  latex produce an postscript file and read and display this file
- http://r2d2.stefanm.com/latex1.png
- I was trying to find a solution how to integrate it well with the
  UI and the existing code, but I didn't come to a satisfying 
  conclusion: Most of the code depends on the itemType, but I don't 
  allocate a new item type for my frame (as discussed with avox). See
  scribusdoc.cpp:3200 (ScribusDoc::itemAdd) for an example of this 
  problem. Currently I've just replaced the code to create an 
  ImageFrame. This works as my frame is a subclass of ImageFrame,
  but this is a very ugly hack. This is also the main reason why
  I don't consider this code ready for the public and don't want
  to go it to svn yet. 
- I'm using an asynchrous approach to render the frame:
  First a indication is displayed that latex is currently
  being run and when it's ready the content is displayed.
  But there is a problem with this: ScribusDoc::refreshItem
  is protected, so I can't call it when the frame is ready.
  So at the moment the user has to do something that rerenders
  the frame. I think making my class a friend of ScribusDoc
  would be a solution. Waiting till latex is finished is
  no solution, this could block the UI for too long. 


Next steps:
- Resolve the itemType problem. 
- Add code for running an editor.

Regards,

Hermann

Stage 3

Plan

Write a version that runs latex with a hardcoded sample file.

Notes

This version can still display the image frame UI, so I can concentrate on the basic functionality

Completition

I'm working on this in parallel with Stage 2 as it turned out to be easier this way.

Should be complete by mid-term.

mostly DONE! saving the frames is missing but postponed currently, because I give the gui more priority now, so more people can test it.

Stage 4

Plan

Add the basic UI elements.

Completition

Should probably also be complete by mid-term, at least not much after.

Working on this. Good deal done.

Stage 5

Plan

Add template support to the UI.

Stage 6

Plan

Develop usefull LaTeX templates.

Stage 7

Plan

Modify LyX to work with Scribus.

Notes

Use lyxclient?


Stage 8

Plan

Add python bindings.