Current on-going work

Here is a rough summary of the current status of my pending OO.o work (besides the data pilot work I’ve been doing).

Patches

I usually prefer sending patches when the changes are narrowly focused, or otherwise too small to warrant creating a full CWS. The following are the patches I have sent upstream and still pending for integration.

  • i79808 – This patch suppresses displaying of data validation input message when the message string is empty. So far I have not received any response from upstream. The main motivation of this patch is to improve Excel compatibility, by emulating Excel’s behavior on data validation. Besides it makes no sense to display an empty input message box when there is no message to show (IMHO)!
  • i80448 – This patch allows Excel style hyperlink format to be used in addition to Calc’s own hyperlink format. It’s targeted for 2.4 inclusion (thanks Eike!).
  • i80981 – This patch considerably speeds up loading of a spreadsheet document (Calc or Excel) containing a large number of built-in SEARCH function instances. With my test document, the load time without this patch was roughly 40 seconds, but this patch reduces that down to a few seconds. It’s targeted for 2.4 inclusion (again, thanks to Eike).
  • i81154 – This patch renames the sheet name in hyperlink when importing an Excel document, the same way Calc renames sheet names when they contain a special character that Calc cannot handle. Without this patch, the sheet name within a hyperlink would be left unmodified, thus following that hyperlink would fail when the name of the destination sheet contains a special character. It’s targeted for 2.4 inclusion (hooray Daniel!).

I think these are all I can think of at the moment. There may have been more, but they are probably either already integrated, need more work, block on ODF file format change, or something along those lines.

CWS’es

When the required code change grows to a certain size, I typically create a CWS to make the upstreaming process less painful for the Hamburg folks since reviewing a patch is not an easy task when the size of the patch is big. These are the CWS’es that I have created that are still pending for integration.

  • celltrans02 (completed, pending QA) – Localize the keywords used in the built-in CELL and INFO functions for Hungarian locale. This is for Excel compatibility since Excel localizes said keywords for who knows why. The keywords are already localized for French locale, and that work is already integrated via celltrans01 CWS.
  • autofilter01 (work in progress) – This work is an attempt to add a new multi-selection filter type similar to Microsoft Excel 2007. The internal data structure change is complete, the ODF file format change has been proposed and approved, and the ODF filter code change has been completed so that the new filter is now loaded and saved properly. Work in adding a new autofilter drop-down box for this feature is still in progress.
  • scsheetprotection01 (work in progress) – This work will add sheet protection options so that the user can place some constraints when protecting a sheet. So far, loading the sheet protection options from and saving them to a binary Excel file is complete, and the code change to prohibit selection of protected and/or unprotected cells is complete. What remains to be done is to add a new dialog to allow specifying desired sheet protection options. This effort is primarily for Excel compatibility, but I’m sure some users will appreciate this. :-)

All of these listed efforts are for the most part inspired by our customer requests as well as requests from the community. One exception is the autofilter extension to add a multi-selection filter, since that one is my own pet peeve. And of course, all of this work will all be contributed to the upstream branch under JCA.

Drilling down data in Data Pilot

Ok. Here is the feature I’ve been working on while I was in Barcelona, and I think it’s got to a point where I can show some progress to the world.

This feature is about supporting a drill-down of a data field cell in Calc’s Data Pilot feature. Excel already has an equivalent feature in its Pivot Table functionality, and what I’m doing initially came out of a request from current and former Excel users who rely on that feature.

Here is what this feature does. Let’s say you have a data pilot box somewhere in your Calc document like the one below.

data pilot view

You then decide to double-click on one cell within the data field to see the original data rows that comprise that cell. Calc then inserts a new sheet, containing the appropriate subset of the original data table (see below).

drill down data on new sheet

At this point, it works pretty reliably for me, but that’s not to say that it’s ready to be integrated into the main branch. There are still a few things to take care of.

  • The drill down sheet is not decorated with auto formatting. Excel formats the drill down sheet nicely, but currently it’s not implemented. But I have to wonder whether that is really essential (I think not).
  • Currently this feature works only on internal data source i.e. data source within the same document. But Calc’s Data Pilot supports two other data source backends (registered database and data pilot UNO component), and I need to add support for them too.

Once that is done, I’ll be happy to see this piece integrated upstream (under JCA, of course), since this feature is also requested in Issue 57030. While I’m in the data pilot code, it may be a good idea to review other data pilot related issues (if there is any) and tackle them at the same time. If you know of any hot data pilot related issues, please let me know.

Back from OOoCon 2007

I just came back from OOoCon 2007. It’s great to see those folks whom I had only interacted with on mailing lists and IRCs. And I have to say talking face-to-face is way, way, way different from talking with text only. I was particularly delighted to finally meet with Niklas Nebel of the Calc team. We’d been interacting in various places for ages, but had never met in person. Now we have. :-) It was a real shame to not see Eike Rathke and Daniel Rentz, but I’m sure we’ll have our chance some day.

Also pleased to meet and chat with Ricardo Cruz (IRC nick: blacksheep), who is a Google Summer of Code student working on VCL layout support mentored by Michael Meeks. It was such a joy to talk with him on various topics. His demo on VCL dialog resizing was mind-blowing!

I was pleasantly surprised to see the Mac port team (led by Eric Bachard et. al.) using the src-to-xml converter that I wrote during Novell’s Hack Week (which they referred to as the “Novell parser” during their talk). Glad to know it’s being useful to you all.

Of course, it’s always great to see my fellow Novell hackers, whom I don’t see on a daily basis because of our geographical constraint. The trip to the beach in Saturday afternoon, with Florian, Noel and Hubert was particularly fun. Water in the Mediterranean Sea was very cold, and the wines were fantastic. BTW, I’m always amazed by Fridrich’s language skill: you speak how many languages in total!? So far I’ve seen him speak in Czech, German, Catalan, French, and English.

Aside from meeting with various people, I was also able to hack during my stay in Barcelona on one data pilot feature I’d been working on. The hack continued from my flight to Barcelona, back from Barcelona, and I was finally able to make my cut while being stranded at the Philadelphia airport because of my flight delay. Isn’t modern technology great? You can be stranded at an airport and still being able to hack. :-)

Some pictures from the conference:

Mingling at breakfast on 1st day
Mingling at breakfast on 1st day

(from left) Back of Tor, Fong Lin, Michael, and Hubert (front)
(from left) Back of Tor, Fong Lin, Michael, and Hubert (front)

(from left) Michael, Noel, and Tor
(from left) Michael, Noel, and Tor

Eric Bachard giving talk on native Mac OS X port
Eric Bachard giving talk on native Mac OS X port

Petr Mladek talking about splitting OO.o source code into pieces
Petr talking about splitting OO.o source code into pieces

Kendy (Jan Holesovsky) on git
Kendy (Jan Holesovsky) on git (there is Jon’s follow-up to this talk).

Fong Lin and Tor posing for photo
Fong Lin and Tor posing for photo

I’ve uploaded all of my photos here.