#i113564# - Formula editor: Spacing after Greek symbols is even larger in new version#i113562# - gsl: Landscape paper is printed portrait
#i113563# - gsl: build broken on i686 in vcl/source/glyphs/graphite_layout.cxx
#i113557# - Presentation: Impress file opening with ASCII filter, becomes corrupt writer file
#i113554# - Database access: Base crashes after SQL insert error from a subform when using button actions to navigate through parent form records
Rebased my git repo on top of dev300-m85:
first just fixed patches to apply
then fixed them to build
finally compared the ooo320-m17 and the dev300-m85 output
The first two part is fine, the last is almost fine, looks like the objdata part of math objects is now buggy. And looks like the bug is that SvxMSExportOLEObjects::ExportOLEObject does not give me the correct output anymore. Which means the math export is broken in the ww8 exporter as well: created bug.
Other than that, I’m still waiting for my ssh key to be uploaded.
I also tried to search bugs which are fixed by my work and listed then in the summary file (11 issues!).
#i113539# - Database access: [dba_ReportBuilder.bas] Crash when opening Formula Wizard
#i113530# - Drawing: SVG Uselessly
I just finished my first "upstream" build, dev300-m85. I used the howto from from Cedric. All I had to change is a bit more configure switches:
./configure --with-use-shell=bash --disable-build-mozilla --with-jdk-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0 --with-system-mozilla=mozilla --with-openldap --disable-binfilter --disable-epm make export LOCALINSTALLDIR=~/git/gsoc/upstream/myhack-install cd ~/git/gsoc/upstream/myhack/instsetoo_native/util rm -rf ../../../myhack-install; dmake openoffice_en-US PKGFORMAT=installed
Then Kendy linked me the wiki article about CWSes. Ah and if we’re at CWS, the hg guys have a nice table which is really useful for guys like me who are familiar with git but no hg.
I also had to create an issue - I should use its number in the commit messages.
Other short notes:
Looks like a dsa key is needed for ssh, so I submitted a new one…
As Kendy pointed out, the --with-gcc-speedup parameter of ooo-build’s configure does not work with distcc. I plan to add support for it, but it has a low priority. :)
#i113521# - Formula editor: Math symbols from OpenFormula inconsistentToday I finished support for copy, cut and paste in the visual formula editor. This is done by cloning a list of nodes, and inserting the cloned list... For creating clones I introduced a new visitor, which might also be reusable later... This still needs to be integrated with the global clipboard... And before I can do that I'll have to find the global clipboard.
Also so spend some time reading code trying to figure out how everything worked together, and I discovered UndoManager, so I've got an idea of how undo/redo functionality could be implemented and integrated.
#i113509# - Database access: Base file give errors when attempting to update data by ANY means, duplicates records, deletes records at random when opened with Oo 3.2.1
Thousands of NHS staff stripped of Microsoft Office | Enterprise | News | PC Pro
Given that now I build ooo320-m19 and I’ll later do more builds I thought it’s time to figure out how to use distcc so that I can use not only my laptop for building but an other unused box here at home as well. In case you don’t want to re-configure, you can use:
DISTCC_HOSTS='localhost 192.168.239.7' CXX="distcc g++" build -P6 -- -P6
If you reconfigure, you need:
export DISTCC_HOSTS='localhost 192.168.239.7' ./configure ... --with-gcc-speedup=distcc --with-max-jobs=6
(Or if you’re an icecream user, read here.)
So after I configured distcc, I built ooo320-m19 and rebased my patch against it - no surprise I did not have to change anything, since the difference was small enough. I also added copyrights (as discussed with Kendy) to files I created.
An other issue I had a look at is copy&paste, that now works fine. First it used the old filter, second when I converted it to use the new filter it segfaulted, but that’s now fixed.
The next step will be to rebase to an upstream m85 build, so far I requested my account here.
#i113494# - Database access: postgresql-sdbc-076a driver cause OOo to not start
Peter Korn's Weblog
Developer Snapshot OOo-Dev OOO330m2 is available for download.
OOO330 is the development codeline for upcoming OOo 3.3.x releases.
If you find issues within this build please file them to
OpenOffice.org's bug tracking system IssueTracker.
Download:
http://download.openoffice.org/next
Release Notes:
http://development.openoffice.org/releases/OOO330m2_snapshot.html
MD5 checksums:
http://download.openoffice.org/next/md5sums/OOO330m2_md5sums.txt
Today, I wrote a small php script for converting my log entries to an RSS for inclusion on planet.go-oo.org, so here I am. But don't worry the script is bound to crash someday, so my noise will fade
I spend most of the day writing documentation for the visual equation editor. I did a lot LaTeX examples and graphs (using graphviz), everything is written in a header file and can be build with doxygen. Even though I'm not done I had to see how this would look when doxygen was done with it, so I tried the neat make docs, and as of writing I'm realizing that this is going to take 3-4 times as much time as it took to build OpenOffice.
Update: The page I wrote is now available here along with all of my documentation of OpenOffice Math.
Anyway, while my computer crunched away with doxygen, I started working on a cloning visitor for copy, cut and paste functionality... Oh, yes if anybody have experienced problems watching the demonstration screencasts I've posted on youtube (Selection, Editing) the videos now also available in various formats here.
#i113475# - Database access: Sun remained in one of the error message
Implemented the MetaFilePresentationObject field of EmbeddedObject, and now editing a math object is possible!
Now that hopefully I stop poking binary files for a while, time to bookmark the relevant chapter of the vim documentation. (The most important: :%!xxd and :%!xxd -r)
Given that this was the last major feature I wanted to work on, I’m now rebasing my patch(set) against ooo320-m19.
OOO330_m2 has been built by Hamburg RE. No open build problems are known, and smoketest has been passed successfully.
Tasks and their ChildWorkspaces for Milestone OOO330m2
change the email address in the file header of each testscript in the module testautomation from sun to oracle. This CWS does not change any office code.
fast track to MWS for the fix for issue 111205
3.3 regression fixes for emailmerge
Improvements to Graphite, especially for performance
Showstopper fixes for Impress
Impress showstopper fixes
OOo 3.3 installation tasks
make OOo run on Solaris 10 Update 8: build libxml2/libxslt with versioned symbols (using system libxml2/libxslt doesn"t work)
fixes in Writer for OOo 3.3
Misc. bug fixes for OOO 3.3
Hamburg Release Engineering <hr@openoffice.org>, July 27, 2010 01:56 PM
#i113453# - Database access: After setting more columns as primary key, can't open and update data of the table
#i113448# - Database access: Date Conversion
Google now found a "new" distribution mode for their chromium development builds: parallel installation of frequent developer snapshot. Something OpenOffice.org now has some years: Developer snapshots. Can be installed in parallel side by side the regular OpenOffice.org release. So nothing to improve for OpenOffice.org ? I think there are some things to improve the Developer Snapshots we have now:
I converted math.odt to DOC and exported it as RTF in Word2007, then saved the blob of the \objdata group here. From the spec, this is an EmbeddedObject, its contents:
ObjectHeader (2.2.4 of the OLE spec): here 31 bytes
NativeDataSize (see 2.2.5): 4 bytes, here it’s 0x00000c00 = 3072
NativeData: here 3072 bytes, that’s what I get from ExportOLEObject(), I guess
MetaFilePresentationObject: the rest
Header: a StandardPresentationObject (with PresentationObjectHeader.ClassName = "METAFILEPICT")
Header: a PresentationOjbectHeader: 8 bytes of static header + "METAFILEPICT" (LengthPrefixedAnsiString, 17 bytes) = 25 bytes
Width: 4 bytes, MetaFilePresentationDataWidth: 0x0000043f = 1087
Height: 4 bytes, MetaFilePresentationDataHeight: -1 * 0xfffffa7d = 1410 (it’s an unsigned number!)
PresentationDataSize: 4 bytes: 0x1946 = 6470 (the number is the real value + 8)
Reserved{1,2,3,4}: 8 bytes of junk
PresentationData: here 6462 bytes
When I started working on this, a problem I hit was that the header has a ClassName field which must be "Equation.3" for math objects, but I was not able to figure out how to extract that from SwOLENode. There is SotExchange::IsMath() and a similar method for charts but what about the rest? (A good starting point may be this one.)
So far what I implemented is ObjectHeader, NativeDataSize and NativeData, I want to continue with MetaFilePresentationObject tomorrow.
#i113419# - Chart: Chart 3D look lost if a new series is addedI've just done another screencast, showing off editing capability: http://www.youtube.com/watch?v=tELPgJIC1sg If I'm moving slowly the screencast it's only to ensure that xvidcap gets enough frames, as redrawing is still alittle flickering... As mentioned yesterday the patch posted is a bit old, so I'm posting a new patch that up to date with the latest bug fixes. The patch is against ooo320-m17 with go-oo patches, and it's pretty large...
#i113410# - Presentation: fails to open .pptx file with correct plots and drawings
Today I've fixed a lot of minor issues, stuff like working out a hacked synchronization between visual editor and traditional (text based) formula editor. I also finally managed to track down and fix the few pixels I'm always off when drawing caret. It turned out I had ignored an offset, and this offset was constant and very small, so that's why I didn't really notice it before. I've also enabled insertion of more nodes. And fixed a lot of small bugs, such as crash when starting on a clean formula.
To fix all these bugs, and track down issues when altering the formula tree, I've used the dump to dot method, for dumping the formula tree to graphviz. My current patch does this dump when you hit the enter-key, however, running graphviz and opening the image in an image viewer quickly became rather boring. So I wrote a script that monitors the file system and detects changes to /tmp/smath-dump.gv, once a change is detected it runs graphviz and opens the image for viewing, while closing any previous opened images.
while inotifywait -q -e close_write /tmp/smath-dump.gv;
do
dot -Tpng < /tmp/smath-dump.gv > /tmp/img.png;
kill `jobs -p`;
feh /tmp/img.png &
doneDISCLAIMER: I don't do much bash scripting, so don't blame me if this starts to randomly kill processes, or causes an angry raptor to appear...
And, not to forget I reached a somewhat stable place today, so there's a new patch below... It's already outdated so I'll probably post another tomorrow...
#i113405# - Database access: Table Grid (based on view) becoms unstable when records in base table are updated.
I worked a bit on insertion yesterday, however, it wasn't until today that it actually reached a state where it was remotely useful. Insertion sort of works, that is I can insert something, but it doesn't create the right tree... And some of the corner cases doesn't work very well. And there's a lot of corner cases with textnodes. The approach is basically to make a list of nodes that constitute the current line, insert the new node and parse the list into a subtree and put it back into the formula tree.
While, this approach works fairly well, it's rather nasty when the caret is inside a text node, then I'll have to split the text node in two. And if I'm inserting a text node, inside or next to existing text node these nodes should merge. It's also rather unpleasant to creates nodes because their constructor takes an SmToken. Before the constructor was only used in the parser, so this made sense, but now it's just really annoying and complicated. Especially with text nodes that might change parsing information when I change the text from a number to a char and number making it an identifier.
Anyway, status insertion is close, I guess another day or two... And also to conclude my complains about node constructors, maybe I should introduce new constructors or simplify existing ones
.
#i113391# - Drawing: Fontwork (previous version) - some character attributes are missing
Trying to understand how WW8 exports OLE objects. Relevant methods: WW8Export::OutputOLENode, SwBasicEscherEx::WriteOLEFlyFrame.
The OLE objects have two important properties: the object data, and the resulting bitmap. The later is not optional in case of OLE objects.
So first I took the easy part: exporting the resulting bitmap. ODF just uses style:vertical-pos="middle", but in RTF you need to use the \dn control word to move the bitmap down. Once I found that this can be found in WW8Export::OutGrf for doc, implementing the RTF version wasn’t really hard.
At this point (for example math) OLE objects can be viewed in the exported RTF doc, the rest is "just" about to be able to edit the object as well.
I also want to note that ideally the exporter will be quite general here, so I’m testing with math objects, but it works out of the box with charts as well, not surprisingly.
Then I searched a lot to know a bit more about the objdata format, this forum post suggests that it’s OLE1. (Need to check if SvxMSExportOLEObjects uses OLE1 or OLE2, if it does 2, can I tell it to use OLE1?) And here I found the spec of OLE1/OLE2, I’m checking those. (pdf version)
#i113386# - Drawing: sd/qa/unoapi sd.AccessibleDrawDocumentView::com::sun::star::accessibility::XAccessibleComponent::containsPoint() failureI am happy to announce that the universal Go-oo 3.2.1 build is available for Linux (i586, x86_64), MAC OSX Intel, and Windows. See also download and installation instructions. The builds include many upstream and Go-oo fixes.
Go-oo team hopes that you will be happy with this release. Though, any software contains bugs and we kindly ask you to report them, so that we could fix them in the future releases. Also you could send feedback to the ooo-build@lists.freedesktop.org mailing list or contact us on irc.freenode.net, channel #go-oo.
—
PS: I feel a bit schizophrenic. I want to blog about the openSUSE builds at planetsuse and about the universal build at planet.go-oo. Both builds are based on the same sources, so the schedule is almost the same. We only do more alpha and beta builds for openSUSE because it is so easy with the Build Service.
#i113374# - Installation: Bundled extensions in langpacks should be optional on Windows
Developer Snapshot OOo-Dev DEV300m85 is available for download.
DEV300 is the development codeline for upcoming OOo 3.x releases.
If you find issues within this build please file them to
OpenOffice.org's bug tracking system IssueTracker.
Download:
http://download.openoffice.org/next
Release Notes:
http://development.openoffice.org/releases/DEV300m85_snapshot.html
MD5 checksums:
http://download.openoffice.org/next/md5sums/DEV300m85_md5sums.txt
#i113365# - Drawing: RTL PDF document opened with text backwardsToday, I fixed deletion of selections. That means that it is now possible to move the caret around, select stuff and delete it. I continued with the approach I discussed yesterday, breaking down the subtree that constitutes a line and parsing it again. Tomorrow I'll start working on inserting new nodes in an existing tree, using the same approach. Most of the hard work, e.g. the parser, should be done.
I also found a little time to remove old code, refactor and just clean up in general. So I figured this would be a good time to dump a diff. I recall somebody asking for some code to look at... So here it is:
#i113340# - Database access: list box control: wrong way to enter items in the "data" tab
You may remember some of my tweets from the end of last year from an accident on my way home from work.

I was cycling past Peckham Rye Park along the London Cycle Route 22 as I was usually doing, a motorist decided to come out of a side road even so he didn’t have priority and had plenty of time to stop rather than me ending up going over his bonnet. Luckily the people in the car behind me stopped and helped, including calling the police and ambulance, unlike the driver of the car that I had the collision with who drove off instead. He did come back to see if I was ok, but needed convincing from the paramedics to stay to talk to the police, who hadn’t quite yet arrived.
I was taken to hospital as a precaution after giving the police a statement while lying on the bed with my head strapped in position. The police took my bicycle to the police station for safe keeping until I was able to pick it up. It turned out that I only had a few bruises, grazes and some shock, so was discharged and took the bus home.
A day later I picked up my bike from Peckham Police station. At this point I found that the front wheel was a little buckled. Thankfully due having a hub brake rather than a rim brake I was still able to ride the bike safely to work and back home. It took 3 weeks to get a replacement front wheel for just short of £100. The train travel also cost an extra £100 that I wouldn’t have have spent otherwise. It was quite nice as the Oyster Pay As You Go had come in just after the accident and turned out to be a bit cheaper than a travelcard based on my specific travel pattern.
After a couple of months I was sent a witness form to fill in, which I filled in and sent off:
Yesterday I got a letter from the Metropolitan Police stating that the court proceedings with incident were completed last week. The result was the driver being convicted of driving without due care and attention with a £100 fine pus 7 penalty points.
It’s good to see that the driver has been given some punishment for not being careful enough with his driving, rather than it being ignored by the police as I’ve heard has happen on many occasions in the past.
DEV300_m85 has been built by Hamburg RE. No open build problems are known, and smoketest has been passed successfully.
Tasks and their ChildWorkspaces for Milestone DEV300m85
Mostly warnings and tidyups
OOo 3.4 installation tasks
Hamburg Release Engineering <hr@openoffice.org>, July 21, 2010 07:56 PM
Improved the "new filter should call the old importer" code, as suggested by Kendy. Now more code is shared, -26 lines of code.
Implemented textboxes in forms. It turns out that page 195 of the spec has a good example on how to export those. After some reverse engineering I now export the default text and the textbox name in a blob, the rest can be done using normal text.
Then I implemented listboxes. This was a bit tricky as well, not because a blob is needed here, but because the spec is rather quiet about how how the various listbox-related tags should be used, but after some trying, I got it.
This means I finished implementing form fields - RTF does not support other form field types. It would be possible to export the rest of the controls (like options buttons) as ActiveX controls, but there is no RTF markup for them, they can be described only as shapes with a bunch of binary instructions (blobs), which are not really documented, so I would rather avoid them. Especially that Word 2007 calls those controls as "legacy" ones. OTOH the "new" ones are simply not exported to RTF yet (by Word), so I think the conclusion is that for now the best is to just support form fields, then add support for the new controls when Microsoft will update the RTF spec to have support for those new controls.
I had a quick look at math support - the situation is the same as with forms: the old RTF filter and the DOCX one does not support it. For DOC, there is a class named SvxMSExportOLEObjects, which seems to do the job. I also started to read the relevant part of the RTF spec, it starts with:
These control words mirror the Office Open XML Math elements (OMML, see Office Open XML, Section 7.1), only they are written with RTF syntax.
So I wonder if it worths starting to work on RTF math support before the DOCX one. Also, it seems that the math part is a separate filter, and it is an embedded OLE object in the document.
#i113303# - Drawing: Draw beschneiden eingefüghter und dann gedrehter Bilder funktioniert nichtI almost managed to delete selections today, well, it does delete something, just not the right things
But it doesn't crash, so that's pretty good. I've decided to take a pretty hardcore approach to modifying an existing formula tree. Instead of removing nodes and then try to repair the tree, I remove all the SmBinHorNodes and SmExpressionNode and similar nodes of the line that contains the selection, convert the line into a list, removed what I wanted to delete, then parse it adding the SmBinHorNodes and SmExpressionNode and put these back into the tree where it was taken from.
I've also updated my dot dumper for graphviz to draw dashed lines for nodes that are selected, this turned out to be a good tool for debugging selections. It's really late now and I promised to be on IRC tomorrow, so I'll go to bed now. But once I get bored I'll post some graphs showing how selections work.
And by the way, I've prepared a little video demonstrating caret movement and selection, I've posted it to youtube. So if you want a quick view of what I've got working good now, take a look at: http://www.youtube.com/watch?v=W8yXyDiIQPc
Note: I expect deletion of selections to be coming really soon
#i113289# - Chart: Chart formatting and styles.
Started working on forms, implemented checkbox.
Then I had a look at textboxes. They are weird. For checkboxes, there is a FORMCHECKBOX field instruction, but textboxes are just shapes, it seems. Of course just passing the draw object to the draw exporter does not result in a correct output, either. Also, it seems that the default value for a textbox is hidden in some blob value. :( (If I save the doc as rtf in Word then the output is correct but I can’t find the string in the rtf file if I open it with vim.)
In detail: the shape can have an \shptxt group, that’s where the text of the shape is stored. Now, in case of textboxes, this includes a \*\objdata group, which contains a blob. If this is removed, Word no longer recognizes the shape as a TextBox object…
#i113277# - Formula editor: Math: Format/Greek character styleOOO330_m1 has been built by Hamburg RE. No open build problems are known, and smoketest has been passed successfully.
Tasks and their ChildWorkspaces for Milestone OOO330m1
BugFixing CWS
configure fixes
some fixes for findbar
Showstopper fixes for Impress OOo 3.3
Showstopper issues
MinGW port update fix
OpenOffice.org 3.3 Installation tasks
3.3 showstoppers
3.3 showstoppers
fix smoketest with --without-java and generate smoketestdoc.sxw
OOo 3.3 show stopper fixes in Writer
Hamburg Release Engineering <hr@openoffice.org>, July 20, 2010 12:38 PM
Today I started working on editing. I've decided to place all the movement and editing logic in a class called SmCursor. The cursor class is slightly inspired by QTextCursor from Qt. The idea is that the cursor manages caret position, movement and selection in the formula, and allows for programmatic modifications of the formula. That way this cursor class can be used by SmGraphicWindow to move the visual caret, while still be useful when we need to insert new formula elements using buttons in the UI.
Tomorrow I'll associate and integrate the SmCursor with the SmDocShell class, I think the SmDocShell is the owner of the entire formula, so this will be the right place to put it. Then I'll start working on how to delete a selection.
#i113250# - Database access: Cannot stop database query when retreiving large data sets
Last updated: August 01, 2010 06:00 AM