Older blog entries for caolan (starting at number 221)

700 conversion target reached

Pushed through the 700 widget conversion barrier this week. The FindDialogs wiki page has helped quite a bit. There remains quite a few blanks in there though, so help still needed to identify the route to launch those unknown dialogs and tabpages via the UI.

Of the newly identified ones I'm a little amused by RID_OFAPAGE_SMARTTAG_OPTIONS which (we think) can only be seen when a smart tags extension is installed. Is there a known working extension out there that enables this to be shown when installed ?

Trivia titbit: we have converted eight different passwords dialogs. And there remains one unconverted one whose route to being launched is currently unknown

Current conversion stats are:
706 .ui files currently exist
There are 67 unconverted dialogs
There are 68 unconverted tabpages
An estimated additional 135 .ui are required
We are 83% of the way through.

Syndicated 2014-03-28 20:54:00 (Updated 2014-03-28 20:54:44) from Caolán McNamara


I'm finding it a fairly slow process to find the last 175 dialogs/tabpages in the LibreOffice UI. I have the full list of identifiers, and it's generally not a difficult process to find how to activate any individual dialog from the UI but in the aggregate it takes time and breaks the development flow if I have to stop/start to find the next one to convert.

So, you can help :-) This FindDialogs wiki page contains the list of identifiers and some hints as to how to find them in the source and in the help documentation. That's generally sufficient to determine what dialog they describe and how to launch it.

Filling out those remaining blank "how to activate" entries will speed up the conversion process.

Syndicated 2014-03-05 13:32:00 (Updated 2014-03-05 13:32:33) from Caolán McNamara

dialog conversion status, 190 to go

  Converting LibreOffice dialogs to .ui format, 190- conversions remaining

We've now converted 77% of LibreOffice’s classic fixed widget size and position .src format elements to the GtkBuilder .ui format.

Using the guesstimate tool ./bin/count-todo-dialogs the current status is:

666 .ui files currently exist
There are 96 unconverted dialogs
There are 93 unconverted tabpages
An estimated additional 189 .ui are required
We are 77% of the way through.

What makes this mini-milestone interesting to me is that there are less that 200 to go now, and there are less than 100 of each of the two categories of elements remaining.

The latest of this latest bunch of conversions is the conversion of the pivot table dialog which has the side effect that the pivot table dialog now fits into a 768 pixel tall netbook screen when in expanded mode.

Syndicated 2014-02-13 16:13:00 (Updated 2014-02-13 16:13:14) from Caolán McNamara


My FOSDEM2014 LibreOffice .ui format a11y notes for developers presentation is available now. Basic notes on the importance of setting mnemonics and how to migrate pre-existing accessibility relations out of explicit c++ code and into GtkBuilder a11y markup.

Syndicated 2014-02-05 11:09:00 (Updated 2014-02-05 11:09:09) from Caolán McNamara

Long Writer Paragraphs

Now that the huge work of removing and replacing UniString is complete and LibreOffice 4.2 has branched off. Now is a good time to remove the 16bit limits in Writer that continued to limit its paragraph length to 65535 chars. So I pushed today to master (4.3) the final set of changes to remove that limitation. Above is a screenshot showing the result. A writer document with a single paragraph containing > 100,000 characters.

This improves compatibility with MSWord which had no 64k limit on its paragraph length, which forced the importer to split over-long paragraphs into two or more. And this also addresses the long outstanding feature request to support long paragraphs in writer in order to support the custom in some locales (Brazil, others?) where there is apparently a requirement to record minutes of certain classes of meetings in a single paragraph.

Syndicated 2014-01-15 13:36:00 (Updated 2014-01-15 13:36:06) from Caolán McNamara

622 Conversions, 70% complete

Converting LibreOffice dialogs to .ui format, 600+ conversions milestone

In the ongoing Sisyphean rework of LibreOffice dialogs and other UI things, we’ve now converted 70% of LibreOffice’s classic fixed widget size and position .src format elements to the GtkBuilder .ui format.

Using the guesstimate tool ./bin/count-todo-dialogs the current status is:

622 .ui files currently exist
There are 130 unconverted dialogs
There are 104 unconverted tabpages
An estimated additional 234 .ui are required

Syndicated 2014-01-08 10:42:00 (Updated 2014-01-08 10:44:24) from Caolán McNamara

guess the architecture

Mostly finished moving office today. Stacked up here is 9 of the machines involved in the move and representing 7 different architectures. Middle column is all just stock x86/x86_64. C is an Apple Mac Mini and the only one not running Linux. D is an old Dell case hosting some AMD chip I forget the specs of and was my previous main box while E is an I7 and the current main box.

The holiday quiz is: Can you can correctly identify the architectures of the remaining six. Maybe tricky on the F and G netbooks I guess, but given that all run Linux, all remaining six are different archs, and have LibreOffice ported to them should help.

Syndicated 2013-12-31 19:17:00 (Updated 2013-12-31 19:17:56) from Caolán McNamara


Converting LibreOffice dialogs to .ui format, 500 conversions milestone

We’ve now reached 500 dialogs and tabpages converted from LibreOffice’s classic fixed widget size and position .src format to the GtkBuilder .ui format.

Using the guesstimate tool ./bin/count-todo-dialogs the current status is:

500 .ui files currently exist
There are 213 unconverted dialogs
There are 127 unconverted tabpages
An estimated additional 340 .ui are required

Digging down a little there is just 1 tabpage + 2 dialogs in draw/impress (sd) and 6 tabpages + 8 dialogs in writer remaining to convert from the old format. The remainder are in calc or in the various shared modules.

The How to conversion guide is still relevant, and help is always appreciated.

Syndicated 2013-11-15 13:03:00 (Updated 2013-11-15 13:04:37) from Caolán McNamara


Death of UniString

It's always been a source of frustration for me that LibreOffice and its predecessors had two different String class families. A "new" set in sal and an "old" set in tools, where "new" is > 13 years old. Each set had a string for 8 bit characters and one for 16 bit UTF-16. The old classes are limited to 64k characters while the new ones use a 32bit length.

So, one of the oldest easy hacks we had on launching LibreOffice was
Removal/Replacement of the String/UniString with OUString once and for all. We managed quickly enough to remove the old 8 bit "ByteString" class, but the UTF-16 UniString class lingered on.

Now finally, after being painstakingly chipped away one method at a time and incrementally brush-clearing one file, one dir, one module of the enemy string, UniString is gone. I think this commit is the one that removes the last stray UniString usage from LibreOffice.

While a load of people worked on this, Noel Grandin put in an awesome effort to convert  a staggering amount of code over to finish this.

Now we just need to
a) update our wiki pages to root out all mentions of UniString
b) audit and remove the uses of the 64k STRING_MAXLEN limit define and remove that length limitation in places like max paragraph size allowed to be imported from .doc and .html files

Syndicated 2013-11-07 09:56:00 (Updated 2013-11-07 09:56:35) from Caolán McNamara

New Menu Placement

Traditionally if a menu can't fit in the available desktop space in LibreOffice it gets rearranged to some other location where it does fit. So first attempt is underneath the menu entry, then above, then left, then right. Which can give this type of placement.
Which is rather undesirable. For Libreoffice 4.2 for menus from menubars we will just attempt placement under or above and on failure to fit, then pick which has the most space and place there anyway and instead scroll. Like so:
Which means that you can always just move left and right after activating a menu to navigate to the next one without a poorly placed menu getting in the way.

Syndicated 2013-11-02 11:47:00 (Updated 2013-11-02 11:47:37) from Caolán McNamara

212 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!