[Libreoffice] GSOC: performance improvement ...

Michael Meeks michael.meeks at novell.com
Fri May 6 04:39:02 PDT 2011

Hi Matus,

	Great to have you working on this for the summer :-)

	Perhaps it is a good time to start digging into the code that
references the default_icons/res/commandimagelist/ to shrink those
paths. I don't think this really needs to take that long to do :-)

	Doing a quick ./g grep commandimagelist # shows that there are loads of
duplicate instances of this string in the help translations too ;-) so
presumably we can help to shrink that as well.

	So - I guess the first step is to move all the res/commandimagelist/
icons in default_images/ and ooo_custom_images/* into a top-level 'cmd'
directory, or perhaps even 'c/' if we want it really short :-)

	Having done that, then you need to poke the files that reference that.
The key ones are in framework/ (if you want to see results), but we'll
need to clean them all up.

	When you've done your work; re-building in packimages/ should re-make
the .zip files we want:

	cd packimages/
	rm -Rf unxlngi6.pro

	and you should be able to re-run and see the results (with a linked

	I append a list of other pieces to tweak - hopefully this is complete.

	Of course, you should do this vs. master.

solenv/bin/image-sort.pl:    my $iname = "res/commandimagelist/" . $prefix . $icon . ".png";

	This is used by packimages/ to sort the .zip file contents into the
order they are accessed in for faster startup.

ooo_custom_images/oxygen/CopyrightsTango:All icons under the /res/commandimagelist/ directory, with filenames begi

	We should update the paths referenced in these text files :-)

reportdesign/source/ui/dlg/CondFormat.src:        < "res/commandimagelist/sc_bold.png" ;              SID_ATTR_CHAR_WEIGHT ; > ;
desktop/source/deployment/gui/dp_gui_backend.src:    ImageBitmap = Bitmap { File = "commandimagelist/sc_helperdialog.bmp"; };

	Several .src files have paths that will need this change,
referring to explicit icons.

sc/source/ui/miscdlgs/optsolver.cxx:    // Get the "Delete Rows" commandimagelist images from sfx instead of
sc/source/ui/src/toolbox.src:// Don't use this image list for normal toolbar images. We have now our commandimagelist
reportbuilder/registry/data/org/openoffice/Office/UI/ReportCommands.xcu:            <!-- U will find corresponding icons in default_images/res/commandimagelist. -->
sw/source/ui/app/app.src: // Don't use this image list for normal toolbar images. We have now our commandimagelist

	I guess updating the comments is fun :-)

helpcontent2/source/text/sbasic/guide/translation.xhp:<image id="img_id2526017" src="res/commandimagelist/sc_managelanguage.png" width="0.1665inch" height="0.1665inch"><alt id="alt_id2526017" xml-lang="en-US">Manage Language icon</alt>

	There are tons of these references; we need to do a big sed across all
the files, and another one (with Andras' help) across all the

framework/inc/properties.h:#define UICOMMANDDESCRIPTION_NAMEACCESS_COMMANDIMAGELIST        "private:resource/image/commandimagelist"
framework/source/uiconfiguration/imagemanagerimpl.cxx:        "res/commandimagelist/sc_",
framework/source/uiconfiguration/imagemanagerimpl.cxx:        "res/commandimagelist/lc_"

	This is the stuff that finds the icons for use in menus / toolbars.

toolkit/source/awt/vclxbutton.cxx:                         "res/commandimagelist/sc_ok.png" )

	We should sed but not test the near obsolete layout stuff:

toolkit/uiconfig/layout/message-box.xml:        <fixedimage id="FI_ERROR" cnt:expand="false" cnt:v-align="0.5" cnt:v-fill="0" graphic="res/commandimagelist/msgbox-error.png" />
toolkit/workben/layout/editor.cxx:        mpUpButton->SetModeImage( layout::Image ( "res/commandimagelist/lc_moveup.png" ) );
toolkit/workben/layout/message-box.xml:        <fixedimage id="FI_ERROR" cnt:expand="false" cnt:v-align="0.5" cnt:v-fill="0" graphic="res/commandimagelist/msgbox-error.png" />
toolkit/workben/layout/plugin.xml:        <fixedimage id="FI_HEADER" cnt:expand="false" graphic="res/commandimagelist/sc_apply.png" />
toolkit/workben/layout/recover.xml:        <fixedimage id="FI_HEADER" cnt:expand="false" graphic="res/commandimagelist/sc_apply.png" />

	And then of course packimages needs a little tweaking.

packimages/pack/makefile.mk:$(RES)$/img$/commandimagelist.ilst .PHONY : $(SORTED_LIST)
packimages/pack/makefile.mk:    $(FIND) $(SOLARSRC)$/$(RSCDEFIMG)/res/commandimagelist -name "*.png" | sed "s#$(SOLARSRC)$/$(RSCDEFIMG)/res#%GLOBALRES%#" | $(PERL) $(SOLARENV)$/bin$/sort.pl > $@.$(INPATH)
packimages/pack/makefile.mk:$(COMMONBIN)$/images.zip .PHONY: $(RES)$/img$/commandimagelist.ilst
packimages/pack/makefile.mk:images_% : $(RES)$/img$/commandimagelist.ilst

	Beyond that - I think we should be good. Once it works, doing a
build-from-clean to double-check before we push to master would be good.

	Other than that - it'd be fantastic to have this; and no doubt ace_dent
will be happy too.



 michael.meeks at novell.com  <><, Pseudo Engineer, itinerant idiot

More information about the LibreOffice mailing list