Tuesday 31 December 2013

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.

Friday 15 November 2013

500conversions

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.

Thursday 7 November 2013

UniString

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

Saturday 2 November 2013

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.

Wednesday 18 September 2013

context menu to switch sheets

Due to popular demand within Red Hat calc now has a new right-click context menu on its bottom left scrollbar arrows to switch sheets.
sheet menu

Tuesday 27 August 2013

min raggedness wrap

The tabs in our multirow “double-decker” tabdialogs now finally wrap prettily to balance as evenly as possible. Which especially avoids the occasional single orphan tab that spans the whole dialog.
Before:
After:

Friday 19 July 2013

GNOME3 app menu integration

Piggy backing on some of the Unity LibreOffice Application Menubar work and the existing support for the MacOSX equivalent. I finally got around to adding a GNOME3 application menu to LibreOffice

Monday 15 July 2013

Converting LibreOffice dialogs to .ui format, 300 conversions milestone

We’ve now reached 300 dialogs and tabpages converted from LibreOffice’s classic fixed widget size and position .src format to the GtkBuilder .ui format.
So, by my earlier estimates this puts us at about the half-way conversion mark.
The How to conversion guide is still relevant, and help is always appreciated.
In terms of writer, the major dialogs which are not completely converted are the frame and “table of contents” ones which are only partially converted, while there’s no conversion of any of the hyperlink dialog pages yet. While the paragraph and character dialogs are now fully converted over.

Tuesday 7 May 2013

WAS700 WASC700-INST key is PHILIPS123XYZ

My WAC700′s hard drive died a while ago, and my efforts to find a disk image I could use to clone a replacement didn’t pan out, leaving me with three useless WAS700 stations which I wanted to reuse as generic stations playing back from a software ps3mediaserver solution. But the blasted stations were configured to use some now long-dead wifi configuration I wasn’t using anymore and they need the station in order to be reconfigured to use a new wiki config.
This thread looked promising, but no success :-(
On the other hand the source for the WAC700 is available from philips, so with a bit of digging it turns out the WEP key for the WAS700 ad-hoc installation mode network WASC700-INST is PHILIPS123XYZ and not Philips123ABC or PhilipsABC123
With the right key, then the WAC700 emulator works wonderfully to reconfigure the stations, and then they can easily find and playback from the ps3mediaserver via auxillary input->select server.

1. wget http://www.p4c.philips.com/files/w/wac700_05/wac700_05_osf_eng.tgz
2. tar xf wac700_05_osf_eng.tgz
3. strings src_release_r4258_6720_1.2.10_en/linux/work/has/appfs/resources/fpm_firmware/20060221_was5_code_IVT1.2.10_release.rom|grep PHILIPS

Wednesday 1 May 2013

Converting LibreOffice dialogs to .ui format, 200 conversions milestone

We’ve now reached 200 dialogs and tabpages converted from LibreOffice’s classic fixed widget size and position .src format to the GtkBuilder .ui format. These are still our own widgets, we just reuse the file format and map the Gtk widgets to our own equivalents. I’ve now finally refreshed the original sample screen shots to reflect the current reality.
I estimate we require an additional 200 to 400 .ui files, unless a lot of the existing .src dialogs turn out to be orphaned dialog descriptions that are not in use. (This is unlikely)
The How to conversion guide is still relevant, and help is appreciated.
Additionally, there’s a short list of selected dialogs awaiting review for any HIG compliance issues or general layout improvements. We have a python script as ./bin/lint-ui.py (thanks leighman) to check for basic compliance with guidelines, but there’s room for improvement, e.g. checking that widgets have mnemonic widgets, etc.

Wednesday 13 March 2013

Converting LibreOffice dialogs to .ui format, 150 conversions milestone

We’ve now reached 150 dialogs and tabpages converted from LibreOffice’s classic fixed widget size and position .src format to the GtkBuilder .ui editable by glade format. I’m getting pretty sick of dialogs by now, dialog fatigue setting in :-(
If you want to help, my last post on the topic, at the 100 conversion mark, has a tutorial on how to do a conversion, and my FOSDEM slides might be helpful too.

Thursday 24 January 2013

Converting LibreOffice dialogs to .ui format, 100 conversions milestone

We’ve now reached 100 dialogs and tabpages converted from LibreOffice’s classic fixed widget size and position .src format to the GtkBuilder .ui editable by glade format. I won’t repeat the full reasons for the conversion, but I’m particularly happy with the new accessibility support, both for the new containers and the .ui loaded.
The a11y stuff can now generally be describable in the .ui file rather than sporadic hard-coded calls here and there. And with the new mnemonic widget for label support, setting in the .ui explicitly what a label is a label for overrides the (eventually to be removed) ugly guessing short-cut code in vcl and sets the default a11y relationship between the label and labelee.
So setting mnemonic widgets in LibreOffice .ui files is now strongly indicated.
Here’s a hopefully helpful step-by-step tutorial for converting a simple dialog from .src to .ui