summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
authorThorsten Behrens <tbehrens@novell.com>2011-03-12 02:42:58 +0100
committerThorsten Behrens <tbehrens@novell.com>2011-03-12 02:42:58 +0100
commitf9c53ad052cb31b8ff2727526651a79f333e3bf6 (patch)
treec6896e41cf8ea247019df025377175690c154bc8 /desktop
parentff62ed4745a9b2367c68ef3eb863d29022f0fa7d (diff)
parent9497c2fb5de3be75b742f34cb605038e13acc22d (diff)
Merge commit 'ooo/DEV300_m101' into integration/dev300_m101
Conflicts: avmedia/inc/avmedia/mediaitem.hxx avmedia/prj/build.lst avmedia/source/framework/mediaitem.cxx avmedia/source/gstreamer/gstcommon.hxx avmedia/source/gstreamer/gstframegrabber.cxx avmedia/source/gstreamer/gstframegrabber.hxx avmedia/source/gstreamer/gstmanager.cxx avmedia/source/gstreamer/gstmanager.hxx avmedia/source/gstreamer/gstplayer.cxx avmedia/source/gstreamer/gstplayer.hxx avmedia/source/gstreamer/gstuno.cxx avmedia/source/gstreamer/gstwindow.cxx avmedia/source/gstreamer/gstwindow.hxx avmedia/source/gstreamer/makefile.mk avmedia/source/quicktime/quicktimeuno.cxx avmedia/source/viewer/mediawindow.cxx avmedia/source/viewer/mediawindow_impl.cxx avmedia/source/viewer/mediawindow_impl.hxx avmedia/source/viewer/mediawindowbase_impl.cxx avmedia/source/win/winuno.cxx basic/inc/basic/basmgr.hxx basic/inc/basic/mybasic.hxx basic/inc/basic/process.hxx basic/inc/basic/sbmeth.hxx basic/inc/basic/sbmod.hxx basic/inc/basic/sbxdef.hxx basic/inc/basic/sbxvar.hxx basic/source/app/app.cxx basic/source/app/app.hxx basic/source/app/appbased.cxx basic/source/app/appedit.cxx basic/source/app/appwin.cxx basic/source/app/appwin.hxx basic/source/app/brkpnts.cxx basic/source/app/brkpnts.hxx basic/source/app/dialogs.cxx basic/source/app/dialogs.hxx basic/source/app/msgedit.cxx basic/source/app/mybasic.cxx basic/source/app/process.cxx basic/source/app/processw.hxx basic/source/app/textedit.cxx basic/source/basmgr/basicmanagerrepository.cxx basic/source/basmgr/basmgr.cxx basic/source/classes/disas.cxx basic/source/classes/eventatt.cxx basic/source/classes/image.cxx basic/source/classes/sb.cxx basic/source/classes/sbunoobj.cxx basic/source/classes/sbxmod.cxx basic/source/comp/codegen.cxx basic/source/comp/dim.cxx basic/source/comp/exprgen.cxx basic/source/comp/exprnode.cxx basic/source/comp/exprtree.cxx basic/source/comp/sbcomp.cxx basic/source/inc/expr.hxx basic/source/inc/object.hxx basic/source/inc/sbunoobj.hxx basic/source/runtime/dllmgr-x86.cxx basic/source/runtime/iosys.cxx basic/source/runtime/makefile.mk basic/source/runtime/methods.cxx basic/source/runtime/methods1.cxx basic/source/runtime/runtime.cxx basic/source/runtime/stdobj.cxx basic/source/runtime/step0.cxx basic/source/runtime/step1.cxx basic/source/runtime/step2.cxx basic/source/sbx/sbxarray.cxx basic/source/sbx/sbxbase.cxx basic/source/sbx/sbxbool.cxx basic/source/sbx/sbxbyte.cxx basic/source/sbx/sbxcoll.cxx basic/source/sbx/sbxconv.hxx basic/source/sbx/sbxcurr.cxx basic/source/sbx/sbxexec.cxx basic/source/sbx/sbxint.cxx basic/source/sbx/sbxobj.cxx basic/source/sbx/sbxscan.cxx basic/source/sbx/sbxstr.cxx basic/source/sbx/sbxvals.cxx basic/source/sbx/sbxvalue.cxx basic/source/sbx/sbxvar.cxx basic/workben/mgrtest.cxx configmgr/prj/build.lst configmgr/source/access.cxx configmgr/source/configurationprovider.cxx configmgr/source/defaultprovider.cxx configmgr/source/pad.cxx configmgr/source/services.cxx configmgr/source/update.cxx configmgr/source/xmlreader.cxx configmgr/source/xmlreader.hxx connectivity/prj/build.lst connectivity/qa/complex/connectivity/TestCase.java connectivity/source/cpool/Zregistration.cxx connectivity/source/drivers/adabas/Bservices.cxx connectivity/source/drivers/ado/Aservices.cxx connectivity/source/drivers/calc/Cservices.cxx connectivity/source/drivers/calc/makefile.mk connectivity/source/drivers/dbase/DIndex.cxx connectivity/source/drivers/dbase/DIndexIter.cxx connectivity/source/drivers/dbase/DNoException.cxx connectivity/source/drivers/dbase/DTable.cxx connectivity/source/drivers/dbase/Dservices.cxx connectivity/source/drivers/dbase/dindexnode.cxx connectivity/source/drivers/evoab/LNoException.cxx connectivity/source/drivers/evoab/LServices.cxx connectivity/source/drivers/evoab2/NServices.cxx connectivity/source/drivers/file/FNoException.cxx connectivity/source/drivers/file/FPreparedStatement.cxx connectivity/source/drivers/file/FResultSet.cxx connectivity/source/drivers/file/FStatement.cxx connectivity/source/drivers/file/quotedstring.cxx connectivity/source/drivers/flat/ETable.cxx connectivity/source/drivers/flat/Eservices.cxx connectivity/source/drivers/hsqldb/Hservices.cxx connectivity/source/drivers/jdbc/jservices.cxx connectivity/source/drivers/kab/KServices.cxx connectivity/source/drivers/macab/MacabServices.cxx connectivity/source/drivers/mozab/MResultSet.cxx connectivity/source/drivers/mozab/bootstrap/MNSFolders.cxx connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.cxx connectivity/source/drivers/mysql/Yservices.cxx connectivity/source/drivers/odbc/OFunctions.cxx connectivity/source/drivers/odbc/oservices.cxx connectivity/source/inc/dbase/DIndexPage.hxx connectivity/source/inc/file/FTable.hxx connectivity/source/manager/mregistration.cxx connectivity/source/parse/PColumn.cxx desktop/prj/build.lst desktop/qa/deployment_misc/test_dp_version.cxx desktop/source/app/app.cxx desktop/source/app/appfirststart.cxx desktop/source/app/cmdlineargs.cxx desktop/source/app/cmdlineargs.hxx desktop/source/app/sofficemain.cxx desktop/source/deployment/gui/dp_gui.hrc desktop/source/deployment/gui/dp_gui_dialog2.cxx desktop/source/deployment/gui/dp_gui_dialog2.hxx desktop/source/deployment/gui/dp_gui_updatedialog.cxx desktop/source/deployment/gui/dp_gui_updatedialog.hxx desktop/source/deployment/manager/dp_extensionmanager.cxx desktop/source/deployment/manager/dp_extensionmanager.hxx desktop/source/deployment/misc/dp_misc.src desktop/source/deployment/registry/component/dp_component.cxx desktop/source/deployment/registry/configuration/dp_configuration.cxx desktop/source/deployment/registry/dp_backend.cxx desktop/source/deployment/registry/help/dp_help.cxx desktop/source/deployment/registry/script/dp_script.cxx desktop/source/migration/pages.cxx desktop/source/migration/pages.hxx desktop/source/migration/wizard.cxx desktop/source/migration/wizard.hrc desktop/source/migration/wizard.hxx desktop/source/migration/wizard.src desktop/source/pkgchk/unopkg/unopkg_shared.h desktop/source/so_comp/services.cxx desktop/source/splash/makefile.mk desktop/source/splash/services_spl.cxx desktop/source/splash/splash.cxx drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx editeng/inc/editeng/adjitem.hxx editeng/inc/editeng/bolnitem.hxx editeng/inc/editeng/borderline.hxx editeng/inc/editeng/boxitem.hxx editeng/inc/editeng/brkitem.hxx editeng/inc/editeng/brshitem.hxx editeng/inc/editeng/bulitem.hxx editeng/inc/editeng/charreliefitem.hxx editeng/inc/editeng/charrotateitem.hxx editeng/inc/editeng/charscaleitem.hxx editeng/inc/editeng/cmapitem.hxx editeng/inc/editeng/colritem.hxx editeng/inc/editeng/crsditem.hxx editeng/inc/editeng/editdata.hxx editeng/inc/editeng/editeng.hxx editeng/inc/editeng/editobj.hxx editeng/inc/editeng/editstat.hxx editeng/inc/editeng/editview.hxx editeng/inc/editeng/emphitem.hxx editeng/inc/editeng/escpitem.hxx editeng/inc/editeng/fhgtitem.hxx editeng/inc/editeng/flstitem.hxx editeng/inc/editeng/fontitem.hxx editeng/inc/editeng/frmdiritem.hxx editeng/inc/editeng/fwdtitem.hxx editeng/inc/editeng/hyznitem.hxx editeng/inc/editeng/kernitem.hxx editeng/inc/editeng/langitem.hxx editeng/inc/editeng/lrspitem.hxx editeng/inc/editeng/lspcitem.hxx editeng/inc/editeng/numitem.hxx editeng/inc/editeng/outliner.hxx editeng/inc/editeng/paravertalignitem.hxx editeng/inc/editeng/pmdlitem.hxx editeng/inc/editeng/postitem.hxx editeng/inc/editeng/protitem.hxx editeng/inc/editeng/shaditem.hxx editeng/inc/editeng/sizeitem.hxx editeng/inc/editeng/svxacorr.hxx editeng/inc/editeng/svxfont.hxx editeng/inc/editeng/svxrtf.hxx editeng/inc/editeng/swafopt.hxx editeng/inc/editeng/tstpitem.hxx editeng/inc/editeng/twolinesitem.hxx editeng/inc/editeng/txtrange.hxx editeng/inc/editeng/udlnitem.hxx editeng/inc/editeng/ulspitem.hxx editeng/inc/editeng/wghtitem.hxx editeng/inc/editeng/writingmodeitem.hxx editeng/inc/editeng/xmlcnitm.hxx editeng/inc/helpid.hrc editeng/inc/pch/precompiled_editeng.hxx editeng/source/editeng/editdbg.cxx editeng/source/editeng/editdoc.cxx editeng/source/editeng/editdoc.hxx editeng/source/editeng/editdoc2.cxx editeng/source/editeng/editeng.cxx editeng/source/editeng/editobj.cxx editeng/source/editeng/editobj2.hxx editeng/source/editeng/editsel.cxx editeng/source/editeng/editundo.cxx editeng/source/editeng/editundo.hxx editeng/source/editeng/editview.cxx editeng/source/editeng/edtspell.hxx editeng/source/editeng/eehtml.cxx editeng/source/editeng/eehtml.hxx editeng/source/editeng/eeobj.cxx editeng/source/editeng/eerdll.cxx editeng/source/editeng/eertfpar.cxx editeng/source/editeng/impedit.cxx editeng/source/editeng/impedit.hxx editeng/source/editeng/impedit2.cxx editeng/source/editeng/impedit3.cxx editeng/source/editeng/impedit4.cxx editeng/source/editeng/impedit5.cxx editeng/source/editeng/makefile.mk editeng/source/items/bulitem.cxx editeng/source/items/charhiddenitem.cxx editeng/source/items/flditem.cxx editeng/source/items/frmitems.cxx editeng/source/items/makefile.mk editeng/source/items/numitem.cxx editeng/source/items/paraitem.cxx editeng/source/items/svxfont.cxx editeng/source/items/textitem.cxx editeng/source/items/writingmodeitem.cxx editeng/source/items/xmlcnitm.cxx editeng/source/misc/SvXMLAutoCorrectImport.cxx editeng/source/misc/svxacorr.cxx editeng/source/misc/txtrange.cxx editeng/source/misc/unolingu.cxx editeng/source/outliner/outleeng.cxx editeng/source/outliner/outliner.cxx editeng/source/outliner/outlundo.hxx editeng/source/outliner/outlvw.cxx editeng/source/outliner/paralist.cxx editeng/source/outliner/paralist.hxx editeng/source/rtf/rtfgrf.cxx editeng/source/rtf/rtfitem.cxx editeng/source/rtf/svxrtf.cxx editeng/source/uno/unoipset.cxx editeng/util/makefile.mk embeddedobj/prj/build.lst embeddedobj/source/commonembedding/miscobj.cxx eventattacher/prj/build.lst fileaccess/source/FileAccess.cxx formula/inc/formula/FormulaCompiler.hxx formula/inc/formula/token.hxx formula/inc/formula/tokenarray.hxx formula/source/core/api/FormulaCompiler.cxx formula/source/core/api/token.cxx formula/source/ui/dlg/FormulaHelper.cxx formula/source/ui/dlg/formula.cxx formula/source/ui/dlg/parawin.cxx formula/source/ui/dlg/structpg.cxx fpicker/prj/d.lst fpicker/source/aqua/FPentry.cxx fpicker/source/office/OfficeControlAccess.cxx fpicker/source/office/iodlg.cxx fpicker/source/office/iodlg.hxx fpicker/source/office/iodlg.src fpicker/source/office/iodlgimp.cxx fpicker/source/unx/gnome/FPentry.cxx fpicker/source/unx/gnome/SalGtkFilePicker.cxx fpicker/source/unx/gnome/SalGtkPicker.cxx fpicker/source/unx/kde4/KDE4FPEntry.cxx fpicker/source/win32/filepicker/FPentry.cxx framework/AllLangResTarget_fwe.mk framework/inc/dispatch/interaction.hxx framework/inc/framework/addonmenu.hxx framework/inc/framework/addonsoptions.hxx framework/inc/framework/bmkmenu.hxx framework/inc/framework/imageproducer.hxx framework/inc/framework/sfxhelperfunctions.hxx framework/inc/framework/statusbarconfiguration.hxx framework/inc/framework/titlehelper.hxx framework/inc/framework/toolboxconfiguration.hxx framework/inc/threadhelp/lockhelper.hxx framework/inc/xml/eventsdocumenthandler.hxx framework/inc/xml/statusbardocumenthandler.hxx framework/inc/xml/toolboxconfiguration.hxx framework/inc/xml/toolboxconfigurationdefines.hxx framework/inc/xml/toolboxdocumenthandler.hxx framework/prj/build.lst framework/qa/complex/ModuleManager/makefile.mk framework/qa/complex/accelerators/makefile.mk framework/qa/complex/framework/recovery/makefile.mk framework/qa/complex/imageManager/_XInitialization.java framework/source/classes/menumanager.cxx framework/source/dispatch/interaction.cxx framework/source/fwe/classes/bmkmenu.cxx framework/source/fwe/helper/actiontriggerhelper.cxx framework/source/fwe/helper/imageproducer.cxx framework/source/fwe/xml/menuconfiguration.cxx framework/source/fwe/xml/toolboxdocumenthandler.cxx framework/source/helper/uiconfigelementwrapperbase.cxx framework/source/helper/uielementwrapperbase.cxx framework/source/inc/pattern/window.hxx framework/source/jobs/jobdata.cxx framework/source/layoutmanager/layoutmanager.cxx framework/source/layoutmanager/panel.hxx framework/source/loadenv/loadenv.cxx framework/source/register/registerservices.cxx framework/source/services/menudocumenthandler.cxx framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx framework/source/uiconfiguration/uiconfigurationmanager.cxx framework/source/uiconfiguration/uiconfigurationmanagerimpl.cxx framework/source/uielement/addonstoolbarmanager.cxx framework/source/uielement/controlmenucontroller.cxx framework/source/uielement/fontsizemenucontroller.cxx framework/source/uielement/imagebuttontoolbarcontroller.cxx framework/source/uielement/macrosmenucontroller.cxx framework/source/uielement/menubarmanager.cxx framework/source/uielement/newmenucontroller.cxx framework/source/uielement/togglebuttontoolbarcontroller.cxx framework/source/uielement/toolbarmanager.cxx framework/source/uielement/toolbarsmenucontroller.cxx framework/test/makefile.mk framework/test/threadtest/makefile.mk framework/test/typecfg/makefile.mk framework/util/guiapps/makefile.mk framework/util/makefile.mk idl/inc/bastype.hxx idl/inc/hash.hxx idl/inc/lex.hxx idl/inc/module.hxx idl/inc/object.hxx idl/inc/slot.hxx idl/inc/types.hxx idl/source/cmptools/hash.cxx idl/source/cmptools/lex.cxx idl/source/objects/basobj.cxx idl/source/objects/bastype.cxx idl/source/objects/module.cxx idl/source/objects/object.cxx idl/source/objects/slot.cxx idl/source/objects/types.cxx idl/source/prj/command.cxx idl/source/prj/database.cxx idl/source/prj/globals.cxx idl/source/prj/svidl.cxx linguistic/inc/linguistic/misc.hxx linguistic/prj/build.lst linguistic/source/convdic.cxx linguistic/source/convdiclist.cxx linguistic/source/dicimp.cxx linguistic/source/dlistimp.cxx linguistic/source/gciterator.cxx linguistic/source/iprcache.cxx linguistic/source/lngopt.cxx linguistic/source/lngprophelp.cxx linguistic/source/lngsvcmgr.cxx linguistic/source/lngsvcmgr.hxx linguistic/source/misc2.cxx linguistic/workben/sprophelp.cxx officecfg/registry/data/org/openoffice/VCL.xcu officecfg/util/makefile.mk oovbaapi/ooo/vba/XApplicationBase.idl oovbaapi/ooo/vba/XVBAAppService.idl oovbaapi/ooo/vba/XVBADocService.idl oovbaapi/ooo/vba/excel/XApplication.idl oovbaapi/ooo/vba/excel/XRange.idl oovbaapi/ooo/vba/excel/XWorkbook.idl oovbaapi/ooo/vba/excel/XWorksheet.idl oovbaapi/ooo/vba/word/XApplication.idl oovbaapi/ooo/vba/word/XGlobals.idl oovbaapi/ooo/vba/word/XTableOfContents.idl readlicense_oo/prj/build.lst scripting/prj/build.lst scripting/prj/d.lst scripting/source/basprov/basprov.cxx scripting/source/basprov/basscript.cxx scripting/source/basprov/basscript.hxx scripting/source/dlgprov/dlgprov.cxx scripting/source/inc/util/util.hxx scripting/source/protocolhandler/scripthandler.cxx scripting/source/provider/ProviderCache.cxx scripting/source/pyprov/makefile.mk scripting/source/runtimemgr/ScriptNameResolverImpl.cxx scripting/source/runtimemgr/ScriptRuntimeManager.cxx scripting/source/runtimemgr/StorageBridge.cxx scripting/source/storage/ScriptMetadataImporter.cxx scripting/source/storage/ScriptSecurityManager.cxx scripting/source/storage/ScriptStorage.cxx scripting/source/storage/ScriptStorageManager.cxx sfx2/inc/about.hxx sfx2/inc/brokenpackageint.hxx sfx2/inc/docvor.hxx sfx2/inc/pch/precompiled_sfx2.hxx sfx2/inc/sfx2/app.hxx sfx2/inc/sfx2/basmgr.hxx sfx2/inc/sfx2/bindings.hxx sfx2/inc/sfx2/childwin.hxx sfx2/inc/sfx2/ctrlitem.hxx sfx2/inc/sfx2/dinfdlg.hxx sfx2/inc/sfx2/dispatch.hxx sfx2/inc/sfx2/docfilt.hxx sfx2/inc/sfx2/evntconf.hxx sfx2/inc/sfx2/fcontnr.hxx sfx2/inc/sfx2/frame.hxx sfx2/inc/sfx2/imagemgr.hxx sfx2/inc/sfx2/imgmgr.hxx sfx2/inc/sfx2/linksrc.hxx sfx2/inc/sfx2/macrconf.hxx sfx2/inc/sfx2/macropg.hxx sfx2/inc/sfx2/mnuitem.hxx sfx2/inc/sfx2/mnumgr.hxx sfx2/inc/sfx2/module.hxx sfx2/inc/sfx2/msg.hxx sfx2/inc/sfx2/objsh.hxx sfx2/inc/sfx2/passwd.hxx sfx2/inc/sfx2/prnmon.hxx sfx2/inc/sfx2/request.hxx sfx2/inc/sfx2/sfx.hrc sfx2/inc/sfx2/sfxbasemodel.hxx sfx2/inc/sfx2/sfxhtml.hxx sfx2/inc/sfx2/sfxresid.hxx sfx2/inc/sfx2/sfxsids.hrc sfx2/inc/sfx2/sfxuno.hxx sfx2/inc/sfx2/shell.hxx sfx2/inc/sfx2/stbitem.hxx sfx2/inc/sfx2/styfitem.hxx sfx2/inc/sfx2/tabdlg.hxx sfx2/inc/sfx2/tbxctrl.hxx sfx2/inc/sfx2/tplpitem.hxx sfx2/inc/sfx2/viewfrm.hxx sfx2/inc/sfx2/viewsh.hxx sfx2/inc/sfxbasic.hxx sfx2/inc/sorgitm.hxx sfx2/prj/build.lst sfx2/qa/complex/docinfo/makefile.mk sfx2/qa/cppunit/makefile.mk sfx2/sdi/makefile.mk sfx2/source/appl/app.cxx sfx2/source/appl/app.hrc sfx2/source/appl/app.src sfx2/source/appl/appbas.cxx sfx2/source/appl/appcfg.cxx sfx2/source/appl/appchild.cxx sfx2/source/appl/appmain.cxx sfx2/source/appl/appmisc.cxx sfx2/source/appl/appopen.cxx sfx2/source/appl/appquit.cxx sfx2/source/appl/appserv.cxx sfx2/source/appl/appuno.cxx sfx2/source/appl/childwin.cxx sfx2/source/appl/fileobj.cxx sfx2/source/appl/helpinterceptor.cxx sfx2/source/appl/imagemgr.cxx sfx2/source/appl/impldde.cxx sfx2/source/appl/impldde.hxx sfx2/source/appl/linkmgr2.cxx sfx2/source/appl/lnkbase2.cxx sfx2/source/appl/makefile.mk sfx2/source/appl/module.cxx sfx2/source/appl/newhelp.cxx sfx2/source/appl/opengrf.cxx sfx2/source/appl/sfxdll.cxx sfx2/source/appl/sfxhelp.cxx sfx2/source/appl/shutdownicon.cxx sfx2/source/appl/shutdowniconunx.cxx sfx2/source/appl/workwin.cxx sfx2/source/bastyp/fltfnc.cxx sfx2/source/bastyp/frmhtml.cxx sfx2/source/bastyp/frmhtmlw.cxx sfx2/source/bastyp/helper.cxx sfx2/source/bastyp/minarray.cxx sfx2/source/bastyp/progress.cxx sfx2/source/bastyp/sfxhtml.cxx sfx2/source/config/evntconf.cxx sfx2/source/control/bindings.cxx sfx2/source/control/ctrlitem.cxx sfx2/source/control/dispatch.cxx sfx2/source/control/macrconf.cxx sfx2/source/control/macro.cxx sfx2/source/control/makefile.mk sfx2/source/control/minfitem.cxx sfx2/source/control/msg.cxx sfx2/source/control/msgpool.cxx sfx2/source/control/objface.cxx sfx2/source/control/request.cxx sfx2/source/control/shell.cxx sfx2/source/control/sorgitm.cxx sfx2/source/dialog/about.cxx sfx2/source/dialog/basedlgs.cxx sfx2/source/dialog/dinfdlg.cxx sfx2/source/dialog/dinfedt.cxx sfx2/source/dialog/dockwin.cxx sfx2/source/dialog/filedlghelper.cxx sfx2/source/dialog/mailmodel.cxx sfx2/source/dialog/mailmodelapi.cxx sfx2/source/dialog/makefile.mk sfx2/source/dialog/mgetempl.cxx sfx2/source/dialog/passwd.cxx sfx2/source/dialog/passwd.hrc sfx2/source/dialog/printopt.cxx sfx2/source/dialog/securitypage.cxx sfx2/source/dialog/splitwin.cxx sfx2/source/dialog/styfitem.cxx sfx2/source/dialog/tabdlg.cxx sfx2/source/dialog/taskpane.cxx sfx2/source/dialog/templdlg.cxx sfx2/source/dialog/tplpitem.cxx sfx2/source/dialog/versdlg.cxx sfx2/source/doc/QuerySaveDocument.cxx sfx2/source/doc/SfxDocumentMetaData.cxx sfx2/source/doc/applet.cxx sfx2/source/doc/doc.hrc sfx2/source/doc/doc.src sfx2/source/doc/docfile.cxx sfx2/source/doc/docinf.cxx sfx2/source/doc/doctempl.cxx sfx2/source/doc/doctemplates.cxx sfx2/source/doc/docvor.cxx sfx2/source/doc/guisaveas.cxx sfx2/source/doc/makefile.mk sfx2/source/doc/objcont.cxx sfx2/source/doc/objitem.cxx sfx2/source/doc/objmisc.cxx sfx2/source/doc/objserv.cxx sfx2/source/doc/printhelper.cxx sfx2/source/doc/sfxacldetect.cxx sfx2/source/doc/sfxbasemodel.cxx sfx2/source/inc/applet.hxx sfx2/source/inc/fltoptint.hxx sfx2/source/inc/sfxlocal.hrc sfx2/source/inc/virtmenu.hxx sfx2/source/inc/workwin.hxx sfx2/source/menu/mnuitem.cxx sfx2/source/menu/objmnctl.cxx sfx2/source/menu/virtmenu.cxx sfx2/source/notify/eventsupplier.cxx sfx2/source/notify/makefile.mk sfx2/source/toolbox/imgmgr.cxx sfx2/source/toolbox/tbxitem.cxx sfx2/source/view/frame.cxx sfx2/source/view/orgmgr.cxx sfx2/source/view/printer.cxx sfx2/source/view/prnmon.cxx sfx2/source/view/viewfrm.cxx sfx2/source/view/viewprn.cxx sfx2/source/view/viewsh.cxx sfx2/util/makefile.mk sfx2/workben/custompanel/makefile.mk shell/source/backends/desktopbe/desktopbackend.cxx shell/source/backends/gconfbe/gconfbackend.cxx shell/source/backends/kde4be/kde4backend.cxx shell/source/backends/kdebe/kdebackend.cxx shell/source/win32/SysShentry.cxx shell/source/win32/shlxthandler/propsheets/propsheets.cxx shell/source/win32/simplemail/smplmailentry.cxx svx/inc/float3d.hrc svx/inc/fmhelp.hrc svx/inc/globlmn_tmpl.hrc svx/inc/helpid.hrc svx/inc/pch/precompiled_svx.hxx svx/inc/sjctrl.hxx svx/inc/srchitem.hxx svx/inc/svdibrow.hxx svx/inc/svx/SmartTagItem.hxx svx/inc/svx/algitem.hxx svx/inc/svx/camera3d.hxx svx/inc/svx/chrtitem.hxx svx/inc/svx/clipfmtitem.hxx svx/inc/svx/ctredlin.hxx svx/inc/svx/dbtoolsclient.hxx svx/inc/svx/deflt3d.hxx svx/inc/svx/dialogs.hrc svx/inc/svx/drawitem.hxx svx/inc/svx/e3ditem.hxx svx/inc/svx/extrud3d.hxx svx/inc/svx/flagsdef.hxx svx/inc/svx/float3d.hxx svx/inc/svx/frmsel.hxx svx/inc/svx/gallery.hxx svx/inc/svx/gallery1.hxx svx/inc/svx/galtheme.hxx svx/inc/svx/grfcrop.hxx svx/inc/svx/hdft.hxx svx/inc/svx/hlnkitem.hxx svx/inc/svx/hyprlink.hxx svx/inc/svx/itemwin.hxx svx/inc/svx/lathe3d.hxx svx/inc/svx/linkwarn.hxx svx/inc/svx/modctrl.hxx svx/inc/svx/msdffdef.hxx svx/inc/svx/obj3d.hxx svx/inc/svx/optgenrl.hxx svx/inc/svx/optgrid.hxx svx/inc/svx/pageitem.hxx svx/inc/svx/paraprev.hxx svx/inc/svx/postattr.hxx svx/inc/svx/rotmodit.hxx svx/inc/svx/ruler.hxx svx/inc/svx/rulritem.hxx svx/inc/svx/scene3d.hxx svx/inc/svx/sdasaitm.hxx svx/inc/svx/sdasitm.hxx svx/inc/svx/sdggaitm.hxx svx/inc/svx/sdmetitm.hxx svx/inc/svx/sdtaaitm.hxx svx/inc/svx/sdtaditm.hxx svx/inc/svx/sdtaitm.hxx svx/inc/svx/sdtakitm.hxx svx/inc/svx/sdtfchim.hxx svx/inc/svx/sdtfsitm.hxx svx/inc/svx/srchdlg.hxx svx/inc/svx/svddrag.hxx svx/inc/svx/svdetc.hxx svx/inc/svx/svdglue.hxx svx/inc/svx/svdhlpln.hxx svx/inc/svx/svdlayer.hxx svx/inc/svx/svdmark.hxx svx/inc/svx/svdmodel.hxx svx/inc/svx/svdoashp.hxx svx/inc/svx/svdobj.hxx svx/inc/svx/svdocirc.hxx svx/inc/svx/svdoedge.hxx svx/inc/svx/svdogrp.hxx svx/inc/svx/svdomeas.hxx svx/inc/svx/svdoole2.hxx svx/inc/svx/svdorect.hxx svx/inc/svx/svdotable.hxx svx/inc/svx/svdotext.hxx svx/inc/svx/svdovirt.hxx svx/inc/svx/svdpage.hxx svx/inc/svx/svdsnpv.hxx svx/inc/svx/svdtrans.hxx svx/inc/svx/svdundo.hxx svx/inc/svx/svimbase.hxx svx/inc/svx/svx3ditems.hxx svx/inc/svx/svxdlg.hxx svx/inc/svx/sxcikitm.hxx svx/inc/svx/sxekitm.hxx svx/inc/svx/sxelditm.hxx svx/inc/svx/sxenditm.hxx svx/inc/svx/sxmkitm.hxx svx/inc/svx/sxmtpitm.hxx svx/inc/svx/sxmuitm.hxx svx/inc/svx/tabarea.hxx svx/inc/svx/tabline.hxx svx/inc/svx/unoprov.hxx svx/inc/svx/viewlayoutitem.hxx svx/inc/svx/xbitmap.hxx svx/inc/svx/xbtmpit.hxx svx/inc/svx/xcolit.hxx svx/inc/svx/xfillit0.hxx svx/inc/svx/xflclit.hxx svx/inc/svx/xflftrit.hxx svx/inc/svx/xflgrit.hxx svx/inc/svx/xflhtit.hxx svx/inc/svx/xftadit.hxx svx/inc/svx/xftsfit.hxx svx/inc/svx/xftshit.hxx svx/inc/svx/xlineit0.hxx svx/inc/svx/xlinjoit.hxx svx/inc/svx/xlnclit.hxx svx/inc/svx/xlndsit.hxx svx/inc/svx/xlnedcit.hxx svx/inc/svx/xlnedit.hxx svx/inc/svx/xlnedwit.hxx svx/inc/svx/xlnstcit.hxx svx/inc/svx/xlnstit.hxx svx/inc/svx/xlnstwit.hxx svx/inc/svx/xlnwtit.hxx svx/inc/svx/xtextit0.hxx svx/inc/svx/zoomitem.hxx svx/inc/svx/zoomslideritem.hxx svx/inc/xpolyimp.hxx svx/inc/zoom_def.hxx svx/prj/d.lst svx/source/accessibility/AccessibleShape.cxx svx/source/accessibility/DescriptionGenerator.cxx svx/source/customshapes/EnhancedCustomShapeEngine.cxx svx/source/customshapes/EnhancedCustomShapeFontWork.cxx svx/source/dialog/_bmpmask.cxx svx/source/dialog/_contdlg.cxx svx/source/dialog/connctrl.cxx svx/source/dialog/contwnd.cxx svx/source/dialog/ctredlin.cxx svx/source/dialog/ctredlin.hrc svx/source/dialog/ctredlin.src svx/source/dialog/dialcontrol.cxx svx/source/dialog/dlgctrl.cxx svx/source/dialog/docrecovery.cxx svx/source/dialog/fntctrl.cxx svx/source/dialog/fontwork.cxx svx/source/dialog/frmsel.cxx svx/source/dialog/graphctl.cxx svx/source/dialog/grfflt.cxx svx/source/dialog/hdft.cxx svx/source/dialog/hyperdlg.cxx svx/source/dialog/hyprdlg.hxx svx/source/dialog/hyprlink.cxx svx/source/dialog/hyprlink.hxx svx/source/dialog/hyprlink.src svx/source/dialog/imapdlg.cxx svx/source/dialog/imapwnd.cxx svx/source/dialog/linkwarn.hrc svx/source/dialog/makefile.mk svx/source/dialog/optgrid.cxx svx/source/dialog/orienthelper.cxx svx/source/dialog/pagectrl.cxx svx/source/dialog/prtqry.cxx svx/source/dialog/rlrcitem.cxx svx/source/dialog/rubydialog.cxx svx/source/dialog/rulritem.cxx svx/source/dialog/simptabl.cxx svx/source/dialog/srchdlg.cxx svx/source/dialog/svxbmpnumvalueset.cxx svx/source/dialog/svxruler.cxx svx/source/dialog/swframeexample.cxx svx/source/engine3d/float3d.cxx svx/source/engine3d/float3d.src svx/source/engine3d/svx3ditems.cxx svx/source/fmcomp/gridctrl.cxx svx/source/fmcomp/trace.cxx svx/source/form/ParseContext.cxx svx/source/form/datanavi.cxx svx/source/form/filtnav.cxx svx/source/form/fmexch.cxx svx/source/form/fmexpl.cxx svx/source/form/fmobjfac.cxx svx/source/form/fmpage.cxx svx/source/form/fmshell.cxx svx/source/form/fmshimp.cxx svx/source/form/fmsrcimp.cxx svx/source/form/fmvwimp.cxx svx/source/form/makefile.mk svx/source/form/tabwin.cxx svx/source/form/tbxform.cxx svx/source/form/typemap.cxx svx/source/gallery2/galbrws1.cxx svx/source/gallery2/galbrws2.cxx svx/source/gallery2/galexpl.cxx svx/source/gallery2/gallery1.cxx svx/source/gallery2/galtheme.cxx svx/source/gallery2/makefile.mk svx/source/gengal/gengal.cxx svx/source/gengal/makefile.mk svx/source/inc/fmgroup.hxx svx/source/intro/about_ooo.hrc svx/source/intro/iso.src svx/source/intro/ooo.src svx/source/items/SmartTagItem.cxx svx/source/items/algitem.cxx svx/source/items/chrtitem.cxx svx/source/items/clipfmtitem.cxx svx/source/items/customshapeitem.cxx svx/source/items/drawitem.cxx svx/source/items/e3ditem.cxx svx/source/items/grfitem.cxx svx/source/items/hlnkitem.cxx svx/source/items/makefile.mk svx/source/items/pageitem.cxx svx/source/items/rotmodit.cxx svx/source/items/viewlayoutitem.cxx svx/source/items/zoomitem.cxx svx/source/items/zoomslideritem.cxx svx/source/src/app.hrc svx/source/stbctrls/makefile.mk svx/source/stbctrls/modctrl.cxx svx/source/stbctrls/xmlsecctrl.cxx svx/source/stbctrls/zoomctrl.cxx svx/source/svdraw/clonelist.cxx svx/source/svdraw/svdattr.cxx svx/source/svdraw/svdcrtv.cxx svx/source/svdraw/svdedtv1.cxx svx/source/svdraw/svdedtv2.cxx svx/source/svdraw/svdedxv.cxx svx/source/svdraw/svdetc.cxx svx/source/svdraw/svdfmtf.cxx svx/source/svdraw/svdfmtf.hxx svx/source/svdraw/svdglue.cxx svx/source/svdraw/svdhdl.cxx svx/source/svdraw/svdhlpln.cxx svx/source/svdraw/svdibrow.cxx svx/source/svdraw/svdlayer.cxx svx/source/svdraw/svdmodel.cxx svx/source/svdraw/svdoashp.cxx svx/source/svdraw/svdobj.cxx svx/source/svdraw/svdocapt.cxx svx/source/svdraw/svdocirc.cxx svx/source/svdraw/svdoedge.cxx svx/source/svdraw/svdograf.cxx svx/source/svdraw/svdogrp.cxx svx/source/svdraw/svdomeas.cxx svx/source/svdraw/svdomedia.cxx svx/source/svdraw/svdopath.cxx svx/source/svdraw/svdotext.cxx svx/source/svdraw/svdotxdr.cxx svx/source/svdraw/svdotxed.cxx svx/source/svdraw/svdotxfl.cxx svx/source/svdraw/svdotxln.cxx svx/source/svdraw/svdotxtr.cxx svx/source/svdraw/svdoutl.cxx svx/source/svdraw/svdpage.cxx svx/source/svdraw/svdpagv.cxx svx/source/svdraw/svdpntv.cxx svx/source/svdraw/svdpoev.cxx svx/source/svdraw/svdsnpv.cxx svx/source/svdraw/svdstr.src svx/source/svdraw/svdtrans.cxx svx/source/svdraw/svdundo.cxx svx/source/svdraw/svdview.cxx svx/source/svdraw/svdxcgv.cxx svx/source/table/svdotable.cxx svx/source/tbxctrls/colorwindow.hxx svx/source/tbxctrls/extrusioncontrols.cxx svx/source/tbxctrls/fillctrl.cxx svx/source/tbxctrls/grafctrl.cxx svx/source/tbxctrls/itemwin.cxx svx/source/tbxctrls/layctrl.cxx svx/source/tbxctrls/lboxctrl.cxx svx/source/tbxctrls/linectrl.cxx svx/source/tbxctrls/tbcontrl.cxx svx/source/tbxctrls/verttexttbxctrl.cxx svx/source/unodraw/unomod.cxx svx/source/unodraw/unopage.cxx svx/source/unodraw/unoprov.cxx svx/source/unodraw/unoshape.cxx svx/source/unodraw/unoshtxt.cxx svx/source/xml/xmlxtexp.cxx svx/source/xoutdev/_xpoly.cxx svx/source/xoutdev/xattr.cxx svx/source/xoutdev/xattr2.cxx svx/source/xoutdev/xattrbmp.cxx svx/source/xoutdev/xtabcolr.cxx svx/util/makefile.mk svx/workben/edittest.cxx sysui/desktop/productversion.mk ucb/prj/build.lst ucb/source/cacher/cacheserv.cxx ucb/source/core/ucb1.component ucb/source/core/ucbserv.cxx ucb/source/core/ucbstore.cxx ucb/source/core/ucbstore.hxx ucb/source/sorter/sortmain.cxx ucb/source/ucp/file/prov.cxx ucb/source/ucp/file/shell.cxx ucb/source/ucp/ftp/ftpservices.cxx ucb/source/ucp/gio/gio_provider.cxx ucb/source/ucp/gvfs/gvfs_provider.cxx ucb/source/ucp/hierarchy/hierarchyservices.cxx ucb/source/ucp/odma/odma_lib.cxx ucb/source/ucp/odma/odma_services.cxx ucb/source/ucp/package/pkgservices.cxx ucb/source/ucp/tdoc/tdoc_services.cxx ucb/source/ucp/webdav/ContentProperties.cxx ucb/source/ucp/webdav/NeonHeadRequest.cxx ucb/source/ucp/webdav/webdavcontent.cxx ucb/source/ucp/webdav/webdavservices.cxx uui/source/iahndl.cxx uui/source/iahndl.hxx uui/source/loginerr.hxx uui/source/nameclashdlg.hxx uui/source/passcrtdlg.cxx uui/source/passworddlg.cxx uui/source/passworddlg.hxx uui/source/services.cxx vbahelper/inc/vbahelper/vbahelper.hxx vbahelper/prj/build.lst vbahelper/prj/d.lst vbahelper/source/msforms/makefile.mk vbahelper/source/msforms/vbauserform.cxx vbahelper/source/vbahelper/makefile.mk vbahelper/source/vbahelper/vbaapplicationbase.cxx vbahelper/source/vbahelper/vbacommandbarcontrol.cxx vbahelper/source/vbahelper/vbadocumentbase.cxx vbahelper/source/vbahelper/vbadocumentsbase.cxx vbahelper/source/vbahelper/vbahelper.cxx vbahelper/util/makefile.mk xmlhelp/source/cxxhelp/provider/databases.cxx xmlhelp/source/cxxhelp/provider/services.cxx xmlhelp/source/treeview/tvfactory.cxx xmloff/JunitTest_xmloff_unoapi.mk xmloff/inc/functional.hxx xmloff/inc/xmloff/formlayerexport.hxx xmloff/inc/xmloff/formlayerimport.hxx xmloff/inc/xmloff/functional.hxx xmloff/inc/xmloff/shapeimport.hxx xmloff/inc/xmloff/xmlcnitm.hxx xmloff/inc/xmloff/xmlnumfi.hxx xmloff/prj/build.lst xmloff/source/chart/SchXMLChartContext.cxx xmloff/source/chart/SchXMLExport.cxx xmloff/source/chart/SchXMLImport.cxx xmloff/source/chart/SchXMLLegendContext.hxx xmloff/source/chart/SchXMLPlotAreaContext.cxx xmloff/source/core/xmluconv.cxx xmloff/source/draw/sdxmlexp.cxx xmloff/source/draw/shapeexport4.cxx xmloff/source/draw/ximp3dobject.cxx xmloff/source/draw/ximp3dscene.cxx xmloff/source/forms/formlayerexport.cxx xmloff/source/forms/formlayerimport.cxx xmloff/source/forms/handler/vcl_time_handler.hxx xmloff/source/forms/layerimport.cxx xmloff/source/forms/layerimport.hxx xmloff/source/forms/property_meta_data.hxx xmloff/source/style/PageHeaderFooterContext.cxx xmloff/source/style/PageMasterStyleMap.cxx xmloff/source/style/prstylei.cxx xmloff/source/style/xmlimppr.cxx xmloff/source/style/xmlnumfi.cxx xmloff/source/style/xmlstyle.cxx xmloff/source/table/tabledesignsimporter.cxx xmloff/source/text/XMLTextNumRuleInfo.cxx xmloff/source/text/XMLTextShapeStyleContext.cxx xmloff/source/text/txtstyle.cxx xmloff/source/transform/ChartOOoTContext.cxx xmloff/source/transform/EventOOoTContext.cxx xmloff/source/transform/TransformerBase.cxx xmloff/util/makefile.mk xmlscript/util/xcr.component
Diffstat (limited to 'desktop')
-rwxr-xr-x[-rw-r--r--]desktop/inc/app.hxx12
-rwxr-xr-x[-rw-r--r--]desktop/inc/deployment.hrc0
-rwxr-xr-x[-rw-r--r--]desktop/inc/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/inc/migration.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/inc/pch/precompiled_desktop.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/inc/pch/precompiled_desktop.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/os2/source/applauncher/launcher.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/os2/source/applauncher/launcher.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/os2/source/applauncher/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/os2/source/applauncher/officeloader.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/os2/source/applauncher/quickstart.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/os2/source/applauncher/sbase.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/os2/source/applauncher/scalc.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/os2/source/applauncher/sdraw.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/os2/source/applauncher/simpress.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/os2/source/applauncher/smath.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/os2/source/applauncher/swriter.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/prj/build.lst6
-rwxr-xr-x[-rw-r--r--]desktop/prj/d.lst8
-rwxr-xr-x[-rw-r--r--]desktop/qa/deployment_misc/makefile.mk14
-rwxr-xr-x[-rw-r--r--]desktop/qa/deployment_misc/test_dp_version.cxx9
-rwxr-xr-x[-rw-r--r--]desktop/qa/deployment_misc/version.map2
-rwxr-xr-x[-rw-r--r--]desktop/registry/data/org/openoffice/Office/Jobs.xcu0
-rwxr-xr-x[-rw-r--r--]desktop/registry/data/org/openoffice/Office/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/scripts/basis-link0
-rwxr-xr-x[-rw-r--r--]desktop/scripts/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/scripts/mozwrapper.sh0
-rwxr-xr-x[-rw-r--r--]desktop/scripts/odf-basis-link0
-rwxr-xr-x[-rw-r--r--]desktop/scripts/sbase.sh0
-rwxr-xr-x[-rw-r--r--]desktop/scripts/scalc.sh0
-rwxr-xr-x[-rw-r--r--]desktop/scripts/sdraw.sh0
-rwxr-xr-x[-rw-r--r--]desktop/scripts/simpress.sh0
-rwxr-xr-x[-rw-r--r--]desktop/scripts/smaster.sh0
-rwxr-xr-x[-rw-r--r--]desktop/scripts/smath.sh0
-rwxr-xr-x[-rw-r--r--]desktop/scripts/so-basis-link0
-rwxr-xr-x[-rw-r--r--]desktop/scripts/soffice.sh17
-rwxr-xr-x[-rw-r--r--]desktop/scripts/sweb.sh0
-rwxr-xr-x[-rw-r--r--]desktop/scripts/swriter.sh0
-rwxr-xr-x[-rw-r--r--]desktop/scripts/unoinfo.sh15
-rwxr-xr-x[-rw-r--r--]desktop/scripts/unopkg.sh32
-rwxr-xr-x[-rw-r--r--]desktop/scripts/ure-link0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/app.cxx235
-rwxr-xr-x[-rw-r--r--]desktop/source/app/appfirststart.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/appinit.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/appinit.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/appsys.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/appsys.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/check_ext_deps.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/checkinstall.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/checkinstall.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/cmdlineargs.cxx260
-rwxr-xr-x[-rw-r--r--]desktop/source/app/cmdlineargs.hxx37
-rwxr-xr-x[-rw-r--r--]desktop/source/app/cmdlinehelp.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/cmdlinehelp.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/configinit.cxx2
-rwxr-xr-x[-rw-r--r--]desktop/source/app/configinit.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/copyright_ascii_ooo.c0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/copyright_ascii_sun.c0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/desktop.hrc0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/desktop.src1
-rwxr-xr-x[-rw-r--r--]desktop/source/app/desktopcontext.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/desktopcontext.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/desktopresid.cxx2
-rwxr-xr-x[-rw-r--r--]desktop/source/app/desktopresid.hxx2
-rwxr-xr-x[-rw-r--r--]desktop/source/app/dispatchwatcher.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/dispatchwatcher.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/exports.dxp1
-rwxr-xr-x[-rw-r--r--]desktop/source/app/langselect.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/langselect.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/lockfile.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/lockfile.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/lockfile2.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/main.c0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/officeipcthread.cxx2
-rwxr-xr-x[-rw-r--r--]desktop/source/app/officeipcthread.hxx2
-rwxr-xr-x[-rw-r--r--]desktop/source/app/omutexmember.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/sofficemain.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/sofficemain.h0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/userinstall.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/userinstall.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/app/version.map0
-rwxr-xr-xdesktop/source/deployment/deployment.component64
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/dp_log.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/dp_persmap.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/dp_services.cxx21
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/dp_xml.cxx0
-rwxr-xr-xdesktop/source/deployment/gui/deploymentgui.component40
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/descedit.cxx2
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/descedit.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui.h0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui.hrc7
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_autoscrolledit.cxx2
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_autoscrolledit.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_backend.src0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_dependencydialog.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_dependencydialog.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_dependencydialog.src2
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_dialog.src37
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_dialog2.cxx116
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_dialog2.hxx27
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_dialog2.src4
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_extensioncmdqueue.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_extlistbox.cxx5
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_extlistbox.hxx3
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_service.cxx8
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_shared.hxx2
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_theextmgr.cxx2
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_theextmgr.hxx2
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_thread.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_thread.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_updatedata.hxx5
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_updatedialog.cxx822
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_updatedialog.hxx60
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_updatedialog.src27
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_updateinstalldialog.cxx4
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_updateinstalldialog.hxx2
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_updateinstalldialog.src1
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_versionboxes.src0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/license_dialog.cxx24
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/license_dialog.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/makefile.mk8
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/inc/db.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/inc/dp_dependencies.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/inc/dp_descriptioninfoset.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/inc/dp_identifier.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/inc/dp_interact.h0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/inc/dp_misc.h0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/inc/dp_misc.mk0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/inc/dp_misc_api.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/inc/dp_persmap.h0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/inc/dp_platform.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/inc/dp_resource.h6
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/inc/dp_ucb.h0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/inc/dp_update.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/inc/dp_version.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/inc/dp_xml.h0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/makefile.mk8
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/manager/dp_activepackages.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/manager/dp_activepackages.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/manager/dp_commandenvironments.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/manager/dp_commandenvironments.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/manager/dp_extensionmanager.cxx131
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/manager/dp_extensionmanager.hxx19
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/manager/dp_informationprovider.cxx33
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/manager/dp_manager.cxx33
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/manager/dp_manager.h0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/manager/dp_manager.hrc0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/manager/dp_manager.src0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/manager/dp_managerfac.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/manager/dp_properties.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/manager/dp_properties.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/manager/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/misc/db.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/misc/dp_dependencies.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/misc/dp_descriptioninfoset.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/misc/dp_identifier.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/misc/dp_interact.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/misc/dp_misc.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/misc/dp_misc.hrc0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/misc/dp_misc.src2
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/misc/dp_platform.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/misc/dp_resource.cxx4
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/misc/dp_ucb.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/misc/dp_update.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/misc/dp_version.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/misc/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/component/dp_compbackenddb.cxx43
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/component/dp_compbackenddb.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/component/dp_component.cxx855
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/component/dp_component.hrc1
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/component/dp_component.src5
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/component/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/configuration/dp_configuration.cxx132
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/configuration/dp_configuration.hrc0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/configuration/dp_configuration.src0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/configuration/dp_configurationbackenddb.cxx15
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/configuration/dp_configurationbackenddb.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/configuration/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/dp_backend.cxx12
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/dp_backenddb.cxx118
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/dp_registry.cxx18
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/dp_registry.src0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/executable/dp_executable.cxx38
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/executable/dp_executablebackenddb.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/executable/dp_executablebackenddb.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/executable/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/help/dp_help.cxx434
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/help/dp_help.hrc0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/help/dp_help.src0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/help/dp_helpbackenddb.cxx13
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/help/dp_helpbackenddb.hxx2
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/help/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/inc/dp_backend.h25
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/inc/dp_backenddb.hxx12
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/inc/dp_registry.hrc0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/package/dp_extbackenddb.cxx22
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/package/dp_extbackenddb.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/package/dp_package.cxx56
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/package/dp_package.hrc0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/package/dp_package.src0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/package/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/script/dp_lib_container.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/script/dp_lib_container.h0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/script/dp_script.cxx40
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/script/dp_script.hrc0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/script/dp_script.src0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/script/dp_scriptbackenddb.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/script/dp_scriptbackenddb.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/script/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/sfwk/dp_parceldesc.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/sfwk/dp_parceldesc.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/sfwk/dp_sfwk.cxx24
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/sfwk/dp_sfwk.hrc0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/sfwk/dp_sfwk.src0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/sfwk/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/target.pmk0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/unopkg/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/unopkg/unopkg.src0
-rwxr-xr-x[-rw-r--r--]desktop/source/inc/exithelper.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/inc/helpid.hrc71
-rwxr-xr-x[-rw-r--r--]desktop/source/migration/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/source/migration/migration.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/migration/migration_impl.hxx0
-rwxr-xr-xdesktop/source/migration/pages.cxx671
-rwxr-xr-xdesktop/source/migration/pages.hxx212
-rwxr-xr-x[-rw-r--r--]desktop/source/migration/services/autocorrmigration.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/migration/services/autocorrmigration.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/migration/services/basicmigration.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/migration/services/basicmigration.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/migration/services/cexports.cxx7
-rwxr-xr-x[-rw-r--r--]desktop/source/migration/services/cexportsoo3.cxx7
-rwxr-xr-x[-rw-r--r--]desktop/source/migration/services/cppumaker.mk0
-rwxr-xr-x[-rw-r--r--]desktop/source/migration/services/jvmfwk.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/migration/services/jvmfwk.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/migration/services/makefile.mk17
-rwxr-xr-xdesktop/source/migration/services/migrationoo2.component37
-rwxr-xr-x[-rw-r--r--]desktop/source/migration/services/migrationoo2.xml0
-rwxr-xr-xdesktop/source/migration/services/migrationoo3.component34
-rw-r--r--desktop/source/migration/services/migrationoo3.map8
-rwxr-xr-x[-rw-r--r--]desktop/source/migration/services/misc.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/migration/services/oo3extensionmigration.cxx4
-rwxr-xr-x[-rw-r--r--]desktop/source/migration/services/oo3extensionmigration.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/migration/services/wordbookmigration.cxx2
-rwxr-xr-x[-rw-r--r--]desktop/source/migration/services/wordbookmigration.hxx0
-rwxr-xr-xdesktop/source/migration/wizard.cxx603
-rwxr-xr-xdesktop/source/migration/wizard.hrc100
-rwxr-xr-xdesktop/source/migration/wizard.hxx105
-rwxr-xr-xdesktop/source/migration/wizard.src442
-rwxr-xr-x[-rw-r--r--]desktop/source/offacc/acceptor.cxx17
-rwxr-xr-x[-rw-r--r--]desktop/source/offacc/acceptor.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/offacc/makefile.mk8
-rwxr-xr-xdesktop/source/offacc/offacc.component34
-rwxr-xr-x[-rw-r--r--]desktop/source/pagein/file_image.h0
-rwxr-xr-x[-rw-r--r--]desktop/source/pagein/file_image_unx.c0
-rwxr-xr-x[-rw-r--r--]desktop/source/pagein/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/source/pagein/pagein.c0
-rwxr-xr-x[-rw-r--r--]desktop/source/pkgchk/unopkg/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/source/pkgchk/unopkg/unopkg_app.cxx38
-rwxr-xr-x[-rw-r--r--]desktop/source/pkgchk/unopkg/unopkg_cmdenv.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/pkgchk/unopkg/unopkg_main.c0
-rwxr-xr-x[-rw-r--r--]desktop/source/pkgchk/unopkg/unopkg_main.h0
-rwxr-xr-x[-rw-r--r--]desktop/source/pkgchk/unopkg/unopkg_misc.cxx2
-rwxr-xr-x[-rw-r--r--]desktop/source/pkgchk/unopkg/unopkg_shared.h2
-rwxr-xr-x[-rw-r--r--]desktop/source/pkgchk/unopkg/version.map0
-rwxr-xr-x[-rw-r--r--]desktop/source/registration/com/sun/star/registration/Registration.java4
-rwxr-xr-x[-rw-r--r--]desktop/source/registration/com/sun/star/registration/makefile.mk7
-rwxr-xr-x[-rw-r--r--]desktop/source/registration/com/sun/star/registration/manifest0
-rwxr-xr-xdesktop/source/registration/com/sun/star/registration/productregistration.jar.component34
-rwxr-xr-x[-rw-r--r--]desktop/source/registration/com/sun/star/servicetag/BrowserSupport.java0
-rwxr-xr-x[-rw-r--r--]desktop/source/registration/com/sun/star/servicetag/Installer.java0
-rwxr-xr-x[-rw-r--r--]desktop/source/registration/com/sun/star/servicetag/LinuxSystemEnvironment.java0
-rwxr-xr-x[-rw-r--r--]desktop/source/registration/com/sun/star/servicetag/RegistrationData.java0
-rwxr-xr-x[-rw-r--r--]desktop/source/registration/com/sun/star/servicetag/RegistrationDocument.java0
-rwxr-xr-x[-rw-r--r--]desktop/source/registration/com/sun/star/servicetag/Registry.java0
-rwxr-xr-x[-rw-r--r--]desktop/source/registration/com/sun/star/servicetag/ServiceTag.java0
-rwxr-xr-x[-rw-r--r--]desktop/source/registration/com/sun/star/servicetag/SolarisServiceTag.java0
-rwxr-xr-x[-rw-r--r--]desktop/source/registration/com/sun/star/servicetag/SolarisSystemEnvironment.java0
-rwxr-xr-x[-rw-r--r--]desktop/source/registration/com/sun/star/servicetag/SunConnection.java0
-rwxr-xr-x[-rw-r--r--]desktop/source/registration/com/sun/star/servicetag/SysnetRegistryHelper.java0
-rwxr-xr-x[-rw-r--r--]desktop/source/registration/com/sun/star/servicetag/SystemEnvironment.java0
-rwxr-xr-x[-rw-r--r--]desktop/source/registration/com/sun/star/servicetag/UnauthorizedAccessException.java0
-rwxr-xr-x[-rw-r--r--]desktop/source/registration/com/sun/star/servicetag/Util.java0
-rwxr-xr-x[-rw-r--r--]desktop/source/registration/com/sun/star/servicetag/WindowsSystemEnvironment.java0
-rwxr-xr-x[-rw-r--r--]desktop/source/registration/com/sun/star/servicetag/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/source/registration/com/sun/star/servicetag/resources/product_registration.xsd0
-rwxr-xr-x[-rw-r--r--]desktop/source/so_comp/evaluation.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/so_comp/evaluation.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/so_comp/makefile.mk7
-rwxr-xr-x[-rw-r--r--]desktop/source/so_comp/oemjob.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/so_comp/oemjob.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/so_comp/services.cxx28
-rwxr-xr-xdesktop/source/so_comp/socomp.component37
-rwxr-xr-x[-rw-r--r--]desktop/source/splash/makefile.mk8
-rwxr-xr-x[-rw-r--r--]desktop/source/splash/services_spl.cxx28
-rwxr-xr-xdesktop/source/splash/spl.component37
-rwxr-xr-x[-rw-r--r--]desktop/source/splash/splash.cxx28
-rwxr-xr-x[-rw-r--r--]desktop/source/splash/splash.hxx0
-rwxr-xr-xdesktop/test/deployment/active/Addons.xcu67
-rwxr-xr-xdesktop/test/deployment/active/Dispatch.java101
-rwxr-xr-xdesktop/test/deployment/active/MANIFEST.MF3
-rwxr-xr-xdesktop/test/deployment/active/ProtocolHandler.xcu48
-rwxr-xr-xdesktop/test/deployment/active/Provider.java81
-rwxr-xr-xdesktop/test/deployment/active/Services.java72
-rwxr-xr-xdesktop/test/deployment/active/active_native.cxx320
-rwxr-xr-xdesktop/test/deployment/active/active_python.py120
-rwxr-xr-xdesktop/test/deployment/active/description.xml36
-rwxr-xr-xdesktop/test/deployment/active/makefile.mk83
-rwxr-xr-xdesktop/test/deployment/active/manifest.xml43
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/boxt/Addons.xcu0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/boxt/ProtocolHandler.xcu0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/boxt/boxt.cxx102
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/boxt/description.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/boxt/makefile.mk2
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/boxt/manifest.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/dependencies/broken-dependency.oxtbin1655 -> 1655 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/dependencies/double-dependencies.oxtbin1651 -> 1651 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/dependencies/empty-dependencies.oxtbin1624 -> 1624 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/dependencies/funny-dependency.oxtbin1730 -> 1730 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/dependencies/license-dependency.oxtbin1891 -> 1891 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/dependencies/many-dependencies.oxtbin1702 -> 1702 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/dependencies/minattr22.oxtbin1690 -> 1690 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/dependencies/minattr23.oxtbin1690 -> 1690 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/dependencies/minattr24.oxtbin1690 -> 1690 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/dependencies/no-dependencies.oxtbin1611 -> 1611 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/dependencies/no-description.oxtbin1360 -> 1360 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/dependencies/readme.txt0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/dependencies/unknown-dependency.oxtbin1633 -> 1633 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/dependencies/version10000.oxtbin1668 -> 1668 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/dependencies/version21.oxtbin1666 -> 1666 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/dependencies/version21ns.oxtbin1661 -> 1661 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/dependencies/version21other.oxtbin1679 -> 1679 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/dependencies/version22.oxtbin1666 -> 1666 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/dependencies/version23.oxtbin1666 -> 1666 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/dependencies/versionempty.oxtbin1675 -> 1675 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/dependencies/versionnone.oxtbin1674 -> 1674 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/description/desc1.oxtbin2096 -> 2096 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/description/desc2.oxtbin2091 -> 2091 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/description/desc3.oxtbin2070 -> 2070 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/description/desc4.oxtbin2061 -> 2061 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/description/desc5.oxtbin2041 -> 2041 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/display_name/name1.oxtbin704 -> 704 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/display_name/name2.oxtbin699 -> 699 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/display_name/name3.oxtbin681 -> 681 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/display_name/name4.oxtbin675 -> 675 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/display_name/name5.oxtbin654 -> 654 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/display_name/readme.txt0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/executable_content/build/hello.c0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/executable_content/build/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/executable_content/build/readme.txt0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/executable_content/hello.oxtbin35048 -> 35048 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/executable_content/readme.txt0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/identifier/explicit/identifier.oxtbin1660 -> 1660 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/identifier/legacy/identifier.oxtbin1634 -> 1634 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/identifier/readme.txt0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/locationtest/LocationTest.idl0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/locationtest/LocationTest.java0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/locationtest/LocationTest.odtbin7681 -> 7681 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/locationtest/MANIFEST.MF0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/locationtest/delzip0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/locationtest/description.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/locationtest/makefile.mk3
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/locationtest/manifest.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/MANIFEST.MF0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/OptionsEventHandler.java0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/options/leaf1.oxtbin8308 -> 8308 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/options/leaf1mod.oxtbin8310 -> 8310 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/options/leaf2.oxtbin8338 -> 8338 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/options/leaves1.oxtbin21158 -> 21158 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/options/leaves2.oxtbin21153 -> 21153 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/options/leaves3.oxtbin21080 -> 21080 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/options/modules1.oxtbin24317 -> 24317 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/options/modules2.oxtbin24196 -> 24196 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/options/nodes1.oxtbin1882 -> 1882 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/options/nodes2.oxtbin24287 -> 24287 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/options/nodes3.oxtbin24315 -> 24315 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/options/nodes4.oxtbin24318 -> 24318 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/options/nodes5.oxtbin12616 -> 12616 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/options/readme.txt0
-rwxr-xr-xdesktop/test/deployment/passive/Addons.xcu67
-rwxr-xr-xdesktop/test/deployment/passive/Dispatch.java101
-rwxr-xr-xdesktop/test/deployment/passive/MANIFEST.MF3
-rwxr-xr-xdesktop/test/deployment/passive/ProtocolHandler.xcu48
-rwxr-xr-xdesktop/test/deployment/passive/Provider.java81
-rwxr-xr-xdesktop/test/deployment/passive/Services.java49
-rwxr-xr-xdesktop/test/deployment/passive/description.xml36
-rwxr-xr-xdesktop/test/deployment/passive/makefile.mk136
-rwxr-xr-xdesktop/test/deployment/passive/manifest.xml40
-rwxr-xr-xdesktop/test/deployment/passive/passive_java.component38
-rwxr-xr-xdesktop/test/deployment/passive/passive_native.component38
-rwxr-xr-xdesktop/test/deployment/passive/passive_native.cxx289
-rwxr-xr-xdesktop/test/deployment/passive/passive_python.component38
-rwxr-xr-xdesktop/test/deployment/passive/passive_python.py101
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/simple_license/BadDesc.oxtbin9663 -> 9663 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/simple_license/BadNamespace.oxtbin9736 -> 9736 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/simple_license/BadRoot.oxtbin9073 -> 9073 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/simple_license/Locale1.oxtbin2126 -> 2126 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/simple_license/Locale2.oxtbin2121 -> 2121 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/simple_license/Locale3.oxtbin2101 -> 2101 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/simple_license/Locale4.oxtbin2094 -> 2094 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/simple_license/Locale5.oxtbin2072 -> 2072 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/simple_license/Locale6.oxtbin1397 -> 1397 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/simple_license/LongLic.oxtbin9521 -> 9521 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/simple_license/MissingLic.oxtbin9214 -> 9214 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/simple_license/MissingLicRef.oxtbin9332 -> 9332 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/simple_license/NoDefLang.oxtbin9360 -> 9360 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/simple_license/NoDesc.oxtbin8722 -> 8722 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/simple_license/NoLang.oxtbin9217 -> 9217 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/simple_license/Prefix.oxtbin1112 -> 1112 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/simple_license/ShortLicense.oxtbin9381 -> 9381 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/simple_license/ShortLicenseShared.oxtbin9382 -> 9382 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/simple_license/tests_simple_license.odtbin16629 -> 16629 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/changing_display_name/change1.oxtbin1650 -> 1650 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/changing_display_name/change1_mod.oxtbin1673 -> 1673 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/changing_display_name/readme.txt0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/changing_display_name/update1/change1.oxtbin1675 -> 1675 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/changing_display_name/update1/change1.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/changing_display_name/update2/change1.oxtbin1687 -> 1687 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/changing_display_name/update2/change1.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/default_url/default1.oxtbin1544 -> 1544 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/default_url/default2.oxtbin1544 -> 1544 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/default_url/readme.txt0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/default_url/update/default1.oxtbin1546 -> 1546 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/default_url/update/default1.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/default_url/update/default2.oxtbin1546 -> 1546 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/default_url/update/default2.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/default_url/update/feed1.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/defect/fail1.oxtbin2189 -> 2189 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/defect/fail2.oxtbin2188 -> 2188 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/defect/fail3.oxtbin2188 -> 2188 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/defect/fail4.oxtbin2189 -> 2189 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/defect/info1.oxtbin2188 -> 2188 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/defect/info2.oxtbin2187 -> 2187 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/defect/info3.oxtbin2187 -> 2187 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/defect/readme.txt0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/defect/update/fail1.oxtbin2193 -> 2193 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/defect/update/fail1.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/defect/update/fail2.oxtbin2436 -> 2436 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/defect/update/fail2.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/defect/update/fail3.oxtbin2396 -> 2396 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/defect/update/fail3.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/defect/update/fail4.oxt0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/defect/update/fail4.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/defect/update/info1.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/defect/update/info2.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/defect/update/info3.oxtbin2189 -> 2189 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/defect/update/info3.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/dependencies/publisher_en.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/dependencies/readme.txt0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/dependencies/release-notes_en.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/dependencies/update-dependencies.oxtbin1751 -> 1751 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/dependencies/update/update-dependencies.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/license/lic1.oxtbin3608 -> 3608 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/license/lic2.oxtbin3625 -> 3625 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/license/lic3.oxtbin3624 -> 3624 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/license/readme.txt0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/license/update/lic1.oxtbin3610 -> 3610 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/license/update/lic1.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/license/update/lic2.oxtbin3627 -> 3627 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/license/update/lic2.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/license/update/lic3.oxtbin3626 -> 3626 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/license/update/lic3.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/all1.oxtbin692 -> 692 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/all2.oxtbin702 -> 702 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/all3.oxtbin297 -> 297 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/freebsd_x86.oxtbin706 -> 706 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/freebsd_x86_64.oxtbin711 -> 711 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/invalid1.oxtbin653 -> 653 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/invalid2.oxtbin653 -> 653 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/invalid3.oxtbin655 -> 655 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/linux_arm_eabi.oxtbin709 -> 709 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/linux_arm_oabi.oxtbin710 -> 710 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/linux_ia64.oxtbin706 -> 706 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/linux_mips_eb.oxtbin709 -> 709 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/linux_mips_el.oxtbin708 -> 708 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/linux_powerpc.oxtbin708 -> 708 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/linux_powerpc64.oxtbin710 -> 710 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/linux_s390.oxtbin705 -> 705 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/linux_s390x.oxtbin706 -> 706 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/linux_sparc.oxtbin706 -> 706 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/linux_x86.oxtbin705 -> 705 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/linux_x86_64.oxtbin708 -> 708 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/macosx_powerpc.oxtbin710 -> 710 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/macosx_x86.oxtbin707 -> 707 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/mul1.oxtbin952 -> 952 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/os2_x86.oxtbin706 -> 706 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/readme.txt0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/solaris_sparc.oxtbin709 -> 709 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/solaris_x86.oxtbin706 -> 706 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/platform/windows_x86.oxtbin707 -> 707 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/pub1.oxtbin1882 -> 1882 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/pub10.oxtbin1742 -> 1742 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/pub11.oxtbin1601 -> 1601 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/pub2.oxtbin1866 -> 1866 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/pub3.oxtbin1829 -> 1829 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/pub4.oxtbin1812 -> 1812 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/pub5.oxtbin1769 -> 1769 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/pub6.oxtbin1814 -> 1814 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/pub7.oxtbin1769 -> 1769 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/pub8.oxtbin1853 -> 1853 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/pub9.oxtbin1779 -> 1779 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/publisher_de-DE-altmark.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/publisher_de-DE.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/publisher_de.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/publisher_en-GB.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/publisher_en-US-region1.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/publisher_en-US-region2.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/publisher_en-US.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/publisher_en-region3.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/publisher_en.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/readme.txt0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/release-notes_de-DE-altmark.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/release-notes_de-DE.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/release-notes_de.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/release-notes_en-GB.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/release-notes_en-US-region1.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/release-notes_en-US-region2.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/release-notes_en-US.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/release-notes_en-region3.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/release-notes_en.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/update/pub1.oxtbin1885 -> 1885 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/update/pub1.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/update/pub10.oxtbin1744 -> 1744 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/update/pub11.oxtbin1603 -> 1603 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/update/pub2.oxtbin1871 -> 1871 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/update/pub2.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/update/pub3.oxtbin1833 -> 1833 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/update/pub3.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/update/pub4.oxtbin1815 -> 1815 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/update/pub4.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/update/pub5.oxtbin1774 -> 1774 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/update/pub5.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/update/pub6.oxtbin1816 -> 1816 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/update/pub6.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/update/pub7.oxtbin1771 -> 1771 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/update/pub7.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/update/pub8.oxtbin1855 -> 1855 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/publisher/update/pub9.oxtbin1781 -> 1781 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/readme.txt0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/simple/plain1.oxtbin1642 -> 1642 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/simple/plain2.oxtbin1643 -> 1643 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/simple/plain3.oxtbin1643 -> 1643 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/simple/readme.txt0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/simple/update/plain1.oxtbin1645 -> 1645 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/simple/update/plain1.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/simple/update/plain2.oxtbin1645 -> 1645 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/simple/update/plain2.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/simple/update/plain3.oxtbin1645 -> 1645 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/simple/update/plain3.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/updatefeed/feed1.oxtbin2184 -> 2184 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/updatefeed/feed2.oxtbin2184 -> 2184 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/updatefeed/update/feed1.oxtbin2184 -> 2184 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/updatefeed/update/feed1.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/updatefeed/update/feed1.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/updatefeed/update/feed2.oxtbin2184 -> 2184 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/updatefeed/update/feed2.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/updateinfocreation/build/description.xml0
-rwxr-xr-xdesktop/test/deployment/update/updateinfocreation/build/makefile.mk3
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/updateinfocreation/readme.txt0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/updateinfocreation/update/updateinfo.oxtbin4295 -> 4295 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/updateinfocreation/updateinfo.oxtbin4295 -> 4295 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/readme.txt0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/update/web1.oxtbin1695 -> 1695 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/update/web1.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/update/web1_de-DE-altmark.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/update/web1_de-DE.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/update/web1_de.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/update/web1_en-GB.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/update/web1_en-US-region1.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/update/web1_en-US-region2.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/update/web1_en-US.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/update/web1_en-region3.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/update/web1_en.html0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/update/web2.oxtbin1695 -> 1695 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/update/web2.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/update/web3.oxtbin1695 -> 1695 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/update/web3.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/update/web4.oxtbin1695 -> 1695 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/update/web4.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/update/web5.oxtbin1695 -> 1695 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/update/web5.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/update/web6.oxtbin1640 -> 1640 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/update/web6/description.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/update/web6/readme.txt0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/update/web7.oxtbin1897 -> 1897 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/update/web7/description.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/update/web7/readme.txt0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/web1.oxtbin1693 -> 1693 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/web2.oxtbin1693 -> 1693 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/web3.oxtbin1693 -> 1693 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/web4.oxtbin1693 -> 1693 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/web5.oxtbin1693 -> 1693 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/web6.oxtbin1638 -> 1638 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/website_update/web7.oxtbin1894 -> 1894 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/wrong_url/readme.txt0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/wrong_url/update/url1.oxtbin2192 -> 2192 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/wrong_url/update/url1.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/wrong_url/update/url2.oxtbin2206 -> 2206 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/wrong_url/update/url2.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/wrong_url/update/wrongdownload1.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/wrong_url/update/wrongdownload2.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/wrong_url/update/wrongdownload3.update.xml0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/wrong_url/url1.oxtbin2190 -> 2190 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/wrong_url/url2.oxtbin2205 -> 2205 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/wrong_url/url3.oxtbin2204 -> 2204 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/wrong_url/wrongdownload1.oxtbin2194 -> 2194 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/wrong_url/wrongdownload2.oxtbin2194 -> 2194 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/update/wrong_url/wrongdownload3.oxtbin2194 -> 2194 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/readme.txt0
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_0.0/dependency.oxtbin1657 -> 1657 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_0.0/license.oxtbin1733 -> 1733 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_0.0/plain.oxtbin1618 -> 1618 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_1.02.4.7.0/dependency.oxtbin1662 -> 1662 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_1.02.4.7.0/license.oxtbin1738 -> 1738 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_1.02.4.7.0/plain.oxtbin1624 -> 1624 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_1.2.15.3/dependency.oxtbin1662 -> 1662 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_1.2.15.3/license.oxtbin1738 -> 1738 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_1.2.15.3/plain.oxtbin1624 -> 1624 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_1.2.3/dependency.oxtbin1659 -> 1659 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_1.2.3/license.oxtbin1735 -> 1735 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_1.2.3/plain.oxtbin1620 -> 1620 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_1.2.4.7/dependency.oxtbin1661 -> 1661 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_1.2.4.7/license.oxtbin1737 -> 1737 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_1.2.4.7/plain.oxtbin1623 -> 1623 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_badelement/dependency.oxtbin1654 -> 1654 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_badelement/license.oxtbin1731 -> 1731 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_badelement/plain.oxtbin1616 -> 1616 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_badvalue/dependency.oxtbin1657 -> 1657 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_badvalue/license.oxtbin1733 -> 1733 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_badvalue/plain.oxtbin1618 -> 1618 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_nodependencies_0.0/dependency.oxtbin1618 -> 1618 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_nodependencies_1.02.4.7.0/dependency.oxtbin1624 -> 1624 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_nodependencies_1.2.15.3/dependency.oxtbin1624 -> 1624 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_nodependencies_1.2.3/dependency.oxtbin1620 -> 1620 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_nodependencies_1.2.4.7/dependency.oxtbin1623 -> 1623 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_nodependencies_badelement/dependency.oxtbin1616 -> 1616 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_nodependencies_badvalue/dependency.oxtbin1618 -> 1618 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_nodependencies_none/dependency.oxtbin1598 -> 1598 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_none/dependency.oxtbin1645 -> 1645 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_none/license.oxtbin1722 -> 1722 bytes
-rwxr-xr-x[-rw-r--r--]desktop/test/deployment/version/version_none/plain.oxtbin1598 -> 1598 bytes
-rwxr-xr-x[-rw-r--r--]desktop/unx/source/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/unx/source/officeloader/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/unx/source/officeloader/officeloader.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/unx/source/splashx.c0
-rwxr-xr-x[-rw-r--r--]desktop/unx/source/splashx.h0
-rwxr-xr-x[-rw-r--r--]desktop/unx/source/start.c0
-rwxr-xr-x[-rw-r--r--]desktop/unx/splash/exports.map0
-rwxr-xr-x[-rw-r--r--]desktop/unx/splash/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/unx/splash/services_unxsplash.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/unx/splash/unxsplash.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/unx/splash/unxsplash.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/util/hidother.src0
-rwxr-xr-x[-rw-r--r--]desktop/util/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/util/ooverinfo.rc0
-rwxr-xr-x[-rw-r--r--]desktop/util/ooverinfo2.rc16
-rwxr-xr-x[-rw-r--r--]desktop/util/soffice.icobin4990 -> 4990 bytes
-rwxr-xr-x[-rw-r--r--]desktop/util/template.manifest0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/applauncher/launcher.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/applauncher/launcher.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/applauncher/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/applauncher/ooo/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/applauncher/sbase.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/applauncher/scalc.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/applauncher/sdraw.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/applauncher/simpress.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/applauncher/smath.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/applauncher/sweb.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/applauncher/swriter.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/applauncher/verinfo.rc0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/extendloaderenvironment.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/extendloaderenvironment.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/guiloader/genericloader.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/guiloader/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/guistdio/guistdio.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/guistdio/guistdio.inc0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/guistdio/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/guistdio/unopkgio.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/lwrapa.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/lwrapw.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/main.h0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/officeloader/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/officeloader/officeloader.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/rebase/Resource.h0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/rebase/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/rebase/rcfooter.txt0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/rebase/rcheader.txt0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/rebase/rctmpl.txt0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/rebase/rebase.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/rebase/rebasegui.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/rebase/rebasegui.ulf0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/rwrapa.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/rwrapw.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/setup/Resource.h0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/setup/makefile.mk0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/setup/rcfooter.txt0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/setup/rcheader.txt0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/setup/rctmpl.txt0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/setup/setup.cpp0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/setup/setup.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/setup/setup.icobin4710 -> 4710 bytes
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/setup/setup.ulf0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/setup/setup_a.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/setup/setup_help.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/setup/setup_main.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/setup/setup_main.hxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/setup/setup_w.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/sowrapper.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/unoinfo.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/wrapper.h0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/wrappera.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/win32/source/wrapperw.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/zipintro/delzip0
-rwxr-xr-x[-rw-r--r--]desktop/zipintro/makefile.mk0
718 files changed, 7180 insertions, 1681 deletions
diff --git a/desktop/inc/app.hxx b/desktop/inc/app.hxx
index a9ff1b58ba..e50fe66948 100644..100755
--- a/desktop/inc/app.hxx
+++ b/desktop/inc/app.hxx
@@ -63,6 +63,8 @@ class Desktop : public Application
{
friend class UserInstall;
+ void doShutdown();
+
public:
enum BootstrapError
{
@@ -88,11 +90,11 @@ class Desktop : public Application
virtual void Init();
virtual void InitFinished();
virtual void DeInit();
- virtual BOOL QueryExit();
- virtual USHORT Exception(USHORT nError);
+ virtual sal_Bool QueryExit();
+ virtual sal_uInt16 Exception(sal_uInt16 nError);
virtual void SystemSettingsChanging( AllSettings& rSettings, Window* pFrame );
virtual void AppEvent( const ApplicationEvent& rAppEvent );
-
+
DECL_LINK( OpenClients_Impl, void* );
static void OpenClients();
@@ -161,7 +163,7 @@ class Desktop : public Application
void StartSetup( const ::rtl::OUString& aParameters );
// Get a resource message string securely e.g. if resource cannot be retrieved return aFaultBackMsg
- ::rtl::OUString GetMsgString( USHORT nId, const ::rtl::OUString& aFaultBackMsg );
+ ::rtl::OUString GetMsgString( sal_uInt16 nId, const ::rtl::OUString& aFaultBackMsg );
// Create a error message depending on bootstrap failure code and an optional file url
::rtl::OUString CreateErrorMsgString( utl::Bootstrap::FailureCode nFailureCode,
@@ -200,7 +202,7 @@ class Desktop : public Application
sal_Bool m_bMinimized;
sal_Bool m_bInvisible;
bool m_bServicesRegistered;
- USHORT m_nAppEvents;
+ sal_uInt16 m_nAppEvents;
BootstrapError m_aBootstrapError;
BootstrapStatus m_aBootstrapStatus;
diff --git a/desktop/inc/deployment.hrc b/desktop/inc/deployment.hrc
index 65131af453..65131af453 100644..100755
--- a/desktop/inc/deployment.hrc
+++ b/desktop/inc/deployment.hrc
diff --git a/desktop/inc/makefile.mk b/desktop/inc/makefile.mk
index 8715d81427..8715d81427 100644..100755
--- a/desktop/inc/makefile.mk
+++ b/desktop/inc/makefile.mk
diff --git a/desktop/inc/migration.hxx b/desktop/inc/migration.hxx
index 3319d8d771..3319d8d771 100644..100755
--- a/desktop/inc/migration.hxx
+++ b/desktop/inc/migration.hxx
diff --git a/desktop/inc/pch/precompiled_desktop.cxx b/desktop/inc/pch/precompiled_desktop.cxx
index c75a09a317..c75a09a317 100644..100755
--- a/desktop/inc/pch/precompiled_desktop.cxx
+++ b/desktop/inc/pch/precompiled_desktop.cxx
diff --git a/desktop/inc/pch/precompiled_desktop.hxx b/desktop/inc/pch/precompiled_desktop.hxx
index 023fa49379..023fa49379 100644..100755
--- a/desktop/inc/pch/precompiled_desktop.hxx
+++ b/desktop/inc/pch/precompiled_desktop.hxx
diff --git a/desktop/os2/source/applauncher/launcher.cxx b/desktop/os2/source/applauncher/launcher.cxx
index 33bd34a6d0..33bd34a6d0 100644..100755
--- a/desktop/os2/source/applauncher/launcher.cxx
+++ b/desktop/os2/source/applauncher/launcher.cxx
diff --git a/desktop/os2/source/applauncher/launcher.hxx b/desktop/os2/source/applauncher/launcher.hxx
index 1f1c1be968..1f1c1be968 100644..100755
--- a/desktop/os2/source/applauncher/launcher.hxx
+++ b/desktop/os2/source/applauncher/launcher.hxx
diff --git a/desktop/os2/source/applauncher/makefile.mk b/desktop/os2/source/applauncher/makefile.mk
index bf71b57c2f..bf71b57c2f 100644..100755
--- a/desktop/os2/source/applauncher/makefile.mk
+++ b/desktop/os2/source/applauncher/makefile.mk
diff --git a/desktop/os2/source/applauncher/officeloader.cxx b/desktop/os2/source/applauncher/officeloader.cxx
index f3124acdcf..f3124acdcf 100644..100755
--- a/desktop/os2/source/applauncher/officeloader.cxx
+++ b/desktop/os2/source/applauncher/officeloader.cxx
diff --git a/desktop/os2/source/applauncher/quickstart.cxx b/desktop/os2/source/applauncher/quickstart.cxx
index b67389272f..b67389272f 100644..100755
--- a/desktop/os2/source/applauncher/quickstart.cxx
+++ b/desktop/os2/source/applauncher/quickstart.cxx
diff --git a/desktop/os2/source/applauncher/sbase.cxx b/desktop/os2/source/applauncher/sbase.cxx
index ed3e7cceb3..ed3e7cceb3 100644..100755
--- a/desktop/os2/source/applauncher/sbase.cxx
+++ b/desktop/os2/source/applauncher/sbase.cxx
diff --git a/desktop/os2/source/applauncher/scalc.cxx b/desktop/os2/source/applauncher/scalc.cxx
index 854f34e7f6..854f34e7f6 100644..100755
--- a/desktop/os2/source/applauncher/scalc.cxx
+++ b/desktop/os2/source/applauncher/scalc.cxx
diff --git a/desktop/os2/source/applauncher/sdraw.cxx b/desktop/os2/source/applauncher/sdraw.cxx
index b3f4bcff30..b3f4bcff30 100644..100755
--- a/desktop/os2/source/applauncher/sdraw.cxx
+++ b/desktop/os2/source/applauncher/sdraw.cxx
diff --git a/desktop/os2/source/applauncher/simpress.cxx b/desktop/os2/source/applauncher/simpress.cxx
index f4cf9575eb..f4cf9575eb 100644..100755
--- a/desktop/os2/source/applauncher/simpress.cxx
+++ b/desktop/os2/source/applauncher/simpress.cxx
diff --git a/desktop/os2/source/applauncher/smath.cxx b/desktop/os2/source/applauncher/smath.cxx
index d93b15d345..d93b15d345 100644..100755
--- a/desktop/os2/source/applauncher/smath.cxx
+++ b/desktop/os2/source/applauncher/smath.cxx
diff --git a/desktop/os2/source/applauncher/swriter.cxx b/desktop/os2/source/applauncher/swriter.cxx
index 4fc857cf2e..4fc857cf2e 100644..100755
--- a/desktop/os2/source/applauncher/swriter.cxx
+++ b/desktop/os2/source/applauncher/swriter.cxx
diff --git a/desktop/prj/build.lst b/desktop/prj/build.lst
index 90f96d0176..a13732bc64 100644..100755
--- a/desktop/prj/build.lst
+++ b/desktop/prj/build.lst
@@ -1,4 +1,4 @@
-dt desktop : l10n sfx2 stoc BERKELEYDB:berkeleydb sysui BOOST:boost svx xmlhelp sal unoil officecfg offuh NULL
+dt desktop : L10N:l10n sfx2 stoc BERKELEYDB:berkeleydb sysui BOOST:boost svx xmlhelp sal unoil officecfg offuh filter LIBXSLT:libxslt NULL
dt desktop usr1 - all dt_mkout NULL
dt desktop\inc nmake - all dt_inc NULL
dt desktop\prj get - all dt_prj NULL
@@ -43,3 +43,7 @@ dt desktop\registry\data\org\openoffice\Office nmake - a
dt desktop\source\registration\com\sun\star\servicetag\resources get - all sn_svctagres NULL
dt desktop\source\registration\com\sun\star\servicetag nmake - all sn_svctag NULL
dt desktop\source\registration\com\sun\star\registration nmake - all sn_regjob sn_svctag NULL
+dt desktop\qa\deployment_misc nmake - all sn_qa_deployment_misc dt_dp_misc dt_inc NULL
+dt desktop\test\deployment\active nmake - all dt_test_deployment_active NULL
+dt desktop\test\deployment\boxt nmake - all dt_test_deployment_boxt NULL
+dt desktop\test\deployment\passive nmake - all dt_test_deployment_passive NULL
diff --git a/desktop/prj/d.lst b/desktop/prj/d.lst
index 6251de274a..442303258f 100644..100755
--- a/desktop/prj/d.lst
+++ b/desktop/prj/d.lst
@@ -135,3 +135,11 @@ mkdir: %_DEST%\xml%_EXT%\registry\spool\org\openoffice\Office\Jobs
..\%__SRC%\class\*.jar %_DEST%\bin%_EXT%\*.jar
..\%__SRC%\misc\registry\spool\org\openoffice\Office\Jobs\*.xcu %_DEST%\xml%_EXT%\registry\spool\org\openoffice\Office\Jobs
+..\%__SRC%\misc\deployment.component %_DEST%\xml%_EXT%\deployment.component
+..\%__SRC%\misc\deploymentgui.component %_DEST%\xml%_EXT%\deploymentgui.component
+..\%__SRC%\misc\migrationoo2.component %_DEST%\xml%_EXT%\migrationoo2.component
+..\%__SRC%\misc\migrationoo3.component %_DEST%\xml%_EXT%\migrationoo3.component
+..\%__SRC%\misc\offacc.component %_DEST%\xml%_EXT%\offacc.component
+..\%__SRC%\misc\productregistration.jar.component %_DEST%\xml%_EXT%\productregistration.jar.component
+..\%__SRC%\misc\socomp.component %_DEST%\xml%_EXT%\socomp.component
+..\%__SRC%\misc\spl.component %_DEST%\xml%_EXT%\spl.component
diff --git a/desktop/qa/deployment_misc/makefile.mk b/desktop/qa/deployment_misc/makefile.mk
index e6b65d551f..16223914e7 100644..100755
--- a/desktop/qa/deployment_misc/makefile.mk
+++ b/desktop/qa/deployment_misc/makefile.mk
@@ -35,20 +35,22 @@ ENABLE_EXCEPTIONS := TRUE
.INCLUDE: $(PRJ)$/source$/deployment$/inc$/dp_misc.mk
CFLAGSCXX += $(CPPUNIT_CFLAGS)
-DLLPRE = # no leading "lib" on .so files
+
+# TODO: On Windows, test_dp_version.cxx fails due to BOOL redefinition between
+# windef.h and tools/solar.h caused by including "precompiled_desktop.hxx"; this
+# hack to temporarily disable PCH will become unnecessary with the fix for issue
+# 112600:
+CFLAGSCXX += -DDISABLE_PCH_HACK
SHL1TARGET = $(TARGET)
SHL1OBJS = $(SLO)$/test_dp_version.obj
SHL1STDLIBS = $(CPPUNITLIB) $(DEPLOYMENTMISCLIB) $(SALLIB)
SHL1VERSIONMAP = version.map
+SHL1RPATH = NONE
SHL1IMPLIB = i$(SHL1TARGET)
DEF1NAME = $(SHL1TARGET)
SLOFILES = $(SHL1OBJS)
.INCLUDE: target.mk
-
-ALLTAR: test
-
-test .PHONY: $(SHL1TARGETN)
- $(TESTSHL2) $(SHL1TARGETN)
+.INCLUDE : _cppunit.mk
diff --git a/desktop/qa/deployment_misc/test_dp_version.cxx b/desktop/qa/deployment_misc/test_dp_version.cxx
index d5f2d5b413..c6c5372f21 100644..100755
--- a/desktop/qa/deployment_misc/test_dp_version.cxx
+++ b/desktop/qa/deployment_misc/test_dp_version.cxx
@@ -33,7 +33,10 @@
#include <cstddef>
-#include "testshl/simpleheader.hxx"
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
+#include "cppunit/plugin/TestPlugIn.h"
#include "rtl/ustring.h"
#include "rtl/ustring.hxx"
@@ -84,10 +87,10 @@ void Test::test() {
}
}
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(Test, "alltests");
+CPPUNIT_TEST_SUITE_REGISTRATION(Test);
}
-NOADDITIONAL;
+CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/desktop/qa/deployment_misc/version.map b/desktop/qa/deployment_misc/version.map
index f313c44bd7..0dbbcc5a73 100644..100755
--- a/desktop/qa/deployment_misc/version.map
+++ b/desktop/qa/deployment_misc/version.map
@@ -27,7 +27,7 @@
UDK_3_0_0 {
global:
- registerAllTestFunction;
+ cppunitTestPlugIn;
local:
*;
diff --git a/desktop/registry/data/org/openoffice/Office/Jobs.xcu b/desktop/registry/data/org/openoffice/Office/Jobs.xcu
index f0d2783833..f0d2783833 100644..100755
--- a/desktop/registry/data/org/openoffice/Office/Jobs.xcu
+++ b/desktop/registry/data/org/openoffice/Office/Jobs.xcu
diff --git a/desktop/registry/data/org/openoffice/Office/makefile.mk b/desktop/registry/data/org/openoffice/Office/makefile.mk
index 2ad8441ea3..2ad8441ea3 100644..100755
--- a/desktop/registry/data/org/openoffice/Office/makefile.mk
+++ b/desktop/registry/data/org/openoffice/Office/makefile.mk
diff --git a/desktop/scripts/basis-link b/desktop/scripts/basis-link
index 3af84201e0..3af84201e0 100644..100755
--- a/desktop/scripts/basis-link
+++ b/desktop/scripts/basis-link
diff --git a/desktop/scripts/makefile.mk b/desktop/scripts/makefile.mk
index 5c412f8187..5c412f8187 100644..100755
--- a/desktop/scripts/makefile.mk
+++ b/desktop/scripts/makefile.mk
diff --git a/desktop/scripts/mozwrapper.sh b/desktop/scripts/mozwrapper.sh
index 89b6415358..89b6415358 100644..100755
--- a/desktop/scripts/mozwrapper.sh
+++ b/desktop/scripts/mozwrapper.sh
diff --git a/desktop/scripts/odf-basis-link b/desktop/scripts/odf-basis-link
index 3af84201e0..3af84201e0 100644..100755
--- a/desktop/scripts/odf-basis-link
+++ b/desktop/scripts/odf-basis-link
diff --git a/desktop/scripts/sbase.sh b/desktop/scripts/sbase.sh
index e3a8ed07d5..e3a8ed07d5 100644..100755
--- a/desktop/scripts/sbase.sh
+++ b/desktop/scripts/sbase.sh
diff --git a/desktop/scripts/scalc.sh b/desktop/scripts/scalc.sh
index c9c3cde39e..c9c3cde39e 100644..100755
--- a/desktop/scripts/scalc.sh
+++ b/desktop/scripts/scalc.sh
diff --git a/desktop/scripts/sdraw.sh b/desktop/scripts/sdraw.sh
index 4131a2505f..4131a2505f 100644..100755
--- a/desktop/scripts/sdraw.sh
+++ b/desktop/scripts/sdraw.sh
diff --git a/desktop/scripts/simpress.sh b/desktop/scripts/simpress.sh
index d78ea14207..d78ea14207 100644..100755
--- a/desktop/scripts/simpress.sh
+++ b/desktop/scripts/simpress.sh
diff --git a/desktop/scripts/smaster.sh b/desktop/scripts/smaster.sh
index ed9b09d512..ed9b09d512 100644..100755
--- a/desktop/scripts/smaster.sh
+++ b/desktop/scripts/smaster.sh
diff --git a/desktop/scripts/smath.sh b/desktop/scripts/smath.sh
index 454fa135ff..454fa135ff 100644..100755
--- a/desktop/scripts/smath.sh
+++ b/desktop/scripts/smath.sh
diff --git a/desktop/scripts/so-basis-link b/desktop/scripts/so-basis-link
index 3af84201e0..3af84201e0 100644..100755
--- a/desktop/scripts/so-basis-link
+++ b/desktop/scripts/so-basis-link
diff --git a/desktop/scripts/soffice.sh b/desktop/scripts/soffice.sh
index caa975c2b2..8e16ed1be8 100644..100755
--- a/desktop/scripts/soffice.sh
+++ b/desktop/scripts/soffice.sh
@@ -43,15 +43,14 @@ export SAL_ENABLE_FILE_LOCKING
#@# export JITC_PROCESSOR_TYPE=6
# resolve installation directory
-sd_cwd="`pwd`"
-if [ -h "$0" ] ; then
- sd_basename=`basename "$0"`
- sd_script=`ls -l "$0" | sed "s/.*${sd_basename} -> //g"`
- cd "`dirname "$0"`"
- cd "`dirname "$sd_script"`"
-else
- cd "`dirname "$0"`"
-fi
+sd_cwd=`pwd`
+sd_res=$0
+while [ -h "$sd_res" ] ; do
+ cd "`dirname "$sd_res"`"
+ sd_basename=`basename "$sd_res"`
+ sd_res=`ls -l "$sd_basename" | sed "s/.*$sd_basename -> //g"`
+done
+cd "`dirname "$sd_res"`"
sd_prog=`pwd`
cd "$sd_cwd"
diff --git a/desktop/scripts/sweb.sh b/desktop/scripts/sweb.sh
index a365392584..a365392584 100644..100755
--- a/desktop/scripts/sweb.sh
+++ b/desktop/scripts/sweb.sh
diff --git a/desktop/scripts/swriter.sh b/desktop/scripts/swriter.sh
index 3fa48c0d3e..3fa48c0d3e 100644..100755
--- a/desktop/scripts/swriter.sh
+++ b/desktop/scripts/swriter.sh
diff --git a/desktop/scripts/unoinfo.sh b/desktop/scripts/unoinfo.sh
index 3af17625a6..9fc80b5f32 100644..100755
--- a/desktop/scripts/unoinfo.sh
+++ b/desktop/scripts/unoinfo.sh
@@ -29,14 +29,13 @@
set -e
# resolve installation directory
-if [ -h "$0" ] ; then
- sd_basename=`basename "$0"`
- sd_script=`ls -l "$0" | sed "s/.*${sd_basename} -> //g"`
- cd "`dirname "$0"`"
- cd "`dirname "$sd_script"`"
-else
- cd "`dirname "$0"`"
-fi
+sd_res=$0
+while [ -h "$sd_res" ] ; do
+ cd "`dirname "$sd_res"`"
+ sd_basename=`basename "$sd_res"`
+ sd_res=`ls -l "$sd_basename" | sed "s/.*$sd_basename -> //g"`
+done
+cd "`dirname "$sd_res"`"
sd_prog=`pwd`
case $1 in
diff --git a/desktop/scripts/unopkg.sh b/desktop/scripts/unopkg.sh
index 9e2ee788ee..07811c5a5e 100644..100755
--- a/desktop/scripts/unopkg.sh
+++ b/desktop/scripts/unopkg.sh
@@ -31,15 +31,14 @@ SAL_ENABLE_FILE_LOCKING=1
export SAL_ENABLE_FILE_LOCKING
# resolve installation directory
-sd_cwd="`pwd`"
-if [ -h "$0" ] ; then
- sd_basename=`basename "$0"`
- sd_script=`ls -l "$0" | sed "s/.*${sd_basename} -> //g"`
- cd "`dirname "$0"`"
- cd "`dirname "$sd_script"`"
-else
- cd "`dirname "$0"`"
-fi
+sd_cwd=`pwd`
+sd_res=$0
+while [ -h "$sd_res" ] ; do
+ cd "`dirname "$sd_res"`"
+ sd_basename=`basename "$sd_res"`
+ sd_res=`ls -l "$sd_basename" | sed "s/.*$sd_basename -> //g"`
+done
+cd "`dirname "$sd_res"`"
sd_prog=`pwd`
cd "$sd_cwd"
@@ -65,16 +64,27 @@ esac
#collect all bootstrap variables specified on the command line
#so that they can be passed as arguments to javaldx later on
+#Recognize the "sync" option. sync must be applied without any other
+#options except bootstrap variables or the verbose option
for arg in $@
do
case "$arg" in
-env:*) BOOTSTRAPVARS=$BOOTSTRAPVARS" ""$arg";;
+ sync) OPTSYNC=true;;
+ -v) VERBOSE=true;;
+ --verbose) VERBOSE=true;;
+ *) OPTOTHER=$arg;;
esac
done
+if [ "$OPTSYNC" = "true" ] && [ -z "$OPTOTHER" ]
+then
+ JVMFWKPARAMS='-env:UNO_JAVA_JFW_INSTALL_DATA=$OOO_BASE_DIR/share/config/javasettingsunopkginstall.xml -env:JFW_PLUGIN_DO_NOT_CHECK_ACCESSIBILITY=1'
+fi
+
# extend the ld_library_path for java: javaldx checks the sofficerc for us
if [ -x "$sd_prog/../basis-link/ure-link/bin/javaldx" ] ; then
- my_path=`"$sd_prog/../basis-link/ure-link/bin/javaldx" $BOOTSTRAPVARS \
+ my_path=`"$sd_prog/../basis-link/ure-link/bin/javaldx" $BOOTSTRAPVARS $JVMFWKPARAMS \
"-env:INIFILENAME=vnd.sun.star.pathname:$sd_prog/redirectrc"`
if [ -n "$my_path" ] ; then
sd_platform=`uname -s`
@@ -100,6 +110,6 @@ unset XENVIRONMENT
# SAL_NO_XINITTHREADS=true; export SAL_NO_XINITTHREADS
# execute binary
-exec "$sd_prog/unopkg.bin" "$@" \
+exec "$sd_prog/unopkg.bin" "$@" "$JVMFWKPARAMS" \
"-env:INIFILENAME=vnd.sun.star.pathname:$sd_prog/redirectrc"
diff --git a/desktop/scripts/ure-link b/desktop/scripts/ure-link
index dd0ecb6115..dd0ecb6115 100644..100755
--- a/desktop/scripts/ure-link
+++ b/desktop/scripts/ure-link
diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
index 5cf0e9505f..e9859cbe53 100644..100755
--- a/desktop/source/app/app.cxx
+++ b/desktop/source/app/app.cxx
@@ -117,6 +117,7 @@
#include <osl/file.hxx>
#include <osl/process.h>
#include <osl/signal.h>
+#include <osl/thread.hxx>
#include <rtl/uuid.h>
#include <rtl/uri.hxx>
#include <unotools/pathoptions.hxx>
@@ -189,6 +190,7 @@ namespace desktop
static oslSignalHandler pSignalHandler = 0;
static sal_Bool _bCrashReporterEnabled = sal_True;
+static ::rtl::OUString getBrandSharePreregBundledPathURL();
// ----------------------------------------------------------------------------
ResMgr* Desktop::GetDesktopResManager()
@@ -227,7 +229,7 @@ ResMgr* Desktop::GetDesktopResManager()
// Get a message string securely. There is a fallback string if the resource
// is not available.
-OUString Desktop::GetMsgString( USHORT nId, const OUString& aFaultBackMsg )
+OUString Desktop::GetMsgString( sal_uInt16 nId, const OUString& aFaultBackMsg )
{
ResMgr* resMgr = GetDesktopResManager();
if ( !resMgr )
@@ -323,10 +325,8 @@ CommandLineArgs* Desktop::GetCommandLineArgs()
{
::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
if ( !pArgs )
- {
pArgs = new CommandLineArgs;
}
- }
return pArgs;
}
@@ -555,6 +555,44 @@ static ::rtl::OUString getLastSyncFileURLFromUserInstallation()
return aTmp.makeStringAndClear();
}
+//Checks if the argument src is the folder of the help or configuration
+//backend in the prereg folder
+static bool excludeTmpFilesAndFolders(const rtl::OUString & src)
+{
+ const char helpBackend[] = "com.sun.star.comp.deployment.help.PackageRegistryBackend";
+ const char configBackend[] = "com.sun.star.comp.deployment.configuration.PackageRegistryBackend";
+ if (src.endsWithAsciiL(helpBackend, sizeof(helpBackend) - 1 )
+ || src.endsWithAsciiL(configBackend, sizeof(configBackend) - 1))
+ {
+ return true;
+ }
+ return false;
+}
+
+//If we are about to copy the contents of some special folder as determined
+//by excludeTmpFilesAndFolders, then we omit those files or folders with a name
+//derived from temporary folders.
+static bool isExcludedFileOrFolder( const rtl::OUString & name)
+{
+ char const * allowed[] = {
+ "backenddb.xml",
+ "configmgr.ini",
+ "registered_packages.db"
+ };
+
+ const unsigned int size = sizeof(allowed) / sizeof (char const *);
+ bool bExclude = true;
+ for (unsigned int i= 0; i < size; i ++)
+ {
+ ::rtl::OUString allowedName = ::rtl::OUString::createFromAscii(allowed[i]);
+ if (allowedName.equals(name))
+ {
+ bExclude = false;
+ break;
+ }
+ }
+ return bExclude;
+}
static osl::FileBase::RC copy_bundled_recursive(
const rtl::OUString& srcUnqPath,
@@ -577,6 +615,7 @@ throw()
err = osl::FileBase::E_None;
osl::Directory aDir( srcUnqPath );
+ bool bExcludeFiles = excludeTmpFilesAndFolders(srcUnqPath);
if (aDir.open() == osl::FileBase::E_None)
{
sal_Int32 n_Mask = FileStatusMask_FileURL |
@@ -612,7 +651,12 @@ throw()
// Special treatment for "lastsychronized" file. Must not be
// copied from the bundled folder!
- if ( IsDoc && aFileName.equalsAscii( pLastSyncFileName ))
+ //Also do not copy *.tmp files and *.tmp_ folders. This affects the files/folders
+ //from the help and configuration backend
+ if ( IsDoc && (aFileName.equalsAscii( pLastSyncFileName )
+ || bExcludeFiles && isExcludedFileOrFolder(aFileName)))
+ bFilter = true;
+ else if (!IsDoc && bExcludeFiles && isExcludedFileOrFolder(aFileName))
bFilter = true;
}
@@ -765,7 +809,7 @@ void Desktop::DeInit()
RTL_LOGFILE_CONTEXT_TRACE( aLog, "FINISHED WITH Destop::DeInit" );
}
-BOOL Desktop::QueryExit()
+sal_Bool Desktop::QueryExit()
{
try
{
@@ -791,7 +835,7 @@ BOOL Desktop::QueryExit()
xPropertySet->setPropertyValue( OUSTRING(RTL_CONSTASCII_USTRINGPARAM( SUSPEND_QUICKSTARTVETO )), a );
}
- BOOL bExit = ( !xDesktop.is() || xDesktop->terminate() );
+ sal_Bool bExit = ( !xDesktop.is() || xDesktop->terminate() );
if ( !bExit && xPropertySet.is() )
@@ -1378,10 +1422,10 @@ void restartOnMac(bool passArguments) {
}
-USHORT Desktop::Exception(USHORT nError)
+sal_uInt16 Desktop::Exception(sal_uInt16 nError)
{
// protect against recursive calls
- static BOOL bInException = FALSE;
+ static sal_Bool bInException = sal_False;
sal_uInt16 nOldMode = Application::GetSystemWindowMode();
Application::SetSystemWindowMode( nOldMode & ~SYSTEMWINDOW_MODE_NOAUTOMODE );
@@ -1393,7 +1437,7 @@ USHORT Desktop::Exception(USHORT nError)
Application::Abort( aDoubleExceptionString );
}
- bInException = TRUE;
+ bInException = sal_True;
CommandLineArgs* pArgs = GetCommandLineArgs();
// save all modified documents ... if it's allowed doing so.
@@ -1479,8 +1523,26 @@ namespace {
}
}
-int Desktop::Main()
+struct ExecuteGlobals
+{
+ Reference < css::document::XEventListener > xGlobalBroadcaster;
+ sal_Bool bRestartRequested;
+ sal_Bool bUseSystemFileDialog;
+ std::auto_ptr<SvtLanguageOptions> pLanguageOptions;
+ std::auto_ptr<SvtPathOptions> pPathOptions;
+
+ ExecuteGlobals()
+ : bRestartRequested( sal_False )
+ , bUseSystemFileDialog( sal_True )
+ {}
+};
+
+static ExecuteGlobals* pExecGlobals = NULL;
+
+void Desktop::Main()
{
+ pExecGlobals = new ExecuteGlobals();
+
RTL_LOGFILE_CONTEXT( aLog, "desktop (cd100003) ::Desktop::Main" );
// Remember current context object
@@ -1539,14 +1601,8 @@ int Desktop::Main()
Reference< XMultiServiceFactory > xSMgr =
::comphelper::getProcessServiceFactory();
- std::auto_ptr<SvtLanguageOptions> pLanguageOptions;
- std::auto_ptr<SvtPathOptions> pPathOptions;
-
Reference< ::com::sun::star::task::XRestartManager > xRestartManager;
- sal_Bool bRestartRequested( sal_False );
- sal_Bool bUseSystemFileDialog(sal_True);
- int nAcquireCount( 0 );
- Reference < css::document::XEventListener > xGlobalBroadcaster;
+ int nAcquireCount( 0 );
try
{
RegisterServices( xSMgr );
@@ -1574,7 +1630,7 @@ int Desktop::Main()
RTL_LOGFILE_CONTEXT_TRACE( aLog, "{ GetEnableATToolSupport" );
if( Application::GetSettings().GetMiscSettings().GetEnableATToolSupport() )
{
- BOOL bQuitApp;
+ sal_Bool bQuitApp;
if( !InitAccessBridge( true, bQuitApp ) )
if( bQuitApp )
@@ -1604,12 +1660,8 @@ int Desktop::Main()
// create title string
sal_Bool bCheckOk = sal_False;
::com::sun::star::lang::Locale aLocale;
- ResMgr* pLabelResMgr = ResMgr::SearchCreateResMgr( "iso", aLocale );
- if ( !pLabelResMgr )
- {
- // no "iso" resource -> search for "ooo" resource
- pLabelResMgr = ResMgr::SearchCreateResMgr( "ooo", aLocale);
- }
+ String aMgrName = String::CreateFromAscii( "ofa" );
+ ResMgr* pLabelResMgr = ResMgr::SearchCreateResMgr( "ofa", aLocale );
String aTitle = pLabelResMgr ? String( ResId( RID_APPTITLE, *pLabelResMgr ) ) : String();
delete pLabelResMgr;
@@ -1633,7 +1685,7 @@ int Desktop::Main()
SetDisplayName( aTitle );
SetSplashScreenProgress(35);
RTL_LOGFILE_CONTEXT_TRACE( aLog, "{ create SvtPathOptions and SvtLanguageOptions" );
- pPathOptions.reset( new SvtPathOptions);
+ pExecGlobals->pPathOptions.reset( new SvtPathOptions);
SetSplashScreenProgress(40);
RTL_LOGFILE_CONTEXT_TRACE( aLog, "} create SvtPathOptions and SvtLanguageOptions" );
@@ -1650,7 +1702,7 @@ int Desktop::Main()
}
// create service for loadin SFX (still needed in startup)
- xGlobalBroadcaster = Reference < css::document::XEventListener >
+ pExecGlobals->xGlobalBroadcaster = Reference < css::document::XEventListener >
( xSMgr->createInstance(
DEFINE_CONST_UNICODE( "com.sun.star.frame.GlobalEventBroadcaster" ) ), UNO_QUERY );
@@ -1677,16 +1729,17 @@ int Desktop::Main()
Migration::migrateSettingsIfNecessary();
// keep a language options instance...
- pLanguageOptions.reset( new SvtLanguageOptions(sal_True));
+ pExecGlobals->pLanguageOptions.reset( new SvtLanguageOptions(sal_True));
- if (xGlobalBroadcaster.is())
+ if (pExecGlobals->xGlobalBroadcaster.is())
{
css::document::EventObject aEvent;
aEvent.EventName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("OnStartApp"));
- xGlobalBroadcaster->notifyEvent(aEvent);
+ pExecGlobals->xGlobalBroadcaster->notifyEvent(aEvent);
}
SetSplashScreenProgress(50);
+
// Backing Component
sal_Bool bCrashed = sal_False;
sal_Bool bExistsRecoveryData = sal_False;
@@ -1702,7 +1755,7 @@ int Desktop::Main()
}
// check whether the shutdown is caused by restart
- bRestartRequested = ( xRestartManager.is() && xRestartManager->isRestartRequested( sal_True ) );
+ pExecGlobals->bRestartRequested = ( xRestartManager.is() && xRestartManager->isRestartRequested( sal_True ) );
if ( pCmdLineArgs->IsHeadless() )
{
@@ -1710,43 +1763,38 @@ int Desktop::Main()
// headless mode relies on Application::EnableHeadlessMode()
// which does only work for VCL dialogs!!
SvtMiscOptions aMiscOptions;
- bUseSystemFileDialog = aMiscOptions.UseSystemFileDialog();
+ pExecGlobals->bUseSystemFileDialog = aMiscOptions.UseSystemFileDialog();
aMiscOptions.SetUseSystemFileDialog( sal_False );
}
- if ( !bRestartRequested )
+ if ( !pExecGlobals->bRestartRequested )
{
- if (
- (pCmdLineArgs->IsEmptyOrAcceptOnly() ) &&
+ if ((!pCmdLineArgs->WantsToLoadDocument() ) &&
(SvtModuleOptions().IsModuleInstalled(SvtModuleOptions::E_SSTARTMODULE)) &&
(!bExistsRecoveryData ) &&
(!bExistsSessionData ) &&
- (!Application::AnyInput( INPUT_APPEVENT ) )
- )
+ (!Application::AnyInput( INPUT_APPEVENT ) ))
{
- RTL_LOGFILE_CONTEXT_TRACE( aLog, "{ create BackingComponent" );
- Reference< XFrame > xDesktopFrame( xSMgr->createInstance(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.frame.Desktop" ))), UNO_QUERY );
- if (xDesktopFrame.is())
- {
- SetSplashScreenProgress(60);
- Reference< XFrame > xBackingFrame;
- Reference< ::com::sun::star::awt::XWindow > xContainerWindow;
-
- xBackingFrame = xDesktopFrame->findFrame(OUString( RTL_CONSTASCII_USTRINGPARAM( "_blank" )), 0);
- if (xBackingFrame.is())
- xContainerWindow = xBackingFrame->getContainerWindow();
- if (xContainerWindow.is())
- {
- SetDocumentExtendedStyle(xContainerWindow);
- SetSplashScreenProgress(75);
- Sequence< Any > lArgs(1);
- lArgs[0] <<= xContainerWindow;
-
- Reference< XController > xBackingComp(
- xSMgr->createInstanceWithArguments(OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.frame.StartModule") ), lArgs),
- UNO_QUERY);
- SetSplashScreenProgress(80);
+ RTL_LOGFILE_CONTEXT_TRACE( aLog, "{ create BackingComponent" );
+ Reference< XFrame > xDesktopFrame( xSMgr->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.frame.Desktop" ))), UNO_QUERY );
+ if (xDesktopFrame.is())
+ {
+ SetSplashScreenProgress(60);
+ Reference< XFrame > xBackingFrame;
+ Reference< ::com::sun::star::awt::XWindow > xContainerWindow;
+
+ xBackingFrame = xDesktopFrame->findFrame(OUString( RTL_CONSTASCII_USTRINGPARAM( "_blank" )), 0);
+ if (xBackingFrame.is())
+ xContainerWindow = xBackingFrame->getContainerWindow();
+ if (xContainerWindow.is())
+ {
+ SetDocumentExtendedStyle(xContainerWindow);
+ SetSplashScreenProgress(75);
+ Sequence< Any > lArgs(1);
+ lArgs[0] <<= xContainerWindow;
+
+ Reference< XController > xBackingComp(
+ xSMgr->createInstanceWithArguments(OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.frame.StartModule") ), lArgs), UNO_QUERY);
if (xBackingComp.is())
{
Reference< ::com::sun::star::awt::XWindow > xBackingWin(xBackingComp, UNO_QUERY);
@@ -1788,10 +1836,9 @@ int Desktop::Main()
aOptions.SetVCLSettings();
SetSplashScreenProgress(60);
- if ( !bRestartRequested )
+ if ( !pExecGlobals->bRestartRequested )
{
Application::SetFilterHdl( LINK( this, Desktop, ImplInitFilterHdl ) );
-
sal_Bool bTerminateRequested = sal_False;
// Preload function depends on an initialized sfx application!
@@ -1847,9 +1894,9 @@ int Desktop::Main()
new svt::JavaContext( com::sun::star::uno::getCurrentContext() ) );
// check whether the shutdown is caused by restart just before entering the Execute
- bRestartRequested = bRestartRequested || ( xRestartManager.is() && xRestartManager->isRestartRequested( sal_True ) );
+ pExecGlobals->bRestartRequested = pExecGlobals->bRestartRequested || ( xRestartManager.is() && xRestartManager->isRestartRequested( sal_True ) );
- if ( !bRestartRequested )
+ if ( !pExecGlobals->bRestartRequested )
{
// if this run of the office is triggered by restart, some additional actions should be done
DoRestartActionsIfNecessary( !pCmdLineArgs->IsInvisible() && !pCmdLineArgs->IsNoQuickstart() );
@@ -1868,44 +1915,57 @@ int Desktop::Main()
FatalError( MakeStartupErrorMessage(exAnyCfg.Message) );
}
}
+ // CAUTION: you do not necessarily get here e.g. on the Mac.
+ // please put all deinitialization code into doShutdown
+ doShutdown();
+}
+
+void Desktop::doShutdown()
+{
+ if( ! pExecGlobals )
+ return;
- if ( bRestartRequested )
+ if ( pExecGlobals->bRestartRequested )
SetRestartState();
- if (xGlobalBroadcaster.is())
+ if (pExecGlobals->xGlobalBroadcaster.is())
{
css::document::EventObject aEvent;
aEvent.EventName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("OnCloseApp"));
- xGlobalBroadcaster->notifyEvent(aEvent);
+ pExecGlobals->xGlobalBroadcaster->notifyEvent(aEvent);
}
- delete pResMgr;
+ delete pResMgr, pResMgr = NULL;
// Restore old value
+ CommandLineArgs* pCmdLineArgs = GetCommandLineArgs();
if ( pCmdLineArgs->IsHeadless() )
- SvtMiscOptions().SetUseSystemFileDialog( bUseSystemFileDialog );
+ SvtMiscOptions().SetUseSystemFileDialog( pExecGlobals->bUseSystemFileDialog );
// remove temp directory
RemoveTemporaryDirectory();
FlushConfiguration();
// The acceptors in the AcceptorMap must be released (in DeregisterServices)
// with the solar mutex unlocked, to avoid deadlock:
- nAcquireCount = Application::ReleaseSolarMutex();
+ sal_uLong nAcquireCount = Application::ReleaseSolarMutex();
DeregisterServices();
Application::AcquireSolarMutex(nAcquireCount);
tools::DeInitTestToolLib();
// be sure that path/language options gets destroyed before
// UCB is deinitialized
RTL_LOGFILE_CONTEXT_TRACE( aLog, "-> dispose path/language options" );
- pLanguageOptions.reset( 0 );
- pPathOptions.reset( 0 );
+ pExecGlobals->pLanguageOptions.reset( 0 );
+ pExecGlobals->pPathOptions.reset( 0 );
RTL_LOGFILE_CONTEXT_TRACE( aLog, "<- dispose path/language options" );
RTL_LOGFILE_CONTEXT_TRACE( aLog, "-> deinit ucb" );
::ucbhelper::ContentBroker::deinitialize();
RTL_LOGFILE_CONTEXT_TRACE( aLog, "<- deinit ucb" );
+
+ sal_Bool bRR = pExecGlobals->bRestartRequested;
+ delete pExecGlobals, pExecGlobals = NULL;
RTL_LOGFILE_CONTEXT_TRACE( aLog, "FINISHED WITH Destop::Main" );
- if ( bRestartRequested )
+ if ( bRR )
{
restartOnMac(true);
if ( m_rSplashScreen.is() )
@@ -2037,9 +2097,9 @@ sal_Bool Desktop::InitializeQuickstartMode( Reference< XMultiServiceFactory >& r
// unfortunately this broke the QUARTZ behavior which is to always run
// in quickstart mode since Mac applications do not usually quit
// when the last document closes
- #ifndef QUARTZ
+ //#ifndef QUARTZ
if ( bQuickstart )
- #endif
+ //#endif
{
Sequence< Any > aSeq( 1 );
aSeq[0] <<= bQuickstart;
@@ -2093,18 +2153,6 @@ void Desktop::SystemSettingsChanging( AllSettings& rSettings, Window* )
SvtMenuOptions aMenuOpt;
hStyleSettings.SetUseImagesInMenus(aMenuOpt.GetMenuIconsState());
-
- sal_uInt16 nTabStyle = hStyleSettings.GetTabControlStyle();
- nTabStyle &= ~STYLE_TABCONTROL_SINGLELINE;
- if( aAppearanceCfg.IsSingleLineTabCtrl() )
- nTabStyle |=STYLE_TABCONTROL_SINGLELINE;
-
- nTabStyle &= ~STYLE_TABCONTROL_COLOR;
- if( aAppearanceCfg.IsColoredTabCtrl() )
- nTabStyle |= STYLE_TABCONTROL_COLOR;
-
- hStyleSettings.SetTabControlStyle(nTabStyle);
-
hStyleSettings.SetDragFullOptions( nDragFullOptions );
rSettings.SetStyleSettings ( hStyleSettings );
}
@@ -2141,9 +2189,7 @@ IMPL_LINK( Desktop, OpenClients_Impl, void*, EMPTYARG )
OfficeIPCThread::SetReady();
CloseSplashScreen();
-
CheckFirstRun( );
-
EnableOleAutomation();
if (getenv ("OOO_EXIT_POST_STARTUP"))
@@ -2536,7 +2582,7 @@ void Desktop::OpenClients()
// check if a document has been recovered - if there is one of if a document was loaded by cmdline, no default document
// should be created
Reference < XComponent > xFirst;
- BOOL bLoaded = FALSE;
+ sal_Bool bLoaded = sal_False;
CommandLineArgs* pArgs = GetCommandLineArgs();
SvtInternalOptions aInternalOptions;
@@ -2580,8 +2626,6 @@ void Desktop::OpenClients()
aHelpURLBuffer.appendAscii("&System=UNX");
#elif defined WNT
aHelpURLBuffer.appendAscii("&System=WIN");
-#elif defined MAC
- aHelpURLBuffer.appendAscii("&System=MAC");
#elif defined OS2
aHelpURLBuffer.appendAscii("&System=OS2");
#endif
@@ -2687,7 +2731,7 @@ void Desktop::OpenClients()
bCrashed ,
bExistsRecoveryData);
/* TODO we cant be shure, that at least one document could be recovered here successfully
- So we set bLoaded=TRUE to supress opening of the default document.
+ So we set bLoaded=sal_True to supress opening of the default document.
But we should make it more safe. Otherwhise we have an office without an UI ...
...
May be we can check the desktop if some documents are existing there.
@@ -3113,6 +3157,13 @@ void Desktop::HandleAppEvent( const ApplicationEvent& rAppEvent )
catch(const css::uno::Exception&)
{}
}
+ else if( rAppEvent.GetEvent() == "PRIVATE:DOSHUTDOWN" )
+ {
+ Desktop* pD = dynamic_cast<Desktop*>(GetpApp());
+ OSL_ENSURE( pD, "no desktop ?!?" );
+ if( pD )
+ pD->doShutdown();
+ }
}
void Desktop::OpenSplashScreen()
diff --git a/desktop/source/app/appfirststart.cxx b/desktop/source/app/appfirststart.cxx
index 4ab37b7a3e..4ab37b7a3e 100644..100755
--- a/desktop/source/app/appfirststart.cxx
+++ b/desktop/source/app/appfirststart.cxx
diff --git a/desktop/source/app/appinit.cxx b/desktop/source/app/appinit.cxx
index 39967e93f8..39967e93f8 100644..100755
--- a/desktop/source/app/appinit.cxx
+++ b/desktop/source/app/appinit.cxx
diff --git a/desktop/source/app/appinit.hxx b/desktop/source/app/appinit.hxx
index 01aa78857b..01aa78857b 100644..100755
--- a/desktop/source/app/appinit.hxx
+++ b/desktop/source/app/appinit.hxx
diff --git a/desktop/source/app/appsys.cxx b/desktop/source/app/appsys.cxx
index 06264c37d8..06264c37d8 100644..100755
--- a/desktop/source/app/appsys.cxx
+++ b/desktop/source/app/appsys.cxx
diff --git a/desktop/source/app/appsys.hxx b/desktop/source/app/appsys.hxx
index 2dad7b5d71..2dad7b5d71 100644..100755
--- a/desktop/source/app/appsys.hxx
+++ b/desktop/source/app/appsys.hxx
diff --git a/desktop/source/app/check_ext_deps.cxx b/desktop/source/app/check_ext_deps.cxx
index 20bad6f450..20bad6f450 100644..100755
--- a/desktop/source/app/check_ext_deps.cxx
+++ b/desktop/source/app/check_ext_deps.cxx
diff --git a/desktop/source/app/checkinstall.cxx b/desktop/source/app/checkinstall.cxx
index 52f6c6d526..52f6c6d526 100644..100755
--- a/desktop/source/app/checkinstall.cxx
+++ b/desktop/source/app/checkinstall.cxx
diff --git a/desktop/source/app/checkinstall.hxx b/desktop/source/app/checkinstall.hxx
index f37d5ee7ea..f37d5ee7ea 100644..100755
--- a/desktop/source/app/checkinstall.hxx
+++ b/desktop/source/app/checkinstall.hxx
diff --git a/desktop/source/app/cmdlineargs.cxx b/desktop/source/app/cmdlineargs.cxx
index 0c3fcfdfba..c349a39ab9 100644..100755
--- a/desktop/source/app/cmdlineargs.cxx
+++ b/desktop/source/app/cmdlineargs.cxx
@@ -146,20 +146,21 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
UNO_QUERY);
// parse command line arguments
- sal_Bool bPrintEvent = sal_False;
- sal_Bool bOpenEvent = sal_True;
- sal_Bool bViewEvent = sal_False;
- sal_Bool bStartEvent = sal_False;
- sal_Bool bPrintToEvent = sal_False;
- sal_Bool bPrinterName = sal_False;
- sal_Bool bForceOpenEvent = sal_False;
- sal_Bool bForceNewEvent = sal_False;
- sal_Bool bDisplaySpec = sal_False;
- sal_Bool bConversionEvent= sal_False;
- sal_Bool bConversionParamsEvent= sal_False;
- sal_Bool bBatchPrintEvent= sal_False;
- sal_Bool bBatchPrinterNameEvent= sal_False;
- sal_Bool bConversionOutEvent = sal_False;
+ bool bOpenEvent(true);
+ bool bPrintEvent(false);
+ bool bViewEvent(false);
+ bool bStartEvent(false);
+ bool bPrintToEvent(false);
+ bool bPrinterName(false);
+ bool bForceOpenEvent(false);
+ bool bForceNewEvent(false);
+ bool bDisplaySpec(false);
+ bool bOpenDoc(false);
+ bool bConversionEvent(false);
+ bool bConversionParamsEvent(false);
+ bool bBatchPrintEvent(false);
+ bool bBatchPrinterNameEvent(false);
+ bool bConversionOutEvent(false);
m_eArgumentCount = NONE;
@@ -191,119 +192,119 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
if ( aArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("-n")))
{
// force new documents based on the following documents
- bForceNewEvent = sal_True;
- bOpenEvent = sal_False;
- bForceOpenEvent = sal_False;
- bPrintToEvent = sal_False;
- bPrintEvent = sal_False;
- bViewEvent = sal_False;
- bStartEvent = sal_False;
- bDisplaySpec = sal_False;
- }
- else if ( aArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("-o")))
- {
- // force open documents regards if they are templates or not
- bForceOpenEvent = sal_True;
- bOpenEvent = sal_False;
- bForceNewEvent = sal_False;
- bPrintToEvent = sal_False;
- bPrintEvent = sal_False;
- bViewEvent = sal_False;
- bStartEvent = sal_False;
- bDisplaySpec = sal_False;
- }
- else if ( oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("pt")))
+ bForceNewEvent = true;
+ bOpenEvent = false;
+ bForceOpenEvent = false;
+ bPrintToEvent = false;
+ bPrintEvent = false;
+ bViewEvent = false;
+ bStartEvent = false;
+ bDisplaySpec = false;
+ }
+ else if ( aArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM( "-o" )))
{
- // Print to special printer
- bPrintToEvent = sal_True;
- bPrinterName = sal_True;
- bPrintEvent = sal_False;
- bOpenEvent = sal_False;
- bForceNewEvent = sal_False;
- bViewEvent = sal_False;
- bStartEvent = sal_False;
- bDisplaySpec = sal_False;
- bForceOpenEvent = sal_False;
+ // force open documents regardless if they are templates or not
+ bForceOpenEvent = true;
+ bOpenEvent = false;
+ bForceNewEvent = false;
+ bPrintToEvent = false;
+ bPrintEvent = false;
+ bViewEvent = false;
+ bStartEvent = false;
+ bDisplaySpec = false;
}
- else if ( aArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("-p")))
+ else if ( aArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM( "-pt" )))
{
+ // Print to special printer
+ bPrintToEvent = true;
+ bPrinterName = true;
+ bPrintEvent = false;
+ bOpenEvent = false;
+ bForceNewEvent = false;
+ bViewEvent = false;
+ bStartEvent = false;
+ bDisplaySpec = false;
+ bForceOpenEvent = false;
+ }
+ else if ( aArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM( "-p" )))
+ {
// Print to default printer
- bPrintEvent = sal_True;
- bPrintToEvent = sal_False;
- bOpenEvent = sal_False;
- bForceNewEvent = sal_False;
- bForceOpenEvent = sal_False;
- bViewEvent = sal_False;
- bStartEvent = sal_False;
- bDisplaySpec = sal_False;
- }
- else if ( oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("view")))
- {
+ bPrintEvent = true;
+ bPrintToEvent = false;
+ bOpenEvent = false;
+ bForceNewEvent = false;
+ bForceOpenEvent = false;
+ bViewEvent = false;
+ bStartEvent = false;
+ bDisplaySpec = false;
+ }
+ else if ( aArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM( "-view" )))
+ {
// open in viewmode
- bOpenEvent = sal_False;
- bPrintEvent = sal_False;
- bPrintToEvent = sal_False;
- bForceNewEvent = sal_False;
- bForceOpenEvent = sal_False;
- bViewEvent = sal_True;
- bStartEvent = sal_False;
- bDisplaySpec = sal_False;
- }
- else if ( oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("show")))
- {
+ bOpenEvent = false;
+ bPrintEvent = false;
+ bPrintToEvent = false;
+ bForceNewEvent = false;
+ bForceOpenEvent = false;
+ bViewEvent = true;
+ bStartEvent = false;
+ bDisplaySpec = false;
+ }
+ else if ( aArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM( "-show" )))
+ {
// open in viewmode
- bOpenEvent = sal_False;
- bViewEvent = sal_False;
- bStartEvent = sal_True;
- bPrintEvent = sal_False;
- bPrintToEvent = sal_False;
- bForceNewEvent = sal_False;
- bForceOpenEvent = sal_False;
- bDisplaySpec = sal_False;
+ bOpenEvent = false;
+ bViewEvent = false;
+ bStartEvent = true;
+ bPrintEvent = false;
+ bPrintToEvent = false;
+ bForceNewEvent = false;
+ bForceOpenEvent = false;
+ bDisplaySpec = false;
}
else if ( oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("display")))
{
// set display
- bOpenEvent = sal_False;
- bPrintEvent = sal_False;
- bForceOpenEvent = sal_False;
- bPrintToEvent = sal_False;
- bForceNewEvent = sal_False;
- bViewEvent = sal_False;
- bStartEvent = sal_False;
- bDisplaySpec = sal_True;
+ bOpenEvent = false;
+ bPrintEvent = false;
+ bForceOpenEvent = false;
+ bPrintToEvent = false;
+ bForceNewEvent = false;
+ bViewEvent = false;
+ bStartEvent = false;
+ bDisplaySpec = true;
}
else if ( oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("language")))
{
- bOpenEvent = sal_False;
- bPrintEvent = sal_False;
- bForceOpenEvent = sal_False;
- bPrintToEvent = sal_False;
- bForceNewEvent = sal_False;
- bViewEvent = sal_False;
- bStartEvent = sal_False;
- bDisplaySpec = sal_False;
+ bOpenEvent = false;
+ bPrintEvent = false;
+ bForceOpenEvent = false;
+ bPrintToEvent = false;
+ bForceNewEvent = false;
+ bViewEvent = false;
+ bStartEvent = false;
+ bDisplaySpec = false;
}
else if ( oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("convert-to")))
{
- bOpenEvent = sal_False;
- bConversionEvent = sal_True;
- bConversionParamsEvent = sal_True;
+ bOpenEvent = false;
+ bConversionEvent = true;
+ bConversionParamsEvent = true;
}
else if ( oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("print-to-file")))
{
- bOpenEvent = sal_False;
- bBatchPrintEvent = sal_True;
+ bOpenEvent = false;
+ bBatchPrintEvent = true;
}
else if ( oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("printer-name")) &&
bBatchPrintEvent )
{
- bBatchPrinterNameEvent = sal_True;
+ bBatchPrinterNameEvent = true;
}
else if ( oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("outdir")) &&
(bConversionEvent || bBatchPrintEvent) )
{
- bConversionOutEvent = sal_True;
+ bConversionOutEvent = true;
}
}
else
@@ -312,24 +313,24 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
{
// first argument after "-pt" this must be the printer name
AddStringListParam_Impl( CMD_STRINGPARAM_PRINTERNAME, aArg );
- bPrinterName = sal_False;
+ bPrinterName = false;
}
else if ( bConversionParamsEvent && bConversionEvent )
{
// first argument must be the the params
AddStringListParam_Impl( CMD_STRINGPARAM_CONVERSIONPARAMS, aArg );
- bConversionParamsEvent = sal_False;
+ bConversionParamsEvent = false;
}
else if ( bBatchPrinterNameEvent && bBatchPrintEvent )
{
// first argument is the printer name
AddStringListParam_Impl( CMD_STRINGPARAM_PRINTERNAME, aArg );
- bBatchPrinterNameEvent = sal_False;
+ bBatchPrinterNameEvent = false;
}
else if ( (bConversionEvent || bBatchPrintEvent) && bConversionOutEvent )
{
AddStringListParam_Impl( CMD_STRINGPARAM_CONVERSIONOUT, aArg );
- bConversionOutEvent = sal_False;
+ bConversionOutEvent = false;
}
else
{
@@ -344,23 +345,45 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
}
// handle this argument as a filename
if ( bOpenEvent )
+ {
AddStringListParam_Impl( CMD_STRINGPARAM_OPENLIST, aArg );
+ bOpenDoc = true;
+ }
else if ( bViewEvent )
+ {
AddStringListParam_Impl( CMD_STRINGPARAM_VIEWLIST, aArg );
+ bOpenDoc = true;
+ }
else if ( bStartEvent )
+ {
AddStringListParam_Impl( CMD_STRINGPARAM_STARTLIST, aArg );
+ bOpenDoc = true;
+ }
else if ( bPrintEvent )
+ {
AddStringListParam_Impl( CMD_STRINGPARAM_PRINTLIST, aArg );
+ bOpenDoc = true;
+ }
else if ( bPrintToEvent )
+ {
AddStringListParam_Impl( CMD_STRINGPARAM_PRINTTOLIST, aArg );
+ bOpenDoc = true;
+ }
else if ( bForceNewEvent )
+ {
AddStringListParam_Impl( CMD_STRINGPARAM_FORCENEWLIST, aArg );
+ bOpenDoc = true;
+ }
else if ( bForceOpenEvent )
+ {
AddStringListParam_Impl( CMD_STRINGPARAM_FORCEOPENLIST, aArg );
- else if ( bDisplaySpec ){
+ bOpenDoc = true;
+ }
+ else if ( bDisplaySpec )
+ {
AddStringListParam_Impl( CMD_STRINGPARAM_DISPLAY, aArg );
- bDisplaySpec = sal_False; // only one display, not a list
- bOpenEvent = sal_True; // set back to standard
+ bDisplaySpec = false; // only one display, not a lsit
+ bOpenEvent = true; // set back to standard
}
else if ( bConversionEvent || bBatchPrintEvent )
AddStringListParam_Impl( CMD_STRINGPARAM_CONVERSIONLIST, aArg );
@@ -369,6 +392,9 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
}
}
}
+
+ if ( bOpenDoc )
+ m_bDocumentArgs = true;
}
void CommandLineArgs::AddStringListParam_Impl( StringParam eParam, const rtl::OUString& aParam )
@@ -509,7 +535,7 @@ sal_Bool CommandLineArgs::InterpretCommandLineParameter( const ::rtl::OUString&
{
AddStringListParam_Impl( CMD_STRINGPARAM_SPLASHPIPE, oArg.copy(RTL_CONSTASCII_LENGTH("splash-pipe=")) );
}
- #ifdef MACOSX
+#ifdef MACOSX
/* #i84053# ignore -psn on Mac
Platform dependent #ifdef here is ugly, however this is currently
the only platform dependent parameter. Should more appear
@@ -520,7 +546,7 @@ sal_Bool CommandLineArgs::InterpretCommandLineParameter( const ::rtl::OUString&
SetBoolParam_Impl( CMD_BOOLPARAM_PSN, sal_True );
return sal_True;
}
- #endif
+#endif
else if ( oArg.matchIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("infilter=")))
{
AddStringListParam_Impl( CMD_STRINGPARAM_INFILTER, oArg.copy(RTL_CONSTASCII_LENGTH("infilter=")) );
@@ -565,48 +591,56 @@ sal_Bool CommandLineArgs::InterpretCommandLineParameter( const ::rtl::OUString&
sal_Bool bAlreadySet = CheckGroupMembers( CMD_GRPID_MODULE, CMD_BOOLPARAM_WRITER );
if ( !bAlreadySet )
SetBoolParam_Impl( CMD_BOOLPARAM_WRITER, sal_True );
+ m_bDocumentArgs = true;
}
else if ( oArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "calc" )) == sal_True )
{
sal_Bool bAlreadySet = CheckGroupMembers( CMD_GRPID_MODULE, CMD_BOOLPARAM_CALC );
if ( !bAlreadySet )
SetBoolParam_Impl( CMD_BOOLPARAM_CALC, sal_True );
+ m_bDocumentArgs = true;
}
else if ( oArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "draw" )) == sal_True )
{
sal_Bool bAlreadySet = CheckGroupMembers( CMD_GRPID_MODULE, CMD_BOOLPARAM_DRAW );
if ( !bAlreadySet )
SetBoolParam_Impl( CMD_BOOLPARAM_DRAW, sal_True );
+ m_bDocumentArgs = true;
}
else if ( oArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "impress" )) == sal_True )
{
sal_Bool bAlreadySet = CheckGroupMembers( CMD_GRPID_MODULE, CMD_BOOLPARAM_IMPRESS );
if ( !bAlreadySet )
SetBoolParam_Impl( CMD_BOOLPARAM_IMPRESS, sal_True );
+ m_bDocumentArgs = true;
}
else if ( oArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "base" )) == sal_True )
{
sal_Bool bAlreadySet = CheckGroupMembers( CMD_GRPID_MODULE, CMD_BOOLPARAM_BASE );
if ( !bAlreadySet )
SetBoolParam_Impl( CMD_BOOLPARAM_BASE, sal_True );
+ m_bDocumentArgs = true;
}
else if ( oArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "global" )) == sal_True )
{
sal_Bool bAlreadySet = CheckGroupMembers( CMD_GRPID_MODULE, CMD_BOOLPARAM_GLOBAL );
if ( !bAlreadySet )
SetBoolParam_Impl( CMD_BOOLPARAM_GLOBAL, sal_True );
+ m_bDocumentArgs = true;
}
else if ( oArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "math" )) == sal_True )
{
sal_Bool bAlreadySet = CheckGroupMembers( CMD_GRPID_MODULE, CMD_BOOLPARAM_MATH );
if ( !bAlreadySet )
SetBoolParam_Impl( CMD_BOOLPARAM_MATH, sal_True );
+ m_bDocumentArgs = true;
}
else if ( oArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "web" )) == sal_True )
{
sal_Bool bAlreadySet = CheckGroupMembers( CMD_GRPID_MODULE, CMD_BOOLPARAM_WEB );
if ( !bAlreadySet )
SetBoolParam_Impl( CMD_BOOLPARAM_WEB, sal_True );
+ m_bDocumentArgs = true;
}
else
return sal_False;
@@ -635,12 +669,12 @@ sal_Bool CommandLineArgs::CheckGroupMembers( GroupParamId nGroupId, BoolParam nE
void CommandLineArgs::ResetParamValues()
{
int i;
-
for ( i = 0; i < CMD_BOOLPARAM_COUNT; i++ )
m_aBoolParams[i] = sal_False;
for ( i = 0; i < CMD_STRINGPARAM_COUNT; i++ )
m_aStrSetParams[i] = sal_False;
m_eArgumentCount = NONE;
+ m_bDocumentArgs = false;
}
void CommandLineArgs::SetBoolParam( BoolParam eParam, sal_Bool bNewValue )
@@ -963,6 +997,12 @@ sal_Bool CommandLineArgs::IsEmptyOrAcceptOnly() const
( ( m_eArgumentCount == ONE ) && m_aBoolParams[ CMD_BOOLPARAM_PSN ] );
}
+sal_Bool CommandLineArgs::WantsToLoadDocument() const
+{
+ osl::MutexGuard aMutexGuard( m_aMutex );
+ return m_bDocumentArgs;
+}
+
} // namespace desktop
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/desktop/source/app/cmdlineargs.hxx b/desktop/source/app/cmdlineargs.hxx
index e670ccc2c4..c983ab274f 100644..100755
--- a/desktop/source/app/cmdlineargs.hxx
+++ b/desktop/source/app/cmdlineargs.hxx
@@ -39,7 +39,7 @@ namespace desktop
class CommandLineArgs
{
public:
- enum BoolParam // must be zero based!
+ enum BoolParam // must be zero based!
{
CMD_BOOLPARAM_MINIMIZED = 0,
CMD_BOOLPARAM_INVISIBLE,
@@ -99,7 +99,7 @@ class CommandLineArgs
CMD_STRINGPARAM_INFILTER,
CMD_STRINGPARAM_DISPLAY,
CMD_STRINGPARAM_LANGUAGE,
- CMD_STRINGPARAM_COUNT // must be last element!
+ CMD_STRINGPARAM_COUNT // must be last element!
};
enum GroupParamId
@@ -108,7 +108,8 @@ class CommandLineArgs
CMD_GRPID_COUNT
};
- struct Supplier {
+ struct Supplier
+ {
// Thrown from constructors and next:
class Exception {
public:
@@ -129,7 +130,7 @@ class CommandLineArgs
boost::optional< rtl::OUString > getCwdUrl() const { return m_cwdUrl; }
// generic methods to access parameter
- void SetBoolParam( BoolParam eParam, sal_Bool bNewValue );
+ void SetBoolParam( BoolParam eParam, sal_Bool bNewValue );
const rtl::OUString& GetStringParam( StringParam eParam ) const;
@@ -164,6 +165,7 @@ class CommandLineArgs
sal_Bool IsWeb() const;
sal_Bool IsVersion() const;
sal_Bool HasModuleParam() const;
+ sal_Bool WantsToLoadDocument() const;
// Access to string parameters
sal_Bool GetPortalConnectString( ::rtl::OUString& rPara) const;
@@ -184,17 +186,17 @@ class CommandLineArgs
sal_Bool GetConversionOut( ::rtl::OUString& rPara ) const;
// Special analyzed states (does not match directly to a command line parameter!)
- sal_Bool IsPrinting() const;
- sal_Bool IsEmpty() const;
- sal_Bool IsEmptyOrAcceptOnly() const;
+ sal_Bool IsPrinting() const;
+ sal_Bool IsEmpty() const;
+ sal_Bool IsEmptyOrAcceptOnly() const;
private:
enum Count { NONE, ONE, MANY };
struct GroupDefinition
{
- sal_Int32 nCount;
- BoolParam* pGroupMembers;
+ sal_Int32 nCount;
+ BoolParam* pGroupMembers;
};
// no copy and operator=
@@ -206,18 +208,19 @@ class CommandLineArgs
void ResetParamValues();
sal_Bool CheckGroupMembers( GroupParamId nGroup, BoolParam nExcludeMember ) const;
- void AddStringListParam_Impl( StringParam eParam, const rtl::OUString& aParam );
- void SetBoolParam_Impl( BoolParam eParam, sal_Bool bValue );
+ void AddStringListParam_Impl( StringParam eParam, const rtl::OUString& aParam );
+ void SetBoolParam_Impl( BoolParam eParam, sal_Bool bValue );
boost::optional< rtl::OUString > m_cwdUrl;
- sal_Bool m_aBoolParams[ CMD_BOOLPARAM_COUNT ]; // Stores boolean parameters
- rtl::OUString m_aStrParams[ CMD_STRINGPARAM_COUNT ]; // Stores string parameters
- sal_Bool m_aStrSetParams[ CMD_STRINGPARAM_COUNT ]; // Stores if string parameters are provided on cmdline
- Count m_eArgumentCount; // Number of Args
- mutable ::osl::Mutex m_aMutex;
+ sal_Bool m_aBoolParams[ CMD_BOOLPARAM_COUNT ]; // Stores boolean parameters
+ rtl::OUString m_aStrParams[ CMD_STRINGPARAM_COUNT ]; // Stores string parameters
+ sal_Bool m_aStrSetParams[ CMD_STRINGPARAM_COUNT ]; // Stores if string parameters are provided on cmdline
+ Count m_eArgumentCount; // Number of Args
+ bool m_bDocumentArgs; // A document creation/open/load arg is used
+ mutable ::osl::Mutex m_aMutex;
// static definition for groups where only one member can be true
- static GroupDefinition m_pGroupDefinitions[ CMD_GRPID_COUNT ];
+ static GroupDefinition m_pGroupDefinitions[ CMD_GRPID_COUNT ];
};
}
diff --git a/desktop/source/app/cmdlinehelp.cxx b/desktop/source/app/cmdlinehelp.cxx
index 6a09755a7b..6a09755a7b 100644..100755
--- a/desktop/source/app/cmdlinehelp.cxx
+++ b/desktop/source/app/cmdlinehelp.cxx
diff --git a/desktop/source/app/cmdlinehelp.hxx b/desktop/source/app/cmdlinehelp.hxx
index 2036d64678..2036d64678 100644..100755
--- a/desktop/source/app/cmdlinehelp.hxx
+++ b/desktop/source/app/cmdlinehelp.hxx
diff --git a/desktop/source/app/configinit.cxx b/desktop/source/app/configinit.cxx
index 4da030c453..782bbd12b5 100644..100755
--- a/desktop/source/app/configinit.cxx
+++ b/desktop/source/app/configinit.cxx
@@ -81,7 +81,7 @@ typedef uno::Reference< lang::XMultiServiceFactory > ConfigurationProvider;
// Get a message string securely. There is a fallback string if the resource
// is not available. Adapted from Desktop::GetMsgString()
-OUString getMsgString( USHORT nId, char const * aFallBackMsg )
+OUString getMsgString( sal_uInt16 nId, char const * aFallBackMsg )
{
ResMgr* pResMgr = Desktop::GetDesktopResManager();
if ( !pResMgr || !nId )
diff --git a/desktop/source/app/configinit.hxx b/desktop/source/app/configinit.hxx
index 8254f41118..8254f41118 100644..100755
--- a/desktop/source/app/configinit.hxx
+++ b/desktop/source/app/configinit.hxx
diff --git a/desktop/source/app/copyright_ascii_ooo.c b/desktop/source/app/copyright_ascii_ooo.c
index b35aa2cee9..b35aa2cee9 100644..100755
--- a/desktop/source/app/copyright_ascii_ooo.c
+++ b/desktop/source/app/copyright_ascii_ooo.c
diff --git a/desktop/source/app/copyright_ascii_sun.c b/desktop/source/app/copyright_ascii_sun.c
index a94966855e..a94966855e 100644..100755
--- a/desktop/source/app/copyright_ascii_sun.c
+++ b/desktop/source/app/copyright_ascii_sun.c
diff --git a/desktop/source/app/desktop.hrc b/desktop/source/app/desktop.hrc
index 035318b4d7..035318b4d7 100644..100755
--- a/desktop/source/app/desktop.hrc
+++ b/desktop/source/app/desktop.hrc
diff --git a/desktop/source/app/desktop.src b/desktop/source/app/desktop.src
index e333c44181..10411e5adb 100644..100755
--- a/desktop/source/app/desktop.src
+++ b/desktop/source/app/desktop.src
@@ -159,6 +159,7 @@ InfoBox INFOBOX_CMDLINEHELP
ModalDialog DLG_CMDLINEHELP
{
+ HelpID = "desktop:ModalDialog:DLG_CMDLINEHELP";
Text = "Help Message...";
Size = MAP_APPFONT(250, 365);
Border = True;
diff --git a/desktop/source/app/desktopcontext.cxx b/desktop/source/app/desktopcontext.cxx
index a6b29a092d..a6b29a092d 100644..100755
--- a/desktop/source/app/desktopcontext.cxx
+++ b/desktop/source/app/desktopcontext.cxx
diff --git a/desktop/source/app/desktopcontext.hxx b/desktop/source/app/desktopcontext.hxx
index f0ac41c87a..f0ac41c87a 100644..100755
--- a/desktop/source/app/desktopcontext.hxx
+++ b/desktop/source/app/desktopcontext.hxx
diff --git a/desktop/source/app/desktopresid.cxx b/desktop/source/app/desktopresid.cxx
index 347ee542a3..b817738772 100644..100755
--- a/desktop/source/app/desktopresid.cxx
+++ b/desktop/source/app/desktopresid.cxx
@@ -37,7 +37,7 @@
namespace desktop
{
-DesktopResId::DesktopResId( USHORT nId ) :
+DesktopResId::DesktopResId( sal_uInt16 nId ) :
ResId( nId, *Desktop::GetDesktopResManager() )
{
}
diff --git a/desktop/source/app/desktopresid.hxx b/desktop/source/app/desktopresid.hxx
index 689a0f11da..2a517c9f29 100644..100755
--- a/desktop/source/app/desktopresid.hxx
+++ b/desktop/source/app/desktopresid.hxx
@@ -37,7 +37,7 @@ namespace desktop
class DesktopResId : public ResId
{
public:
- DesktopResId( USHORT nId );
+ DesktopResId( sal_uInt16 nId );
};
}
diff --git a/desktop/source/app/dispatchwatcher.cxx b/desktop/source/app/dispatchwatcher.cxx
index 04a8645d7b..04a8645d7b 100644..100755
--- a/desktop/source/app/dispatchwatcher.cxx
+++ b/desktop/source/app/dispatchwatcher.cxx
diff --git a/desktop/source/app/dispatchwatcher.hxx b/desktop/source/app/dispatchwatcher.hxx
index a787c1e069..a787c1e069 100644..100755
--- a/desktop/source/app/dispatchwatcher.hxx
+++ b/desktop/source/app/dispatchwatcher.hxx
diff --git a/desktop/source/app/exports.dxp b/desktop/source/app/exports.dxp
index 9630d7e067..f0e1c69934 100644..100755
--- a/desktop/source/app/exports.dxp
+++ b/desktop/source/app/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/desktop/source/app/langselect.cxx b/desktop/source/app/langselect.cxx
index b775bf2942..b775bf2942 100644..100755
--- a/desktop/source/app/langselect.cxx
+++ b/desktop/source/app/langselect.cxx
diff --git a/desktop/source/app/langselect.hxx b/desktop/source/app/langselect.hxx
index 6db4f5bc24..6db4f5bc24 100644..100755
--- a/desktop/source/app/langselect.hxx
+++ b/desktop/source/app/langselect.hxx
diff --git a/desktop/source/app/lockfile.cxx b/desktop/source/app/lockfile.cxx
index c2b2b1b0ec..c2b2b1b0ec 100644..100755
--- a/desktop/source/app/lockfile.cxx
+++ b/desktop/source/app/lockfile.cxx
diff --git a/desktop/source/app/lockfile.hxx b/desktop/source/app/lockfile.hxx
index 0d286e13ca..0d286e13ca 100644..100755
--- a/desktop/source/app/lockfile.hxx
+++ b/desktop/source/app/lockfile.hxx
diff --git a/desktop/source/app/lockfile2.cxx b/desktop/source/app/lockfile2.cxx
index 9f61c563fd..9f61c563fd 100644..100755
--- a/desktop/source/app/lockfile2.cxx
+++ b/desktop/source/app/lockfile2.cxx
diff --git a/desktop/source/app/main.c b/desktop/source/app/main.c
index 198e42a0ca..198e42a0ca 100644..100755
--- a/desktop/source/app/main.c
+++ b/desktop/source/app/main.c
diff --git a/desktop/source/app/makefile.mk b/desktop/source/app/makefile.mk
index e7c30a2ca7..e7c30a2ca7 100644..100755
--- a/desktop/source/app/makefile.mk
+++ b/desktop/source/app/makefile.mk
diff --git a/desktop/source/app/officeipcthread.cxx b/desktop/source/app/officeipcthread.cxx
index 6830361cf4..e1a42dbc4f 100644..100755
--- a/desktop/source/app/officeipcthread.cxx
+++ b/desktop/source/app/officeipcthread.cxx
@@ -844,8 +844,6 @@ void SAL_CALL OfficeIPCThread::run()
aHelpURLBuffer.appendAscii("&System=UNX");
#elif defined WNT
aHelpURLBuffer.appendAscii("&System=WIN");
-#elif defined MAC
- aHelpURLBuffer.appendAscii("&System=MAC");
#elif defined OS2
aHelpURLBuffer.appendAscii("&System=OS2");
#endif
diff --git a/desktop/source/app/officeipcthread.hxx b/desktop/source/app/officeipcthread.hxx
index f075aec313..e72db07e05 100644..100755
--- a/desktop/source/app/officeipcthread.hxx
+++ b/desktop/source/app/officeipcthread.hxx
@@ -123,7 +123,7 @@ class OfficeIPCThread : public osl::Thread
static void RequestsCompleted( int n = 1 );
static sal_Bool ExecuteCmdLineRequests( ProcessDocumentsRequest& );
- // return FALSE if second office
+ // return sal_False if second office
static Status EnableOfficeIPCThread();
static void DisableOfficeIPCThread();
// start dispatching events...
diff --git a/desktop/source/app/omutexmember.hxx b/desktop/source/app/omutexmember.hxx
index 4e33e1313d..4e33e1313d 100644..100755
--- a/desktop/source/app/omutexmember.hxx
+++ b/desktop/source/app/omutexmember.hxx
diff --git a/desktop/source/app/sofficemain.cxx b/desktop/source/app/sofficemain.cxx
index 1e640c58ae..1e640c58ae 100644..100755
--- a/desktop/source/app/sofficemain.cxx
+++ b/desktop/source/app/sofficemain.cxx
diff --git a/desktop/source/app/sofficemain.h b/desktop/source/app/sofficemain.h
index 5b07bb4684..5b07bb4684 100644..100755
--- a/desktop/source/app/sofficemain.h
+++ b/desktop/source/app/sofficemain.h
diff --git a/desktop/source/app/userinstall.cxx b/desktop/source/app/userinstall.cxx
index c80ade88e9..c80ade88e9 100644..100755
--- a/desktop/source/app/userinstall.cxx
+++ b/desktop/source/app/userinstall.cxx
diff --git a/desktop/source/app/userinstall.hxx b/desktop/source/app/userinstall.hxx
index 67b4f0081a..67b4f0081a 100644..100755
--- a/desktop/source/app/userinstall.hxx
+++ b/desktop/source/app/userinstall.hxx
diff --git a/desktop/source/app/version.map b/desktop/source/app/version.map
index ad52c57cc1..ad52c57cc1 100644..100755
--- a/desktop/source/app/version.map
+++ b/desktop/source/app/version.map
diff --git a/desktop/source/deployment/deployment.component b/desktop/source/deployment/deployment.component
new file mode 100755
index 0000000000..11385c7aa8
--- /dev/null
+++ b/desktop/source/deployment/deployment.component
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.deployment.ExtensionManager">
+ <service name="com.sun.star.comp.deployment.ExtensionManager"/>
+ <singleton name="com.sun.star.deployment.ExtensionManager"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.deployment.PackageInformationProvider">
+ <service name="com.sun.star.comp.deployment.PackageInformationProvider"/>
+ <singleton name="com.sun.star.deployment.PackageInformationProvider"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.deployment.PackageManagerFactory">
+ <service name="com.sun.star.comp.deployment.PackageManagerFactory"/>
+ <singleton name="com.sun.star.deployment.thePackageManagerFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.deployment.ProgressLog">
+ <service name="com.sun.star.comp.deployment.ProgressLog"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.deployment.component.PackageRegistryBackend">
+ <service name="com.sun.star.deployment.PackageRegistryBackend"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.deployment.configuration.PackageRegistryBackend">
+ <service name="com.sun.star.deployment.PackageRegistryBackend"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.deployment.executable.PackageRegistryBackend">
+ <service name="com.sun.star.deployment.PackageRegistryBackend"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.deployment.help.PackageRegistryBackend">
+ <service name="com.sun.star.deployment.PackageRegistryBackend"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.deployment.script.PackageRegistryBackend">
+ <service name="com.sun.star.deployment.PackageRegistryBackend"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.deployment.sfwk.PackageRegistryBackend">
+ <service name="com.sun.star.deployment.PackageRegistryBackend"/>
+ </implementation>
+</component>
diff --git a/desktop/source/deployment/dp_log.cxx b/desktop/source/deployment/dp_log.cxx
index bb58770c4c..bb58770c4c 100644..100755
--- a/desktop/source/deployment/dp_log.cxx
+++ b/desktop/source/deployment/dp_log.cxx
diff --git a/desktop/source/deployment/dp_persmap.cxx b/desktop/source/deployment/dp_persmap.cxx
index 3ced8d3d1e..3ced8d3d1e 100644..100755
--- a/desktop/source/deployment/dp_persmap.cxx
+++ b/desktop/source/deployment/dp_persmap.cxx
diff --git a/desktop/source/deployment/dp_services.cxx b/desktop/source/deployment/dp_services.cxx
index 36e7163f28..b9a8185b2d 100644..100755
--- a/desktop/source/deployment/dp_services.cxx
+++ b/desktop/source/deployment/dp_services.cxx
@@ -93,27 +93,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-sal_Bool SAL_CALL component_writeInfo(
- lang::XMultiServiceFactory * pServiceManager,
- registry::XRegistryKey * pRegistryKey )
-{
- return component_writeInfoHelper(
- pServiceManager, pRegistryKey,
- dp_registry::backend::configuration::serviceDecl,
- dp_registry::backend::component::serviceDecl,
- dp_registry::backend::help::serviceDecl,
- dp_registry::backend::script::serviceDecl,
- dp_registry::backend::sfwk::serviceDecl,
- dp_registry::backend::executable::serviceDecl,
- dp_manager::factory::serviceDecl,
- dp_log::serviceDecl,
- dp_info::serviceDecl,
- dp_manager::serviceDecl) &&
- dp_manager::factory::singleton_entries( pRegistryKey ) &&
- dp_info::singleton_entries( pRegistryKey ) &&
- dp_manager::singleton_entries( pRegistryKey);
-}
-
void * SAL_CALL component_getFactory(
sal_Char const * pImplName,
lang::XMultiServiceFactory * pServiceManager,
diff --git a/desktop/source/deployment/dp_xml.cxx b/desktop/source/deployment/dp_xml.cxx
index 8bd219c1ed..8bd219c1ed 100644..100755
--- a/desktop/source/deployment/dp_xml.cxx
+++ b/desktop/source/deployment/dp_xml.cxx
diff --git a/desktop/source/deployment/gui/deploymentgui.component b/desktop/source/deployment/gui/deploymentgui.component
new file mode 100755
index 0000000000..d613f482e7
--- /dev/null
+++ b/desktop/source/deployment/gui/deploymentgui.component
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.deployment.ui.LicenseDialog">
+ <service name="com.sun.star.deployment.ui.LicenseDialog"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.deployment.ui.PackageManagerDialog">
+ <service name="com.sun.star.deployment.ui.PackageManagerDialog"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.deployment.ui.UpdateRequiredDialog">
+ <service name="com.sun.star.deployment.ui.UpdateRequiredDialog"/>
+ </implementation>
+</component>
diff --git a/desktop/source/deployment/gui/descedit.cxx b/desktop/source/deployment/gui/descedit.cxx
index 0291ce5802..4091e89f53 100644..100755
--- a/desktop/source/deployment/gui/descedit.cxx
+++ b/desktop/source/deployment/gui/descedit.cxx
@@ -61,7 +61,7 @@ void DescriptionEdit::Init()
// read-only
SetReadOnly();
// no cursor
- EnableCursor( FALSE );
+ EnableCursor( sal_False );
}
// -----------------------------------------------------------------------
diff --git a/desktop/source/deployment/gui/descedit.hxx b/desktop/source/deployment/gui/descedit.hxx
index 27e36e14a0..27e36e14a0 100644..100755
--- a/desktop/source/deployment/gui/descedit.hxx
+++ b/desktop/source/deployment/gui/descedit.hxx
diff --git a/desktop/source/deployment/gui/dp_gui.h b/desktop/source/deployment/gui/dp_gui.h
index 043a86f1af..043a86f1af 100644..100755
--- a/desktop/source/deployment/gui/dp_gui.h
+++ b/desktop/source/deployment/gui/dp_gui.h
diff --git a/desktop/source/deployment/gui/dp_gui.hrc b/desktop/source/deployment/gui/dp_gui.hrc
index 6ec110001f..c1a40828bb 100644..100755
--- a/desktop/source/deployment/gui/dp_gui.hrc
+++ b/desktop/source/deployment/gui/dp_gui.hrc
@@ -125,6 +125,11 @@
#define RID_DLG_UPDATE_RELEASENOTES_LINK 29
#define RID_DLG_UPDATE_NOUPDATE 30
#define RID_DLG_UPDATE_VERSION 31
+#define RID_DLG_UPDATE_IGNORE 32
+#define RID_DLG_UPDATE_ENABLE 33
+#define RID_DLG_UPDATE_IGNORE_ALL 34
+#define RID_DLG_UPDATE_IGNORED_UPDATE 35
+
#define RID_DLG_UPDATEINSTALL (RID_DEPLOYMENT_GUI_START + 20)
@@ -157,6 +162,7 @@
#define RID_STR_NO_ADMIN_PRIVILEGE (RID_DEPLOYMENT_GUI_START+95)
#define RID_STR_ERROR_MISSING_DEPENDENCIES (RID_DEPLOYMENT_GUI_START+96)
#define RID_STR_ERROR_MISSING_LICENSE (RID_DEPLOYMENT_GUI_START+97)
+#define RID_STR_SHOW_LICENSE_CMD (RID_DEPLOYMENT_GUI_START+98)
#define WARNINGBOX_CONCURRENTINSTANCE (RID_DEPLOYMENT_GUI_START+100)
@@ -166,6 +172,7 @@
#define RID_WARNINGBOX_REMOVE_SHARED_EXTENSION (RID_DEPLOYMENT_GUI_START+104)
#define RID_WARNINGBOX_ENABLE_SHARED_EXTENSION (RID_DEPLOYMENT_GUI_START+105)
#define RID_WARNINGBOX_DISABLE_SHARED_EXTENSION (RID_DEPLOYMENT_GUI_START+106)
+#define RID_DLG_SHOW_LICENSE (RID_DEPLOYMENT_GUI_START+107)
#define RID_DLG_LICENSE RID_DEPLOYMENT_LICENSE_START
diff --git a/desktop/source/deployment/gui/dp_gui_autoscrolledit.cxx b/desktop/source/deployment/gui/dp_gui_autoscrolledit.cxx
index 548cdb3b7f..fae0f3022a 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_autoscrolledit.cxx
+++ b/desktop/source/deployment/gui/dp_gui_autoscrolledit.cxx
@@ -59,7 +59,7 @@ void AutoScrollEdit::Notify( SfxBroadcaster&, const SfxHint& rHint )
{
if ( rHint.IsA( TYPE(TextHint) ) )
{
- ULONG nId = ((const TextHint&)rHint).GetId();
+ sal_uLong nId = ((const TextHint&)rHint).GetId();
if ( nId == TEXT_HINT_VIEWSCROLLED )
{
ScrollBar* pScroll = GetVScrollBar();
diff --git a/desktop/source/deployment/gui/dp_gui_autoscrolledit.hxx b/desktop/source/deployment/gui/dp_gui_autoscrolledit.hxx
index ddec1e81ae..ddec1e81ae 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_autoscrolledit.hxx
+++ b/desktop/source/deployment/gui/dp_gui_autoscrolledit.hxx
diff --git a/desktop/source/deployment/gui/dp_gui_backend.src b/desktop/source/deployment/gui/dp_gui_backend.src
index b002bf2408..b002bf2408 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_backend.src
+++ b/desktop/source/deployment/gui/dp_gui_backend.src
diff --git a/desktop/source/deployment/gui/dp_gui_dependencydialog.cxx b/desktop/source/deployment/gui/dp_gui_dependencydialog.cxx
index 694f764d5e..694f764d5e 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_dependencydialog.cxx
+++ b/desktop/source/deployment/gui/dp_gui_dependencydialog.cxx
diff --git a/desktop/source/deployment/gui/dp_gui_dependencydialog.hxx b/desktop/source/deployment/gui/dp_gui_dependencydialog.hxx
index 72f8334d38..72f8334d38 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_dependencydialog.hxx
+++ b/desktop/source/deployment/gui/dp_gui_dependencydialog.hxx
diff --git a/desktop/source/deployment/gui/dp_gui_dependencydialog.src b/desktop/source/deployment/gui/dp_gui_dependencydialog.src
index 80b584f894..1e5d273943 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_dependencydialog.src
+++ b/desktop/source/deployment/gui/dp_gui_dependencydialog.src
@@ -34,6 +34,7 @@
#define LOCAL_LIST_HEIGHT (6 * RSC_BS_CHARHEIGHT)
ModalDialog RID_DLG_DEPENDENCIES {
+ HelpID = "desktop:ModalDialog:RID_DLG_DEPENDENCIES";
Size = MAP_APPFONT(
(RSC_SP_DLG_INNERBORDER_LEFT + LOCAL_WIDTH +
RSC_SP_DLG_INNERBORDER_RIGHT),
@@ -52,6 +53,7 @@ ModalDialog RID_DLG_DEPENDENCIES {
NoLabel = TRUE;
};
ListBox RID_DLG_DEPENDENCIES_LIST {
+ HelpID = "desktop:ListBox:RID_DLG_DEPENDENCIES:RID_DLG_DEPENDENCIES_LIST";
Pos = MAP_APPFONT(
RSC_SP_DLG_INNERBORDER_LEFT,
(RSC_SP_DLG_INNERBORDER_TOP + LOCAL_TEXT_HEIGHT +
diff --git a/desktop/source/deployment/gui/dp_gui_dialog.src b/desktop/source/deployment/gui/dp_gui_dialog.src
index 94fdf87b0f..12b6acb847 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_dialog.src
+++ b/desktop/source/deployment/gui/dp_gui_dialog.src
@@ -125,6 +125,11 @@ String RID_STR_ERROR_MISSING_LICENSE
Text [ en-US ] = "This extension is disabled because you haven't accepted the license yet.\n";
};
+String RID_STR_SHOW_LICENSE_CMD
+{
+ Text [ en-US ] = "Show license";
+};
+
// Dialog layout
// ---------------------------------------------------
// row 1 | multi line edit
@@ -175,6 +180,7 @@ String RID_STR_ERROR_MISSING_LICENSE
ModalDialog RID_DLG_LICENSE
{
+ HelpID = "desktop:ModalDialog:RID_DLG_LICENSE";
Text [ en-US ] = "Extension Software License Agreement";
Size = MAP_APPFONT(LIC_DLG_WIDTH, LIC_DLG_HEIGHT);
@@ -186,6 +192,7 @@ ModalDialog RID_DLG_LICENSE
MultiLineEdit ML_LICENSE
{
+ HelpID = "desktop:MultiLineEdit:RID_DLG_LICENSE:ML_LICENSE";
Pos = MAP_APPFONT(COL1_X, ROW1_Y);
Size = MAP_APPFONT(BODYWIDTH, ROW1_HEIGHT);
Border = TRUE;
@@ -240,6 +247,7 @@ ModalDialog RID_DLG_LICENSE
PushButton PB_LICENSE_DOWN
{
+ HelpID = "desktop:PushButton:RID_DLG_LICENSE:PB_LICENSE_DOWN";
TabStop = TRUE ;
Pos = MAP_APPFONT(COL5_X , ROW3_Y) ;
Size = MAP_APPFONT(RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT) ;
@@ -295,6 +303,35 @@ ModalDialog RID_DLG_LICENSE
};
+ModalDialog RID_DLG_SHOW_LICENSE
+{
+ Text [ en-US ] = "Extension Software License Agreement";
+ Size = MAP_APPFONT( 300, 200 );
+ OutputSize = TRUE;
+ SVLook = TRUE;
+ Moveable = TRUE;
+ Closeable = TRUE;
+ Sizeable = TRUE;
+
+ MultiLineEdit ML_LICENSE
+ {
+ Pos = MAP_APPFONT( 5, 5 );
+ Size = MAP_APPFONT( 300 - 10, 200 - 15 - RSC_CD_PUSHBUTTON_HEIGHT );
+ Border = TRUE;
+ VScroll = TRUE;
+ ReadOnly = TRUE;
+ };
+
+ OKButton RID_EM_BTN_CLOSE
+ {
+ TabStop = TRUE;
+ DefButton = TRUE;
+ Text [ en-US ] = "Close";
+ Pos = MAP_APPFONT( (300-RSC_CD_PUSHBUTTON_WIDTH)/2, 200 - 5 - RSC_CD_PUSHBUTTON_HEIGHT );
+ Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT );
+ };
+};
+
WarningBox RID_WARNINGBOX_INSTALL_EXTENSION {
diff --git a/desktop/source/deployment/gui/dp_gui_dialog2.cxx b/desktop/source/deployment/gui/dp_gui_dialog2.cxx
index 9b23ed5c15..265936f3cd 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_dialog2.cxx
+++ b/desktop/source/deployment/gui/dp_gui_dialog2.cxx
@@ -40,8 +40,10 @@
#include "dp_gui_theextmgr.hxx"
#include "dp_gui_extensioncmdqueue.hxx"
#include "dp_misc.h"
+#include "dp_ucb.h"
#include "dp_update.hxx"
#include "dp_identifier.hxx"
+#include "dp_descriptioninfoset.hxx"
#include "vcl/ctrl.hxx"
#include "vcl/menu.hxx"
@@ -119,7 +121,8 @@ enum MENU_COMMAND
CMD_REMOVE = 1,
CMD_ENABLE,
CMD_DISABLE,
- CMD_UPDATE
+ CMD_UPDATE,
+ CMD_SHOW_LICENSE
};
class ExtBoxWithBtns_Impl : public ExtensionBox_Impl
@@ -225,13 +228,10 @@ const Size ExtBoxWithBtns_Impl::GetMinOutputSizePixel() const
// -----------------------------------------------------------------------
void ExtBoxWithBtns_Impl::RecalcAll()
{
- ExtensionBox_Impl::RecalcAll();
-
const sal_Int32 nActive = getSelIndex();
if ( nActive != EXTENSION_LISTBOX_ENTRY_NOTFOUND )
{
- SetButtonPos( GetEntryRect( nActive ) );
SetButtonStatus( GetEntryData( nActive) );
}
else
@@ -240,6 +240,11 @@ void ExtBoxWithBtns_Impl::RecalcAll()
m_pEnableBtn->Hide();
m_pRemoveBtn->Hide();
}
+
+ ExtensionBox_Impl::RecalcAll();
+
+ if ( nActive != EXTENSION_LISTBOX_ENTRY_NOTFOUND )
+ SetButtonPos( GetEntryRect( nActive ) );
}
@@ -364,28 +369,29 @@ bool ExtBoxWithBtns_Impl::HandleTabKey( bool bReverse )
// -----------------------------------------------------------------------
MENU_COMMAND ExtBoxWithBtns_Impl::ShowPopupMenu( const Point & rPos, const long nPos )
{
- if ( ( nPos >= 0 ) && ( nPos < (long) getItemCount() ) )
- {
- if ( ! GetEntryData( nPos )->m_bLocked )
- {
- PopupMenu aPopup;
-
- aPopup.InsertItem( CMD_UPDATE, DialogHelper::getResourceString( RID_CTX_ITEM_CHECK_UPDATE ) );
+ if ( nPos >= (long) getItemCount() )
+ return CMD_NONE;
- if ( GetEntryData( nPos )->m_bUser )
- {
- if ( GetEntryData( nPos )->m_eState == REGISTERED )
- aPopup.InsertItem( CMD_DISABLE, DialogHelper::getResourceString( RID_CTX_ITEM_DISABLE ) );
- else if ( GetEntryData( nPos )->m_eState != NOT_AVAILABLE )
- aPopup.InsertItem( CMD_ENABLE, DialogHelper::getResourceString( RID_CTX_ITEM_ENABLE ) );
- }
+ PopupMenu aPopup;
- aPopup.InsertItem( CMD_REMOVE, DialogHelper::getResourceString( RID_CTX_ITEM_REMOVE ) );
+ aPopup.InsertItem( CMD_UPDATE, DialogHelper::getResourceString( RID_CTX_ITEM_CHECK_UPDATE ) );
- return (MENU_COMMAND) aPopup.Execute( this, rPos );
+ if ( ! GetEntryData( nPos )->m_bLocked )
+ {
+ if ( GetEntryData( nPos )->m_bUser )
+ {
+ if ( GetEntryData( nPos )->m_eState == REGISTERED )
+ aPopup.InsertItem( CMD_DISABLE, DialogHelper::getResourceString( RID_CTX_ITEM_DISABLE ) );
+ else if ( GetEntryData( nPos )->m_eState != NOT_AVAILABLE )
+ aPopup.InsertItem( CMD_ENABLE, DialogHelper::getResourceString( RID_CTX_ITEM_ENABLE ) );
}
+ aPopup.InsertItem( CMD_REMOVE, DialogHelper::getResourceString( RID_CTX_ITEM_REMOVE ) );
}
- return CMD_NONE;
+
+ if ( GetEntryData( nPos )->m_sLicenseText.Len() )
+ aPopup.InsertItem( CMD_SHOW_LICENSE, DialogHelper::getResourceString( RID_STR_SHOW_LICENSE_CMD ) );
+
+ return (MENU_COMMAND) aPopup.Execute( this, rPos );
}
//------------------------------------------------------------------------------
@@ -410,6 +416,12 @@ void ExtBoxWithBtns_Impl::MouseButtonDown( const MouseEvent& rMEvt )
break;
case CMD_REMOVE: m_pParent->removePackage( GetEntryData( nPos )->m_xPackage );
break;
+ case CMD_SHOW_LICENSE:
+ {
+ ShowLicenseDialog aLicenseDlg( m_pParent, GetEntryData( nPos )->m_xPackage );
+ aLicenseDlg.Execute();
+ break;
+ }
}
}
else if ( rMEvt.IsLeft() )
@@ -431,7 +443,7 @@ long ExtBoxWithBtns_Impl::Notify( NotifyEvent& rNEvt )
{
const KeyEvent* pKEvt = rNEvt.GetKeyEvent();
KeyCode aKeyCode = pKEvt->GetKeyCode();
- USHORT nKeyCode = aKeyCode.GetCode();
+ sal_uInt16 nKeyCode = aKeyCode.GetCode();
if ( nKeyCode == KEY_TAB )
bHandled = HandleTabKey( aKeyCode.IsShift() );
@@ -558,14 +570,14 @@ DialogHelper::~DialogHelper()
}
//------------------------------------------------------------------------------
-ResId DialogHelper::getResId( USHORT nId )
+ResId DialogHelper::getResId( sal_uInt16 nId )
{
const SolarMutexGuard guard;
return ResId( nId, *DeploymentGuiResMgr::get() );
}
//------------------------------------------------------------------------------
-String DialogHelper::getResourceString( USHORT id )
+String DialogHelper::getResourceString( sal_uInt16 id )
{
// init with non-acquired solar mutex:
BrandName::get();
@@ -589,7 +601,7 @@ bool DialogHelper::IsSharedPkgMgr( const uno::Reference< deployment::XPackage >
//------------------------------------------------------------------------------
bool DialogHelper::continueOnSharedExtension( const uno::Reference< deployment::XPackage > &xPackage,
Window *pParent,
- const USHORT nResID,
+ const sal_uInt16 nResID,
bool &bHadWarning )
{
if ( !bHadWarning && IsSharedPkgMgr( xPackage ) )
@@ -658,8 +670,8 @@ bool DialogHelper::installForAllUsers( bool &bInstallForAll ) const
sMsgText.SearchAndReplaceAllAscii( "%PRODUCTNAME", BrandName::get() );
aQuery.SetMessText( sMsgText );
- USHORT nYesBtnID = aQuery.GetButtonId( 0 );
- USHORT nNoBtnID = aQuery.GetButtonId( 1 );
+ sal_uInt16 nYesBtnID = aQuery.GetButtonId( 0 );
+ sal_uInt16 nNoBtnID = aQuery.GetButtonId( 1 );
if ( nYesBtnID != BUTTONDIALOG_BUTTON_NOTFOUND )
aQuery.SetButtonText( nYesBtnID, getResourceString( RID_STR_INSTALL_FOR_ME ) );
@@ -1106,7 +1118,7 @@ IMPL_LINK( ExtMgrDialog, TimeOutHdl, Timer*, EMPTYARG )
}
if ( m_aProgressBar.IsVisible() )
- m_aProgressBar.SetValue( (USHORT) m_nProgress );
+ m_aProgressBar.SetValue( (sal_uInt16) m_nProgress );
m_aTimeoutTimer.Start();
}
@@ -1158,7 +1170,7 @@ void ExtMgrDialog::Resize()
Rectangle aNativeControlRegion, aNativeContentRegion;
if( GetNativeControlRegion( CTRL_PROGRESS, PART_ENTIRE_CONTROL, aControlRegion,
CTRL_STATE_ENABLED, aValue, rtl::OUString(),
- aNativeControlRegion, aNativeContentRegion ) != FALSE )
+ aNativeControlRegion, aNativeContentRegion ) != sal_False )
{
nProgressHeight = aNativeControlRegion.GetHeight();
}
@@ -1195,7 +1207,7 @@ long ExtMgrDialog::Notify( NotifyEvent& rNEvt )
{
const KeyEvent* pKEvt = rNEvt.GetKeyEvent();
KeyCode aKeyCode = pKEvt->GetKeyCode();
- USHORT nKeyCode = aKeyCode.GetCode();
+ sal_uInt16 nKeyCode = aKeyCode.GetCode();
if ( nKeyCode == KEY_TAB )
{
@@ -1222,7 +1234,7 @@ long ExtMgrDialog::Notify( NotifyEvent& rNEvt )
}
//------------------------------------------------------------------------------
-BOOL ExtMgrDialog::Close()
+sal_Bool ExtMgrDialog::Close()
{
bool bRet = m_pManager->queryTermination();
if ( bRet )
@@ -1544,7 +1556,7 @@ IMPL_LINK( UpdateRequiredDialog, TimeOutHdl, Timer*, EMPTYARG )
}
if ( m_aProgressBar.IsVisible() )
- m_aProgressBar.SetValue( (USHORT) m_nProgress );
+ m_aProgressBar.SetValue( (sal_uInt16) m_nProgress );
m_aTimeoutTimer.Start();
}
@@ -1602,7 +1614,7 @@ void UpdateRequiredDialog::Resize()
Rectangle aNativeControlRegion, aNativeContentRegion;
if( GetNativeControlRegion( CTRL_PROGRESS, PART_ENTIRE_CONTROL, aControlRegion,
CTRL_STATE_ENABLED, aValue, rtl::OUString(),
- aNativeControlRegion, aNativeContentRegion ) != FALSE )
+ aNativeControlRegion, aNativeContentRegion ) != sal_False )
{
nProgressHeight = aNativeControlRegion.GetHeight();
}
@@ -1640,7 +1652,7 @@ short UpdateRequiredDialog::Execute()
//------------------------------------------------------------------------------
// VCL::Dialog
-BOOL UpdateRequiredDialog::Close()
+sal_Bool UpdateRequiredDialog::Close()
{
::osl::MutexGuard aGuard( m_aMutex );
@@ -1746,6 +1758,42 @@ void UpdateRequiredDialog::disableAllEntries()
m_aCloseBtn.SetText( m_sCloseText );
}
+//------------------------------------------------------------------------------
+// ShowLicenseDialog
+//------------------------------------------------------------------------------
+ShowLicenseDialog::ShowLicenseDialog( Window * pParent,
+ const uno::Reference< deployment::XPackage > &xPackage ) :
+ ModalDialog( pParent, DialogHelper::getResId( RID_DLG_SHOW_LICENSE ) ),
+ m_aLicenseText( this, DialogHelper::getResId( ML_LICENSE ) ),
+ m_aCloseBtn( this, DialogHelper::getResId( RID_EM_BTN_CLOSE ) )
+{
+ FreeResource();
+
+ OUString aText = xPackage->getLicenseText();
+ m_aLicenseText.SetText( aText );
+}
+
+//------------------------------------------------------------------------------
+ShowLicenseDialog::~ShowLicenseDialog()
+{}
+
+//------------------------------------------------------------------------------
+void ShowLicenseDialog::Resize()
+{
+ Size aTotalSize( GetOutputSizePixel() );
+ Size aTextSize( aTotalSize.Width() - RSC_SP_DLG_INNERBORDER_LEFT - RSC_SP_DLG_INNERBORDER_RIGHT,
+ aTotalSize.Height() - RSC_SP_DLG_INNERBORDER_TOP - 2*RSC_SP_DLG_INNERBORDER_BOTTOM
+ - m_aCloseBtn.GetSizePixel().Height() );
+
+ m_aLicenseText.SetPosSizePixel( Point( RSC_SP_DLG_INNERBORDER_LEFT, RSC_SP_DLG_INNERBORDER_TOP ),
+ aTextSize );
+
+ Point aBtnPos( (aTotalSize.Width() - m_aCloseBtn.GetSizePixel().Width())/2,
+ aTotalSize.Height() - RSC_SP_DLG_INNERBORDER_BOTTOM
+ - m_aCloseBtn.GetSizePixel().Height() );
+ m_aCloseBtn.SetPosPixel( aBtnPos );
+}
+
//=================================================================================
// UpdateRequiredDialogService
//=================================================================================
diff --git a/desktop/source/deployment/gui/dp_gui_dialog2.hxx b/desktop/source/deployment/gui/dp_gui_dialog2.hxx
index 9ca13418d7..03b8839d23 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_dialog2.hxx
+++ b/desktop/source/deployment/gui/dp_gui_dialog2.hxx
@@ -36,6 +36,7 @@
#include "svtools/fixedhyper.hxx"
#include "svtools/prgsbar.hxx"
+#include "svtools/svmedit.hxx"
#include "osl/conditn.hxx"
#include "osl/mutex.hxx"
@@ -63,7 +64,7 @@ class DialogHelper
{
::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > m_xContext;
Dialog* m_pVCLWindow;
- ULONG m_nEventID;
+ sal_uLong m_nEventID;
bool m_bIsBusy;
public:
@@ -88,12 +89,12 @@ public:
virtual void prepareChecking() = 0;
virtual void checkEntries() = 0;
- static ResId getResId( USHORT nId );
- static String getResourceString( USHORT id );
+ static ResId getResId( sal_uInt16 nId );
+ static String getResourceString( sal_uInt16 id );
static bool IsSharedPkgMgr( const ::com::sun::star::uno::Reference< ::com::sun::star::deployment::XPackage > &);
static bool continueOnSharedExtension( const ::com::sun::star::uno::Reference< ::com::sun::star::deployment::XPackage > &,
Window *pParent,
- const USHORT nResID,
+ const sal_uInt16 nResID,
bool &bHadWarning );
void setBusy( const bool bBusy ) { m_bIsBusy = bBusy; }
@@ -149,7 +150,7 @@ public:
virtual void Resize();
virtual long Notify( NotifyEvent& rNEvt );
- virtual BOOL Close();
+ virtual sal_Bool Close();
virtual void showProgress( bool bStart );
virtual void updateProgress( const ::rtl::OUString &rText,
@@ -221,7 +222,7 @@ public:
virtual short Execute();
virtual void Resize();
- virtual BOOL Close();
+ virtual sal_Bool Close();
virtual void showProgress( bool bStart );
virtual void updateProgress( const ::rtl::OUString &rText,
@@ -246,6 +247,20 @@ public:
};
//==============================================================================
+class ShowLicenseDialog : public ModalDialog
+{
+ MultiLineEdit m_aLicenseText;
+ OKButton m_aCloseBtn;
+
+public:
+ ShowLicenseDialog( Window * pParent,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::deployment::XPackage > &xPackage );
+ virtual ~ShowLicenseDialog();
+
+ virtual void Resize();
+};
+
+//==============================================================================
class UpdateRequiredDialogService : public ::cppu::WeakImplHelper1< ::com::sun::star::ui::dialogs::XExecutableDialog >
{
::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > const m_xComponentContext;
diff --git a/desktop/source/deployment/gui/dp_gui_dialog2.src b/desktop/source/deployment/gui/dp_gui_dialog2.src
index 5c5fc24608..296928abfb 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_dialog2.src
+++ b/desktop/source/deployment/gui/dp_gui_dialog2.src
@@ -43,6 +43,7 @@ ModelessDialog RID_DLG_EXTENSION_MANAGER
PushButton RID_EM_BTN_ADD
{
+ HelpID = "desktop:PushButton:RID_DLG_EXTENSION_MANAGER:RID_EM_BTN_ADD";
TabStop = TRUE;
Text [ en-US ] = "~Add...";
Size = MAP_APPFONT(RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT );
@@ -50,6 +51,7 @@ ModelessDialog RID_DLG_EXTENSION_MANAGER
PushButton RID_EM_BTN_CHECK_UPDATES
{
+ HelpID = "desktop:PushButton:RID_DLG_EXTENSION_MANAGER:RID_EM_BTN_CHECK_UPDATES";
TabStop = TRUE;
Text [ en-US ] = "Check for ~Updates...";
Size = MAP_APPFONT(RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT );
@@ -131,6 +133,7 @@ ModalDialog RID_DLG_UPDATE_REQUIRED
PushButton RID_EM_BTN_CHECK_UPDATES
{
+ HelpID = "desktop:PushButton:RID_DLG_UPDATE_REQUIRED:RID_EM_BTN_CHECK_UPDATES";
TabStop = TRUE;
Text [ en-US ] = "Check for ~Updates...";
Size = MAP_APPFONT(RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT );
@@ -138,6 +141,7 @@ ModalDialog RID_DLG_UPDATE_REQUIRED
PushButton RID_EM_BTN_CLOSE
{
+ HelpID = "desktop:PushButton:RID_DLG_UPDATE_REQUIRED:RID_EM_BTN_CLOSE";
TabStop = TRUE;
DefButton = TRUE;
Text [ en-US ] = "Disable all";
diff --git a/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx b/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx
index d102a7edc9..d102a7edc9 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx
+++ b/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx
diff --git a/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.hxx b/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.hxx
index 8794c51132..8794c51132 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.hxx
+++ b/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.hxx
diff --git a/desktop/source/deployment/gui/dp_gui_extlistbox.cxx b/desktop/source/deployment/gui/dp_gui_extlistbox.cxx
index 3f0e45d38c..1d7f968423 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_extlistbox.cxx
+++ b/desktop/source/deployment/gui/dp_gui_extlistbox.cxx
@@ -77,6 +77,7 @@ Entry_Impl::Entry_Impl( const uno::Reference< deployment::XPackage > &xPackage,
m_sTitle = xPackage->getDisplayName();
m_sVersion = xPackage->getVersion();
m_sDescription = xPackage->getDescription();
+ m_sLicenseText = xPackage->getLicenseText();
beans::StringPair aInfo( m_xPackage->getPublisherInfo() );
m_sPublisher = aInfo.First;
@@ -707,7 +708,7 @@ bool ExtensionBox_Impl::HandleTabKey( bool )
}
// -----------------------------------------------------------------------
-bool ExtensionBox_Impl::HandleCursorKey( USHORT nKeyCode )
+bool ExtensionBox_Impl::HandleCursorKey( sal_uInt16 nKeyCode )
{
if ( m_vEntries.empty() )
return true;
@@ -872,7 +873,7 @@ long ExtensionBox_Impl::Notify( NotifyEvent& rNEvt )
{
const KeyEvent* pKEvt = rNEvt.GetKeyEvent();
KeyCode aKeyCode = pKEvt->GetKeyCode();
- USHORT nKeyCode = aKeyCode.GetCode();
+ sal_uInt16 nKeyCode = aKeyCode.GetCode();
if ( nKeyCode == KEY_TAB )
bHandled = HandleTabKey( aKeyCode.IsShift() );
diff --git a/desktop/source/deployment/gui/dp_gui_extlistbox.hxx b/desktop/source/deployment/gui/dp_gui_extlistbox.hxx
index 7cdaa7483e..9dbbb7d337 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_extlistbox.hxx
+++ b/desktop/source/deployment/gui/dp_gui_extlistbox.hxx
@@ -82,6 +82,7 @@ struct Entry_Impl
String m_sPublisher;
String m_sPublisherURL;
String m_sErrorText;
+ String m_sLicenseText;
Image m_aIcon;
Image m_aIconHC;
svt::FixedHyperlink *m_pPublisher;
@@ -166,7 +167,7 @@ class ExtensionBox_Impl : public ::svt::IExtensionListBox
void SetupScrollBar();
void DrawRow( const Rectangle& rRect, const TEntry_Impl pEntry );
bool HandleTabKey( bool bReverse );
- bool HandleCursorKey( USHORT nKeyCode );
+ bool HandleCursorKey( sal_uInt16 nKeyCode );
bool FindEntryPos( const TEntry_Impl pEntry, long nStart, long nEnd, long &nFound );
void DeleteRemoved();
diff --git a/desktop/source/deployment/gui/dp_gui_service.cxx b/desktop/source/deployment/gui/dp_gui_service.cxx
index dce92cba4c..b1ec3a43df 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_service.cxx
+++ b/desktop/source/deployment/gui/dp_gui_service.cxx
@@ -358,14 +358,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-sal_Bool SAL_CALL component_writeInfo(
- lang::XMultiServiceFactory * pServiceManager,
- registry::XRegistryKey * pRegistryKey )
-{
- return component_writeInfoHelper(
- pServiceManager, pRegistryKey, dp_gui::serviceDecl, dp_gui::licenseDecl, dp_gui::updateDecl );
-}
-
void * SAL_CALL component_getFactory(
sal_Char const * pImplName,
lang::XMultiServiceFactory * pServiceManager,
diff --git a/desktop/source/deployment/gui/dp_gui_shared.hxx b/desktop/source/deployment/gui/dp_gui_shared.hxx
index af3a0bd5b9..dcee2863cd 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_shared.hxx
+++ b/desktop/source/deployment/gui/dp_gui_shared.hxx
@@ -55,7 +55,7 @@ struct BrandName : public ::rtl::StaticWithInit<const ::rtl::OUString, BrandName
class DpGuiResId : public ResId
{
public:
- DpGuiResId( USHORT nId ):ResId( nId, *DeploymentGuiResMgr::get() ) {}
+ DpGuiResId( sal_uInt16 nId ):ResId( nId, *DeploymentGuiResMgr::get() ) {}
};
} // namespace dp_gui
diff --git a/desktop/source/deployment/gui/dp_gui_theextmgr.cxx b/desktop/source/deployment/gui/dp_gui_theextmgr.cxx
index 564580c520..5e1099ef19 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_theextmgr.cxx
+++ b/desktop/source/deployment/gui/dp_gui_theextmgr.cxx
@@ -166,7 +166,7 @@ void TheExtensionManager::SetText( const ::rtl::OUString &rTitle )
}
//------------------------------------------------------------------------------
-void TheExtensionManager::ToTop( USHORT nFlags )
+void TheExtensionManager::ToTop( sal_uInt16 nFlags )
{
const SolarMutexGuard guard;
diff --git a/desktop/source/deployment/gui/dp_gui_theextmgr.hxx b/desktop/source/deployment/gui/dp_gui_theextmgr.hxx
index 13ba06d0b3..6b1deb7ba9 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_theextmgr.hxx
+++ b/desktop/source/deployment/gui/dp_gui_theextmgr.hxx
@@ -87,7 +87,7 @@ public:
void SetText( const ::rtl::OUString &rTitle );
void Show();
- void ToTop( USHORT nFlags );
+ void ToTop( sal_uInt16 nFlags );
bool Close();
bool isVisible();
diff --git a/desktop/source/deployment/gui/dp_gui_thread.cxx b/desktop/source/deployment/gui/dp_gui_thread.cxx
index 3bf0ff0d6c..3bf0ff0d6c 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_thread.cxx
+++ b/desktop/source/deployment/gui/dp_gui_thread.cxx
diff --git a/desktop/source/deployment/gui/dp_gui_thread.hxx b/desktop/source/deployment/gui/dp_gui_thread.hxx
index eb4fe43c94..eb4fe43c94 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_thread.hxx
+++ b/desktop/source/deployment/gui/dp_gui_thread.hxx
diff --git a/desktop/source/deployment/gui/dp_gui_updatedata.hxx b/desktop/source/deployment/gui/dp_gui_updatedata.hxx
index 314f449358..3a43dce5d6 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_updatedata.hxx
+++ b/desktop/source/deployment/gui/dp_gui_updatedata.hxx
@@ -29,6 +29,7 @@
#define INCLUDED_DP_GUI_UPDATEDATA_HXX
#include "sal/config.h"
+#include "tools/solar.h"
#include "rtl/ustring.hxx"
#include "com/sun/star/uno/Reference.hxx"
@@ -81,6 +82,10 @@ struct UpdateData
//are to be ignored.
::com::sun::star::uno::Reference< ::com::sun::star::deployment::XPackage >
aUpdateSource;
+
+ // ID to find this entry in the update listbox
+ sal_uInt16 m_nID;
+ bool m_bIgnored;
};
}
diff --git a/desktop/source/deployment/gui/dp_gui_updatedialog.cxx b/desktop/source/deployment/gui/dp_gui_updatedialog.cxx
index df1744fa5c..8b73e6bae8 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_updatedialog.cxx
+++ b/desktop/source/deployment/gui/dp_gui_updatedialog.cxx
@@ -44,14 +44,15 @@
#include "com/sun/star/awt/WindowAttribute.hpp"
#include "com/sun/star/awt/WindowClass.hpp"
#include "com/sun/star/awt/WindowDescriptor.hpp"
-#include "com/sun/star/awt/XThrobber.hpp"
#include "com/sun/star/awt/XToolkit.hpp"
#include "com/sun/star/awt/XWindow.hpp"
#include "com/sun/star/awt/XWindowPeer.hpp"
#include "com/sun/star/beans/NamedValue.hpp"
#include "com/sun/star/beans/Optional.hpp"
#include "com/sun/star/beans/PropertyValue.hpp"
+#include "com/sun/star/beans/XPropertySet.hpp"
#include "com/sun/star/container/XNameAccess.hpp"
+#include "com/sun/star/container/XNameContainer.hpp"
#include "com/sun/star/deployment/DeploymentException.hpp"
#include "com/sun/star/deployment/UpdateInformationProvider.hpp"
#include "com/sun/star/deployment/XPackage.hpp"
@@ -63,6 +64,7 @@
#include "com/sun/star/frame/XDispatchProvider.hpp"
#include "com/sun/star/lang/IllegalArgumentException.hpp"
#include "com/sun/star/lang/XMultiComponentFactory.hpp"
+#include "com/sun/star/lang/XSingleServiceFactory.hpp"
#include "com/sun/star/system/SystemShellExecuteFlags.hpp"
#include "com/sun/star/system/XSystemShellExecute.hpp"
#include "com/sun/star/task/XAbortChannel.hpp"
@@ -77,6 +79,7 @@
#include "com/sun/star/uno/Sequence.hxx"
#include "com/sun/star/uno/XInterface.hpp"
#include "com/sun/star/util/URL.hpp"
+#include "com/sun/star/util/XChangesBatch.hpp"
#include "com/sun/star/util/XURLTransformer.hpp"
#include "com/sun/star/xml/dom/XElement.hpp"
#include "com/sun/star/xml/dom/XNode.hpp"
@@ -129,16 +132,23 @@ namespace com { namespace sun { namespace star { namespace uno {
class XComponentContext;
} } } }
-namespace css = ::com::sun::star;
-
+using namespace ::com::sun::star;
using dp_gui::UpdateDialog;
namespace {
static sal_Unicode const LF = 0x000A;
static sal_Unicode const CR = 0x000D;
+static const sal_uInt16 CMD_ENABLE_UPDATE = 1;
+static const sal_uInt16 CMD_IGNORE_UPDATE = 2;
+static const sal_uInt16 CMD_IGNORE_ALL_UPDATES = 3;
+
+#define OUSTR(x) ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(x) )
+
+#define IGNORED_UPDATES OUSTR("/org.openoffice.Office.ExtensionManager/ExtensionUpdateData/IgnoredUpdates")
+#define PROPERTY_VERSION OUSTR("Version")
-enum Kind { ENABLED_UPDATE, DISABLED_UPDATE, GENERAL_ERROR, SPECIFIC_ERROR };
+enum Kind { ENABLED_UPDATE, DISABLED_UPDATE, SPECIFIC_ERROR };
rtl::OUString confineToParagraph(rtl::OUString const & text) {
// Confine arbitrary text to a single paragraph in a dp_gui::AutoScrollEdit.
@@ -151,86 +161,64 @@ rtl::OUString confineToParagraph(rtl::OUString const & text) {
struct UpdateDialog::DisabledUpdate {
rtl::OUString name;
- css::uno::Sequence< rtl::OUString > unsatisfiedDependencies;
+ uno::Sequence< rtl::OUString > unsatisfiedDependencies;
// We also want to show release notes and publisher for disabled updates
::com::sun::star::uno::Reference< ::com::sun::star::xml::dom::XNode > aUpdateInfo;
+ sal_uInt16 m_nID;
};
struct UpdateDialog::SpecificError {
rtl::OUString name;
rtl::OUString message;
+ sal_uInt16 m_nID;
};
-union UpdateDialog::IndexUnion{
- std::vector< dp_gui::UpdateData >::size_type enabledUpdate;
- std::vector< UpdateDialog::DisabledUpdate >::size_type disabledUpdate;
- std::vector< rtl::OUString >::size_type generalError;
- std::vector< UpdateDialog::SpecificError >::size_type specificError;
-};
-
-struct UpdateDialog::Index {
- static std::auto_ptr< UpdateDialog::Index const > newEnabledUpdate(
- std::vector< dp_gui::UpdateData >::size_type n);
-
- static std::auto_ptr< UpdateDialog::Index const > newDisabledUpdate(
- std::vector< UpdateDialog::DisabledUpdate >::size_type n);
+//------------------------------------------------------------------------------
+struct UpdateDialog::IgnoredUpdate {
+ rtl::OUString sExtensionID;
+ rtl::OUString sVersion;
+ bool bRemoved;
- static std::auto_ptr< UpdateDialog::Index const > newGeneralError(
- std::vector< rtl::OUString >::size_type n);
-
- static std::auto_ptr< UpdateDialog::Index const > newSpecificError(
- std::vector< UpdateDialog::SpecificError >::size_type n);
-
- Kind kind;
- IndexUnion index;
-
-private:
- explicit Index(Kind theKind);
+ IgnoredUpdate( const rtl::OUString &rExtensionID, const rtl::OUString &rVersion );
};
-std::auto_ptr< UpdateDialog::Index const >
-UpdateDialog::Index::newEnabledUpdate(
- std::vector< dp_gui::UpdateData >::size_type n)
-{
- UpdateDialog::Index * p = new UpdateDialog::Index(ENABLED_UPDATE);
- p->index.enabledUpdate = n;
- return std::auto_ptr< UpdateDialog::Index const >(p);
-}
-
-std::auto_ptr< UpdateDialog::Index const >
-UpdateDialog::Index::newDisabledUpdate(
- std::vector< UpdateDialog::DisabledUpdate >::size_type n)
-{
- UpdateDialog::Index * p = new UpdateDialog::Index(DISABLED_UPDATE);
- p->index.disabledUpdate = n;
- return std::auto_ptr< UpdateDialog::Index const >(p);
-}
+//------------------------------------------------------------------------------
+UpdateDialog::IgnoredUpdate::IgnoredUpdate( const rtl::OUString &rExtensionID, const rtl::OUString &rVersion ):
+ sExtensionID( rExtensionID ),
+ sVersion( rVersion ),
+ bRemoved( false )
+{}
-std::auto_ptr< UpdateDialog::Index const > UpdateDialog::Index::newGeneralError(
- std::vector< rtl::OUString >::size_type n)
+//------------------------------------------------------------------------------
+struct UpdateDialog::Index
{
- UpdateDialog::Index * p = new UpdateDialog::Index(GENERAL_ERROR);
- p->index.generalError = n;
- return std::auto_ptr< UpdateDialog::Index const >(p);
-}
+ Kind m_eKind;
+ bool m_bIgnored;
+ sal_uInt16 m_nID;
+ sal_uInt16 m_nIndex;
+ rtl::OUString m_aName;
-std::auto_ptr< UpdateDialog::Index const >
-UpdateDialog::Index::newSpecificError(
- std::vector< UpdateDialog::SpecificError >::size_type n)
-{
- UpdateDialog::Index * p = new UpdateDialog::Index(SPECIFIC_ERROR);
- p->index.specificError = n;
- return std::auto_ptr< UpdateDialog::Index const >(p);
-}
+ Index( Kind theKind, sal_uInt16 nID, sal_uInt16 nIndex, const rtl::OUString &rName );
+};
-UpdateDialog::Index::Index(Kind theKind): kind(theKind) {}
+//------------------------------------------------------------------------------
+UpdateDialog::Index::Index( Kind theKind, sal_uInt16 nID, sal_uInt16 nIndex, const rtl::OUString &rName ):
+ m_eKind( theKind ),
+ m_bIgnored( false ),
+ m_nID( nID ),
+ m_nIndex( nIndex ),
+ m_aName( rName )
+{}
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
class UpdateDialog::Thread: public dp_gui::Thread {
public:
Thread(
- css::uno::Reference< css::uno::XComponentContext > const & context,
+ uno::Reference< uno::XComponentContext > const & context,
UpdateDialog & dialog,
- const std::vector< css::uno::Reference< css::deployment::XPackage > > & vExtensionList);
+ const std::vector< uno::Reference< deployment::XPackage > > & vExtensionList);
void stop();
@@ -243,13 +231,13 @@ private:
virtual void execute();
void handleSpecificError(
- css::uno::Reference< css::deployment::XPackage > const & package,
- css::uno::Any const & exception) const;
+ uno::Reference< deployment::XPackage > const & package,
+ uno::Any const & exception) const;
- css::uno::Sequence< css::uno::Reference< css::xml::dom::XElement > >
+ uno::Sequence< uno::Reference< xml::dom::XElement > >
getUpdateInformation(
- css::uno::Reference< css::deployment::XPackage > const & package,
- css::uno::Sequence< rtl::OUString > const & urls,
+ uno::Reference< deployment::XPackage > const & package,
+ uno::Sequence< rtl::OUString > const & urls,
rtl::OUString const & identifier) const;
::rtl::OUString getUpdateDisplayString(
@@ -261,40 +249,40 @@ private:
dp_gui::UpdateData & out_data) const;
bool update(
- UpdateDialog::DisabledUpdate const & du,
- dp_gui::UpdateData const & data) const;
-
- css::uno::Reference< css::uno::XComponentContext > m_context;
+ UpdateDialog::DisabledUpdate & du,
+ dp_gui::UpdateData & data) const;
+
+ uno::Reference< uno::XComponentContext > m_context;
UpdateDialog & m_dialog;
- std::vector< css::uno::Reference< css::deployment::XPackage > > m_vExtensionList;
- css::uno::Reference< css::deployment::XUpdateInformationProvider > m_updateInformation;
- css::uno::Reference< css::task::XInteractionHandler > m_xInteractionHdl;
+ std::vector< uno::Reference< deployment::XPackage > > m_vExtensionList;
+ uno::Reference< deployment::XUpdateInformationProvider > m_updateInformation;
+ uno::Reference< task::XInteractionHandler > m_xInteractionHdl;
// guarded by Application::GetSolarMutex():
- css::uno::Reference< css::task::XAbortChannel > m_abort;
+ uno::Reference< task::XAbortChannel > m_abort;
bool m_stop;
};
UpdateDialog::Thread::Thread(
- css::uno::Reference< css::uno::XComponentContext > const & context,
+ uno::Reference< uno::XComponentContext > const & context,
UpdateDialog & dialog,
- const std::vector< css::uno::Reference< css::deployment::XPackage > > &vExtensionList):
+ const std::vector< uno::Reference< deployment::XPackage > > &vExtensionList):
m_context(context),
m_dialog(dialog),
m_vExtensionList(vExtensionList),
m_updateInformation(
- css::deployment::UpdateInformationProvider::create(context)),
+ deployment::UpdateInformationProvider::create(context)),
m_stop(false)
{
if( m_context.is() )
{
- css::uno::Reference< css::lang::XMultiComponentFactory > xServiceManager( m_context->getServiceManager() );
+ uno::Reference< lang::XMultiComponentFactory > xServiceManager( m_context->getServiceManager() );
if( xServiceManager.is() )
{
- m_xInteractionHdl = css::uno::Reference< css::task::XInteractionHandler > (
+ m_xInteractionHdl = uno::Reference< task::XInteractionHandler > (
xServiceManager->createInstanceWithContext( OUSTR( "com.sun.star.task.InteractionHandler" ), m_context),
- css::uno::UNO_QUERY );
+ uno::UNO_QUERY );
if ( m_xInteractionHdl.is() )
m_updateInformation->setInteractionHandler( m_xInteractionHdl );
}
@@ -302,7 +290,7 @@ UpdateDialog::Thread::Thread(
}
void UpdateDialog::Thread::stop() {
- css::uno::Reference< css::task::XAbortChannel > abort;
+ uno::Reference< task::XAbortChannel > abort;
{
SolarMutexGuard g;
abort = m_abort;
@@ -317,7 +305,7 @@ void UpdateDialog::Thread::stop() {
UpdateDialog::Thread::~Thread()
{
if ( m_xInteractionHdl.is() )
- m_updateInformation->setInteractionHandler( css::uno::Reference< css::task::XInteractionHandler > () );
+ m_updateInformation->setInteractionHandler( uno::Reference< task::XInteractionHandler > () );
}
void UpdateDialog::Thread::execute()
@@ -328,16 +316,16 @@ void UpdateDialog::Thread::execute()
return;
}
}
- css::uno::Reference<css::deployment::XExtensionManager> extMgr =
- css::deployment::ExtensionManager::get(m_context);
+ uno::Reference<deployment::XExtensionManager> extMgr =
+ deployment::ExtensionManager::get(m_context);
- std::vector<std::pair<css::uno::Reference<css::deployment::XPackage>, css::uno::Any > > errors;
+ std::vector<std::pair<uno::Reference<deployment::XPackage>, uno::Any > > errors;
dp_misc::UpdateInfoMap updateInfoMap = dp_misc::getOnlineUpdateInfos(
m_context, extMgr, m_updateInformation, &m_vExtensionList, errors);
- typedef std::vector<std::pair<css::uno::Reference<css::deployment::XPackage>,
- css::uno::Any> >::const_iterator ITERROR;
+ typedef std::vector<std::pair<uno::Reference<deployment::XPackage>,
+ uno::Any> >::const_iterator ITERROR;
for (ITERROR ite = errors.begin(); ite != errors.end(); ++ite )
handleSpecificError(ite->first, ite->second);
@@ -356,13 +344,17 @@ void UpdateDialog::Thread::execute()
rtl::OUString sVersionUser;
rtl::OUString sVersionShared;
rtl::OUString sVersionBundled;
- css::uno::Sequence< css::uno::Reference< css::deployment::XPackage> > extensions;
+ uno::Sequence< uno::Reference< deployment::XPackage> > extensions;
try {
extensions = extMgr->getExtensionsWithSameIdentifier(
dp_misc::getIdentifier(info.extension), info.extension->getName(),
- css::uno::Reference<css::ucb::XCommandEnvironment>());
- } catch (css::lang::IllegalArgumentException& ) {
+ uno::Reference<ucb::XCommandEnvironment>());
+ } catch (lang::IllegalArgumentException& ) {
+ OSL_ASSERT(0);
+ continue;
+ } catch (css::ucb::CommandFailedException& ) {
OSL_ASSERT(0);
+ continue;
}
OSL_ASSERT(extensions.getLength() == 3);
if (extensions[0].is() )
@@ -379,7 +371,7 @@ void UpdateDialog::Thread::execute()
dp_misc::UPDATE_SOURCE sourceShared = dp_misc::isUpdateSharedExtension(
bSharedReadOnly, sVersionShared, sVersionBundled, sOnlineVersion);
- css::uno::Reference<css::deployment::XPackage> updateSource;
+ uno::Reference<deployment::XPackage> updateSource;
if (sourceUser != dp_misc::UPDATE_SOURCE_NONE)
{
if (sourceUser == dp_misc::UPDATE_SOURCE_SHARED)
@@ -418,13 +410,13 @@ void UpdateDialog::Thread::execute()
//Parameter package can be null
void UpdateDialog::Thread::handleSpecificError(
- css::uno::Reference< css::deployment::XPackage > const & package,
- css::uno::Any const & exception) const
+ uno::Reference< deployment::XPackage > const & package,
+ uno::Any const & exception) const
{
UpdateDialog::SpecificError data;
if (package.is())
data.name = package->getDisplayName();
- css::uno::Exception e;
+ uno::Exception e;
if (exception >>= e) {
data.message = e.Message;
}
@@ -466,7 +458,7 @@ void UpdateDialog::Thread::handleSpecificError(
/** out_data will only be filled if all dependencies are ok.
*/
void UpdateDialog::Thread::prepareUpdateData(
- css::uno::Reference< css::xml::dom::XNode > const & updateInfo,
+ uno::Reference< xml::dom::XNode > const & updateInfo,
UpdateDialog::DisabledUpdate & out_du,
dp_gui::UpdateData & out_data) const
{
@@ -474,7 +466,7 @@ void UpdateDialog::Thread::prepareUpdateData(
return;
dp_misc::DescriptionInfoset infoset(m_context, updateInfo);
OSL_ASSERT(infoset.getVersion().getLength() != 0);
- css::uno::Sequence< css::uno::Reference< css::xml::dom::XElement > > ds(
+ uno::Sequence< uno::Reference< xml::dom::XElement > > ds(
dp_misc::Dependencies::check(infoset));
out_du.aUpdateInfo = updateInfo;
@@ -497,8 +489,8 @@ void UpdateDialog::Thread::prepareUpdateData(
}
bool UpdateDialog::Thread::update(
- UpdateDialog::DisabledUpdate const & du,
- dp_gui::UpdateData const & data) const
+ UpdateDialog::DisabledUpdate & du,
+ dp_gui::UpdateData & data) const
{
bool ret = false;
if (du.unsatisfiedDependencies.getLength() == 0)
@@ -520,13 +512,14 @@ bool UpdateDialog::Thread::update(
// UpdateDialog ----------------------------------------------------------
UpdateDialog::UpdateDialog(
- css::uno::Reference< css::uno::XComponentContext > const & context,
+ uno::Reference< uno::XComponentContext > const & context,
Window * parent,
- const std::vector<css::uno::Reference< css::deployment::XPackage > > &vExtensionList,
+ const std::vector<uno::Reference< deployment::XPackage > > &vExtensionList,
std::vector< dp_gui::UpdateData > * updateData):
ModalDialog(parent,DpGuiResId(RID_DLG_UPDATE)),
m_context(context),
m_checking(this, DpGuiResId(RID_DLG_UPDATE_CHECKING)),
+ m_throbber(this, DpGuiResId(RID_DLG_UPDATE_THROBBER)),
m_update(this, DpGuiResId(RID_DLG_UPDATE_UPDATE)),
m_updates(
*this, DpGuiResId(RID_DLG_UPDATE_UPDATES),
@@ -541,7 +534,7 @@ UpdateDialog::UpdateDialog(
m_line(this, DpGuiResId(RID_DLG_UPDATE_LINE)),
m_help(this, DpGuiResId(RID_DLG_UPDATE_HELP)),
m_ok(this, DpGuiResId(RID_DLG_UPDATE_OK)),
- m_cancel(this, DpGuiResId(RID_DLG_UPDATE_CANCEL)),
+ m_close(this, DpGuiResId(RID_DLG_UPDATE_CLOSE)),
m_error(String(DpGuiResId(RID_DLG_UPDATE_ERROR))),
m_none(String(DpGuiResId(RID_DLG_UPDATE_NONE))),
m_noInstallable(String(DpGuiResId(RID_DLG_UPDATE_NOINSTALLABLE))),
@@ -553,105 +546,116 @@ UpdateDialog::UpdateDialog(
m_noDependencyCurVer(String(DpGuiResId(RID_DLG_UPDATE_NODEPENDENCY_CUR_VER))),
m_browserbased(String(DpGuiResId(RID_DLG_UPDATE_BROWSERBASED))),
m_version(String(DpGuiResId(RID_DLG_UPDATE_VERSION))),
+ m_ignoredUpdate(String(DpGuiResId(RID_DLG_UPDATE_IGNORED_UPDATE))),
m_updateData(*updateData),
m_thread(
new UpdateDialog::Thread(
context, *this, vExtensionList)),
m_nFirstLineDelta(0),
- m_nOneLineMissing(0)
+ m_nOneLineMissing(0),
+ m_nLastID(1),
+ m_bModified( false )
// TODO: check!
// ,
// m_extensionManagerDialog(extensionManagerDialog)
{
OSL_ASSERT(updateData != NULL);
- m_xExtensionManager = css::deployment::ExtensionManager::get( context );
+ m_xExtensionManager = deployment::ExtensionManager::get( context );
- css::uno::Reference< css::awt::XToolkit > toolkit;
+ uno::Reference< awt::XToolkit > toolkit;
try {
- toolkit = css::uno::Reference< css::awt::XToolkit >(
- (css::uno::Reference< css::lang::XMultiComponentFactory >(
+ toolkit = uno::Reference< awt::XToolkit >(
+ (uno::Reference< lang::XMultiComponentFactory >(
m_context->getServiceManager(),
- css::uno::UNO_QUERY_THROW)->
+ uno::UNO_QUERY_THROW)->
createInstanceWithContext(
rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.Toolkit")),
m_context)),
- css::uno::UNO_QUERY_THROW);
- } catch (css::uno::RuntimeException &) {
+ uno::UNO_QUERY_THROW);
+ } catch (uno::RuntimeException &) {
throw;
- } catch (css::uno::Exception & e) {
- throw css::uno::RuntimeException(e.Message, e.Context);
- }
- Control c(this, DpGuiResId(RID_DLG_UPDATE_THROBBER));
- Point pos(c.GetPosPixel());
- Size size(c.GetSizePixel());
- try {
- m_throbber = css::uno::Reference< css::awt::XThrobber >(
- toolkit->createWindow(
- css::awt::WindowDescriptor(
- css::awt::WindowClass_SIMPLE,
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Throbber")),
- GetComponentInterface(), 0,
- css::awt::Rectangle(
- pos.X(), pos.Y(), size.Width(), size.Height()),
- css::awt::WindowAttribute::SHOW)),
- css::uno::UNO_QUERY_THROW);
- } catch (css::lang::IllegalArgumentException & e) {
- throw css::uno::RuntimeException(e.Message, e.Context);
+ } catch (uno::Exception & e) {
+ throw uno::RuntimeException(e.Message, e.Context);
}
m_updates.SetSelectHdl(LINK(this, UpdateDialog, selectionHandler));
m_all.SetToggleHdl(LINK(this, UpdateDialog, allHandler));
m_ok.SetClickHdl(LINK(this, UpdateDialog, okHandler));
- m_cancel.SetClickHdl(LINK(this, UpdateDialog, cancelHandler));
+ m_close.SetClickHdl(LINK(this, UpdateDialog, closeHandler));
if ( ! dp_misc::office_is_running())
m_help.Disable();
FreeResource();
initDescription();
+ getIgnoredUpdates();
}
-UpdateDialog::~UpdateDialog() {
- for (USHORT i = 0; i < m_updates.getItemCount(); ++i) {
- delete static_cast< UpdateDialog::Index const * >(
- m_updates.GetEntryData(i));
+//------------------------------------------------------------------------------
+UpdateDialog::~UpdateDialog()
+{
+ storeIgnoredUpdates();
+
+ for ( std::vector< UpdateDialog::Index* >::iterator i( m_ListboxEntries.begin() ); i != m_ListboxEntries.end(); ++i )
+ {
+ delete (*i);
+ }
+ for ( std::vector< UpdateDialog::IgnoredUpdate* >::iterator i( m_ignoredUpdates.begin() ); i != m_ignoredUpdates.end(); ++i )
+ {
+ delete (*i);
}
}
-BOOL UpdateDialog::Close() {
+//------------------------------------------------------------------------------
+sal_Bool UpdateDialog::Close() {
m_thread->stop();
return ModalDialog::Close();
}
short UpdateDialog::Execute() {
- m_throbber->start();
+ m_throbber.start();
m_thread->launch();
return ModalDialog::Execute();
}
-UpdateDialog::CheckListBox::CheckListBox(
- UpdateDialog & dialog, ResId const & resource,
- Image const & normalStaticImage):
- SvxCheckListBox(
- &dialog, resource, normalStaticImage),
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+UpdateDialog::CheckListBox::CheckListBox( UpdateDialog & dialog, ResId const & resource,
+ Image const & normalStaticImage ):
+ SvxCheckListBox( &dialog, resource, normalStaticImage ),
+ m_ignoreUpdate( String( DpGuiResId( RID_DLG_UPDATE_IGNORE ) ) ),
+ m_ignoreAllUpdates( String( DpGuiResId( RID_DLG_UPDATE_IGNORE_ALL ) ) ),
+ m_enableUpdate( String( DpGuiResId( RID_DLG_UPDATE_ENABLE ) ) ),
m_dialog(dialog)
{}
+//------------------------------------------------------------------------------
UpdateDialog::CheckListBox::~CheckListBox() {}
-USHORT UpdateDialog::CheckListBox::getItemCount() const {
- ULONG i = GetEntryCount();
- OSL_ASSERT(i <= std::numeric_limits< USHORT >::max());
- return sal::static_int_cast< USHORT >(i);
+//------------------------------------------------------------------------------
+sal_uInt16 UpdateDialog::CheckListBox::getItemCount() const {
+ sal_uLong i = GetEntryCount();
+ OSL_ASSERT(i <= std::numeric_limits< sal_uInt16 >::max());
+ return sal::static_int_cast< sal_uInt16 >(i);
}
-void UpdateDialog::CheckListBox::MouseButtonDown(MouseEvent const & event) {
+//------------------------------------------------------------------------------
+void UpdateDialog::CheckListBox::MouseButtonDown( MouseEvent const & event )
+{
// When clicking on a selected entry in an SvxCheckListBox, the entry's
// checkbox is toggled on mouse button down:
- SvxCheckListBox::MouseButtonDown(event);
+ SvxCheckListBox::MouseButtonDown( event );
+
+ if ( event.IsRight() )
+ {
+ handlePopupMenu( event.GetPosPixel() );
+ }
+
m_dialog.enableOk();
}
+//------------------------------------------------------------------------------
void UpdateDialog::CheckListBox::MouseButtonUp(MouseEvent const & event) {
// When clicking on an entry's checkbox in an SvxCheckListBox, the entry's
// checkbox is toggled on mouse button up:
@@ -664,25 +668,82 @@ void UpdateDialog::CheckListBox::KeyInput(KeyEvent const & event) {
m_dialog.enableOk();
}
-void UpdateDialog::insertItem(
- rtl::OUString const & name, USHORT position,
- std::auto_ptr< UpdateDialog::Index const > index, SvLBoxButtonKind kind)
+//------------------------------------------------------------------------------
+void UpdateDialog::CheckListBox::handlePopupMenu( const Point &rPos )
+{
+ SvListEntry *pData = GetEntry( rPos );
+
+ if ( pData )
+ {
+ sal_uInt16 nEntryPos = GetSelectEntryPos();
+ UpdateDialog::Index * p = static_cast< UpdateDialog::Index * >( GetEntryData( nEntryPos ) );
+
+ if ( ( p->m_eKind == ENABLED_UPDATE ) || ( p->m_eKind == DISABLED_UPDATE ) )
+ {
+ PopupMenu aPopup;
+
+ if ( p->m_bIgnored )
+ aPopup.InsertItem( CMD_ENABLE_UPDATE, m_enableUpdate );
+ else
+ {
+ aPopup.InsertItem( CMD_IGNORE_UPDATE, m_ignoreUpdate );
+ aPopup.InsertItem( CMD_IGNORE_ALL_UPDATES, m_ignoreAllUpdates );
+ }
+
+ sal_uInt16 aCmd = aPopup.Execute( this, rPos );
+ if ( ( aCmd == CMD_IGNORE_UPDATE ) || ( aCmd == CMD_IGNORE_ALL_UPDATES ) )
+ {
+ p->m_bIgnored = true;
+ if ( p->m_eKind == ENABLED_UPDATE )
+ {
+ RemoveEntry( nEntryPos );
+ m_dialog.addAdditional( p, SvLBoxButtonKind_disabledCheckbox );
+ }
+ if ( aCmd == CMD_IGNORE_UPDATE )
+ m_dialog.setIgnoredUpdate( p, true, false );
+ else
+ m_dialog.setIgnoredUpdate( p, true, true );
+ // TODO: reselect entry to display new description!
+ }
+ else if ( aCmd == CMD_ENABLE_UPDATE )
+ {
+ p->m_bIgnored = false;
+ if ( p->m_eKind == ENABLED_UPDATE )
+ {
+ RemoveEntry( nEntryPos );
+ m_dialog.insertItem( p, SvLBoxButtonKind_enabledCheckbox );
+ }
+ m_dialog.setIgnoredUpdate( p, false, false );
+ }
+ }
+ }
+}
+
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+sal_uInt16 UpdateDialog::insertItem( UpdateDialog::Index *pEntry, SvLBoxButtonKind kind )
{
- m_updates.InsertEntry(
- name, position,
- const_cast< void * >(static_cast< void const * >(index.release())),
- kind);
- //TODO #i72487#: UpdateDialog::Index potentially leaks as the exception
- // behavior of SvxCheckListBox::InsertEntry is unspecified
+ m_updates.InsertEntry( pEntry->m_aName, LISTBOX_APPEND, static_cast< void * >( pEntry ), kind );
+
+ for ( sal_uInt16 i = m_updates.getItemCount(); i != 0 ; )
+ {
+ i -= 1;
+ UpdateDialog::Index const * p = static_cast< UpdateDialog::Index const * >( m_updates.GetEntryData( i ) );
+ if ( p == pEntry )
+ return i;
+ }
+ OSL_ASSERT(0);
+ return 0;
}
-void UpdateDialog::addAdditional(
- rtl::OUString const & name, USHORT position,
- std::auto_ptr< UpdateDialog::Index const > index, SvLBoxButtonKind kind)
+//------------------------------------------------------------------------------
+void UpdateDialog::addAdditional( UpdateDialog::Index * index, SvLBoxButtonKind kind )
{
m_all.Enable();
- if (m_all.IsChecked()) {
- insertItem(name, position, index, kind);
+ if (m_all.IsChecked())
+ {
+ insertItem( index, kind );
m_update.Enable();
m_updates.Enable();
m_description.Enable();
@@ -690,60 +751,80 @@ void UpdateDialog::addAdditional(
}
}
-void UpdateDialog::addEnabledUpdate(
- rtl::OUString const & name, dp_gui::UpdateData const & data)
+//------------------------------------------------------------------------------
+void UpdateDialog::addEnabledUpdate( rtl::OUString const & name,
+ dp_gui::UpdateData & data )
{
- std::vector< dp_gui::UpdateData >::size_type n = m_enabledUpdates.size();
- m_enabledUpdates.push_back(data);
- insertItem(
- name, sal::static_int_cast< USHORT >(n),
- UpdateDialog::Index::newEnabledUpdate(n),
- SvLBoxButtonKind_enabledCheckbox);
- // position overflow is rather harmless
- m_updates.CheckEntryPos(sal::static_int_cast< USHORT >(n));
- //TODO #i72487#: fragile computation; insertItem should instead return
- // pos
+ sal_uInt16 nIndex = sal::static_int_cast< sal_uInt16 >( m_enabledUpdates.size() );
+ UpdateDialog::Index *pEntry = new UpdateDialog::Index( ENABLED_UPDATE, m_nLastID, nIndex, name );
+
+ data.m_nID = m_nLastID;
+ m_nLastID += 1;
+
+ m_enabledUpdates.push_back( data );
+ m_ListboxEntries.push_back( pEntry );
+
+ if ( ! isIgnoredUpdate( pEntry ) )
+ {
+ sal_uInt16 nPos = insertItem( pEntry, SvLBoxButtonKind_enabledCheckbox );
+ m_updates.CheckEntryPos( nPos );
+ }
+ else
+ addAdditional( pEntry, SvLBoxButtonKind_disabledCheckbox );
+
m_update.Enable();
m_updates.Enable();
m_description.Enable();
m_descriptions.Enable();
}
-void UpdateDialog::addDisabledUpdate(UpdateDialog::DisabledUpdate const & data)
+//------------------------------------------------------------------------------
+void UpdateDialog::addDisabledUpdate( UpdateDialog::DisabledUpdate & data )
{
- std::vector< UpdateDialog::DisabledUpdate >::size_type n =
- m_disabledUpdates.size();
- m_disabledUpdates.push_back(data);
- addAdditional(
- data.name, sal::static_int_cast< USHORT >(m_enabledUpdates.size() + n),
- UpdateDialog::Index::newDisabledUpdate(n),
- SvLBoxButtonKind_disabledCheckbox);
- // position overflow is rather harmless
+ sal_uInt16 nIndex = sal::static_int_cast< sal_uInt16 >( m_disabledUpdates.size() );
+ UpdateDialog::Index *pEntry = new UpdateDialog::Index( DISABLED_UPDATE, m_nLastID, nIndex, data.name );
+
+ data.m_nID = m_nLastID;
+ m_nLastID += 1;
+
+ m_disabledUpdates.push_back( data );
+ m_ListboxEntries.push_back( pEntry );
+
+ isIgnoredUpdate( pEntry );
+ addAdditional( pEntry, SvLBoxButtonKind_disabledCheckbox );
}
-void UpdateDialog::addSpecificError(UpdateDialog::SpecificError const & data) {
- std::vector< UpdateDialog::SpecificError >::size_type n =
- m_specificErrors.size();
- m_specificErrors.push_back(data);
- addAdditional(
- data.name, LISTBOX_APPEND, UpdateDialog::Index::newSpecificError(n),
- SvLBoxButtonKind_staticImage);
+//------------------------------------------------------------------------------
+void UpdateDialog::addSpecificError( UpdateDialog::SpecificError & data )
+{
+ sal_uInt16 nIndex = sal::static_int_cast< sal_uInt16 >( m_specificErrors.size() );
+ UpdateDialog::Index *pEntry = new UpdateDialog::Index( DISABLED_UPDATE, m_nLastID, nIndex, data.name );
+
+ data.m_nID = m_nLastID;
+ m_nLastID += 1;
+
+ m_specificErrors.push_back( data );
+ m_ListboxEntries.push_back( pEntry );
+
+ addAdditional( pEntry, SvLBoxButtonKind_staticImage);
}
void UpdateDialog::checkingDone() {
m_checking.Hide();
- m_throbber->stop();
- css::uno::Reference< css::awt::XWindow >(
- m_throbber, css::uno::UNO_QUERY_THROW)->setVisible(false);
+ m_throbber.stop();
+ m_throbber.Hide();
if (m_updates.getItemCount() == 0)
{
clearDescription();
m_description.Enable();
m_descriptions.Enable();
- showDescription(
- ( m_disabledUpdates.empty() && m_generalErrors.empty() && m_specificErrors.empty() )
- ? m_none : m_noInstallable, false );
+
+ if ( m_disabledUpdates.empty() && m_specificErrors.empty() && m_ignoredUpdates.empty() )
+ showDescription( m_none, false );
+ else
+ showDescription( m_noInstallable, false );
}
+
enableOk();
}
@@ -755,7 +836,7 @@ void UpdateDialog::enableOk() {
// *********************************************************************************
void UpdateDialog::createNotifyJob( bool bPrepareOnly,
- css::uno::Sequence< css::uno::Sequence< rtl::OUString > > &rItemList )
+ uno::Sequence< uno::Sequence< rtl::OUString > > &rItemList )
{
if ( !dp_misc::office_is_running() )
return;
@@ -763,51 +844,51 @@ void UpdateDialog::createNotifyJob( bool bPrepareOnly,
// notify update check job
try
{
- css::uno::Reference< css::lang::XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() );
- css::uno::Reference< css::lang::XMultiServiceFactory > xConfigProvider(
+ uno::Reference< lang::XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() );
+ uno::Reference< lang::XMultiServiceFactory > xConfigProvider(
xFactory->createInstance( OUSTR( "com.sun.star.configuration.ConfigurationProvider" )),
- css::uno::UNO_QUERY_THROW);
+ uno::UNO_QUERY_THROW);
- css::beans::PropertyValue aProperty;
+ beans::PropertyValue aProperty;
aProperty.Name = OUSTR( "nodepath" );
- aProperty.Value = css::uno::makeAny( OUSTR("org.openoffice.Office.Addons/AddonUI/OfficeHelp/UpdateCheckJob") );
+ aProperty.Value = uno::makeAny( OUSTR("org.openoffice.Office.Addons/AddonUI/OfficeHelp/UpdateCheckJob") );
- css::uno::Sequence< css::uno::Any > aArgumentList( 1 );
- aArgumentList[0] = css::uno::makeAny( aProperty );
+ uno::Sequence< uno::Any > aArgumentList( 1 );
+ aArgumentList[0] = uno::makeAny( aProperty );
- css::uno::Reference< css::container::XNameAccess > xNameAccess(
+ uno::Reference< container::XNameAccess > xNameAccess(
xConfigProvider->createInstanceWithArguments(
OUSTR("com.sun.star.configuration.ConfigurationAccess"), aArgumentList ),
- css::uno::UNO_QUERY_THROW );
+ uno::UNO_QUERY_THROW );
- css::util::URL aURL;
+ util::URL aURL;
xNameAccess->getByName(OUSTR("URL")) >>= aURL.Complete;
- css::uno::Reference < css::util::XURLTransformer > xTransformer( xFactory->createInstance( OUSTR( "com.sun.star.util.URLTransformer" ) ),
- css::uno::UNO_QUERY_THROW );
+ uno::Reference < util::XURLTransformer > xTransformer( xFactory->createInstance( OUSTR( "com.sun.star.util.URLTransformer" ) ),
+ uno::UNO_QUERY_THROW );
xTransformer->parseStrict(aURL);
- css::uno::Reference < css::frame::XDesktop > xDesktop( xFactory->createInstance( OUSTR( "com.sun.star.frame.Desktop" ) ),
- css::uno::UNO_QUERY_THROW );
- css::uno::Reference< css::frame::XDispatchProvider > xDispatchProvider( xDesktop->getCurrentFrame(),
- css::uno::UNO_QUERY_THROW );
- css::uno::Reference< css::frame::XDispatch > xDispatch = xDispatchProvider->queryDispatch(aURL, rtl::OUString(), 0);
+ uno::Reference < frame::XDesktop > xDesktop( xFactory->createInstance( OUSTR( "com.sun.star.frame.Desktop" ) ),
+ uno::UNO_QUERY_THROW );
+ uno::Reference< frame::XDispatchProvider > xDispatchProvider( xDesktop->getCurrentFrame(),
+ uno::UNO_QUERY_THROW );
+ uno::Reference< frame::XDispatch > xDispatch = xDispatchProvider->queryDispatch(aURL, rtl::OUString(), 0);
if( xDispatch.is() )
{
- css::uno::Sequence< css::beans::PropertyValue > aPropList(2);
+ uno::Sequence< beans::PropertyValue > aPropList(2);
aProperty.Name = OUSTR( "updateList" );
- aProperty.Value = css::uno::makeAny( rItemList );
+ aProperty.Value = uno::makeAny( rItemList );
aPropList[0] = aProperty;
aProperty.Name = OUSTR( "prepareOnly" );
- aProperty.Value = css::uno::makeAny( bPrepareOnly );
+ aProperty.Value = uno::makeAny( bPrepareOnly );
aPropList[1] = aProperty;
xDispatch->dispatch(aURL, aPropList );
}
}
- catch( const css::uno::Exception& e )
+ catch( const uno::Exception& e )
{
dp_misc::TRACE( OUSTR("Caught exception: ")
+ e.Message + OUSTR("\n thread terminated.\n\n"));
@@ -820,26 +901,26 @@ void UpdateDialog::notifyMenubar( bool bPrepareOnly, bool bRecheckOnly )
if ( !dp_misc::office_is_running() )
return;
- css::uno::Sequence< css::uno::Sequence< rtl::OUString > > aItemList;
+ uno::Sequence< uno::Sequence< rtl::OUString > > aItemList;
if ( ! bRecheckOnly )
{
sal_Int32 nCount = 0;
for ( sal_Int16 i = 0; i < m_updates.getItemCount(); ++i )
{
- css::uno::Sequence< rtl::OUString > aItem(2);
+ uno::Sequence< rtl::OUString > aItem(2);
UpdateDialog::Index const * p = static_cast< UpdateDialog::Index const * >(m_updates.GetEntryData(i));
- if ( p->kind == ENABLED_UPDATE )
+ if ( p->m_eKind == ENABLED_UPDATE )
{
- dp_gui::UpdateData aUpdData = m_enabledUpdates[ p->index.enabledUpdate ];
+ dp_gui::UpdateData aUpdData = m_enabledUpdates[ p->m_nIndex ];
aItem[0] = dp_misc::getIdentifier( aUpdData.aInstalledPackage );
dp_misc::DescriptionInfoset aInfoset( m_context, aUpdData.aUpdateInfo );
aItem[1] = aInfoset.getVersion();
}
- else if ( p->kind == DISABLED_UPDATE )
+ else if ( p->m_eKind == DISABLED_UPDATE )
continue;
else
continue;
@@ -849,6 +930,8 @@ void UpdateDialog::notifyMenubar( bool bPrepareOnly, bool bRecheckOnly )
nCount += 1;
}
}
+
+ storeIgnoredUpdates();
createNotifyJob( bPrepareOnly, aItemList );
}
@@ -922,17 +1005,17 @@ void UpdateDialog::clearDescription()
m_descriptions.SetPosSizePixel( m_aFirstLinePos, m_aFirstLineSize );
}
-bool UpdateDialog::showDescription(css::uno::Reference< css::xml::dom::XNode > const & aUpdateInfo)
+bool UpdateDialog::showDescription(uno::Reference< xml::dom::XNode > const & aUpdateInfo)
{
dp_misc::DescriptionInfoset infoset(m_context, aUpdateInfo);
return showDescription(infoset.getLocalizedPublisherNameAndURL(),
infoset.getLocalizedReleaseNotesURL());
}
-bool UpdateDialog::showDescription(css::uno::Reference< css::deployment::XPackage > const & aExtension)
+bool UpdateDialog::showDescription(uno::Reference< deployment::XPackage > const & aExtension)
{
OSL_ASSERT(aExtension.is());
- css::beans::StringPair pubInfo = aExtension->getPublisherInfo();
+ beans::StringPair pubInfo = aExtension->getPublisherInfo();
return showDescription(std::make_pair(pubInfo.First, pubInfo.Second),
OUSTR(""));
}
@@ -995,6 +1078,163 @@ bool UpdateDialog::showDescription( const String& rDescription, bool bWithPublis
return true;
}
+//------------------------------------------------------------------------------
+void UpdateDialog::getIgnoredUpdates()
+{
+ uno::Reference< lang::XMultiServiceFactory > xConfig( m_context->getServiceManager()->createInstanceWithContext(
+ OUSTR("com.sun.star.configuration.ConfigurationProvider"), m_context ), uno::UNO_QUERY_THROW);
+ beans::NamedValue aValue( OUSTR("nodepath"), uno::Any( IGNORED_UPDATES ) );
+ uno::Sequence< uno::Any > args(1);
+ args[0] <<= aValue;
+
+ uno::Reference< container::XNameAccess > xNameAccess( xConfig->createInstanceWithArguments( OUSTR("com.sun.star.configuration.ConfigurationAccess"), args), uno::UNO_QUERY_THROW );
+ uno::Sequence< rtl::OUString > aElementNames = xNameAccess->getElementNames();
+
+ for ( sal_Int32 i = 0; i < aElementNames.getLength(); i++ )
+ {
+ ::rtl::OUString aIdentifier = aElementNames[i];
+ ::rtl::OUString aVersion;
+
+ uno::Any aPropValue( uno::Reference< beans::XPropertySet >( xNameAccess->getByName( aIdentifier ), uno::UNO_QUERY_THROW )->getPropertyValue( PROPERTY_VERSION ) );
+ aPropValue >>= aVersion;
+ IgnoredUpdate *pData = new IgnoredUpdate( aIdentifier, aVersion );
+ m_ignoredUpdates.push_back( pData );
+ }
+}
+
+//------------------------------------------------------------------------------
+void UpdateDialog::storeIgnoredUpdates()
+{
+ if ( m_bModified && ( m_ignoredUpdates.size() != 0 ) )
+ {
+ uno::Reference< lang::XMultiServiceFactory > xConfig( m_context->getServiceManager()->createInstanceWithContext(
+ OUSTR("com.sun.star.configuration.ConfigurationProvider"), m_context ), uno::UNO_QUERY_THROW );
+ beans::NamedValue aValue( OUSTR("nodepath"), uno::Any( IGNORED_UPDATES ) );
+ uno::Sequence< uno::Any > args(1);
+ args[0] <<= aValue;
+
+ uno::Reference< container::XNameContainer > xNameContainer( xConfig->createInstanceWithArguments(
+ OUSTR("com.sun.star.configuration.ConfigurationUpdateAccess"), args ), uno::UNO_QUERY_THROW );
+
+ for ( std::vector< UpdateDialog::IgnoredUpdate* >::iterator i( m_ignoredUpdates.begin() ); i != m_ignoredUpdates.end(); ++i )
+ {
+ if ( xNameContainer->hasByName( (*i)->sExtensionID ) )
+ {
+ if ( (*i)->bRemoved )
+ xNameContainer->removeByName( (*i)->sExtensionID );
+ else
+ uno::Reference< beans::XPropertySet >( xNameContainer->getByName( (*i)->sExtensionID ), uno::UNO_QUERY_THROW )->setPropertyValue( PROPERTY_VERSION, uno::Any( (*i)->sVersion ) );
+ }
+ else if ( ! (*i)->bRemoved )
+ {
+ uno::Reference< beans::XPropertySet > elem( uno::Reference< lang::XSingleServiceFactory >( xNameContainer, uno::UNO_QUERY_THROW )->createInstance(), uno::UNO_QUERY_THROW );
+ elem->setPropertyValue( PROPERTY_VERSION, uno::Any( (*i)->sVersion ) );
+ xNameContainer->insertByName( (*i)->sExtensionID, uno::Any( elem ) );
+ }
+ }
+
+ uno::Reference< util::XChangesBatch > xChangesBatch( xNameContainer, uno::UNO_QUERY );
+ if ( xChangesBatch.is() && xChangesBatch->hasPendingChanges() )
+ xChangesBatch->commitChanges();
+ }
+
+ m_bModified = false;
+}
+
+//------------------------------------------------------------------------------
+bool UpdateDialog::isIgnoredUpdate( UpdateDialog::Index * index )
+{
+ bool bIsIgnored = false;
+
+ if ( m_ignoredUpdates.size() != 0 )
+ {
+ rtl::OUString aExtensionID;
+ rtl::OUString aVersion;
+
+ if ( index->m_eKind == ENABLED_UPDATE )
+ {
+ dp_gui::UpdateData aUpdData = m_enabledUpdates[ index->m_nIndex ];
+ aExtensionID = dp_misc::getIdentifier( aUpdData.aInstalledPackage );
+ aVersion = aUpdData.updateVersion;
+ }
+ else if ( index->m_eKind == DISABLED_UPDATE )
+ {
+ DisabledUpdate &rData = m_disabledUpdates[ index->m_nIndex ];
+ dp_misc::DescriptionInfoset aInfoset( m_context, rData.aUpdateInfo );
+ ::boost::optional< ::rtl::OUString > aID( aInfoset.getIdentifier() );
+ if ( aID )
+ aExtensionID = *aID;
+ aVersion = aInfoset.getVersion();
+ }
+
+ for ( std::vector< UpdateDialog::IgnoredUpdate* >::iterator i( m_ignoredUpdates.begin() ); i != m_ignoredUpdates.end(); ++i )
+ {
+ if ( (*i)->sExtensionID == aExtensionID )
+ {
+ if ( ( (*i)->sVersion.getLength() == 0 ) || ( (*i)->sVersion == aVersion ) )
+ {
+ bIsIgnored = true;
+ index->m_bIgnored = true;
+ }
+ else // when we find another update of an ignored version, we will remove the old one to keep the ignored list small
+ (*i)->bRemoved = true;
+ break;
+ }
+ }
+ }
+
+ return bIsIgnored;
+}
+
+//------------------------------------------------------------------------------
+void UpdateDialog::setIgnoredUpdate( UpdateDialog::Index *pIndex, bool bIgnore, bool bIgnoreAll )
+{
+ rtl::OUString aExtensionID;
+ rtl::OUString aVersion;
+
+ m_bModified = true;
+
+ if ( pIndex->m_eKind == ENABLED_UPDATE )
+ {
+ dp_gui::UpdateData aUpdData = m_enabledUpdates[ pIndex->m_nIndex ];
+ aExtensionID = dp_misc::getIdentifier( aUpdData.aInstalledPackage );
+ if ( !bIgnoreAll )
+ aVersion = aUpdData.updateVersion;
+ }
+ else if ( pIndex->m_eKind == DISABLED_UPDATE )
+ {
+ DisabledUpdate &rData = m_disabledUpdates[ pIndex->m_nIndex ];
+ dp_misc::DescriptionInfoset aInfoset( m_context, rData.aUpdateInfo );
+ ::boost::optional< ::rtl::OUString > aID( aInfoset.getIdentifier() );
+ if ( aID )
+ aExtensionID = *aID;
+ if ( !bIgnoreAll )
+ aVersion = aInfoset.getVersion();
+ }
+
+ if ( aExtensionID.getLength() )
+ {
+ bool bFound = false;
+ for ( std::vector< UpdateDialog::IgnoredUpdate* >::iterator i( m_ignoredUpdates.begin() ); i != m_ignoredUpdates.end(); ++i )
+ {
+ if ( (*i)->sExtensionID == aExtensionID )
+ {
+ (*i)->sVersion = aVersion;
+ (*i)->bRemoved = !bIgnore;
+ bFound = true;
+ break;
+ }
+ }
+ if ( bIgnore && !bFound )
+ {
+ IgnoredUpdate *pData = new IgnoredUpdate( aExtensionID, aVersion );
+ m_ignoredUpdates.push_back( pData );
+ }
+ }
+}
+
+//------------------------------------------------------------------------------
+
IMPL_LINK(UpdateDialog, selectionHandler, void *, EMPTYARG)
{
rtl::OUStringBuffer b;
@@ -1003,38 +1243,32 @@ IMPL_LINK(UpdateDialog, selectionHandler, void *, EMPTYARG)
m_updates.GetEntryData(m_updates.GetSelectEntryPos()));
clearDescription();
- if (p != NULL)
+ if ( p != NULL )
{
- //When the index is greater or equal than the amount of enabled updates then the "Show all"
- //button is probably checked. Then we show first all enabled and then the disabled
- //updates.
- USHORT pos = m_updates.GetSelectEntryPos();
- const std::vector< dp_gui::UpdateData >::size_type sizeEnabled =
- m_enabledUpdates.size();
- const std::vector< UpdateDialog::DisabledUpdate >::size_type sizeDisabled =
- m_disabledUpdates.size();
- if (pos < sizeEnabled)
- {
- if (m_enabledUpdates[pos].aUpdateSource.is())
- bInserted = showDescription(m_enabledUpdates[pos].aUpdateSource);
- else
- bInserted = showDescription(m_enabledUpdates[pos].aUpdateInfo);
- }
- else if (pos >= sizeEnabled
- && pos < (sizeEnabled + sizeDisabled))
- bInserted = showDescription(m_disabledUpdates[pos - sizeEnabled].aUpdateInfo);
+ sal_uInt16 pos = p->m_nIndex;
- switch (p->kind)
+ switch (p->m_eKind)
{
case ENABLED_UPDATE:
{
- b.append(m_noDescription);
+ if ( m_enabledUpdates[ pos ].aUpdateSource.is() )
+ bInserted = showDescription( m_enabledUpdates[ pos ].aUpdateSource );
+ else
+ bInserted = showDescription( m_enabledUpdates[ pos ].aUpdateInfo );
+
+ if ( p->m_bIgnored )
+ b.append( m_ignoredUpdate );
+
break;
}
case DISABLED_UPDATE:
{
- UpdateDialog::DisabledUpdate & data = m_disabledUpdates[
- p->index.disabledUpdate];
+ bInserted = showDescription( m_disabledUpdates[pos].aUpdateInfo );
+
+ if ( p->m_bIgnored )
+ b.append( m_ignoredUpdate );
+
+ UpdateDialog::DisabledUpdate & data = m_disabledUpdates[ pos ];
if (data.unsatisfiedDependencies.getLength() != 0)
{
// create error string for version mismatch
@@ -1078,23 +1312,12 @@ IMPL_LINK(UpdateDialog, selectionHandler, void *, EMPTYARG)
}
break;
}
- case GENERAL_ERROR:
- {
- rtl::OUString & msg = m_generalErrors[p->index.generalError];
- b.append(m_failure);
- b.append(LF);
- b.append(msg.getLength() == 0 ? m_unknownError : msg);
- break;
- }
case SPECIFIC_ERROR:
{
- UpdateDialog::SpecificError & data = m_specificErrors[
- p->index.specificError];
+ UpdateDialog::SpecificError & data = m_specificErrors[ pos ];
b.append(m_failure);
b.append(LF);
- b.append(
- data.message.getLength() == 0
- ? m_unknownError : data.message);
+ b.append( data.message.getLength() == 0 ? m_unknownError : data.message );
break;
}
default:
@@ -1103,56 +1326,37 @@ IMPL_LINK(UpdateDialog, selectionHandler, void *, EMPTYARG)
}
}
+ if ( b.getLength() == 0 )
+ b.append( m_noDescription );
+
showDescription( b.makeStringAndClear(), bInserted );
return 0;
}
-IMPL_LINK(UpdateDialog, allHandler, void *, EMPTYARG) {
- if (m_all.IsChecked()) {
+IMPL_LINK(UpdateDialog, allHandler, void *, EMPTYARG)
+{
+ if (m_all.IsChecked())
+ {
m_update.Enable();
m_updates.Enable();
m_description.Enable();
m_descriptions.Enable();
- std::vector< UpdateDialog::DisabledUpdate >::size_type n1 = 0;
- for (std::vector< UpdateDialog::DisabledUpdate >::iterator i(
- m_disabledUpdates.begin());
- i != m_disabledUpdates.end(); ++i)
- {
- insertItem(
- i->name, LISTBOX_APPEND,
- UpdateDialog::Index::newDisabledUpdate(n1++),
- SvLBoxButtonKind_disabledCheckbox);
- }
- std::vector< rtl::OUString >::size_type n2 = 0;
- for (std::vector< rtl::OUString >::iterator i(m_generalErrors.begin());
- i != m_generalErrors.end(); ++i)
+
+ for (std::vector< UpdateDialog::Index* >::iterator i( m_ListboxEntries.begin() );
+ i != m_ListboxEntries.end(); ++i )
{
- insertItem(
- m_error, LISTBOX_APPEND,
- UpdateDialog::Index::newGeneralError(n2++),
- SvLBoxButtonKind_staticImage);
+ if ( (*i)->m_bIgnored || ( (*i)->m_eKind != ENABLED_UPDATE ) )
+ insertItem( (*i), SvLBoxButtonKind_disabledCheckbox );
}
- std::vector< UpdateDialog::SpecificError >::size_type n3 = 0;
- for (std::vector< UpdateDialog::SpecificError >::iterator i(
- m_specificErrors.begin());
- i != m_specificErrors.end(); ++i)
+ }
+ else
+ {
+ for ( sal_uInt16 i = 0; i < m_updates.getItemCount(); )
{
- insertItem(
- i->name, LISTBOX_APPEND,
- UpdateDialog::Index::newSpecificError(n3++),
- SvLBoxButtonKind_staticImage);
- }
- } else {
- for (USHORT i = 0; i < m_updates.getItemCount();) {
- UpdateDialog::Index const * p =
- static_cast< UpdateDialog::Index const * >(
- m_updates.GetEntryData(i));
- if (p->kind != ENABLED_UPDATE) {
+ UpdateDialog::Index const * p = static_cast< UpdateDialog::Index const * >( m_updates.GetEntryData(i) );
+ if ( p->m_bIgnored || ( p->m_eKind != ENABLED_UPDATE ) )
+ {
m_updates.RemoveEntry(i);
- //TODO #i72487#: UpdateDialog::Index potentially leaks as
- // SvxCheckListBox::RemoveEntry's exception behavior is
- // unspecified
- delete p;
} else {
++i;
}
@@ -1185,12 +1389,12 @@ IMPL_LINK(UpdateDialog, okHandler, void *, EMPTYARG)
}
- for (USHORT i = 0; i < m_updates.getItemCount(); ++i) {
+ for (sal_uInt16 i = 0; i < m_updates.getItemCount(); ++i) {
UpdateDialog::Index const * p =
static_cast< UpdateDialog::Index const * >(
m_updates.GetEntryData(i));
- if (p->kind == ENABLED_UPDATE && m_updates.IsChecked(i)) {
- m_updateData.push_back(m_enabledUpdates[p->index.enabledUpdate]);
+ if (p->m_eKind == ENABLED_UPDATE && m_updates.IsChecked(i)) {
+ m_updateData.push_back( m_enabledUpdates[ p->m_nIndex ] );
}
}
@@ -1198,7 +1402,7 @@ IMPL_LINK(UpdateDialog, okHandler, void *, EMPTYARG)
return 0;
}
-IMPL_LINK(UpdateDialog, cancelHandler, void *, EMPTYARG) {
+IMPL_LINK(UpdateDialog, closeHandler, void *, EMPTYARG) {
m_thread->stop();
EndDialog(RET_CANCEL);
return 0;
@@ -1214,15 +1418,15 @@ IMPL_LINK( UpdateDialog, hyperlink_clicked, svt::FixedHyperlink*, pHyperlink )
try
{
- css::uno::Reference< css::system::XSystemShellExecute > xSystemShellExecute(
+ uno::Reference< com::sun::star::system::XSystemShellExecute > xSystemShellExecute(
m_context->getServiceManager()->createInstanceWithContext(
OUSTR( "com.sun.star.system.SystemShellExecute" ),
- m_context), css::uno::UNO_QUERY_THROW);
- //throws css::lang::IllegalArgumentException, css::system::SystemShellExecuteException
+ m_context), uno::UNO_QUERY_THROW);
+ //throws lang::IllegalArgumentException, system::SystemShellExecuteException
xSystemShellExecute->execute(
- sURL, ::rtl::OUString(), css::system::SystemShellExecuteFlags::DEFAULTS);
+ sURL, ::rtl::OUString(), com::sun::star::system::SystemShellExecuteFlags::DEFAULTS);
}
- catch (css::uno::Exception& )
+ catch (uno::Exception& )
{
}
diff --git a/desktop/source/deployment/gui/dp_gui_updatedialog.hxx b/desktop/source/deployment/gui/dp_gui_updatedialog.hxx
index 7fde4f7724..d8fc455600 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_updatedialog.hxx
+++ b/desktop/source/deployment/gui/dp_gui_updatedialog.hxx
@@ -45,6 +45,7 @@
#include "vcl/dialog.hxx"
#include "vcl/fixed.hxx"
#include <svtools/fixedhyper.hxx>
+#include <vcl/throbber.hxx>
#include "descedit.hxx"
#include "dp_gui_updatedata.hxx"
@@ -58,7 +59,6 @@ class ResId;
class Window;
namespace com { namespace sun { namespace star {
- namespace awt { class XThrobber; }
namespace deployment { class XExtensionManager;
class XPackage; }
namespace uno { class XComponentContext; }
@@ -97,7 +97,7 @@ public:
~UpdateDialog();
- virtual BOOL Close();
+ virtual sal_Bool Close();
virtual short Execute();
@@ -111,8 +111,7 @@ private:
struct DisabledUpdate;
struct SpecificError;
- union IndexUnion;
- friend union IndexUnion;
+ struct IgnoredUpdate;
struct Index;
friend struct Index;
class Thread;
@@ -126,44 +125,43 @@ private:
virtual ~CheckListBox();
- USHORT getItemCount() const;
+ sal_uInt16 getItemCount() const;
private:
CheckListBox(UpdateDialog::CheckListBox &); // not defined
void operator =(UpdateDialog::CheckListBox &); // not defined
virtual void MouseButtonDown(MouseEvent const & event);
-
virtual void MouseButtonUp(MouseEvent const & event);
-
virtual void KeyInput(KeyEvent const & event);
+ void handlePopupMenu( const Point &rPos );
+
+ rtl::OUString m_ignoreUpdate;
+ rtl::OUString m_ignoreAllUpdates;
+ rtl::OUString m_enableUpdate;
UpdateDialog & m_dialog;
};
friend class CheckListBox;
- void insertItem(
- rtl::OUString const & name, USHORT position,
- std::auto_ptr< UpdateDialog::Index const > index,
- SvLBoxButtonKind kind);
+ sal_uInt16 insertItem( UpdateDialog::Index *pIndex, SvLBoxButtonKind kind );
+ void addAdditional( UpdateDialog::Index *pIndex, SvLBoxButtonKind kind );
+ bool isIgnoredUpdate( UpdateDialog::Index *pIndex );
+ void setIgnoredUpdate( UpdateDialog::Index *pIndex, bool bIgnore, bool bIgnoreAll );
- void addAdditional(
- rtl::OUString const & name, USHORT position,
- std::auto_ptr< UpdateDialog::Index const > index,
- SvLBoxButtonKind kind);
-
- void addEnabledUpdate(
- rtl::OUString const & name, dp_gui::UpdateData const & data);
-
- void addDisabledUpdate(UpdateDialog::DisabledUpdate const & data);
- void addSpecificError(UpdateDialog::SpecificError const & data);
+ void addEnabledUpdate( rtl::OUString const & name, dp_gui::UpdateData & data );
+ void addDisabledUpdate( UpdateDialog::DisabledUpdate & data );
+ void addSpecificError( UpdateDialog::SpecificError & data );
void checkingDone();
void enableOk();
+ void getIgnoredUpdates();
+ void storeIgnoredUpdates();
+
void initDescription();
void clearDescription();
bool showDescription(::com::sun::star::uno::Reference<
@@ -178,13 +176,13 @@ private:
DECL_LINK(selectionHandler, void *);
DECL_LINK(allHandler, void *);
DECL_LINK(okHandler, void *);
- DECL_LINK(cancelHandler, void *);
+ DECL_LINK(closeHandler, void *);
DECL_LINK(hyperlink_clicked, svt::FixedHyperlink *);
com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext >
m_context;
FixedText m_checking;
- com::sun::star::uno::Reference< com::sun::star::awt::XThrobber > m_throbber;
+ Throbber m_throbber;
FixedText m_update;
UpdateDialog::CheckListBox m_updates;
CheckBox m_all;
@@ -197,7 +195,7 @@ private:
FixedLine m_line;
HelpButton m_help;
PushButton m_ok;
- CancelButton m_cancel;
+ PushButton m_close;
rtl::OUString m_error;
rtl::OUString m_none;
rtl::OUString m_noInstallable;
@@ -209,18 +207,22 @@ private:
rtl::OUString m_noDependencyCurVer;
rtl::OUString m_browserbased;
rtl::OUString m_version;
+ rtl::OUString m_ignoredUpdate;
std::vector< dp_gui::UpdateData > m_enabledUpdates;
std::vector< UpdateDialog::DisabledUpdate > m_disabledUpdates;
- std::vector< rtl::OUString > m_generalErrors;
std::vector< UpdateDialog::SpecificError > m_specificErrors;
+ std::vector< UpdateDialog::IgnoredUpdate* > m_ignoredUpdates;
+ std::vector< Index* > m_ListboxEntries;
std::vector< dp_gui::UpdateData > & m_updateData;
rtl::Reference< UpdateDialog::Thread > m_thread;
::com::sun::star::uno::Reference< ::com::sun::star::deployment::XExtensionManager > m_xExtensionManager;
- Point m_aFirstLinePos;
- Size m_aFirstLineSize;
- long m_nFirstLineDelta;
- long m_nOneLineMissing;
+ Point m_aFirstLinePos;
+ Size m_aFirstLineSize;
+ long m_nFirstLineDelta;
+ long m_nOneLineMissing;
+ sal_uInt16 m_nLastID;
+ bool m_bModified;
};
}
diff --git a/desktop/source/deployment/gui/dp_gui_updatedialog.src b/desktop/source/deployment/gui/dp_gui_updatedialog.src
index a7fb03a9b7..c8f7a26c1e 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_updatedialog.src
+++ b/desktop/source/deployment/gui/dp_gui_updatedialog.src
@@ -60,11 +60,11 @@ ModalDialog RID_DLG_UPDATE {
Right = TRUE;
NoLabel = TRUE;
};
- Control RID_DLG_UPDATE_THROBBER {
+ FixedImage RID_DLG_UPDATE_THROBBER {
Pos = MAP_APPFONT(
RSC_SP_DLG_INNERBORDER_LEFT + LOCAL_WIDTH - RSC_CD_FIXEDTEXT_HEIGHT,
RSC_SP_DLG_INNERBORDER_TOP);
- Size = MAP_APPFONT(RSC_CD_FIXEDTEXT_HEIGHT, RSC_CD_FIXEDTEXT_HEIGHT);
+ Size = MAP_APPFONT(RSC_CD_FIXEDTEXT_HEIGHT, RSC_CD_FIXEDTEXT_HEIGHT + 1);
};
FixedText RID_DLG_UPDATE_UPDATE {
Disable = TRUE;
@@ -86,6 +86,7 @@ ModalDialog RID_DLG_UPDATE {
TabStop = TRUE;
};
CheckBox RID_DLG_UPDATE_ALL {
+ HelpID = "desktop:CheckBox:RID_DLG_UPDATE:RID_DLG_UPDATE_ALL";
Disable = TRUE;
Pos = MAP_APPFONT(
RSC_SP_DLG_INNERBORDER_LEFT,
@@ -150,6 +151,7 @@ ModalDialog RID_DLG_UPDATE {
Text[en-US] = "Release Notes";
};
MultiLineEdit RID_DLG_UPDATE_DESCRIPTIONS {
+ HelpID = "desktop:MultiLineEdit:RID_DLG_UPDATE:RID_DLG_UPDATE_DESCRIPTIONS";
Disable = TRUE;
Border = TRUE;
Pos = MAP_APPFONT(
@@ -183,6 +185,7 @@ ModalDialog RID_DLG_UPDATE {
Size = MAP_APPFONT(RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT);
};
PushButton RID_DLG_UPDATE_OK {
+ HelpID = "desktop:PushButton:RID_DLG_UPDATE:RID_DLG_UPDATE_OK";
Disable = TRUE;
Pos = MAP_APPFONT(
(RSC_SP_DLG_INNERBORDER_LEFT + LOCAL_WIDTH - RSC_CD_PUSHBUTTON_WIDTH -
@@ -196,7 +199,7 @@ ModalDialog RID_DLG_UPDATE {
Text[en-US] = "~Install";
DefButton = TRUE;
};
- CancelButton RID_DLG_UPDATE_CANCEL {
+ PushButton RID_DLG_UPDATE_CLOSE {
Pos = MAP_APPFONT(
RSC_SP_DLG_INNERBORDER_LEFT + LOCAL_WIDTH - RSC_CD_PUSHBUTTON_WIDTH,
(RSC_SP_DLG_INNERBORDER_TOP + RSC_CD_FIXEDTEXT_HEIGHT +
@@ -205,6 +208,7 @@ ModalDialog RID_DLG_UPDATE {
RSC_SP_CTRL_DESC_Y + LOCAL_LIST_HEIGHT2 + RSC_SP_FLGR_SPACE_Y +
RSC_CD_FIXEDLINE_HEIGHT + RSC_SP_FLGR_SPACE_Y));
Size = MAP_APPFONT(RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT);
+ Text[en-US] = "Close";
};
Image RID_DLG_UPDATE_NORMALALERT {
@@ -219,7 +223,7 @@ ModalDialog RID_DLG_UPDATE {
Text[en-US] = "No new updates are available.";
};
String RID_DLG_UPDATE_NOINSTALLABLE {
- Text[en-US] = "No installable updates are available. To see all updates, mark the check box 'Show all updates'.";
+ Text[en-US] = "No installable updates are available. To see ignored or disabled updates, mark the check box 'Show all updates'.";
};
String RID_DLG_UPDATE_FAILURE {
Text[en-US] = "An error occurred:";
@@ -228,7 +232,7 @@ ModalDialog RID_DLG_UPDATE {
Text[en-US] = "Unknown error.";
};
String RID_DLG_UPDATE_NODESCRIPTION {
- Text[en-US] = "No descriptions available for this extension.";
+ Text[en-US] = "No more details are available for this update.";
};
String RID_DLG_UPDATE_NOINSTALL {
Text[en-US] = "The extension cannot be updated because:";
@@ -242,10 +246,21 @@ ModalDialog RID_DLG_UPDATE {
String RID_DLG_UPDATE_BROWSERBASED {
Text[en-US] = "browser based update";
};
-
String RID_DLG_UPDATE_VERSION {
Text[en-US] = "Version";
};
+ String RID_DLG_UPDATE_IGNORE {
+ Text[en-US] = "Ignore this Update";
+ };
+ String RID_DLG_UPDATE_IGNORE_ALL {
+ Text[en-US] = "Ignore all Updates";
+ };
+ String RID_DLG_UPDATE_ENABLE {
+ Text[en-US] = "Enable Updates";
+ };
+ String RID_DLG_UPDATE_IGNORED_UPDATE {
+ Text[en-US] = "This update will be ignored.\n";
+ };
};
WarningBox RID_WARNINGBOX_UPDATE_SHARED_EXTENSION
diff --git a/desktop/source/deployment/gui/dp_gui_updateinstalldialog.cxx b/desktop/source/deployment/gui/dp_gui_updateinstalldialog.cxx
index 8f26b574ac..4130470877 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_updateinstalldialog.cxx
+++ b/desktop/source/deployment/gui/dp_gui_updateinstalldialog.cxx
@@ -262,14 +262,14 @@ UpdateInstallDialog::UpdateInstallDialog(
m_xExtensionManager = css::deployment::ExtensionManager::get( xCtx );
m_cancel.SetClickHdl(LINK(this, UpdateInstallDialog, cancelHandler));
- m_mle_info.EnableCursor(FALSE);
+ m_mle_info.EnableCursor(sal_False);
if ( ! dp_misc::office_is_running())
m_help.Disable();
}
UpdateInstallDialog::~UpdateInstallDialog() {}
-BOOL UpdateInstallDialog::Close()
+sal_Bool UpdateInstallDialog::Close()
{
m_thread->stop();
return ModalDialog::Close();
diff --git a/desktop/source/deployment/gui/dp_gui_updateinstalldialog.hxx b/desktop/source/deployment/gui/dp_gui_updateinstalldialog.hxx
index a23488bfbf..390e55f9d0 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_updateinstalldialog.hxx
+++ b/desktop/source/deployment/gui/dp_gui_updateinstalldialog.hxx
@@ -80,7 +80,7 @@ public:
~UpdateInstallDialog();
- BOOL Close();
+ sal_Bool Close();
virtual short Execute();
private:
diff --git a/desktop/source/deployment/gui/dp_gui_updateinstalldialog.src b/desktop/source/deployment/gui/dp_gui_updateinstalldialog.src
index 7c43817754..a3ded83be1 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_updateinstalldialog.src
+++ b/desktop/source/deployment/gui/dp_gui_updateinstalldialog.src
@@ -90,6 +90,7 @@ ModalDialog RID_DLG_UPDATEINSTALL {
};
MultiLineEdit RID_DLG_UPDATE_INSTALL_INFO {
+ HelpID = "desktop:MultiLineEdit:RID_DLG_UPDATEINSTALL:RID_DLG_UPDATE_INSTALL_INFO";
Pos = MAP_APPFONT(
RSC_SP_DLG_INNERBORDER_LEFT,
RSC_SP_DLG_INNERBORDER_TOP + RSC_CD_FIXEDTEXT_HEIGHT +
diff --git a/desktop/source/deployment/gui/dp_gui_versionboxes.src b/desktop/source/deployment/gui/dp_gui_versionboxes.src
index cc6edc0ad7..cc6edc0ad7 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_versionboxes.src
+++ b/desktop/source/deployment/gui/dp_gui_versionboxes.src
diff --git a/desktop/source/deployment/gui/license_dialog.cxx b/desktop/source/deployment/gui/license_dialog.cxx
index c835c11abb..907fb66890 100644..100755
--- a/desktop/source/deployment/gui/license_dialog.cxx
+++ b/desktop/source/deployment/gui/license_dialog.cxx
@@ -63,7 +63,7 @@ namespace dp_gui {
class LicenseView : public MultiLineEdit, public SfxListener
{
- BOOL mbEndReached;
+ sal_Bool mbEndReached;
Link maEndReachedHdl;
Link maScrolledHdl;
@@ -73,9 +73,9 @@ public:
void ScrollDown( ScrollType eScroll );
- BOOL IsEndReached() const;
- BOOL EndReached() const { return mbEndReached; }
- void SetEndReached( BOOL bEnd ) { mbEndReached = bEnd; }
+ sal_Bool IsEndReached() const;
+ sal_Bool EndReached() const { return mbEndReached; }
+ void SetEndReached( sal_Bool bEnd ) { mbEndReached = bEnd; }
void SetEndReachedHdl( const Link& rHdl ) { maEndReachedHdl = rHdl; }
const Link& GetAutocompleteHdl() const { return maEndReachedHdl; }
@@ -146,20 +146,20 @@ void LicenseView::ScrollDown( ScrollType eScroll )
pScroll->DoScrollAction( eScroll );
}
-BOOL LicenseView::IsEndReached() const
+sal_Bool LicenseView::IsEndReached() const
{
- BOOL bEndReached;
+ sal_Bool bEndReached;
ExtTextView* pView = GetTextView();
ExtTextEngine* pEdit = GetTextEngine();
- ULONG nHeight = pEdit->GetTextHeight();
+ sal_uLong nHeight = pEdit->GetTextHeight();
Size aOutSize = pView->GetWindow()->GetOutputSizePixel();
Point aBottom( 0, aOutSize.Height() );
- if ( (ULONG) pView->GetDocPos( aBottom ).Y() >= nHeight - 1 )
- bEndReached = TRUE;
+ if ( (sal_uLong) pView->GetDocPos( aBottom ).Y() >= nHeight - 1 )
+ bEndReached = sal_True;
else
- bEndReached = FALSE;
+ bEndReached = sal_False;
return bEndReached;
}
@@ -168,8 +168,8 @@ void LicenseView::Notify( SfxBroadcaster&, const SfxHint& rHint )
{
if ( rHint.IsA( TYPE(TextHint) ) )
{
- BOOL bLastVal = EndReached();
- ULONG nId = ((const TextHint&)rHint).GetId();
+ sal_Bool bLastVal = EndReached();
+ sal_uLong nId = ((const TextHint&)rHint).GetId();
if ( nId == TEXT_HINT_PARAINSERTED )
{
diff --git a/desktop/source/deployment/gui/license_dialog.hxx b/desktop/source/deployment/gui/license_dialog.hxx
index ec63ffbfbb..ec63ffbfbb 100644..100755
--- a/desktop/source/deployment/gui/license_dialog.hxx
+++ b/desktop/source/deployment/gui/license_dialog.hxx
diff --git a/desktop/source/deployment/gui/makefile.mk b/desktop/source/deployment/gui/makefile.mk
index 509761c5b1..73ca837925 100644..100755
--- a/desktop/source/deployment/gui/makefile.mk
+++ b/desktop/source/deployment/gui/makefile.mk
@@ -103,3 +103,11 @@ RESLIB1IMAGES= $(PRJ)$/res
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/deploymentgui.component
+
+$(MISC)/deploymentgui.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt deploymentgui.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt deploymentgui.component
diff --git a/desktop/source/deployment/inc/db.hxx b/desktop/source/deployment/inc/db.hxx
index 3fa3d22679..3fa3d22679 100644..100755
--- a/desktop/source/deployment/inc/db.hxx
+++ b/desktop/source/deployment/inc/db.hxx
diff --git a/desktop/source/deployment/inc/dp_dependencies.hxx b/desktop/source/deployment/inc/dp_dependencies.hxx
index f31d5f3084..f31d5f3084 100644..100755
--- a/desktop/source/deployment/inc/dp_dependencies.hxx
+++ b/desktop/source/deployment/inc/dp_dependencies.hxx
diff --git a/desktop/source/deployment/inc/dp_descriptioninfoset.hxx b/desktop/source/deployment/inc/dp_descriptioninfoset.hxx
index 78b824c87a..78b824c87a 100644..100755
--- a/desktop/source/deployment/inc/dp_descriptioninfoset.hxx
+++ b/desktop/source/deployment/inc/dp_descriptioninfoset.hxx
diff --git a/desktop/source/deployment/inc/dp_identifier.hxx b/desktop/source/deployment/inc/dp_identifier.hxx
index f7b6b1f120..f7b6b1f120 100644..100755
--- a/desktop/source/deployment/inc/dp_identifier.hxx
+++ b/desktop/source/deployment/inc/dp_identifier.hxx
diff --git a/desktop/source/deployment/inc/dp_interact.h b/desktop/source/deployment/inc/dp_interact.h
index 3aca761c2d..3aca761c2d 100644..100755
--- a/desktop/source/deployment/inc/dp_interact.h
+++ b/desktop/source/deployment/inc/dp_interact.h
diff --git a/desktop/source/deployment/inc/dp_misc.h b/desktop/source/deployment/inc/dp_misc.h
index bbf6d5274b..bbf6d5274b 100644..100755
--- a/desktop/source/deployment/inc/dp_misc.h
+++ b/desktop/source/deployment/inc/dp_misc.h
diff --git a/desktop/source/deployment/inc/dp_misc.mk b/desktop/source/deployment/inc/dp_misc.mk
index 829a6bb96b..829a6bb96b 100644..100755
--- a/desktop/source/deployment/inc/dp_misc.mk
+++ b/desktop/source/deployment/inc/dp_misc.mk
diff --git a/desktop/source/deployment/inc/dp_misc_api.hxx b/desktop/source/deployment/inc/dp_misc_api.hxx
index bc2cee1df2..bc2cee1df2 100644..100755
--- a/desktop/source/deployment/inc/dp_misc_api.hxx
+++ b/desktop/source/deployment/inc/dp_misc_api.hxx
diff --git a/desktop/source/deployment/inc/dp_persmap.h b/desktop/source/deployment/inc/dp_persmap.h
index 8af038413a..8af038413a 100644..100755
--- a/desktop/source/deployment/inc/dp_persmap.h
+++ b/desktop/source/deployment/inc/dp_persmap.h
diff --git a/desktop/source/deployment/inc/dp_platform.hxx b/desktop/source/deployment/inc/dp_platform.hxx
index f9773efa1a..f9773efa1a 100644..100755
--- a/desktop/source/deployment/inc/dp_platform.hxx
+++ b/desktop/source/deployment/inc/dp_platform.hxx
diff --git a/desktop/source/deployment/inc/dp_resource.h b/desktop/source/deployment/inc/dp_resource.h
index 96fd049207..bd3a4fac82 100644..100755
--- a/desktop/source/deployment/inc/dp_resource.h
+++ b/desktop/source/deployment/inc/dp_resource.h
@@ -40,12 +40,12 @@
namespace dp_misc {
//==============================================================================
-ResId getResId( USHORT id );
+ResId getResId( sal_uInt16 id );
//==============================================================================
-DESKTOP_DEPLOYMENTMISC_DLLPUBLIC String getResourceString( USHORT id );
+DESKTOP_DEPLOYMENTMISC_DLLPUBLIC String getResourceString( sal_uInt16 id );
-template <typename Unique, USHORT id>
+template <typename Unique, sal_uInt16 id>
struct StaticResourceString :
public ::rtl::StaticWithInit<const ::rtl::OUString, Unique> {
const ::rtl::OUString operator () () { return getResourceString(id); }
diff --git a/desktop/source/deployment/inc/dp_ucb.h b/desktop/source/deployment/inc/dp_ucb.h
index c2fcdcd7e0..c2fcdcd7e0 100644..100755
--- a/desktop/source/deployment/inc/dp_ucb.h
+++ b/desktop/source/deployment/inc/dp_ucb.h
diff --git a/desktop/source/deployment/inc/dp_update.hxx b/desktop/source/deployment/inc/dp_update.hxx
index 6d0c790263..6d0c790263 100644..100755
--- a/desktop/source/deployment/inc/dp_update.hxx
+++ b/desktop/source/deployment/inc/dp_update.hxx
diff --git a/desktop/source/deployment/inc/dp_version.hxx b/desktop/source/deployment/inc/dp_version.hxx
index c3491a7451..c3491a7451 100644..100755
--- a/desktop/source/deployment/inc/dp_version.hxx
+++ b/desktop/source/deployment/inc/dp_version.hxx
diff --git a/desktop/source/deployment/inc/dp_xml.h b/desktop/source/deployment/inc/dp_xml.h
index 376df332fb..376df332fb 100644..100755
--- a/desktop/source/deployment/inc/dp_xml.h
+++ b/desktop/source/deployment/inc/dp_xml.h
diff --git a/desktop/source/deployment/makefile.mk b/desktop/source/deployment/makefile.mk
index ce494b4496..877379ad73 100644..100755
--- a/desktop/source/deployment/makefile.mk
+++ b/desktop/source/deployment/makefile.mk
@@ -109,3 +109,11 @@ RESLIB1SRSFILES += $(SRS)$/deployment_misc.srs
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/deployment.component
+
+$(MISC)/deployment.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ deployment.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt deployment.component
diff --git a/desktop/source/deployment/manager/dp_activepackages.cxx b/desktop/source/deployment/manager/dp_activepackages.cxx
index 94a16f6230..94a16f6230 100644..100755
--- a/desktop/source/deployment/manager/dp_activepackages.cxx
+++ b/desktop/source/deployment/manager/dp_activepackages.cxx
diff --git a/desktop/source/deployment/manager/dp_activepackages.hxx b/desktop/source/deployment/manager/dp_activepackages.hxx
index 569e4b7852..569e4b7852 100644..100755
--- a/desktop/source/deployment/manager/dp_activepackages.hxx
+++ b/desktop/source/deployment/manager/dp_activepackages.hxx
diff --git a/desktop/source/deployment/manager/dp_commandenvironments.cxx b/desktop/source/deployment/manager/dp_commandenvironments.cxx
index 78448cfa17..78448cfa17 100644..100755
--- a/desktop/source/deployment/manager/dp_commandenvironments.cxx
+++ b/desktop/source/deployment/manager/dp_commandenvironments.cxx
diff --git a/desktop/source/deployment/manager/dp_commandenvironments.hxx b/desktop/source/deployment/manager/dp_commandenvironments.hxx
index 59349c469a..59349c469a 100644..100755
--- a/desktop/source/deployment/manager/dp_commandenvironments.hxx
+++ b/desktop/source/deployment/manager/dp_commandenvironments.hxx
diff --git a/desktop/source/deployment/manager/dp_extensionmanager.cxx b/desktop/source/deployment/manager/dp_extensionmanager.cxx
index 1b84fea78f..bcaa123e76 100644..100755
--- a/desktop/source/deployment/manager/dp_extensionmanager.cxx
+++ b/desktop/source/deployment/manager/dp_extensionmanager.cxx
@@ -178,13 +178,9 @@ ExtensionManager::ExtensionManager( Reference< uno::XComponentContext > const& x
::cppu::WeakComponentImplHelper1< css::deployment::XExtensionManager >(getMutex()),
m_xContext( xContext )
{
- Reference<deploy::XPackageManagerFactory> xPackageManagerFactory(
- deploy::thePackageManagerFactory::get(m_xContext));
- m_userRepository = xPackageManagerFactory->getPackageManager(OUSTR("user"));
- m_sharedRepository = xPackageManagerFactory->getPackageManager(OUSTR("shared"));
- m_bundledRepository = xPackageManagerFactory->getPackageManager(OUSTR("bundled"));
- m_tmpRepository = xPackageManagerFactory->getPackageManager(OUSTR("tmp"));
-
+ m_xPackageManagerFactory = deploy::thePackageManagerFactory::get(m_xContext);
+ OSL_ASSERT(m_xPackageManagerFactory.is());
+
m_repositoryNames.push_back(OUSTR("user"));
m_repositoryNames.push_back(OUSTR("shared"));
m_repositoryNames.push_back(OUSTR("bundled"));
@@ -196,6 +192,23 @@ ExtensionManager::~ExtensionManager()
{
}
+Reference<deploy::XPackageManager> ExtensionManager::getUserRepository()
+{
+ return m_xPackageManagerFactory->getPackageManager(OUSTR("user"));
+}
+Reference<deploy::XPackageManager> ExtensionManager::getSharedRepository()
+{
+ return m_xPackageManagerFactory->getPackageManager(OUSTR("shared"));
+}
+Reference<deploy::XPackageManager> ExtensionManager::getBundledRepository()
+{
+ return m_xPackageManagerFactory->getPackageManager(OUSTR("bundled"));
+}
+Reference<deploy::XPackageManager> ExtensionManager::getTmpRepository()
+{
+ return m_xPackageManagerFactory->getPackageManager(OUSTR("tmp"));
+}
+
Reference<task::XAbortChannel> ExtensionManager::createAbortChannel()
throw (uno::RuntimeException)
{
@@ -208,11 +221,11 @@ ExtensionManager::getPackageManager(::rtl::OUString const & repository)
{
Reference<deploy::XPackageManager> xPackageManager;
if (repository.equals(OUSTR("user")))
- xPackageManager = m_userRepository;
+ xPackageManager = getUserRepository();
else if (repository.equals(OUSTR("shared")))
- xPackageManager = m_sharedRepository;
+ xPackageManager = getSharedRepository();
else if (repository.equals(OUSTR("bundled")))
- xPackageManager = m_bundledRepository;
+ xPackageManager = getBundledRepository();
else
throw lang::IllegalArgumentException(
OUSTR("No valid repository name provided."),
@@ -281,7 +294,7 @@ void ExtensionManager::addExtensionsToMap(
{
::std::list<Reference<deploy::XPackage> > extensionList;
Reference<deploy::XPackageManager> lRepos[] = {
- m_userRepository, m_sharedRepository, m_bundledRepository };
+ getUserRepository(), getSharedRepository(), getBundledRepository() };
for (int i(0); i != SAL_N_ELEMENTS(lRepos); ++i)
{
Reference<deploy::XPackage> xPackage;
@@ -492,7 +505,7 @@ Reference<deploy::XPackage> ExtensionManager::backupExtension(
if (xOldExtension.is())
{
- xBackup = m_tmpRepository->addPackage(
+ xBackup = getTmpRepository()->addPackage(
xOldExtension->getURL(), uno::Sequence<beans::NamedValue>(),
OUString(), Reference<task::XAbortChannel>(), tmpCmdEnv);
@@ -513,7 +526,7 @@ uno::Sequence< Reference<deploy::XPackageTypeInfo> >
ExtensionManager::getSupportedPackageTypes()
throw (uno::RuntimeException)
{
- return m_userRepository->getSupportedPackageTypes();
+ return getUserRepository()->getSupportedPackageTypes();
}
//Do some necessary checks and user interaction. This function does not
//aquire the extension manager mutex and that mutex must not be aquired
@@ -633,9 +646,9 @@ Reference<deploy::XPackage> ExtensionManager::addExtension(
//Determine the repository to use
Reference<deploy::XPackageManager> xPackageManager;
if (repository.equals(OUSTR("user")))
- xPackageManager = m_userRepository;
+ xPackageManager = getUserRepository();
else if (repository.equals(OUSTR("shared")))
- xPackageManager = m_sharedRepository;
+ xPackageManager = getSharedRepository();
else
throw lang::IllegalArgumentException(
OUSTR("No valid repository name provided."),
@@ -648,7 +661,7 @@ Reference<deploy::XPackage> ExtensionManager::addExtension(
getTempExtension(url, xAbortChannel, xCmdEnv);
//Make sure the extension is removed from the tmp repository in case
//of an exception
- ExtensionRemoveGuard tmpExtensionRemoveGuard(xTmpExtension, m_tmpRepository);
+ ExtensionRemoveGuard tmpExtensionRemoveGuard(xTmpExtension, getTmpRepository());
const OUString sIdentifier = dp_misc::getIdentifier(xTmpExtension);
const OUString sFileName = xTmpExtension->getName();
Reference<deploy::XPackage> xOldExtension;
@@ -692,8 +705,8 @@ Reference<deploy::XPackage> ExtensionManager::addExtension(
//the xTmpExtension
//no command environment supplied, only this class shall interact
//with the user!
- xExtensionBackup = m_tmpRepository->importExtension(
- xOldExtension, Reference<task::XAbortChannel>(),
+ xExtensionBackup = getTmpRepository()->importExtension(
+ xOldExtension, Reference<task::XAbortChannel>(),
Reference<ucb::XCommandEnvironment>());
tmpExtensionRemoveGuard.reset(xExtensionBackup);
//xTmpExtension will later be used to check the dependencies
@@ -845,9 +858,9 @@ void ExtensionManager::removeExtension(
{
//Determine the repository to use
if (repository.equals(OUSTR("user")))
- xPackageManager = m_userRepository;
+ xPackageManager = getUserRepository();
else if (repository.equals(OUSTR("shared")))
- xPackageManager = m_sharedRepository;
+ xPackageManager = getSharedRepository();
else
throw lang::IllegalArgumentException(
OUSTR("No valid repository name provided."),
@@ -906,8 +919,8 @@ void ExtensionManager::removeExtension(
identifier, fileName, bUserDisabled, false,
Reference<task::XAbortChannel>(),
tmpCmdEnv);
-
- m_tmpRepository->removePackage(
+
+ getTmpRepository()->removePackage(
dp_misc::getIdentifier(xExtensionBackup),
xExtensionBackup->getName(), xAbortChannel, xCmdEnv);
fireModified();
@@ -920,7 +933,7 @@ void ExtensionManager::removeExtension(
}
if (xExtensionBackup.is())
- m_tmpRepository->removePackage(
+ getTmpRepository()->removePackage(
dp_misc::getIdentifier(xExtensionBackup),
xExtensionBackup->getName(), xAbortChannel, xCmdEnv);
}
@@ -1147,13 +1160,13 @@ uno::Sequence< uno::Sequence<Reference<deploy::XPackage> > >
id2extensions mapExt;
uno::Sequence<Reference<deploy::XPackage> > userExt =
- m_userRepository->getDeployedPackages(xAbort, xCmdEnv);
+ getUserRepository()->getDeployedPackages(xAbort, xCmdEnv);
addExtensionsToMap(mapExt, userExt, OUSTR("user"));
uno::Sequence<Reference<deploy::XPackage> > sharedExt =
- m_sharedRepository->getDeployedPackages(xAbort, xCmdEnv);
+ getSharedRepository()->getDeployedPackages(xAbort, xCmdEnv);
addExtensionsToMap(mapExt, sharedExt, OUSTR("shared"));
uno::Sequence<Reference<deploy::XPackage> > bundledExt =
- m_bundledRepository->getDeployedPackages(xAbort, xCmdEnv);
+ getBundledRepository()->getDeployedPackages(xAbort, xCmdEnv);
addExtensionsToMap(mapExt, bundledExt, OUSTR("bundled"));
//copy the values of the map to a vector for sorting
@@ -1223,7 +1236,7 @@ void ExtensionManager::reinstallDeployedExtensions(
const OUString id = dp_misc::getIdentifier(extensions[ pos ]);
const OUString fileName = extensions[ pos ]->getName();
OSL_ASSERT(id.getLength());
- activateExtension(id, fileName, false, false, xAbortChannel, xCmdEnv );
+ activateExtension(id, fileName, false, true, xAbortChannel, xCmdEnv );
}
catch (lang::DisposedException &)
{
@@ -1247,6 +1260,64 @@ void ExtensionManager::reinstallDeployedExtensions(
}
}
+/** Works on the bundled repository. That is using the variables
+ BUNDLED_EXTENSIONS and BUNDLED_EXTENSIONS_USER.
+ */
+void ExtensionManager::synchronizeBundledPrereg(
+ Reference<task::XAbortChannel> const & xAbortChannel,
+ Reference<ucb::XCommandEnvironment> const & xCmdEnv )
+ throw (deploy::DeploymentException,
+ uno::RuntimeException)
+{
+ try
+ {
+ String sSynchronizingBundled(StrSyncRepository::get());
+ sSynchronizingBundled.SearchAndReplaceAllAscii( "%NAME", OUSTR("bundled"));
+ dp_misc::ProgressLevel progressBundled(xCmdEnv, sSynchronizingBundled);
+
+ Reference<deploy::XPackageManagerFactory> xPackageManagerFactory(
+ deploy::thePackageManagerFactory::get(m_xContext));
+
+ Reference<deploy::XPackageManager> xMgr =
+ xPackageManagerFactory->getPackageManager(OUSTR("bundled_prereg"));
+ xMgr->synchronize(xAbortChannel, xCmdEnv);
+ progressBundled.update(OUSTR("\n\n"));
+
+ uno::Sequence<Reference<deploy::XPackage> > extensions = xMgr->getDeployedPackages(
+ xAbortChannel, xCmdEnv);
+ try
+ {
+ for (sal_Int32 i = 0; i < extensions.getLength(); i++)
+ {
+ extensions[i]->registerPackage(true, xAbortChannel, xCmdEnv);
+ }
+ }
+ catch (...)
+ {
+ OSL_ASSERT(0);
+ }
+ OUString lastSyncBundled(RTL_CONSTASCII_USTRINGPARAM(
+ "$BUNDLED_EXTENSIONS_PREREG/lastsynchronized"));
+ writeLastModified(lastSyncBundled, xCmdEnv);
+
+ } catch (deploy::DeploymentException& ) {
+ throw;
+ } catch (ucb::CommandFailedException & ) {
+ throw;
+ } catch (ucb::CommandAbortedException & ) {
+ throw;
+ } catch (lang::IllegalArgumentException &) {
+ throw;
+ } catch (uno::RuntimeException &) {
+ throw;
+ } catch (...) {
+ uno::Any exc = ::cppu::getCaughtException();
+ throw deploy::DeploymentException(
+ OUSTR("Extension Manager: exception in synchronize"),
+ static_cast<OWeakObject*>(this), exc);
+ }
+}
+
sal_Bool ExtensionManager::synchronize(
Reference<task::XAbortChannel> const & xAbortChannel,
Reference<ucb::XCommandEnvironment> const & xCmdEnv )
@@ -1264,13 +1335,13 @@ sal_Bool ExtensionManager::synchronize(
String sSynchronizingShared(StrSyncRepository::get());
sSynchronizingShared.SearchAndReplaceAllAscii( "%NAME", OUSTR("shared"));
dp_misc::ProgressLevel progressShared(xCmdEnv, sSynchronizingShared);
- bModified = m_sharedRepository->synchronize(xAbortChannel, xCmdEnv);
+ bModified = getSharedRepository()->synchronize(xAbortChannel, xCmdEnv);
progressShared.update(OUSTR("\n\n"));
String sSynchronizingBundled(StrSyncRepository::get());
sSynchronizingBundled.SearchAndReplaceAllAscii( "%NAME", OUSTR("bundled"));
dp_misc::ProgressLevel progressBundled(xCmdEnv, sSynchronizingBundled);
- bModified |= m_bundledRepository->synchronize(xAbortChannel, xCmdEnv);
+ bModified |= getBundledRepository()->synchronize(xAbortChannel, xCmdEnv);
progressBundled.update(OUSTR("\n\n"));
//Always determine the active extension. This is necessary for the
@@ -1397,7 +1468,7 @@ Reference<deploy::XPackage> ExtensionManager::getTempExtension(
{
Reference<ucb::XCommandEnvironment> tmpCmdEnvA(new TmpRepositoryCommandEnv());
- Reference<deploy::XPackage> xTmpPackage = m_tmpRepository->addPackage(
+ Reference<deploy::XPackage> xTmpPackage = getTmpRepository()->addPackage(
url, uno::Sequence<beans::NamedValue>(),OUString(), xAbortChannel, tmpCmdEnvA);
if (!xTmpPackage.is())
{
diff --git a/desktop/source/deployment/manager/dp_extensionmanager.hxx b/desktop/source/deployment/manager/dp_extensionmanager.hxx
index 6bb8fa6e63..7adcf0a201 100644..100755
--- a/desktop/source/deployment/manager/dp_extensionmanager.hxx
+++ b/desktop/source/deployment/manager/dp_extensionmanager.hxx
@@ -200,6 +200,12 @@ public:
css::lang::IllegalArgumentException,
css::uno::RuntimeException);
+ virtual void SAL_CALL synchronizeBundledPrereg(
+ css::uno::Reference<css::task::XAbortChannel> const & xAbortChannel,
+ css::uno::Reference<css::ucb::XCommandEnvironment> const & xCmdEnv )
+ throw (css::deployment::DeploymentException,
+ css::uno::RuntimeException);
+
virtual css::uno::Sequence<css::uno::Reference<css::deployment::XPackage> > SAL_CALL
getExtensionsWithUnacceptedLicenses(
::rtl::OUString const & repository,
@@ -224,12 +230,8 @@ private:
};
css::uno::Reference< css::uno::XComponentContext> m_xContext;
-
- css::uno::Reference<css::deployment::XPackageManager> m_userRepository;
- css::uno::Reference<css::deployment::XPackageManager> m_sharedRepository;
- css::uno::Reference<css::deployment::XPackageManager> m_bundledRepository;
- css::uno::Reference<css::deployment::XPackageManager> m_tmpRepository;
-
+ css::uno::Reference<css::deployment::XPackageManagerFactory> m_xPackageManagerFactory;
+
//only to be used within addExtension
::osl::Mutex m_addMutex;
/* contains the names of all repositories (except tmp) in order of there
@@ -238,6 +240,11 @@ private:
*/
::std::list< ::rtl::OUString > m_repositoryNames;
+ css::uno::Reference<css::deployment::XPackageManager> getUserRepository();
+ css::uno::Reference<css::deployment::XPackageManager> getSharedRepository();
+ css::uno::Reference<css::deployment::XPackageManager> getBundledRepository();
+ css::uno::Reference<css::deployment::XPackageManager> getTmpRepository();
+
bool isUserDisabled(::rtl::OUString const & identifier,
::rtl::OUString const & filename);
diff --git a/desktop/source/deployment/manager/dp_informationprovider.cxx b/desktop/source/deployment/manager/dp_informationprovider.cxx
index 323e3e4fed..9b8c5be6cc 100644..100755
--- a/desktop/source/deployment/manager/dp_informationprovider.cxx
+++ b/desktop/source/deployment/manager/dp_informationprovider.cxx
@@ -41,9 +41,8 @@
#include "com/sun/star/lang/XServiceInfo.hpp"
#include "com/sun/star/registry/XRegistryKey.hpp"
#include "com/sun/star/task/XAbortChannel.hpp"
-#include "com/sun/star/ucb/CommandFailedException.hpp"
-#include "com/sun/star/ucb/XCommandEnvironment.hpp"
#include "com/sun/star/uno/XComponentContext.hpp"
+#include "com/sun/star/ucb/XCommandEnvironment.hpp"
#include "com/sun/star/xml/dom/XElement.hpp"
#include "com/sun/star/xml/dom/XNode.hpp"
@@ -72,9 +71,8 @@ namespace xml = com::sun::star::xml ;
namespace dp_info {
class PackageInformationProvider :
- public ::cppu::WeakImplHelper3< deployment::XPackageInformationProvider,
- css_ucb::XCommandEnvironment,
- task::XInteractionHandler >
+ public ::cppu::WeakImplHelper1< deployment::XPackageInformationProvider >
+
{
public:
PackageInformationProvider( uno::Reference< uno::XComponentContext >const& xContext);
@@ -83,16 +81,6 @@ class PackageInformationProvider :
static uno::Sequence< rtl::OUString > getServiceNames();
static rtl::OUString getImplName();
- // XInteractionHandler
- virtual void SAL_CALL handle( const uno::Reference< task::XInteractionRequest >& Request )
- throw( uno::RuntimeException );
- // XCommandEnvironment
- virtual uno::Reference< task::XInteractionHandler > SAL_CALL getInteractionHandler()
- throw ( uno::RuntimeException ) { return static_cast<task::XInteractionHandler*>(this); };
-
- virtual uno::Reference< css_ucb::XProgressHandler > SAL_CALL getProgressHandler()
- throw ( uno::RuntimeException ) { return uno::Reference< css_ucb::XProgressHandler >(); };
-
// XPackageInformationProvider
virtual rtl::OUString SAL_CALL getPackageLocation( const rtl::OUString& extensionId )
throw ( uno::RuntimeException );
@@ -126,17 +114,6 @@ PackageInformationProvider::~PackageInformationProvider()
}
//------------------------------------------------------------------------------
-void SAL_CALL PackageInformationProvider::handle( uno::Reference< task::XInteractionRequest > const & rRequest)
- throw (uno::RuntimeException)
-{
- uno::Sequence< uno::Reference< task::XInteractionContinuation > > xContinuations = rRequest->getContinuations();
- if ( xContinuations.getLength() == 1 )
- {
- xContinuations[0]->select();
- }
-}
-
-//------------------------------------------------------------------------------
rtl::OUString PackageInformationProvider::getPackageLocation(
const rtl::OUString & repository,
const rtl::OUString& _rExtensionId )
@@ -151,7 +128,7 @@ rtl::OUString PackageInformationProvider::getPackageLocation(
xManager->getDeployedExtensions(
repository,
uno::Reference< task::XAbortChannel >(),
- static_cast < XCommandEnvironment *> (this) ) );
+ uno::Reference< css_ucb::XCommandEnvironment > () ) );
for ( int pos = packages.getLength(); pos--; )
{
@@ -321,7 +298,7 @@ uno::Sequence< uno::Sequence< rtl::OUString > > SAL_CALL PackageInformationProvi
const uno::Sequence< uno::Sequence< uno::Reference<deployment::XPackage > > >
allExt = mgr->getAllExtensions(
uno::Reference< task::XAbortChannel >(),
- static_cast < XCommandEnvironment *> (this) );
+ uno::Reference< css_ucb::XCommandEnvironment > () );
uno::Sequence< uno::Sequence< rtl::OUString > > retList;
diff --git a/desktop/source/deployment/manager/dp_manager.cxx b/desktop/source/deployment/manager/dp_manager.cxx
index ff1ec5591b..aab3dddb00 100644..100755
--- a/desktop/source/deployment/manager/dp_manager.cxx
+++ b/desktop/source/deployment/manager/dp_manager.cxx
@@ -371,6 +371,24 @@ Reference<deployment::XPackageManager> PackageManagerImpl::create(
//No stamp file. We assume that bundled is always readonly. It must not be
//modified from ExtensionManager but only by the installer
}
+ else if (context.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("bundled_prereg") )) {
+ //This is a bundled repository but the registration data
+ //is in the brand layer: share/prereg
+ //It is special because the registration data are copied at the first startup
+ //into the user installation. The processed help and xcu files are not
+ //copied. Instead the backenddb.xml for the help backend references the help
+ //by using $BUNDLED_EXTENSION_PREREG instead $BUNDLED_EXTENSIONS_USER. The
+ //configmgr.ini also used $BUNDLED_EXTENSIONS_PREREG to refer to the xcu file
+ //which contain the replacement for %origin%.
+ that->m_activePackages = OUSTR(
+ "vnd.sun.star.expand:$BUNDLED_EXTENSIONS");
+ that->m_registrationData = OUSTR(
+ "vnd.sun.star.expand:$BUNDLED_EXTENSIONS_PREREG");
+ that->m_registryCache = OUSTR(
+ "vnd.sun.star.expand:$BUNDLED_EXTENSIONS_PREREG/registry");
+ logFile = OUSTR(
+ "vnd.sun.star.expand:$BUNDLED_EXTENSIONS_PREREG/log.txt");
+ }
else if (context.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("tmp") )) {
that->m_activePackages = OUSTR(
"vnd.sun.star.expand:$TMP_EXTENSIONS/extensions");
@@ -950,6 +968,8 @@ void PackageManagerImpl::removePackage(
contentRemoved.writeStream( xData, true /* replace existing */ );
}
m_activePackagesDB->erase( id, fileName ); // to be removed upon next start
+ //remove any cached data hold by the backend
+ m_xRegistry->packageRemoved(xPackage->getURL(), xPackage->getPackageType()->getMediaType());
}
try_dispose( xPackage );
@@ -990,7 +1010,8 @@ OUString PackageManagerImpl::getDeployPath( ActivePackages::Data const & data )
//The bundled extensions are not contained in an additional folder
//with a unique name. data.temporaryName contains already the
//UTF8 encoded folder name. See PackageManagerImpl::synchronize
- if (!m_context.equals(OUSTR("bundled")))
+ if (!m_context.equals(OUSTR("bundled"))
+ && !m_context.equals(OUSTR("bundled_prereg")))
{
buf.appendAscii( RTL_CONSTASCII_STRINGPARAM("_/") );
buf.append( ::rtl::Uri::encode( data.fileName, rtl_UriCharClassPchar,
@@ -1342,6 +1363,8 @@ bool PackageManagerImpl::synchronizeAddedExtensions(
Reference<css::ucb::XCommandEnvironment> const & xCmdEnv)
{
bool bModified = false;
+ OSL_ASSERT(!m_context.equals(OUSTR("user")));
+
ActivePackages::Entries id2temp( m_activePackagesDB->getEntries() );
//check if the folder exist at all. The shared extension folder
//may not exist for a normal user.
@@ -1367,8 +1390,8 @@ bool PackageManagerImpl::synchronizeAddedExtensions(
//The temporary folders of user and shared have an '_' at then end.
//But the name in ActivePackages.temporaryName is saved without.
OUString title2 = title;
- bool bNotBundled = !m_context.equals(OUSTR("bundled"));
- if (bNotBundled)
+ bool bShared = m_context.equals(OUSTR("shared"));
+ if (bShared)
{
OSL_ASSERT(title2[title2.getLength() -1] == '_');
title2 = title2.copy(0, title2.getLength() -1);
@@ -1390,7 +1413,7 @@ bool PackageManagerImpl::synchronizeAddedExtensions(
// an added extension
OUString url(m_activePackages_expanded + OUSTR("/") + titleEncoded);
OUString sExtFolder;
- if (bNotBundled) //that is, shared
+ if (bShared) //that is, shared
{
//Check if the extension was not "deleted" already which is indicated
//by a xxx.tmpremoved file
@@ -1412,7 +1435,7 @@ bool PackageManagerImpl::synchronizeAddedExtensions(
ActivePackages::Data dbData;
dbData.temporaryName = titleEncoded;
- if (bNotBundled)
+ if (bShared)
dbData.fileName = sExtFolder;
else
dbData.fileName = title;
diff --git a/desktop/source/deployment/manager/dp_manager.h b/desktop/source/deployment/manager/dp_manager.h
index fa4a9078ac..fa4a9078ac 100644..100755
--- a/desktop/source/deployment/manager/dp_manager.h
+++ b/desktop/source/deployment/manager/dp_manager.h
diff --git a/desktop/source/deployment/manager/dp_manager.hrc b/desktop/source/deployment/manager/dp_manager.hrc
index 3dd89f57cf..3dd89f57cf 100644..100755
--- a/desktop/source/deployment/manager/dp_manager.hrc
+++ b/desktop/source/deployment/manager/dp_manager.hrc
diff --git a/desktop/source/deployment/manager/dp_manager.src b/desktop/source/deployment/manager/dp_manager.src
index 7430a8cab0..7430a8cab0 100644..100755
--- a/desktop/source/deployment/manager/dp_manager.src
+++ b/desktop/source/deployment/manager/dp_manager.src
diff --git a/desktop/source/deployment/manager/dp_managerfac.cxx b/desktop/source/deployment/manager/dp_managerfac.cxx
index 707a061392..707a061392 100644..100755
--- a/desktop/source/deployment/manager/dp_managerfac.cxx
+++ b/desktop/source/deployment/manager/dp_managerfac.cxx
diff --git a/desktop/source/deployment/manager/dp_properties.cxx b/desktop/source/deployment/manager/dp_properties.cxx
index 6477c5aad0..6477c5aad0 100644..100755
--- a/desktop/source/deployment/manager/dp_properties.cxx
+++ b/desktop/source/deployment/manager/dp_properties.cxx
diff --git a/desktop/source/deployment/manager/dp_properties.hxx b/desktop/source/deployment/manager/dp_properties.hxx
index 70f6d9f62f..70f6d9f62f 100644..100755
--- a/desktop/source/deployment/manager/dp_properties.hxx
+++ b/desktop/source/deployment/manager/dp_properties.hxx
diff --git a/desktop/source/deployment/manager/makefile.mk b/desktop/source/deployment/manager/makefile.mk
index 4dc6405e34..4dc6405e34 100644..100755
--- a/desktop/source/deployment/manager/makefile.mk
+++ b/desktop/source/deployment/manager/makefile.mk
diff --git a/desktop/source/deployment/misc/db.cxx b/desktop/source/deployment/misc/db.cxx
index ce403181ab..ce403181ab 100644..100755
--- a/desktop/source/deployment/misc/db.cxx
+++ b/desktop/source/deployment/misc/db.cxx
diff --git a/desktop/source/deployment/misc/dp_dependencies.cxx b/desktop/source/deployment/misc/dp_dependencies.cxx
index 5c945df6b2..5c945df6b2 100644..100755
--- a/desktop/source/deployment/misc/dp_dependencies.cxx
+++ b/desktop/source/deployment/misc/dp_dependencies.cxx
diff --git a/desktop/source/deployment/misc/dp_descriptioninfoset.cxx b/desktop/source/deployment/misc/dp_descriptioninfoset.cxx
index 6444193a77..6444193a77 100644..100755
--- a/desktop/source/deployment/misc/dp_descriptioninfoset.cxx
+++ b/desktop/source/deployment/misc/dp_descriptioninfoset.cxx
diff --git a/desktop/source/deployment/misc/dp_identifier.cxx b/desktop/source/deployment/misc/dp_identifier.cxx
index f9fb809b51..f9fb809b51 100644..100755
--- a/desktop/source/deployment/misc/dp_identifier.cxx
+++ b/desktop/source/deployment/misc/dp_identifier.cxx
diff --git a/desktop/source/deployment/misc/dp_interact.cxx b/desktop/source/deployment/misc/dp_interact.cxx
index 57cc3bf2e7..57cc3bf2e7 100644..100755
--- a/desktop/source/deployment/misc/dp_interact.cxx
+++ b/desktop/source/deployment/misc/dp_interact.cxx
diff --git a/desktop/source/deployment/misc/dp_misc.cxx b/desktop/source/deployment/misc/dp_misc.cxx
index 520b2a5699..520b2a5699 100644..100755
--- a/desktop/source/deployment/misc/dp_misc.cxx
+++ b/desktop/source/deployment/misc/dp_misc.cxx
diff --git a/desktop/source/deployment/misc/dp_misc.hrc b/desktop/source/deployment/misc/dp_misc.hrc
index e5d749fc62..e5d749fc62 100644..100755
--- a/desktop/source/deployment/misc/dp_misc.hrc
+++ b/desktop/source/deployment/misc/dp_misc.hrc
diff --git a/desktop/source/deployment/misc/dp_misc.src b/desktop/source/deployment/misc/dp_misc.src
index 4c36644ec2..a6d1441d2a 100644..100755
--- a/desktop/source/deployment/misc/dp_misc.src
+++ b/desktop/source/deployment/misc/dp_misc.src
@@ -32,7 +32,7 @@ String RID_DEPLYOMENT_DEPENDENCIES_UNKNOWN {
};
String RID_DEPLYOMENT_DEPENDENCIES_MIN {
- Text[en-US] = "Extensions requires at least %PRODUCTNAME %VERSION";
+ Text[en-US] = "Extension requires at least %PRODUCTNAME %VERSION";
};
String RID_DEPLYOMENT_DEPENDENCIES_MAX {
diff --git a/desktop/source/deployment/misc/dp_platform.cxx b/desktop/source/deployment/misc/dp_platform.cxx
index b86e6508e5..b86e6508e5 100644..100755
--- a/desktop/source/deployment/misc/dp_platform.cxx
+++ b/desktop/source/deployment/misc/dp_platform.cxx
diff --git a/desktop/source/deployment/misc/dp_resource.cxx b/desktop/source/deployment/misc/dp_resource.cxx
index eb92eabba3..c8c57ac01d 100644..100755
--- a/desktop/source/deployment/misc/dp_resource.cxx
+++ b/desktop/source/deployment/misc/dp_resource.cxx
@@ -72,14 +72,14 @@ osl::Mutex s_mutex;
} // anon namespace
//==============================================================================
-ResId getResId( USHORT id )
+ResId getResId( sal_uInt16 id )
{
const osl::MutexGuard guard( s_mutex );
return ResId( id, *DeploymentResMgr::get() );
}
//==============================================================================
-String getResourceString( USHORT id )
+String getResourceString( sal_uInt16 id )
{
const osl::MutexGuard guard( s_mutex );
String ret( ResId( id, *DeploymentResMgr::get() ) );
diff --git a/desktop/source/deployment/misc/dp_ucb.cxx b/desktop/source/deployment/misc/dp_ucb.cxx
index cbfde03cc8..cbfde03cc8 100644..100755
--- a/desktop/source/deployment/misc/dp_ucb.cxx
+++ b/desktop/source/deployment/misc/dp_ucb.cxx
diff --git a/desktop/source/deployment/misc/dp_update.cxx b/desktop/source/deployment/misc/dp_update.cxx
index b22c4c5a60..b22c4c5a60 100644..100755
--- a/desktop/source/deployment/misc/dp_update.cxx
+++ b/desktop/source/deployment/misc/dp_update.cxx
diff --git a/desktop/source/deployment/misc/dp_version.cxx b/desktop/source/deployment/misc/dp_version.cxx
index c999d32cc2..c999d32cc2 100644..100755
--- a/desktop/source/deployment/misc/dp_version.cxx
+++ b/desktop/source/deployment/misc/dp_version.cxx
diff --git a/desktop/source/deployment/misc/makefile.mk b/desktop/source/deployment/misc/makefile.mk
index 3e4bd68cb4..3e4bd68cb4 100644..100755
--- a/desktop/source/deployment/misc/makefile.mk
+++ b/desktop/source/deployment/misc/makefile.mk
diff --git a/desktop/source/deployment/registry/component/dp_compbackenddb.cxx b/desktop/source/deployment/registry/component/dp_compbackenddb.cxx
index 09f06638ec..b103fe46ef 100644..100755
--- a/desktop/source/deployment/registry/component/dp_compbackenddb.cxx
+++ b/desktop/source/deployment/registry/component/dp_compbackenddb.cxx
@@ -83,26 +83,29 @@ OUString ComponentBackendDb::getKeyElementName()
void ComponentBackendDb::addEntry(::rtl::OUString const & url, Data const & data)
{
try{
- Reference<css::xml::dom::XNode> componentNode = writeKeyElement(url);
- writeSimpleElement(OUSTR("java-type-library"),
- OUString::valueOf((sal_Bool) data.javaTypeLibrary),
- componentNode);
-
- writeSimpleList(
- data.implementationNames,
- OUSTR("implementation-names"),
- OUSTR("name"),
- componentNode);
-
- writeVectorOfPair(
- data.singletons,
- OUSTR("singletons"),
- OUSTR("item"),
- OUSTR("key"),
- OUSTR("value"),
- componentNode);
-
- save();
+ if (!activateEntry(url))
+ {
+ Reference<css::xml::dom::XNode> componentNode = writeKeyElement(url);
+ writeSimpleElement(OUSTR("java-type-library"),
+ OUString::valueOf((sal_Bool) data.javaTypeLibrary),
+ componentNode);
+
+ writeSimpleList(
+ data.implementationNames,
+ OUSTR("implementation-names"),
+ OUSTR("name"),
+ componentNode);
+
+ writeVectorOfPair(
+ data.singletons,
+ OUSTR("singletons"),
+ OUSTR("item"),
+ OUSTR("key"),
+ OUSTR("value"),
+ componentNode);
+
+ save();
+ }
}
catch(css::uno::Exception &)
{
diff --git a/desktop/source/deployment/registry/component/dp_compbackenddb.hxx b/desktop/source/deployment/registry/component/dp_compbackenddb.hxx
index 8af1ad6396..8af1ad6396 100644..100755
--- a/desktop/source/deployment/registry/component/dp_compbackenddb.hxx
+++ b/desktop/source/deployment/registry/component/dp_compbackenddb.hxx
diff --git a/desktop/source/deployment/registry/component/dp_component.cxx b/desktop/source/deployment/registry/component/dp_component.cxx
index bd26a2c1a9..d5633f0995 100644..100755
--- a/desktop/source/deployment/registry/component/dp_component.cxx
+++ b/desktop/source/deployment/registry/component/dp_component.cxx
@@ -66,6 +66,7 @@ using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::ucb;
using ::rtl::OUString;
+namespace css = com::sun::star;
namespace dp_registry {
namespace backend {
@@ -122,14 +123,15 @@ class BackendImpl : public ::dp_registry::backend::PackageRegistryBackend
BackendImpl * getMyBackend() const;
const OUString m_loader;
- ComponentBackendDb::Data m_registeredComponentsDb;
-
+
enum reg {
REG_UNINIT, REG_VOID, REG_REGISTERED, REG_NOT_REGISTERED, REG_MAYBE_REGISTERED
} m_registered;
- Reference<loader::XImplementationLoader> getComponentInfo(
- t_stringlist * pImplNames, t_stringpairvec * pSingletons,
+ void getComponentInfo(
+ ComponentBackendDb::Data * data,
+ std::vector< css::uno::Reference< css::uno::XInterface > > *
+ factories,
Reference<XComponentContext> const & xContext );
virtual void SAL_CALL disposing();
@@ -161,7 +163,31 @@ class BackendImpl : public ::dp_registry::backend::PackageRegistryBackend
OUString const & identifier);
};
friend class ComponentPackageImpl;
-
+
+ class ComponentsPackageImpl : public ::dp_registry::backend::Package
+ {
+ BackendImpl * getMyBackend() const;
+
+ // Package
+ virtual beans::Optional< beans::Ambiguous<sal_Bool> > isRegistered_(
+ ::osl::ResettableMutexGuard & guard,
+ ::rtl::Reference<AbortChannel> const & abortChannel,
+ Reference<XCommandEnvironment> const & xCmdEnv );
+ virtual void processPackage_(
+ ::osl::ResettableMutexGuard & guard,
+ bool registerPackage,
+ bool startup,
+ ::rtl::Reference<AbortChannel> const & abortChannel,
+ Reference<XCommandEnvironment> const & xCmdEnv );
+ public:
+ ComponentsPackageImpl(
+ ::rtl::Reference<PackageRegistryBackend> const & myBackend,
+ OUString const & url, OUString const & name,
+ Reference<deployment::XPackageTypeInfo> const & xPackageType,
+ bool bRemoved, OUString const & identifier);
+ };
+ friend class ComponentsPackageImpl;
+
class TypelibraryPackageImpl : public ::dp_registry::backend::Package
{
BackendImpl * getMyBackend() const;
@@ -231,8 +257,20 @@ class BackendImpl : public ::dp_registry::backend::PackageRegistryBackend
t_stringlist m_jar_typelibs;
t_stringlist m_rdb_typelibs;
- t_stringlist & getTypelibs( bool jar ) {
- return jar ? m_jar_typelibs : m_rdb_typelibs;
+ t_stringlist m_components;
+
+ enum RcItem { RCITEM_JAR_TYPELIB, RCITEM_RDB_TYPELIB, RCITEM_COMPONENTS };
+
+ t_stringlist & getRcItemList( RcItem kind ) {
+ switch (kind)
+ {
+ case RCITEM_JAR_TYPELIB:
+ return m_jar_typelibs;
+ case RCITEM_RDB_TYPELIB:
+ return m_rdb_typelibs;
+ default: // case RCITEM_COMPONENTS
+ return m_components;
+ }
}
bool m_unorc_inited;
@@ -254,6 +292,7 @@ class BackendImpl : public ::dp_registry::backend::PackageRegistryBackend
const Reference<deployment::XPackageTypeInfo> m_xDynComponentTypeInfo;
const Reference<deployment::XPackageTypeInfo> m_xJavaComponentTypeInfo;
const Reference<deployment::XPackageTypeInfo> m_xPythonComponentTypeInfo;
+ const Reference<deployment::XPackageTypeInfo> m_xComponentsTypeInfo;
const Reference<deployment::XPackageTypeInfo> m_xRDBTypelibTypeInfo;
const Reference<deployment::XPackageTypeInfo> m_xJavaTypelibTypeInfo;
Sequence< Reference<deployment::XPackageTypeInfo> > m_typeInfos;
@@ -268,8 +307,8 @@ class BackendImpl : public ::dp_registry::backend::PackageRegistryBackend
std::auto_ptr<ComponentBackendDb> m_backendDb;
void addDataToDb(OUString const & url, ComponentBackendDb::Data const & data);
- void deleteDataFromDb(OUString const & url);
ComponentBackendDb::Data readDataFromDb(OUString const & url);
+ void revokeEntryFromDb(OUString const & url);
//These rdbs are for writing new service entries. The rdb files are copies
@@ -291,14 +330,32 @@ class BackendImpl : public ::dp_registry::backend::PackageRegistryBackend
OUString const & id, Reference<XInterface> const & xObject );
void releaseObject( OUString const & id );
- bool addToUnoRc( bool jarFile, OUString const & url,
+ bool addToUnoRc( RcItem kind, OUString const & url,
Reference<XCommandEnvironment> const & xCmdEnv );
- bool removeFromUnoRc( bool jarFile, OUString const & url,
+ bool removeFromUnoRc( RcItem kind, OUString const & url,
Reference<XCommandEnvironment> const & xCmdEnv );
- bool hasInUnoRc( bool jarFile, OUString const & url );
+ bool hasInUnoRc( RcItem kind, OUString const & url );
+
+ css::uno::Reference< css::registry::XRegistryKey > openRegistryKey(
+ css::uno::Reference< css::registry::XRegistryKey > const & base,
+ rtl::OUString const & path);
+
+ void extractComponentData(
+ css::uno::Reference< css::uno::XComponentContext > const & context,
+ css::uno::Reference< css::registry::XRegistryKey > const & registry,
+ ComponentBackendDb::Data * data,
+ std::vector< css::uno::Reference< css::uno::XInterface > > * factories,
+ css::uno::Reference< css::loader::XImplementationLoader > const *
+ componentLoader,
+ rtl::OUString const * componentUrl);
+
+ void componentLiveInsertion(
+ ComponentBackendDb::Data const & data,
+ std::vector< css::uno::Reference< css::uno::XInterface > > const &
+ factories);
+
+ void componentLiveRemoval(ComponentBackendDb::Data const & data);
-
-
public:
BackendImpl( Sequence<Any> const & args,
Reference<XComponentContext> const & xComponentContext );
@@ -307,6 +364,10 @@ public:
virtual Sequence< Reference<deployment::XPackageTypeInfo> > SAL_CALL
getSupportedPackageTypes() throw (RuntimeException);
+ virtual void SAL_CALL packageRemoved(OUString const & url, OUString const & mediaType)
+ throw (deployment::DeploymentException,
+ uno::RuntimeException);
+
using PackageRegistryBackend::disposing;
//Will be called from ComponentPackageImpl
@@ -328,13 +389,7 @@ BackendImpl::ComponentPackageImpl::ComponentPackageImpl(
xPackageType, bRemoved, identifier),
m_loader( loader ),
m_registered( REG_UNINIT )
-{
- if (bRemoved)
- {
- m_registeredComponentsDb = getMyBackend()->readDataFromDb(url);
- }
-}
-
+{}
const Reference<registry::XSimpleRegistry>
BackendImpl::ComponentPackageImpl::getRDB() const
@@ -570,6 +625,12 @@ BackendImpl::BackendImpl(
getResourceString(
RID_STR_PYTHON_COMPONENT),
RID_IMG_COMPONENT ) ),
+ m_xComponentsTypeInfo( new Package::TypeInfo(
+ OUSTR("application/"
+ "vnd.sun.star.uno-components"),
+ OUSTR("*.components"),
+ getResourceString(RID_STR_COMPONENTS),
+ RID_IMG_COMPONENT ) ),
m_xRDBTypelibTypeInfo( new Package::TypeInfo(
OUSTR("application/"
"vnd.sun.star.uno-typelibrary;"
@@ -589,8 +650,9 @@ BackendImpl::BackendImpl(
m_typeInfos[ 0 ] = m_xDynComponentTypeInfo;
m_typeInfos[ 1 ] = m_xJavaComponentTypeInfo;
m_typeInfos[ 2 ] = m_xPythonComponentTypeInfo;
- m_typeInfos[ 3 ] = m_xRDBTypelibTypeInfo;
- m_typeInfos[ 4 ] = m_xJavaTypelibTypeInfo;
+ m_typeInfos[ 3 ] = m_xComponentsTypeInfo;
+ m_typeInfos[ 4 ] = m_xRDBTypelibTypeInfo;
+ m_typeInfos[ 5 ] = m_xJavaTypelibTypeInfo;
const Reference<XCommandEnvironment> xCmdEnv;
@@ -632,12 +694,6 @@ void BackendImpl::addDataToDb(
m_backendDb->addEntry(url, data);
}
-void BackendImpl::deleteDataFromDb(OUString const & url)
-{
- if (m_backendDb.get())
- m_backendDb->removeEntry(url);
-}
-
ComponentBackendDb::Data BackendImpl::readDataFromDb(OUString const & url)
{
ComponentBackendDb::Data data;
@@ -646,6 +702,12 @@ ComponentBackendDb::Data BackendImpl::readDataFromDb(OUString const & url)
return data;
}
+void BackendImpl::revokeEntryFromDb(OUString const & url)
+{
+ if (m_backendDb.get())
+ m_backendDb->revokeEntry(url);
+}
+
// XPackageRegistry
//______________________________________________________________________________
Sequence< Reference<deployment::XPackageTypeInfo> >
@@ -654,6 +716,14 @@ BackendImpl::getSupportedPackageTypes() throw (RuntimeException)
return m_typeInfos;
}
+void BackendImpl::packageRemoved(OUString const & url, OUString const & /*mediaType*/)
+ throw (deployment::DeploymentException,
+ uno::RuntimeException)
+{
+ if (m_backendDb.get())
+ m_backendDb->removeEntry(url);
+}
+
// PackageRegistryBackend
//______________________________________________________________________________
Reference<deployment::XPackage> BackendImpl::bindPackage_(
@@ -769,6 +839,17 @@ Reference<deployment::XPackage> BackendImpl::bindPackage_(
}
}
else if (subType.EqualsIgnoreCaseAscii(
+ "vnd.sun.star.uno-components"))
+ {
+ INetContentTypeParameter const * param = params.find(
+ ByteString("platform") );
+ if (param == 0 || platform_fits( param->m_sValue )) {
+ return new BackendImpl::ComponentsPackageImpl(
+ this, url, name, m_xComponentsTypeInfo, bRemoved,
+ identifier);
+ }
+ }
+ else if (subType.EqualsIgnoreCaseAscii(
"vnd.sun.star.uno-typelibrary"))
{
INetContentTypeParameter const * param = params.find(
@@ -861,11 +942,50 @@ void BackendImpl::unorc_verify_init(
while (index >= 0);
}
if (readLine( &line, OUSTR("UNO_SERVICES="), ucb_content,
- RTL_TEXTENCODING_UTF8 )) {
- sal_Int32 start = sizeof ("UNO_SERVICES=?$ORIGIN/") - 1;
- sal_Int32 sep = line.indexOf( ' ', start );
- OSL_ASSERT( sep > 0 );
- m_commonRDB_RO = line.copy( start, sep - start );
+ RTL_TEXTENCODING_UTF8 ))
+ {
+ // The UNO_SERVICES line always has the BNF form
+ // "UNO_SERVICES="
+ // ("?$ORIGIN/" <common-rdb>)? -- first
+ // "${$ORIGIN/${_OS}_${_ARCH}rc:UNO_SERVICES}"? -- second
+ // ("?" ("BUNDLED_EXTENSIONS" | -- third
+ // "UNO_SHARED_PACKAGES_CACHE" | "UNO_USER_PACKAGES_CACHE")
+ // ...)*
+ // so can unambiguously be split into its thre parts:
+ int state = 1;
+ for (sal_Int32 i = RTL_CONSTASCII_LENGTH("UNO_SERVICES=");
+ i >= 0;)
+ {
+ rtl::OUString token(line.getToken(0, ' ', i));
+ if (token.getLength() != 0)
+ {
+ if (state == 1 &&
+ token.matchAsciiL(
+ RTL_CONSTASCII_STRINGPARAM("?$ORIGIN/")))
+ {
+ m_commonRDB_RO = token.copy(
+ RTL_CONSTASCII_LENGTH("?$ORIGIN/"));
+ state = 2;
+ }
+ else if (state <= 2 &&
+ token.equalsAsciiL(
+ RTL_CONSTASCII_STRINGPARAM(
+ "${$ORIGIN/${_OS}_${_ARCH}rc:"
+ "UNO_SERVICES}")))
+ {
+ state = 3;
+ }
+ else
+ {
+ if (token[0] == '?')
+ {
+ token = token.copy(1);
+ }
+ m_components.push_back(token);
+ state = 3;
+ }
+ }
+ }
}
// native rc:
@@ -941,16 +1061,27 @@ void BackendImpl::unorc_flush( Reference<XCommandEnvironment> const & xCmdEnv )
OUString sCommonRDB(m_commonRDB.getLength() > 0 ? m_commonRDB : m_commonRDB_RO);
OUString sNativeRDB(m_nativeRDB.getLength() > 0 ? m_nativeRDB : m_nativeRDB_RO);
- if (sCommonRDB.getLength() > 0 || sNativeRDB.getLength() > 0)
+ if (sCommonRDB.getLength() > 0 || sNativeRDB.getLength() > 0 ||
+ !m_components.empty())
{
- buf.append( RTL_CONSTASCII_STRINGPARAM("UNO_SERVICES=?$ORIGIN/") );
- buf.append( ::rtl::OUStringToOString(
- sCommonRDB, RTL_TEXTENCODING_ASCII_US ) );
+ buf.append( RTL_CONSTASCII_STRINGPARAM("UNO_SERVICES=") );
+ bool space = false;
+ if (sCommonRDB.getLength() > 0)
+ {
+ buf.append( RTL_CONSTASCII_STRINGPARAM("?$ORIGIN/") );
+ buf.append( ::rtl::OUStringToOString(
+ sCommonRDB, RTL_TEXTENCODING_ASCII_US ) );
+ space = true;
+ }
if (sNativeRDB.getLength() > 0)
{
+ if (space)
+ {
+ buf.append(' ');
+ }
buf.append( RTL_CONSTASCII_STRINGPARAM(
- " ${$ORIGIN/${_OS}_${_ARCH}rc:UNO_SERVICES}") );
- buf.append(LF);
+ "${$ORIGIN/${_OS}_${_ARCH}rc:UNO_SERVICES}") );
+ space = true;
// write native rc:
::rtl::OStringBuffer buf2;
@@ -972,6 +1103,18 @@ void BackendImpl::unorc_flush( Reference<XCommandEnvironment> const & xCmdEnv )
xCmdEnv );
ucb_content.writeStream( xData, true /* replace existing */ );
}
+ for (t_stringlist::iterator i(m_components.begin());
+ i != m_components.end(); ++i)
+ {
+ if (space)
+ {
+ buf.append(' ');
+ }
+ buf.append('?');
+ buf.append(rtl::OUStringToOString(*i, RTL_TEXTENCODING_UTF8));
+ space = true;
+ }
+ buf.append(LF);
}
// write unorc:
@@ -988,13 +1131,13 @@ void BackendImpl::unorc_flush( Reference<XCommandEnvironment> const & xCmdEnv )
}
//______________________________________________________________________________
-bool BackendImpl::addToUnoRc( bool jarFile, OUString const & url_,
+bool BackendImpl::addToUnoRc( RcItem kind, OUString const & url_,
Reference<XCommandEnvironment> const & xCmdEnv )
{
const OUString rcterm( dp_misc::makeRcTerm(url_) );
const ::osl::MutexGuard guard( getMutex() );
unorc_verify_init( xCmdEnv );
- t_stringlist & rSet = getTypelibs(jarFile);
+ t_stringlist & rSet = getRcItemList(kind);
if (::std::find( rSet.begin(), rSet.end(), rcterm ) == rSet.end()) {
rSet.push_front( rcterm ); // prepend to list, thus overriding
// write immediately:
@@ -1008,13 +1151,13 @@ bool BackendImpl::addToUnoRc( bool jarFile, OUString const & url_,
//______________________________________________________________________________
bool BackendImpl::removeFromUnoRc(
- bool jarFile, OUString const & url_,
+ RcItem kind, OUString const & url_,
Reference<XCommandEnvironment> const & xCmdEnv )
{
const OUString rcterm( dp_misc::makeRcTerm(url_) );
const ::osl::MutexGuard guard( getMutex() );
unorc_verify_init( xCmdEnv );
- getTypelibs(jarFile).remove( rcterm );
+ getRcItemList(kind).remove( rcterm );
// write immediately:
m_unorc_modified = true;
unorc_flush( xCmdEnv );
@@ -1023,22 +1166,215 @@ bool BackendImpl::removeFromUnoRc(
//______________________________________________________________________________
bool BackendImpl::hasInUnoRc(
- bool jarFile, OUString const & url_ )
+ RcItem kind, OUString const & url_ )
{
const OUString rcterm( dp_misc::makeRcTerm(url_) );
const ::osl::MutexGuard guard( getMutex() );
- t_stringlist const & rSet = getTypelibs(jarFile);
+ t_stringlist const & rSet = getRcItemList(kind);
return ::std::find( rSet.begin(), rSet.end(), rcterm ) != rSet.end();
}
+css::uno::Reference< css::registry::XRegistryKey > BackendImpl::openRegistryKey(
+ css::uno::Reference< css::registry::XRegistryKey > const & base,
+ rtl::OUString const & path)
+{
+ OSL_ASSERT(base.is());
+ css::uno::Reference< css::registry::XRegistryKey > key(base->openKey(path));
+ if (!key.is()) {
+ throw css::deployment::DeploymentException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("missing registry entry ")) +
+ path + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" under ")) +
+ base->getKeyName()),
+ static_cast< OWeakObject * >(this), Any());
+ }
+ return key;
+}
+
+void BackendImpl::extractComponentData(
+ css::uno::Reference< css::uno::XComponentContext > const & context,
+ css::uno::Reference< css::registry::XRegistryKey > const & registry,
+ ComponentBackendDb::Data * data,
+ std::vector< css::uno::Reference< css::uno::XInterface > > * factories,
+ css::uno::Reference< css::loader::XImplementationLoader > const *
+ componentLoader,
+ rtl::OUString const * componentUrl)
+{
+ OSL_ASSERT(context.is() && registry.is() && data != 0 && factories != 0);
+ rtl::OUString registryName(registry->getKeyName());
+ sal_Int32 prefix = registryName.getLength();
+ if (!registryName.endsWithAsciiL(RTL_CONSTASCII_STRINGPARAM("/"))) {
+ prefix += RTL_CONSTASCII_LENGTH("/");
+ }
+ css::uno::Sequence< css::uno::Reference< css::registry::XRegistryKey > >
+ keys(registry->openKeys());
+ css::uno::Reference< css::lang::XMultiComponentFactory > smgr(
+ context->getServiceManager(), css::uno::UNO_QUERY_THROW);
+ for (sal_Int32 i = 0; i < keys.getLength(); ++i) {
+ rtl::OUString name(keys[i]->getKeyName().copy(prefix));
+ data->implementationNames.push_back(name);
+ css::uno::Reference< css::registry::XRegistryKey > singletons(
+ keys[i]->openKey(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("UNO/SINGLETONS"))));
+ if (singletons.is()) {
+ sal_Int32 prefix2 = keys[i]->getKeyName().getLength() +
+ RTL_CONSTASCII_LENGTH("/UNO/SINGLETONS/");
+ css::uno::Sequence<
+ css::uno::Reference< css::registry::XRegistryKey > >
+ singletonKeys(singletons->openKeys());
+ for (sal_Int32 j = 0; j < singletonKeys.getLength(); ++j) {
+ data->singletons.push_back(
+ std::pair< rtl::OUString, rtl::OUString >(
+ singletonKeys[j]->getKeyName().copy(prefix2), name));
+ }
+ }
+ css::uno::Reference< css::loader::XImplementationLoader > loader;
+ if (componentLoader == 0) {
+ rtl::OUString activator(
+ openRegistryKey(
+ keys[i],
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("UNO/ACTIVATOR")))->
+ getAsciiValue());
+ loader.set(
+ smgr->createInstanceWithContext(activator, context),
+ css::uno::UNO_QUERY);
+ if (!loader.is()) {
+ throw css::deployment::DeploymentException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "cannot instantiate loader ")) +
+ activator),
+ static_cast< OWeakObject * >(this), Any());
+ }
+ } else {
+ OSL_ASSERT(componentLoader->is());
+ loader = *componentLoader;
+ }
+ factories->push_back(
+ loader->activate(
+ name, rtl::OUString(),
+ (componentUrl == 0
+ ? (openRegistryKey(
+ keys[i],
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("UNO/LOCATION")))->
+ getAsciiValue())
+ : *componentUrl),
+ keys[i]));
+ }
+}
+
+void BackendImpl::componentLiveInsertion(
+ ComponentBackendDb::Data const & data,
+ std::vector< css::uno::Reference< css::uno::XInterface > > const &
+ factories)
+{
+ css::uno::Reference< css::container::XSet > set(
+ getComponentContext()->getServiceManager(), css::uno::UNO_QUERY_THROW);
+ std::vector< css::uno::Reference< css::uno::XInterface > >::const_iterator
+ factory(factories.begin());
+ for (t_stringlist::const_iterator i(data.implementationNames.begin());
+ i != data.implementationNames.end(); ++i)
+ {
+ try {
+ set->insert(css::uno::Any(*factory++));
+ } catch (container::ElementExistException &) {
+ OSL_TRACE(
+ "implementation %s already registered",
+ rtl::OUStringToOString(*i, RTL_TEXTENCODING_UTF8).getStr());
+ }
+ }
+ if (!data.singletons.empty()) {
+ css::uno::Reference< css::container::XNameContainer >
+ rootContext(
+ getComponentContext()->getValueByName(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("_root"))),
+ css::uno::UNO_QUERY);
+ if (rootContext.is()) {
+ for (t_stringpairvec::const_iterator i(data.singletons.begin());
+ i != data.singletons.end(); ++i)
+ {
+ rtl::OUString name(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/singletons/")) +
+ i->first);
+ try {
+ rootContext->removeByName(
+ name +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("/arguments")));
+ } catch (container::NoSuchElementException &) {}
+ try {
+ rootContext->insertByName(
+ (name +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("/service"))),
+ css::uno::Any(i->second));
+ } catch (container::ElementExistException &) {
+ rootContext->replaceByName(
+ (name +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("/service"))),
+ css::uno::Any(i->second));
+ }
+ try {
+ rootContext->insertByName(name, css::uno::Any());
+ } catch (container::ElementExistException &) {
+ OSL_TRACE(
+ "singleton %s already registered",
+ rtl::OUStringToOString(
+ i->first, RTL_TEXTENCODING_UTF8).getStr());
+ rootContext->replaceByName(name, css::uno::Any());
+ }
+ }
+ }
+ }
+}
+
+void BackendImpl::componentLiveRemoval(ComponentBackendDb::Data const & data) {
+ css::uno::Reference< css::container::XSet > set(
+ getComponentContext()->getServiceManager(), css::uno::UNO_QUERY_THROW);
+ for (t_stringlist::const_iterator i(data.implementationNames.begin());
+ i != data.implementationNames.end(); ++i)
+ {
+ try {
+ set->remove(css::uno::Any(*i));
+ } catch (css::container::NoSuchElementException &) {
+ // ignore if factory has not been live deployed
+ }
+ }
+ if (!data.singletons.empty()) {
+ css::uno::Reference< css::container::XNameContainer > rootContext(
+ getComponentContext()->getValueByName(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("_root"))),
+ css::uno::UNO_QUERY);
+ if (rootContext.is()) {
+ for (t_stringpairvec::const_iterator i(data.singletons.begin());
+ i != data.singletons.end(); ++i)
+ {
+ rtl::OUString name(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/singletons/")) +
+ i->first);
+ try {
+ rootContext->removeByName(
+ name +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("/arguments")));
+ rootContext->removeByName(
+ name +
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/service")));
+ rootContext->removeByName(name);
+ } catch (container::NoSuchElementException &) {}
+ }
+ }
+ }
+}
+
//______________________________________________________________________________
void BackendImpl::releaseObject( OUString const & id )
{
const ::osl::MutexGuard guard( getMutex() );
- if ( m_backendObjects.erase( id ) != 1 )
- {
- OSL_ASSERT( false );
- }
+ m_backendObjects.erase( id );
}
//______________________________________________________________________________
@@ -1121,66 +1457,45 @@ Reference<XComponentContext> raise_uno_process(
}
//------------------------------------------------------------------------------
-Reference<loader::XImplementationLoader>
-BackendImpl::ComponentPackageImpl::getComponentInfo(
- t_stringlist * pImplNames, t_stringpairvec * pSingletons,
+void BackendImpl::ComponentPackageImpl::getComponentInfo(
+ ComponentBackendDb::Data * data,
+ std::vector< css::uno::Reference< css::uno::XInterface > > * factories,
Reference<XComponentContext> const & xContext )
{
const Reference<loader::XImplementationLoader> xLoader(
xContext->getServiceManager()->createInstanceWithContext(
m_loader, xContext ), UNO_QUERY );
if (! xLoader.is())
- return Reference<loader::XImplementationLoader>();
+ {
+ throw css::deployment::DeploymentException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("cannot instantiate loader ")) +
+ m_loader),
+ static_cast< OWeakObject * >(this), Any());
+ }
// HACK: highly dependent on stoc/source/servicemanager
// and stoc/source/implreg implementation which rely on the same
// services.rdb format!
-
+ // .../UNO/LOCATION and .../UNO/ACTIVATOR appear not to be written by
+ // writeRegistryInfo, however, but are knwon, fixed values here, so
+ // can be passed into extractComponentData
+ rtl::OUString url(getURL());
const Reference<registry::XSimpleRegistry> xMemReg(
xContext->getServiceManager()->createInstanceWithContext(
OUSTR("com.sun.star.registry.SimpleRegistry"), xContext ),
UNO_QUERY_THROW );
xMemReg->open( OUString() /* in mem */, false, true );
- xLoader->writeRegistryInfo( xMemReg->getRootKey(), OUString(), getURL() );
-
- const Sequence< Reference<registry::XRegistryKey> > keys(
- xMemReg->getRootKey()->openKeys() );
- for ( sal_Int32 pos = keys.getLength(); pos--; )
- {
- Reference<registry::XRegistryKey> const & xImplKey = keys[ pos ];
- const OUString implName(
- xImplKey->getKeyName().copy( 1 /*leading slash*/ ) );
-
- // check for singletons:
- const Reference<registry::XRegistryKey> xSingletonKey(
- xImplKey->openKey( OUSTR("UNO/SINGLETONS") ) );
- if (xSingletonKey.is() && xSingletonKey->isValid())
- {
- const Sequence< Reference<registry::XRegistryKey> > singletonKeys(
- xSingletonKey->openKeys() );
- for ( sal_Int32 i = singletonKeys.getLength(); i--; )
- {
- Reference<registry::XRegistryKey> const & xSingleton =
- singletonKeys[ i ];
- pSingletons->push_back(
- ::std::pair<OUString, OUString>(
- xSingleton->getKeyName().copy(
- implName.getLength() +
- sizeof ("//UNO/SINGLETONS/") - 1 ),
- xSingleton->getStringValue() ) );
- }
- }
- else
- {
- pImplNames->push_back( implName );
- }
- }
-
- return xLoader;
+ xLoader->writeRegistryInfo( xMemReg->getRootKey(), OUString(), url );
+ getMyBackend()->extractComponentData(
+ xContext, xMemReg->getRootKey(), data, factories, &xLoader, &url);
}
// Package
//______________________________________________________________________________
+//We could use here BackendImpl::hasActiveEntry. However, this check is just as well.
+//And it also shows the problem if another extension has overwritten an implementation
+//entry, because it contains the same service implementation
beans::Optional< beans::Ambiguous<sal_Bool> >
BackendImpl::ComponentPackageImpl::isRegistered_(
::osl::ResettableMutexGuard &,
@@ -1266,224 +1581,75 @@ void BackendImpl::ComponentPackageImpl::processPackage_(
::rtl::Reference<AbortChannel> const & abortChannel,
Reference<XCommandEnvironment> const & xCmdEnv )
{
- BackendImpl * that = getMyBackend();
-
-
- const bool java = m_loader.equalsAsciiL(
- RTL_CONSTASCII_STRINGPARAM("com.sun.star.loader.Java2") );
- const OUString url( getURL() );
- bool isJavaTypelib;
- if (m_bRemoved)
- isJavaTypelib = m_registeredComponentsDb.javaTypeLibrary;
- else
- isJavaTypelib = java &&
- !jarManifestHeaderPresent( url, OUSTR("UNO-Type-Path"), xCmdEnv );
-
- ComponentBackendDb::Data data;
- data.javaTypeLibrary = isJavaTypelib;
- if (doRegisterPackage)
- {
- Reference <uno::XComponentContext> context(that->getComponentContext());
- if (! startup)
- {
- context.set(
- that->getObject( url ), UNO_QUERY );
-
- if (! context.is()) {
+ BackendImpl * that = getMyBackend();
+ rtl::OUString url(getURL());
+ if (doRegisterPackage) {
+ ComponentBackendDb::Data data;
+ css::uno::Reference< css::uno::XComponentContext > context;
+ if (startup) {
+ context = that->getComponentContext();
+ } else {
+ context.set(that->getObject(url), css::uno::UNO_QUERY);
+ if (!context.is()) {
context.set(
- that->insertObject( url, raise_uno_process(
- that->getComponentContext(),
- abortChannel ) ),
- UNO_QUERY_THROW );
+ that->insertObject(
+ url,
+ raise_uno_process(
+ that->getComponentContext(), abortChannel)),
+ css::uno::UNO_QUERY_THROW);
}
}
-
- const Reference<registry::XSimpleRegistry> xServicesRDB( getRDB() );
- const Reference<registry::XImplementationRegistration> xImplReg(
+ css::uno::Reference< css::registry::XImplementationRegistration>(
context->getServiceManager()->createInstanceWithContext(
- OUSTR("com.sun.star.registry.ImplementationRegistration"),
- context ), UNO_QUERY_THROW );
-
- xImplReg->registerImplementation( m_loader, url, xServicesRDB );
- //only write to unorc if registration was successful.
- //It may fail if there is no suitable java.
- if (isJavaTypelib)
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.ImplementationRegistration")),
+ context),
+ css::uno::UNO_QUERY_THROW)->registerImplementation(
+ m_loader, url, getRDB());
+ // Only write to unorc after successful registration; it may fail if
+ // there is no suitable java
+ if (m_loader.equalsAsciiL(
+ RTL_CONSTASCII_STRINGPARAM("com.sun.star.loader.Java2")) &&
+ !jarManifestHeaderPresent(url, OUSTR("UNO-Type-Path"), xCmdEnv))
{
- that->addToUnoRc( java, url, xCmdEnv );
+ that->addToUnoRc(RCITEM_JAR_TYPELIB, url, xCmdEnv);
data.javaTypeLibrary = true;
}
-
- t_stringlist implNames;
- t_stringpairvec singletons;
- const Reference<loader::XImplementationLoader> xLoader(
- getComponentInfo( &implNames, &singletons, context ) );
- data.implementationNames = implNames;
- data.singletons = singletons;
-
- if (!startup)
- {
- // factories live insertion:
- const Reference<container::XSet> xSet(
- that->getComponentContext()->getServiceManager(), UNO_QUERY_THROW );
- for ( t_stringlist::const_iterator iPos( implNames.begin() );
- iPos != implNames.end(); ++iPos )
- {
- checkAborted( abortChannel );
- OUString const & implName = *iPos;
- // activate factory:
- const Reference<XInterface> xFactory(
- xLoader->activate(
- implName, OUString(), url,
- xServicesRDB->getRootKey()->openKey(
- OUSTR("/IMPLEMENTATIONS/") + implName ) ) );
- try {
- xSet->insert( Any(xFactory) );
- } // ignore if factory has already been inserted:
- catch (container::ElementExistException &) {
- OSL_ENSURE( 0, "### factory already registered?" );
- }
- }
-
- if (! singletons.empty())
- {
- // singletons live insertion:
- const Reference<container::XNameContainer> xRootContext(
- that->getComponentContext()->getValueByName(
- OUSTR("_root") ), UNO_QUERY );
- if (xRootContext.is())
- {
- for ( t_stringpairvec::const_iterator iPos(
- singletons.begin() );
- iPos != singletons.end(); ++iPos )
- {
- ::std::pair<OUString, OUString> const & sp = *iPos;
- const OUString name( OUSTR("/singletons/") + sp.first );
- // assure no arguments:
- try {
- xRootContext->removeByName( name + OUSTR("/arguments"));
- } catch (container::NoSuchElementException &) {}
- // used service:
- try {
- xRootContext->insertByName(
- name + OUSTR("/service"), Any(sp.second) );
- } catch (container::ElementExistException &) {
- xRootContext->replaceByName(
- name + OUSTR("/service"), Any(sp.second) );
- }
- // singleton entry:
- try {
- xRootContext->insertByName( name, Any() );
- } catch (container::ElementExistException & exc) {
- (void) exc; // avoid warnings
- OSL_ENSURE(
- 0, OUStringToOString(
- exc.Message, RTL_TEXTENCODING_UTF8 ).getStr() );
- xRootContext->replaceByName( name, Any() );
- }
- }
- }
- }
+ std::vector< css::uno::Reference< css::uno::XInterface > > factories;
+ getComponentInfo(&data, &factories, context);
+ if (!startup) {
+ that->componentLiveInsertion(data, factories);
}
-
m_registered = REG_REGISTERED;
- getMyBackend()->addDataToDb(url, data);
- }
- else // revokePackage()
- {
- // set to VOID during revocation process:
+ that->addDataToDb(url, data);
+ } else { // revoke
m_registered = REG_VOID;
-
- //get the remote context. If it does not exist then use the local one
- Reference<XComponentContext> xContext(
- that->getObject( url ), UNO_QUERY );
- bool bRemoteContext = false;
- if (!xContext.is())
- xContext = that->getComponentContext();
- else
- bRemoteContext = true;
-
- t_stringlist implNames;
- t_stringpairvec singletons;
- if (m_bRemoved)
- {
- implNames = m_registeredComponentsDb.implementationNames;
- singletons = m_registeredComponentsDb.singletons;
+ ComponentBackendDb::Data data(that->readDataFromDb(url));
+ css::uno::Reference< css::uno::XComponentContext > context(
+ that->getObject(url), css::uno::UNO_QUERY);
+ bool remoteContext = context.is();
+ if (!remoteContext) {
+ context = that->getComponentContext();
}
- else
- {
- getComponentInfo( &implNames, &singletons, xContext );
+ if (!startup) {
+ that->componentLiveRemoval(data);
}
-
- if (!startup)
- {
- // factories live removal:
- const Reference<container::XSet> xSet(
- that->getComponentContext()->getServiceManager(), UNO_QUERY_THROW );
- for ( t_stringlist::const_iterator iPos( implNames.begin() );
- iPos != implNames.end(); ++iPos )
- {
- OUString const & implName = *iPos;
- try {
- xSet->remove( Any(implName) );
- } // ignore if factory has not been live deployed:
- catch (container::NoSuchElementException &) {
- }
- }
-
- if (! singletons.empty())
- {
- // singletons live removal:
- const Reference<container::XNameContainer> xRootContext(
- that->getComponentContext()->getValueByName(
- OUSTR("_root") ), UNO_QUERY );
- if (xRootContext.is())
- {
- for ( t_stringpairvec::const_iterator iPos(
- singletons.begin() );
- iPos != singletons.end(); ++iPos )
- {
- ::std::pair<OUString, OUString> const & sp = *iPos;
- const OUString name( OUSTR("/singletons/") + sp.first );
- // arguments:
- try {
- xRootContext->removeByName( name + OUSTR("/arguments"));
- }
- catch (container::NoSuchElementException &) {}
- // used service:
- try {
- xRootContext->removeByName( name + OUSTR("/service") );
- }
- catch (container::NoSuchElementException &) {}
- // singleton entry:
- try {
- xRootContext->removeByName( name );
- }
- catch (container::NoSuchElementException & exc) {
- (void) exc; // avoid warnings
- OSL_ENSURE(
- 0, OUStringToOString(
- exc.Message, RTL_TEXTENCODING_UTF8 ).getStr() );
- }
- }
- }
- }
+ css::uno::Reference< css::registry::XImplementationRegistration >(
+ context->getServiceManager()->createInstanceWithContext(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.ImplementationRegistration")),
+ context),
+ css::uno::UNO_QUERY_THROW)->revokeImplementation(url, getRDB());
+ if (data.javaTypeLibrary) {
+ that->removeFromUnoRc(RCITEM_JAR_TYPELIB, url, xCmdEnv);
+ }
+ if (remoteContext) {
+ that->releaseObject(url);
}
-
- const Reference<registry::XSimpleRegistry> xServicesRDB( getRDB() );
- const Reference<registry::XImplementationRegistration> xImplReg(
- xContext->getServiceManager()->createInstanceWithContext(
- OUSTR("com.sun.star.registry.ImplementationRegistration"),
- xContext ), UNO_QUERY_THROW );
- xImplReg->revokeImplementation( url, xServicesRDB );
-
- if (isJavaTypelib)
- that->removeFromUnoRc( java, url, xCmdEnv );
-
- if (bRemoteContext)
- that->releaseObject( url );
-
m_registered = REG_NOT_REGISTERED;
- getMyBackend()->deleteDataFromDb(url);
+ getMyBackend()->revokeEntryFromDb(url);
}
}
@@ -1525,7 +1691,8 @@ BackendImpl::TypelibraryPackageImpl::isRegistered_(
return beans::Optional< beans::Ambiguous<sal_Bool> >(
true /* IsPresent */,
beans::Ambiguous<sal_Bool>(
- that->hasInUnoRc( m_jarFile, getURL() ),
+ that->hasInUnoRc(
+ m_jarFile ? RCITEM_JAR_TYPELIB : RCITEM_RDB_TYPELIB, getURL() ),
false /* IsAmbiguous */ ) );
}
@@ -1591,11 +1758,13 @@ void BackendImpl::TypelibraryPackageImpl::processPackage_(
}
}
- that->addToUnoRc( m_jarFile, url, xCmdEnv );
+ that->addToUnoRc( m_jarFile ? RCITEM_JAR_TYPELIB : RCITEM_RDB_TYPELIB,
+ url, xCmdEnv );
}
else // revokePackage()
{
- that->removeFromUnoRc( m_jarFile, url, xCmdEnv );
+ that->removeFromUnoRc(
+ m_jarFile ? RCITEM_JAR_TYPELIB : RCITEM_RDB_TYPELIB, url, xCmdEnv );
// revoking types at runtime, possible, sensible?
if (!m_xTDprov.is())
@@ -1719,6 +1888,98 @@ BackendImpl::OtherPlatformPackageImpl::processPackage_(
getMyBackend()->deleteDataFromDb(aURL);
}
+BackendImpl * BackendImpl::ComponentsPackageImpl::getMyBackend() const
+{
+ BackendImpl * pBackend = static_cast<BackendImpl *>(m_myBackend.get());
+ if (NULL == pBackend)
+ {
+ //Throws a DisposedException
+ check();
+ //We should never get here...
+ throw RuntimeException(
+ OUSTR("Failed to get the BackendImpl"),
+ static_cast<OWeakObject*>(const_cast<ComponentsPackageImpl *>(this)));
+ }
+ return pBackend;
+}
+
+beans::Optional< beans::Ambiguous<sal_Bool> >
+BackendImpl::ComponentsPackageImpl::isRegistered_(
+ ::osl::ResettableMutexGuard &,
+ ::rtl::Reference<AbortChannel> const &,
+ Reference<XCommandEnvironment> const & )
+{
+ return beans::Optional< beans::Ambiguous<sal_Bool> >(
+ true,
+ beans::Ambiguous<sal_Bool>(
+ getMyBackend()->hasInUnoRc(RCITEM_COMPONENTS, getURL()), false));
+}
+
+void BackendImpl::ComponentsPackageImpl::processPackage_(
+ ::osl::ResettableMutexGuard &,
+ bool doRegisterPackage,
+ bool startup,
+ ::rtl::Reference<AbortChannel> const & abortChannel,
+ Reference<XCommandEnvironment> const & xCmdEnv )
+{
+ BackendImpl * that = getMyBackend();
+ rtl::OUString url(getURL());
+ if (doRegisterPackage) {
+ ComponentBackendDb::Data data;
+ data.javaTypeLibrary = false;
+ std::vector< css::uno::Reference< css::uno::XInterface > > factories;
+ css::uno::Reference< css::uno::XComponentContext > context(
+ that->getObject(url), css::uno::UNO_QUERY);
+ if (!context.is()) {
+ context.set(
+ that->insertObject(
+ url,
+ raise_uno_process(
+ that->getComponentContext(), abortChannel)),
+ css::uno::UNO_QUERY_THROW);
+ }
+ css::uno::Reference< css::registry::XSimpleRegistry > registry(
+ css::uno::Reference< css::lang::XMultiComponentFactory >(
+ that->getComponentContext()->getServiceManager(),
+ css::uno::UNO_SET_THROW)->createInstanceWithContext(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry")),
+ that->getComponentContext()),
+ css::uno::UNO_QUERY_THROW);
+ registry->open(expandUnoRcUrl(url), true, false);
+ getMyBackend()->extractComponentData(
+ context,
+ that->openRegistryKey(
+ registry->getRootKey(),
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("IMPLEMENTATIONS"))),
+ &data, &factories, 0, 0);
+ registry->close();
+ if (!startup) {
+ that->componentLiveInsertion(data, factories);
+ }
+ that->addDataToDb(url, data);
+ that->addToUnoRc(RCITEM_COMPONENTS, url, xCmdEnv);
+ } else { // revoke
+ that->removeFromUnoRc(RCITEM_COMPONENTS, url, xCmdEnv);
+ if (!startup) {
+ that->componentLiveRemoval(that->readDataFromDb(url));
+ }
+ that->releaseObject(url);
+ that->revokeEntryFromDb(url);
+ }
+}
+
+BackendImpl::ComponentsPackageImpl::ComponentsPackageImpl(
+ ::rtl::Reference<PackageRegistryBackend> const & myBackend,
+ OUString const & url, OUString const & name,
+ Reference<deployment::XPackageTypeInfo> const & xPackageType,
+ bool bRemoved, OUString const & identifier)
+ : Package( myBackend, url, name, name /* display-name */,
+ xPackageType, bRemoved, identifier)
+{}
+>>>>>>> ooo/DEV300_m101
+
} // anon namespace
namespace sdecl = comphelper::service_decl;
diff --git a/desktop/source/deployment/registry/component/dp_component.hrc b/desktop/source/deployment/registry/component/dp_component.hrc
index 5e9993ab12..82bb55068d 100644..100755
--- a/desktop/source/deployment/registry/component/dp_component.hrc
+++ b/desktop/source/deployment/registry/component/dp_component.hrc
@@ -33,6 +33,7 @@
#define RID_STR_DYN_COMPONENT (RID_DEPLOYMENT_COMPONENT_START+10)
#define RID_STR_JAVA_COMPONENT (RID_DEPLOYMENT_COMPONENT_START+11)
#define RID_STR_PYTHON_COMPONENT (RID_DEPLOYMENT_COMPONENT_START+12)
+#define RID_STR_COMPONENTS (RID_DEPLOYMENT_COMPONENT_START+13)
#define RID_STR_RDB_TYPELIB (RID_DEPLOYMENT_COMPONENT_START+20)
#define RID_STR_JAVA_TYPELIB (RID_DEPLOYMENT_COMPONENT_START+21)
diff --git a/desktop/source/deployment/registry/component/dp_component.src b/desktop/source/deployment/registry/component/dp_component.src
index 52dfa568eb..1b2a7c3641 100644..100755
--- a/desktop/source/deployment/registry/component/dp_component.src
+++ b/desktop/source/deployment/registry/component/dp_component.src
@@ -42,6 +42,11 @@ String RID_STR_PYTHON_COMPONENT
Text [ en-US ] = "UNO Python Component";
};
+String RID_STR_COMPONENTS
+{
+ Text [ en-US ] = "UNO Components";
+};
+
String RID_STR_RDB_TYPELIB
{
Text [ en-US ] = "UNO RDB Type Library";
diff --git a/desktop/source/deployment/registry/component/makefile.mk b/desktop/source/deployment/registry/component/makefile.mk
index b7ee5c203c..b7ee5c203c 100644..100755
--- a/desktop/source/deployment/registry/component/makefile.mk
+++ b/desktop/source/deployment/registry/component/makefile.mk
diff --git a/desktop/source/deployment/registry/configuration/dp_configuration.cxx b/desktop/source/deployment/registry/configuration/dp_configuration.cxx
index 88f5279d61..ecb9859769 100644..100755
--- a/desktop/source/deployment/registry/configuration/dp_configuration.cxx
+++ b/desktop/source/deployment/registry/configuration/dp_configuration.cxx
@@ -132,15 +132,21 @@ class BackendImpl : public ::dp_registry::backend::PackageRegistryBackend
void configmgrini_verify_init(
Reference<XCommandEnvironment> const & xCmdEnv );
void configmgrini_flush( Reference<XCommandEnvironment> const & xCmdEnv );
-
- bool addToConfigmgrIni( bool isSchema, OUString const & url,
+
+ /* The paramter isURL is false in the case of adding the conf:ini-entry
+ value from the backend db. This entry already contains the path as it
+ is used in the configmgr.ini.
+ */
+ bool addToConfigmgrIni( bool isSchema, bool isURL, OUString const & url,
Reference<XCommandEnvironment> const & xCmdEnv );
bool removeFromConfigmgrIni( bool isSchema, OUString const & url,
Reference<XCommandEnvironment> const & xCmdEnv );
void addDataToDb(OUString const & url, ConfigurationBackendDb::Data const & data);
::boost::optional<ConfigurationBackendDb::Data> readDataFromDb(OUString const & url);
- OUString deleteDataFromDb(OUString const & url);
+ void revokeEntryFromDb(OUString const & url);
+ bool hasActiveEntry(OUString const & url);
+ bool activateEntry(OUString const & url);
public:
BackendImpl( Sequence<Any> const & args,
@@ -149,6 +155,9 @@ public:
// XPackageRegistry
virtual Sequence< Reference<deployment::XPackageTypeInfo> > SAL_CALL
getSupportedPackageTypes() throw (RuntimeException);
+ virtual void SAL_CALL packageRemoved(OUString const & url, OUString const & mediaType)
+ throw (deployment::DeploymentException,
+ uno::RuntimeException);
using PackageRegistryBackend::disposing;
};
@@ -240,20 +249,28 @@ void BackendImpl::addDataToDb(
return data;
}
-OUString BackendImpl::deleteDataFromDb(OUString const & url)
+void BackendImpl::revokeEntryFromDb(OUString const & url)
{
- OUString url2(url);
- if (m_backendDb.get()) {
- boost::optional< ConfigurationBackendDb::Data > data(
- m_backendDb->getEntry(url));
- if (data) {
- url2 = expandUnoRcTerm(data->iniEntry);
- }
- m_backendDb->removeEntry(url);
- }
- return url2;
+ if (m_backendDb.get())
+ m_backendDb->revokeEntry(url);
+}
+
+bool BackendImpl::hasActiveEntry(OUString const & url)
+{
+ if (m_backendDb.get())
+ return m_backendDb->hasActiveEntry(url);
+ return false;
+}
+
+bool BackendImpl::activateEntry(OUString const & url)
+{
+ if (m_backendDb.get())
+ return m_backendDb->activateEntry(url);
+ return false;
}
+
+
// XPackageRegistry
//______________________________________________________________________________
Sequence< Reference<deployment::XPackageTypeInfo> >
@@ -261,6 +278,13 @@ BackendImpl::getSupportedPackageTypes() throw (RuntimeException)
{
return m_typeInfos;
}
+void BackendImpl::packageRemoved(OUString const & url, OUString const & /*mediaType*/)
+ throw (deployment::DeploymentException,
+ uno::RuntimeException)
+{
+ if (m_backendDb.get())
+ m_backendDb->removeEntry(url);
+}
// PackageRegistryBackend
//______________________________________________________________________________
@@ -447,10 +471,10 @@ void BackendImpl::configmgrini_flush(
}
//______________________________________________________________________________
-bool BackendImpl::addToConfigmgrIni( bool isSchema, OUString const & url_,
+bool BackendImpl::addToConfigmgrIni( bool isSchema, bool isURL, OUString const & url_,
Reference<XCommandEnvironment> const & xCmdEnv )
{
- const OUString rcterm( dp_misc::makeRcTerm(url_) );
+ const OUString rcterm( isURL ? dp_misc::makeRcTerm(url_) : url_ );
const ::osl::MutexGuard guard( getMutex() );
configmgrini_verify_init( xCmdEnv );
t_stringlist & rSet = getFiles(isSchema);
@@ -499,6 +523,7 @@ bool BackendImpl::removeFromConfigmgrIni(
// Package
//______________________________________________________________________________
+
BackendImpl * BackendImpl::PackageImpl::getMyBackend() const
{
BackendImpl * pBackend = static_cast<BackendImpl *>(m_myBackend.get());
@@ -524,7 +549,7 @@ BackendImpl::PackageImpl::isRegistered_(
const rtl::OUString url(getURL());
bool bReg = false;
- if (that->readDataFromDb(getURL()))
+ if (that->hasActiveEntry(getURL()))
bReg = true;
if (!bReg)
//fallback for user extension registered in berkeley DB
@@ -667,38 +692,48 @@ void BackendImpl::PackageImpl::processPackage_(
if (doRegisterPackage)
{
- ConfigurationBackendDb::Data data;
- if (!m_isSchema)
+ if (getMyBackend()->activateEntry(getURL()))
{
- const OUString sModFolder = that->createFolder(OUString(), xCmdEnv);
- bool out_replaced = false;
- url = replaceOrigin(url, sModFolder, xCmdEnv, out_replaced);
- if (out_replaced)
- data.dataUrl = sModFolder;
- else
- deleteTempFolder(sModFolder);
+ ::boost::optional<ConfigurationBackendDb::Data> data = that->readDataFromDb(url);
+ OSL_ASSERT(data);
+ that->addToConfigmgrIni( m_isSchema, false, data->iniEntry, xCmdEnv );
}
- //No need for live-deployment for bundled extension, because OOo
- //restarts after installation
- if (that->m_eContext != CONTEXT_BUNDLED
- && !startup)
+ else
{
- if (m_isSchema)
+ ConfigurationBackendDb::Data data;
+ if (!m_isSchema)
{
- com::sun::star::configuration::Update::get(
- that->m_xComponentContext)->insertExtensionXcsFile(
- that->m_eContext == CONTEXT_SHARED, expandUnoRcUrl(url));
+ const OUString sModFolder = that->createFolder(OUString(), xCmdEnv);
+ bool out_replaced = false;
+ url = replaceOrigin(url, sModFolder, xCmdEnv, out_replaced);
+ if (out_replaced)
+ data.dataUrl = sModFolder;
+ else
+ deleteTempFolder(sModFolder);
}
- else
+ //No need for live-deployment for bundled extension, because OOo
+ //restarts after installation
+ if (that->m_eContext != CONTEXT_BUNDLED
+ && that->m_eContext != CONTEXT_BUNDLED_PREREG
+ && !startup)
{
- com::sun::star::configuration::Update::get(
- that->m_xComponentContext)->insertExtensionXcuFile(
- that->m_eContext == CONTEXT_SHARED, expandUnoRcUrl(url));
+ if (m_isSchema)
+ {
+ com::sun::star::configuration::Update::get(
+ that->m_xComponentContext)->insertExtensionXcsFile(
+ that->m_eContext == CONTEXT_SHARED, expandUnoRcUrl(url));
+ }
+ else
+ {
+ com::sun::star::configuration::Update::get(
+ that->m_xComponentContext)->insertExtensionXcuFile(
+ that->m_eContext == CONTEXT_SHARED, expandUnoRcUrl(url));
+ }
}
+ that->addToConfigmgrIni( m_isSchema, true, url, xCmdEnv );
+ data.iniEntry = dp_misc::makeRcTerm(url);
+ that->addDataToDb(getURL(), data);
}
- that->addToConfigmgrIni( m_isSchema, url, xCmdEnv );
- data.iniEntry = dp_misc::makeRcTerm(url);
- that->addDataToDb(getURL(), data);
}
else // revoke
{
@@ -731,7 +766,7 @@ void BackendImpl::PackageImpl::processPackage_(
else
deleteTempFolder(sModFolder);
}
- that->addToConfigmgrIni(schema, url_replaced, xCmdEnv);
+ that->addToConfigmgrIni(schema, true, url_replaced, xCmdEnv);
data.iniEntry = dp_misc::makeRcTerm(url_replaced);
that->addDataToDb(url2, data);
}
@@ -749,12 +784,17 @@ void BackendImpl::PackageImpl::processPackage_(
OSL_ASSERT(0);
}
}
- url = that->deleteDataFromDb(url);
- if (!m_isSchema) {
+
+ ::boost::optional<ConfigurationBackendDb::Data> data = that->readDataFromDb(url);
+ //If an xcu file was life deployed then always a data entry is written.
+ //If the xcu file was already in the configmr.ini then there is also
+ //a data entry
+ if (!m_isSchema && data)
+ {
com::sun::star::configuration::Update::get(
- that->m_xComponentContext)->removeExtensionXcuFile(
- expandUnoRcUrl(url));
+ that->m_xComponentContext)->removeExtensionXcuFile(expandUnoRcTerm(data->iniEntry));
}
+ that->revokeEntryFromDb(url);
}
}
diff --git a/desktop/source/deployment/registry/configuration/dp_configuration.hrc b/desktop/source/deployment/registry/configuration/dp_configuration.hrc
index 479f50e20b..479f50e20b 100644..100755
--- a/desktop/source/deployment/registry/configuration/dp_configuration.hrc
+++ b/desktop/source/deployment/registry/configuration/dp_configuration.hrc
diff --git a/desktop/source/deployment/registry/configuration/dp_configuration.src b/desktop/source/deployment/registry/configuration/dp_configuration.src
index 3570eaf28f..3570eaf28f 100644..100755
--- a/desktop/source/deployment/registry/configuration/dp_configuration.src
+++ b/desktop/source/deployment/registry/configuration/dp_configuration.src
diff --git a/desktop/source/deployment/registry/configuration/dp_configurationbackenddb.cxx b/desktop/source/deployment/registry/configuration/dp_configurationbackenddb.cxx
index 9c0807de06..ecc09cb669 100644..100755
--- a/desktop/source/deployment/registry/configuration/dp_configurationbackenddb.cxx
+++ b/desktop/source/deployment/registry/configuration/dp_configurationbackenddb.cxx
@@ -84,12 +84,15 @@ OUString ConfigurationBackendDb::getKeyElementName()
void ConfigurationBackendDb::addEntry(::rtl::OUString const & url, Data const & data)
{
try{
- Reference<css::xml::dom::XNode> helpNode
- = writeKeyElement(url);
-
- writeSimpleElement(OUSTR("data-url"), data.dataUrl, helpNode);
- writeSimpleElement(OUSTR("ini-entry"), data.iniEntry, helpNode);
- save();
+ if (!activateEntry(url))
+ {
+ Reference<css::xml::dom::XNode> helpNode
+ = writeKeyElement(url);
+
+ writeSimpleElement(OUSTR("data-url"), data.dataUrl, helpNode);
+ writeSimpleElement(OUSTR("ini-entry"), data.iniEntry, helpNode);
+ save();
+ }
}
catch (css::deployment::DeploymentException& )
{
diff --git a/desktop/source/deployment/registry/configuration/dp_configurationbackenddb.hxx b/desktop/source/deployment/registry/configuration/dp_configurationbackenddb.hxx
index a652184aec..a652184aec 100644..100755
--- a/desktop/source/deployment/registry/configuration/dp_configurationbackenddb.hxx
+++ b/desktop/source/deployment/registry/configuration/dp_configurationbackenddb.hxx
diff --git a/desktop/source/deployment/registry/configuration/makefile.mk b/desktop/source/deployment/registry/configuration/makefile.mk
index 9bcbd50d42..9bcbd50d42 100644..100755
--- a/desktop/source/deployment/registry/configuration/makefile.mk
+++ b/desktop/source/deployment/registry/configuration/makefile.mk
diff --git a/desktop/source/deployment/registry/dp_backend.cxx b/desktop/source/deployment/registry/dp_backend.cxx
index fc2f5781e4..fe5c272480 100644..100755
--- a/desktop/source/deployment/registry/dp_backend.cxx
+++ b/desktop/source/deployment/registry/dp_backend.cxx
@@ -40,6 +40,7 @@
#include "ucbhelper/content.hxx"
#include "com/sun/star/lang/WrappedTargetRuntimeException.hpp"
#include "com/sun/star/deployment/InvalidRemovedParameterException.hpp"
+#include "com/sun/star/deployment/thePackageManagerFactory.hpp"
#include "com/sun/star/ucb/InteractiveAugmentedIOException.hpp"
#include "com/sun/star/ucb/IOErrorCode.hpp"
#include "com/sun/star/beans/StringPair.hpp"
@@ -100,6 +101,8 @@ PackageRegistryBackend::PackageRegistryBackend(
m_eContext = CONTEXT_BUNDLED;
else if (m_context.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("tmp") ))
m_eContext = CONTEXT_TMP;
+ else if (m_context.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("bundled_prereg") ))
+ m_eContext = CONTEXT_BUNDLED_PREREG;
else if (m_context.matchIgnoreAsciiCaseAsciiL(
RTL_CONSTASCII_STRINGPARAM("vnd.sun.star.tdoc:/") ))
m_eContext = CONTEXT_DOCUMENT;
@@ -524,6 +527,15 @@ OUString Package::getDescription() throw (
}
//______________________________________________________________________________
+OUString Package::getLicenseText() throw (
+ deployment::ExtensionRemovedException,RuntimeException)
+{
+ if (m_bRemoved)
+ throw deployment::ExtensionRemovedException();
+ return OUString();
+}
+
+//______________________________________________________________________________
Sequence<OUString> Package::getUpdateInformationURLs() throw (
deployment::ExtensionRemovedException, RuntimeException)
{
diff --git a/desktop/source/deployment/registry/dp_backenddb.cxx b/desktop/source/deployment/registry/dp_backenddb.cxx
index dabb414809..8f7c0265b8 100644..100755
--- a/desktop/source/deployment/registry/dp_backenddb.cxx
+++ b/desktop/source/deployment/registry/dp_backenddb.cxx
@@ -188,6 +188,74 @@ void BackendDb::removeEntry(::rtl::OUString const & url)
removeElement(sExpression.makeStringAndClear());
}
+void BackendDb::revokeEntry(::rtl::OUString const & url)
+{
+ try
+ {
+ Reference<css::xml::dom::XElement> entry = Reference<css::xml::dom::XElement>(getKeyElement(url), UNO_QUERY);
+ if (entry.is())
+ {
+ entry->setAttribute(OUSTR("revoked"), OUSTR("true"));
+ save();
+ }
+ }
+ catch(css::uno::Exception &)
+ {
+ Any exc( ::cppu::getCaughtException() );
+ throw css::deployment::DeploymentException(
+ OUSTR("Extension Manager: failed to revoke data entry in backend db: ") +
+ m_urlDb, 0, exc);
+ }
+}
+
+bool BackendDb::activateEntry(::rtl::OUString const & url)
+{
+ try
+ {
+ bool ret = false;
+ Reference<css::xml::dom::XElement> entry = Reference<css::xml::dom::XElement>(getKeyElement(url), UNO_QUERY);
+ if (entry.is())
+ {
+ //no attribute "active" means it is active, that is, registered.
+ entry->removeAttribute(OUSTR("revoked"));
+ save();
+ ret = true;
+ }
+ return ret;
+ }
+ catch(css::uno::Exception &)
+ {
+ Any exc( ::cppu::getCaughtException() );
+ throw css::deployment::DeploymentException(
+ OUSTR("Extension Manager: failed to revoke data entry in backend db: ") +
+ m_urlDb, 0, exc);
+ }
+}
+
+bool BackendDb::hasActiveEntry(::rtl::OUString const & url)
+{
+ try
+ {
+ bool ret = false;
+ Reference<css::xml::dom::XElement> entry = Reference<css::xml::dom::XElement>(getKeyElement(url), UNO_QUERY);
+ if (entry.is())
+ {
+ OUString sActive = entry->getAttribute(OUSTR("revoked"));
+ if (!sActive.equals(OUSTR("true")))
+ ret = true;
+ }
+ return ret;
+
+ }
+ catch(css::uno::Exception &)
+ {
+ Any exc( ::cppu::getCaughtException() );
+ throw css::deployment::DeploymentException(
+ OUSTR("Extension Manager: failed to determine an active entry in backend db: ") +
+ m_urlDb, 0, exc);
+ }
+}
+
Reference<css::xml::dom::XNode> BackendDb::getKeyElement(
::rtl::OUString const & url)
{
@@ -575,32 +643,34 @@ RegisteredDb::RegisteredDb(
void RegisteredDb::addEntry(::rtl::OUString const & url)
{
try{
-
- const OUString sNameSpace = getDbNSName();
- const OUString sPrefix = getNSPrefix();
- const OUString sEntry = getKeyElementName();
-
- Reference<css::xml::dom::XDocument> doc = getDocument();
- Reference<css::xml::dom::XNode> root = doc->getFirstChild();
-
+ if (!activateEntry(url))
+ {
+ const OUString sNameSpace = getDbNSName();
+ const OUString sPrefix = getNSPrefix();
+ const OUString sEntry = getKeyElementName();
+
+ Reference<css::xml::dom::XDocument> doc = getDocument();
+ Reference<css::xml::dom::XNode> root = doc->getFirstChild();
+
#if OSL_DEBUG_LEVEL > 0
- //There must not be yet an entry with the same url
- OUString sExpression(
- sPrefix + OUSTR(":") + sEntry + OUSTR("[@url = \"") + url + OUSTR("\"]"));
- Reference<css::xml::dom::XNode> _extensionNode =
- getXPathAPI()->selectSingleNode(root, sExpression);
- OSL_ASSERT(! _extensionNode.is());
+ //There must not be yet an entry with the same url
+ OUString sExpression(
+ sPrefix + OUSTR(":") + sEntry + OUSTR("[@url = \"") + url + OUSTR("\"]"));
+ Reference<css::xml::dom::XNode> _extensionNode =
+ getXPathAPI()->selectSingleNode(root, sExpression);
+ OSL_ASSERT(! _extensionNode.is());
#endif
- Reference<css::xml::dom::XElement> helpElement(
- doc->createElementNS(sNameSpace, sPrefix + OUSTR(":") + sEntry));
-
- helpElement->setAttribute(OUSTR("url"), url);
-
- Reference<css::xml::dom::XNode> helpNode(
- helpElement, UNO_QUERY_THROW);
- root->appendChild(helpNode);
-
- save();
+ Reference<css::xml::dom::XElement> helpElement(
+ doc->createElementNS(sNameSpace, sPrefix + OUSTR(":") + sEntry));
+
+ helpElement->setAttribute(OUSTR("url"), url);
+
+ Reference<css::xml::dom::XNode> helpNode(
+ helpElement, UNO_QUERY_THROW);
+ root->appendChild(helpNode);
+
+ save();
+ }
}
catch(css::uno::Exception &)
{
diff --git a/desktop/source/deployment/registry/dp_registry.cxx b/desktop/source/deployment/registry/dp_registry.cxx
index 26cf6d7217..9c2b8cb3a3 100644..100755
--- a/desktop/source/deployment/registry/dp_registry.cxx
+++ b/desktop/source/deployment/registry/dp_registry.cxx
@@ -136,6 +136,10 @@ public:
lang::IllegalArgumentException, RuntimeException);
virtual Sequence< Reference<deployment::XPackageTypeInfo> > SAL_CALL
getSupportedPackageTypes() throw (RuntimeException);
+ virtual void SAL_CALL packageRemoved(OUString const & url, OUString const & mediaType)
+ throw (deployment::DeploymentException,
+ RuntimeException);
+
};
//______________________________________________________________________________
@@ -186,6 +190,20 @@ OUString normalizeMediaType( OUString const & mediaType )
//______________________________________________________________________________
+void PackageRegistryImpl::packageRemoved(
+ ::rtl::OUString const & url, ::rtl::OUString const & mediaType)
+ throw (css::deployment::DeploymentException,
+ css::uno::RuntimeException)
+{
+ const t_string2registry::const_iterator i =
+ m_mediaType2backend.find(mediaType);
+
+ if (i != m_mediaType2backend.end())
+ {
+ i->second->packageRemoved(url, mediaType);
+ }
+}
+
void PackageRegistryImpl::insertBackend(
Reference<deployment::XPackageRegistry> const & xBackend )
{
diff --git a/desktop/source/deployment/registry/dp_registry.src b/desktop/source/deployment/registry/dp_registry.src
index 1658e4bdcc..1658e4bdcc 100644..100755
--- a/desktop/source/deployment/registry/dp_registry.src
+++ b/desktop/source/deployment/registry/dp_registry.src
diff --git a/desktop/source/deployment/registry/executable/dp_executable.cxx b/desktop/source/deployment/registry/executable/dp_executable.cxx
index 4ed1ea282f..f7deac5f47 100644..100755
--- a/desktop/source/deployment/registry/executable/dp_executable.cxx
+++ b/desktop/source/deployment/registry/executable/dp_executable.cxx
@@ -72,6 +72,7 @@ class BackendImpl : public ::dp_registry::backend::PackageRegistryBackend
bool getFileAttributes(sal_uInt64& out_Attributes);
bool isUrlTargetInExtension();
+
public:
inline ExecutablePackageImpl(
::rtl::Reference<PackageRegistryBackend> const & myBackend,
@@ -93,8 +94,8 @@ class BackendImpl : public ::dp_registry::backend::PackageRegistryBackend
OUString const & identifier, Reference<XCommandEnvironment> const & xCmdEnv );
void addDataToDb(OUString const & url);
- bool isRegisteredInDb(OUString const & url);
- void deleteDataFromDb(OUString const & url);
+ bool hasActiveEntry(OUString const & url);
+ void revokeEntryFromDb(OUString const & url);
Reference<deployment::XPackageTypeInfo> m_xExecutableTypeInfo;
std::auto_ptr<ExecutableBackendDb> m_backendDb;
@@ -105,6 +106,9 @@ public:
// XPackageRegistry
virtual Sequence< Reference<deployment::XPackageTypeInfo> > SAL_CALL
getSupportedPackageTypes() throw (RuntimeException);
+ virtual void SAL_CALL packageRemoved(OUString const & url, OUString const & mediaType)
+ throw (deployment::DeploymentException,
+ uno::RuntimeException);
using PackageRegistryBackend::disposing;
};
@@ -134,20 +138,20 @@ void BackendImpl::addDataToDb(OUString const & url)
m_backendDb->addEntry(url);
}
-bool BackendImpl::isRegisteredInDb(OUString const & url)
+void BackendImpl::revokeEntryFromDb(OUString const & url)
{
- bool ret = false;
if (m_backendDb.get())
- ret = m_backendDb->getEntry(url);
- return ret;
+ m_backendDb->revokeEntry(url);
}
-void BackendImpl::deleteDataFromDb(OUString const & url)
+bool BackendImpl::hasActiveEntry(OUString const & url)
{
if (m_backendDb.get())
- m_backendDb->removeEntry(url);
+ return m_backendDb->hasActiveEntry(url);
+ return false;
}
+
// XPackageRegistry
Sequence< Reference<deployment::XPackageTypeInfo> >
BackendImpl::getSupportedPackageTypes() throw (RuntimeException)
@@ -156,6 +160,14 @@ BackendImpl::getSupportedPackageTypes() throw (RuntimeException)
& m_xExecutableTypeInfo, 1);
}
+void BackendImpl::packageRemoved(OUString const & url, OUString const & /*mediaType*/)
+ throw (deployment::DeploymentException,
+ uno::RuntimeException)
+{
+ if (m_backendDb.get())
+ m_backendDb->removeEntry(url);
+}
+
// PackageRegistryBackend
Reference<deployment::XPackage> BackendImpl::bindPackage_(
OUString const & url, OUString const & mediaType, sal_Bool bRemoved,
@@ -217,7 +229,7 @@ BackendImpl::ExecutablePackageImpl::isRegistered_(
::rtl::Reference<dp_misc::AbortChannel> const &,
Reference<XCommandEnvironment> const & )
{
- bool registered = getMyBackend()->isRegisteredInDb(getURL());
+ bool registered = getMyBackend()->hasActiveEntry(getURL());
return beans::Optional< beans::Ambiguous<sal_Bool> >(
sal_True /* IsPresent */,
beans::Ambiguous<sal_Bool>(
@@ -248,7 +260,8 @@ void BackendImpl::ExecutablePackageImpl::processPackage_(
else if (getMyBackend()->m_context.equals(OUSTR("shared")))
attributes |= (osl_File_Attribute_OwnExe | osl_File_Attribute_GrpExe
| osl_File_Attribute_OthExe);
- else if (!getMyBackend()->m_context.equals(OUSTR("bundled")))
+ else if (!getMyBackend()->m_context.equals(OUSTR("bundled"))
+ && !getMyBackend()->m_context.equals(OUSTR("bundled_prereg")))
//Bundled extension are required to be in the properly
//installed. That is an executable must have the right flags
OSL_ASSERT(0);
@@ -261,7 +274,7 @@ void BackendImpl::ExecutablePackageImpl::processPackage_(
}
else
{
- getMyBackend()->deleteDataFromDb(getURL());
+ getMyBackend()->revokeEntryFromDb(getURL());
}
}
@@ -277,7 +290,8 @@ bool BackendImpl::ExecutablePackageImpl::isUrlTargetInExtension()
sExtensionDir = dp_misc::expandUnoRcTerm(OUSTR("$UNO_USER_PACKAGES_CACHE"));
else if (getMyBackend()->m_context.equals(OUSTR("shared")))
sExtensionDir = dp_misc::expandUnoRcTerm(OUSTR("$UNO_SHARED_PACKAGES_CACHE"));
- else if (getMyBackend()->m_context.equals(OUSTR("bundled")))
+ else if (getMyBackend()->m_context.equals(OUSTR("bundled"))
+ || getMyBackend()->m_context.equals(OUSTR("bundled_prereg")))
sExtensionDir = dp_misc::expandUnoRcTerm(OUSTR("$BUNDLED_EXTENSIONS"));
else
OSL_ASSERT(0);
diff --git a/desktop/source/deployment/registry/executable/dp_executablebackenddb.cxx b/desktop/source/deployment/registry/executable/dp_executablebackenddb.cxx
index 56a9645974..56a9645974 100644..100755
--- a/desktop/source/deployment/registry/executable/dp_executablebackenddb.cxx
+++ b/desktop/source/deployment/registry/executable/dp_executablebackenddb.cxx
diff --git a/desktop/source/deployment/registry/executable/dp_executablebackenddb.hxx b/desktop/source/deployment/registry/executable/dp_executablebackenddb.hxx
index 4255319119..4255319119 100644..100755
--- a/desktop/source/deployment/registry/executable/dp_executablebackenddb.hxx
+++ b/desktop/source/deployment/registry/executable/dp_executablebackenddb.hxx
diff --git a/desktop/source/deployment/registry/executable/makefile.mk b/desktop/source/deployment/registry/executable/makefile.mk
index 81b2baa44e..81b2baa44e 100644..100755
--- a/desktop/source/deployment/registry/executable/makefile.mk
+++ b/desktop/source/deployment/registry/executable/makefile.mk
diff --git a/desktop/source/deployment/registry/help/dp_help.cxx b/desktop/source/deployment/registry/help/dp_help.cxx
index 58207e50cb..22eb4cf8aa 100644..100755
--- a/desktop/source/deployment/registry/help/dp_help.cxx
+++ b/desktop/source/deployment/registry/help/dp_help.cxx
@@ -81,7 +81,7 @@ class BackendImpl : public ::dp_registry::backend::PackageRegistryBackend
::rtl::Reference<AbortChannel> const & abortChannel,
Reference<XCommandEnvironment> const & xCmdEnv );
- bool extensionContainsCompiledHelp();
+
public:
PackageImpl(
::rtl::Reference<PackageRegistryBackend> const & myBackend,
@@ -89,6 +89,8 @@ class BackendImpl : public ::dp_registry::backend::PackageRegistryBackend
Reference<deployment::XPackageTypeInfo> const & xPackageType,
bool bRemoved, OUString const & identifier);
+ bool extensionContainsCompiledHelp();
+
//XPackage
virtual css::beans::Optional< ::rtl::OUString > SAL_CALL getRegistrationDataURL()
throw (deployment::ExtensionRemovedException, css::uno::RuntimeException);
@@ -101,14 +103,16 @@ class BackendImpl : public ::dp_registry::backend::PackageRegistryBackend
sal_Bool bRemoved, OUString const & identifier,
Reference<XCommandEnvironment> const & xCmdEnv );
- void implProcessHelp( Reference< deployment::XPackage > xPackage, bool doRegisterPackage,
- bool compiledHelp, Reference<ucb::XCommandEnvironment> const & xCmdEnv);
+ void implProcessHelp( PackageImpl * package, bool doRegisterPackage,
+ Reference<ucb::XCommandEnvironment> const & xCmdEnv);
void implCollectXhpFiles( const rtl::OUString& aDir,
std::vector< rtl::OUString >& o_rXhpFileVector );
void addDataToDb(OUString const & url, HelpBackendDb::Data const & data);
::boost::optional<HelpBackendDb::Data> readDataFromDb(OUString const & url);
- void deleteDataFromDb(OUString const & url);
+ bool hasActiveEntry(OUString const & url);
+ void revokeEntryFromDb(OUString const & url);
+ bool activateEntry(OUString const & url);
Reference< ucb::XSimpleFileAccess > getFileAccess( void );
Reference< ucb::XSimpleFileAccess > m_xSFA;
@@ -124,6 +128,10 @@ public:
// XPackageRegistry
virtual Sequence< Reference<deployment::XPackageTypeInfo> > SAL_CALL
getSupportedPackageTypes() throw (RuntimeException);
+ virtual void SAL_CALL packageRemoved(OUString const & url, OUString const & mediaType)
+ throw (deployment::DeploymentException,
+ uno::RuntimeException);
+
};
//______________________________________________________________________________
@@ -163,6 +171,14 @@ BackendImpl::getSupportedPackageTypes() throw (RuntimeException)
return m_typeInfos;
}
+void BackendImpl::packageRemoved(OUString const & url, OUString const & /*mediaType*/)
+ throw (deployment::DeploymentException,
+ uno::RuntimeException)
+{
+ if (m_backendDb.get())
+ m_backendDb->removeEntry(url);
+}
+
// PackageRegistryBackend
//______________________________________________________________________________
Reference<deployment::XPackage> BackendImpl::bindPackage_(
@@ -221,12 +237,27 @@ void BackendImpl::addDataToDb(
return data;
}
-void BackendImpl::deleteDataFromDb(OUString const & url)
+bool BackendImpl::hasActiveEntry(OUString const & url)
{
if (m_backendDb.get())
- m_backendDb->removeEntry(url);
+ return m_backendDb->hasActiveEntry(url);
+ return false;
+}
+
+void BackendImpl::revokeEntryFromDb(OUString const & url)
+{
+ if (m_backendDb.get())
+ m_backendDb->revokeEntry(url);
}
+bool BackendImpl::activateEntry(OUString const & url)
+{
+ if (m_backendDb.get())
+ return m_backendDb->activateEntry(url);
+ return false;
+}
+
+
//##############################################################################
BackendImpl::PackageImpl::PackageImpl(
::rtl::Reference<PackageRegistryBackend> const & myBackend,
@@ -254,7 +285,7 @@ BackendImpl * BackendImpl::PackageImpl::getMyBackend() const
return pBackend;
}
-bool BackendImpl::PackageImpl::extensionContainsCompiledHelp()
+bool BackendImpl::PackageImpl::extensionContainsCompiledHelp()
{
bool bCompiled = true;
rtl::OUString aExpandedHelpURL = dp_misc::expandUnoRcUrl(getURL());
@@ -304,6 +335,7 @@ bool BackendImpl::PackageImpl::extensionContainsCompiledHelp()
}
return bCompiled;
}
+
//______________________________________________________________________________
beans::Optional< beans::Ambiguous<sal_Bool> >
BackendImpl::PackageImpl::isRegistered_(
@@ -314,7 +346,7 @@ BackendImpl::PackageImpl::isRegistered_(
BackendImpl * that = getMyBackend();
bool bReg = false;
- if (that->readDataFromDb(getURL()))
+ if (that->hasActiveEntry(getURL()))
bReg = true;
return beans::Optional< beans::Ambiguous<sal_Bool> >( true, beans::Ambiguous<sal_Bool>( bReg, false ) );
@@ -333,9 +365,7 @@ void BackendImpl::PackageImpl::processPackage_(
(void)xCmdEnv;
BackendImpl* that = getMyBackend();
- Reference< deployment::XPackage > xThisPackage( this );
- that->implProcessHelp( xThisPackage, doRegisterPackage,
- extensionContainsCompiledHelp(), xCmdEnv);
+ that->implProcessHelp( this, doRegisterPackage, xCmdEnv);
}
beans::Optional< OUString > BackendImpl::PackageImpl::getRegistrationDataURL()
@@ -347,8 +377,8 @@ beans::Optional< OUString > BackendImpl::PackageImpl::getRegistrationDataURL()
::boost::optional<HelpBackendDb::Data> data =
getMyBackend()->readDataFromDb(getURL());
-
- if (data)
+
+ if (data && getMyBackend()->hasActiveEntry(getURL()))
return beans::Optional<OUString>(true, data->dataUrl);
return beans::Optional<OUString>(true, OUString());
@@ -359,224 +389,226 @@ beans::Optional< OUString > BackendImpl::PackageImpl::getRegistrationDataURL()
static rtl::OUString aSlash(RTL_CONSTASCII_USTRINGPARAM("/"));
static rtl::OUString aHelpStr(RTL_CONSTASCII_USTRINGPARAM("help"));
-void BackendImpl::implProcessHelp
-( Reference< deployment::XPackage > xPackage, bool doRegisterPackage, bool compiledHelp,
- Reference<ucb::XCommandEnvironment> const & xCmdEnv)
+void BackendImpl::implProcessHelp(
+ PackageImpl * package, bool doRegisterPackage,
+ Reference<ucb::XCommandEnvironment> const & xCmdEnv)
{
+ Reference< deployment::XPackage > xPackage(package);
OSL_ASSERT(xPackage.is());
if (doRegisterPackage)
{
- HelpBackendDb::Data data;
-
- if (compiledHelp)
+ //revive already processed help if possible
+ if ( !activateEntry(xPackage->getURL()))
{
+ HelpBackendDb::Data data;
data.dataUrl = xPackage->getURL();
- }
- else
- {
- const OUString sHelpFolder = createFolder(OUString(), xCmdEnv);
- data.dataUrl = sHelpFolder;
-
- Reference< ucb::XSimpleFileAccess > xSFA = getFileAccess();
- rtl::OUString aHelpURL = xPackage->getURL();
- rtl::OUString aExpandedHelpURL = dp_misc::expandUnoRcUrl( aHelpURL );
- rtl::OUString aName = xPackage->getName();
- if( !xSFA->isFolder( aExpandedHelpURL ) )
- {
- rtl::OUString aErrStr = getResourceString( RID_STR_HELPPROCESSING_GENERAL_ERROR );
- aErrStr += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "No help folder" ));
- OWeakObject* oWeakThis = static_cast<OWeakObject *>(this);
- throw deployment::DeploymentException( rtl::OUString(), oWeakThis,
- makeAny( uno::Exception( aErrStr, oWeakThis ) ) );
- }
-
- Reference<XComponentContext> const & xContext = getComponentContext();
- Reference< script::XInvocation > xInvocation;
- if( xContext.is() )
+ if (!package->extensionContainsCompiledHelp())
{
- try
- {
- xInvocation = Reference< script::XInvocation >(
- xContext->getServiceManager()->createInstanceWithContext( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
- "com.sun.star.help.HelpIndexer" )), xContext ) , UNO_QUERY );
- }
- catch (Exception &)
+ const OUString sHelpFolder = createFolder(OUString(), xCmdEnv);
+ data.dataUrl = sHelpFolder;
+
+ Reference< ucb::XSimpleFileAccess > xSFA = getFileAccess();
+ rtl::OUString aHelpURL = xPackage->getURL();
+ rtl::OUString aExpandedHelpURL = dp_misc::expandUnoRcUrl( aHelpURL );
+ rtl::OUString aName = xPackage->getName();
+ if( !xSFA->isFolder( aExpandedHelpURL ) )
{
- // i98680: Survive missing lucene
+ rtl::OUString aErrStr = getResourceString( RID_STR_HELPPROCESSING_GENERAL_ERROR );
+ aErrStr += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "No help folder" ));
+ OWeakObject* oWeakThis = static_cast<OWeakObject *>(this);
+ throw deployment::DeploymentException( rtl::OUString(), oWeakThis,
+ makeAny( uno::Exception( aErrStr, oWeakThis ) ) );
}
- }
-
- // Scan languages
- Sequence< rtl::OUString > aLanguageFolderSeq = xSFA->getFolderContents( aExpandedHelpURL, true );
- sal_Int32 nLangCount = aLanguageFolderSeq.getLength();
- const rtl::OUString* pSeq = aLanguageFolderSeq.getConstArray();
- for( sal_Int32 iLang = 0 ; iLang < nLangCount ; ++iLang )
- {
- rtl::OUString aLangURL = pSeq[iLang];
- if( xSFA->isFolder( aLangURL ) )
+
+ Reference<XComponentContext> const & xContext = getComponentContext();
+ Reference< script::XInvocation > xInvocation;
+ if( xContext.is() )
{
- std::vector< rtl::OUString > aXhpFileVector;
-
- // calculate jar file URL
- sal_Int32 indexStartSegment = aLangURL.lastIndexOf('/');
- // for example "/en"
- OUString langFolderURLSegment(
- aLangURL.copy(
- indexStartSegment + 1, aLangURL.getLength() - indexStartSegment - 1));
-
- //create the folder in the "temporary folder"
- ::ucbhelper::Content langFolderContent;
- const OUString langFolderDest = makeURL(sHelpFolder, langFolderURLSegment);
- const OUString langFolderDestExpanded = ::dp_misc::expandUnoRcUrl(langFolderDest);
- ::dp_misc::create_folder(
- &langFolderContent,
- langFolderDest, xCmdEnv);
-
- rtl::OUString aJarFile(
- makeURL(sHelpFolder, langFolderURLSegment + aSlash + aHelpStr +
- OUSTR(".jar")));
- aJarFile = ::dp_misc::expandUnoRcUrl(aJarFile);
-
- rtl::OUString aEncodedJarFilePath = rtl::Uri::encode(
- aJarFile, rtl_UriCharClassPchar,
- rtl_UriEncodeIgnoreEscapes,
- RTL_TEXTENCODING_UTF8 );
- rtl::OUString aDestBasePath(RTL_CONSTASCII_USTRINGPARAM( "vnd.sun.star.pkg://" ));
- aDestBasePath += aEncodedJarFilePath;
- aDestBasePath += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "/" ));
-
- sal_Int32 nLenLangFolderURL = aLangURL.getLength() + 1;
-
- Sequence< rtl::OUString > aSubLangSeq = xSFA->getFolderContents( aLangURL, true );
- sal_Int32 nSubLangCount = aSubLangSeq.getLength();
- const rtl::OUString* pSubLangSeq = aSubLangSeq.getConstArray();
- for( sal_Int32 iSubLang = 0 ; iSubLang < nSubLangCount ; ++iSubLang )
+ try
{
- rtl::OUString aSubFolderURL = pSubLangSeq[iSubLang];
- if( !xSFA->isFolder( aSubFolderURL ) )
- continue;
-
- implCollectXhpFiles( aSubFolderURL, aXhpFileVector );
-
- // Copy to package (later: move?)
- rtl::OUString aDestPath = aDestBasePath;
- rtl::OUString aPureFolderName = aSubFolderURL.copy( nLenLangFolderURL );
- aDestPath += aPureFolderName;
- xSFA->copy( aSubFolderURL, aDestPath );
- }
-
- // Call compiler
- sal_Int32 nXhpFileCount = aXhpFileVector.size();
- rtl::OUString* pXhpFiles = new rtl::OUString[nXhpFileCount];
- for( sal_Int32 iXhp = 0 ; iXhp < nXhpFileCount ; ++iXhp )
- {
- rtl::OUString aXhpFile = aXhpFileVector[iXhp];
- rtl::OUString aXhpRelFile = aXhpFile.copy( nLenLangFolderURL );
- pXhpFiles[iXhp] = aXhpRelFile;
+ xInvocation = Reference< script::XInvocation >(
+ xContext->getServiceManager()->createInstanceWithContext(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("com.sun.star.help.HelpIndexer" )), xContext ) , UNO_QUERY );
}
-
- rtl::OUString aOfficeHelpPath( SvtPathOptions().GetHelpPath() );
- rtl::OUString aOfficeHelpPathFileURL;
- ::osl::File::getFileURLFromSystemPath( aOfficeHelpPath, aOfficeHelpPathFileURL );
-
- HelpProcessingErrorInfo aErrorInfo;
- bool bSuccess = compileExtensionHelp(
- aOfficeHelpPathFileURL, aHelpStr, aLangURL,
- nXhpFileCount, pXhpFiles,
- langFolderDestExpanded, aErrorInfo );
-
- if( bSuccess && xInvocation.is() )
+ catch (Exception &)
{
- Sequence<uno::Any> aParamsSeq( 6 );
-
- aParamsSeq[0] = uno::makeAny( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "-lang" )) );
-
- rtl::OUString aLang;
- sal_Int32 nLastSlash = aLangURL.lastIndexOf( '/' );
- if( nLastSlash != -1 )
- aLang = aLangURL.copy( nLastSlash + 1 );
- else
- aLang = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "en" ));
- aParamsSeq[1] = uno::makeAny( aLang );
-
- aParamsSeq[2] = uno::makeAny( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "-mod" )) );
- aParamsSeq[3] = uno::makeAny( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "help" )) );
-
- aParamsSeq[4] = uno::makeAny( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "-zipdir" )) );
- rtl::OUString aSystemPath;
- osl::FileBase::getSystemPathFromFileURL(
- langFolderDestExpanded, aSystemPath );
- aParamsSeq[5] = uno::makeAny( aSystemPath );
-
- Sequence< sal_Int16 > aOutParamIndex;
- Sequence< uno::Any > aOutParam;
- uno::Any aRet = xInvocation->invoke( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "createIndex" )),
- aParamsSeq, aOutParamIndex, aOutParam );
+ // i98680: Survive missing lucene
}
-
- if( !bSuccess )
+ }
+
+ // Scan languages
+ Sequence< rtl::OUString > aLanguageFolderSeq = xSFA->getFolderContents( aExpandedHelpURL, true );
+ sal_Int32 nLangCount = aLanguageFolderSeq.getLength();
+ const rtl::OUString* pSeq = aLanguageFolderSeq.getConstArray();
+ for( sal_Int32 iLang = 0 ; iLang < nLangCount ; ++iLang )
+ {
+ rtl::OUString aLangURL = pSeq[iLang];
+ if( xSFA->isFolder( aLangURL ) )
{
- USHORT nErrStrId = 0;
- switch( aErrorInfo.m_eErrorClass )
+ std::vector< rtl::OUString > aXhpFileVector;
+
+ // calculate jar file URL
+ sal_Int32 indexStartSegment = aLangURL.lastIndexOf('/');
+ // for example "/en"
+ OUString langFolderURLSegment(
+ aLangURL.copy(
+ indexStartSegment + 1, aLangURL.getLength() - indexStartSegment - 1));
+
+ //create the folder in the "temporary folder"
+ ::ucbhelper::Content langFolderContent;
+ const OUString langFolderDest = makeURL(sHelpFolder, langFolderURLSegment);
+ const OUString langFolderDestExpanded = ::dp_misc::expandUnoRcUrl(langFolderDest);
+ ::dp_misc::create_folder(
+ &langFolderContent,
+ langFolderDest, xCmdEnv);
+
+ rtl::OUString aJarFile(
+ makeURL(sHelpFolder, langFolderURLSegment + aSlash + aHelpStr +
+ OUSTR(".jar")));
+ aJarFile = ::dp_misc::expandUnoRcUrl(aJarFile);
+
+ rtl::OUString aEncodedJarFilePath = rtl::Uri::encode(
+ aJarFile, rtl_UriCharClassPchar,
+ rtl_UriEncodeIgnoreEscapes,
+ RTL_TEXTENCODING_UTF8 );
+ rtl::OUString aDestBasePath = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "vnd.sun.star.zip://" ));
+ aDestBasePath += aEncodedJarFilePath;
+ aDestBasePath += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "/" ));
+
+ sal_Int32 nLenLangFolderURL = aLangURL.getLength() + 1;
+
+ Sequence< rtl::OUString > aSubLangSeq = xSFA->getFolderContents( aLangURL, true );
+ sal_Int32 nSubLangCount = aSubLangSeq.getLength();
+ const rtl::OUString* pSubLangSeq = aSubLangSeq.getConstArray();
+ for( sal_Int32 iSubLang = 0 ; iSubLang < nSubLangCount ; ++iSubLang )
+ {
+ rtl::OUString aSubFolderURL = pSubLangSeq[iSubLang];
+ if( !xSFA->isFolder( aSubFolderURL ) )
+ continue;
+
+ implCollectXhpFiles( aSubFolderURL, aXhpFileVector );
+
+ // Copy to package (later: move?)
+ rtl::OUString aDestPath = aDestBasePath;
+ rtl::OUString aPureFolderName = aSubFolderURL.copy( nLenLangFolderURL );
+ aDestPath += aPureFolderName;
+ xSFA->copy( aSubFolderURL, aDestPath );
+ }
+
+ // Call compiler
+ sal_Int32 nXhpFileCount = aXhpFileVector.size();
+ rtl::OUString* pXhpFiles = new rtl::OUString[nXhpFileCount];
+ for( sal_Int32 iXhp = 0 ; iXhp < nXhpFileCount ; ++iXhp )
+ {
+ rtl::OUString aXhpFile = aXhpFileVector[iXhp];
+ rtl::OUString aXhpRelFile = aXhpFile.copy( nLenLangFolderURL );
+ pXhpFiles[iXhp] = aXhpRelFile;
+ }
+
+ rtl::OUString aOfficeHelpPath( SvtPathOptions().GetHelpPath() );
+ rtl::OUString aOfficeHelpPathFileURL;
+ ::osl::File::getFileURLFromSystemPath( aOfficeHelpPath, aOfficeHelpPathFileURL );
+
+ HelpProcessingErrorInfo aErrorInfo;
+ bool bSuccess = compileExtensionHelp(
+ aOfficeHelpPathFileURL, aHelpStr, aLangURL,
+ nXhpFileCount, pXhpFiles,
+ langFolderDestExpanded, aErrorInfo );
+
+ if( bSuccess && xInvocation.is() )
{
- case HELPPROCESSING_GENERAL_ERROR:
- case HELPPROCESSING_INTERNAL_ERROR: nErrStrId = RID_STR_HELPPROCESSING_GENERAL_ERROR; break;
- case HELPPROCESSING_XMLPARSING_ERROR: nErrStrId = RID_STR_HELPPROCESSING_XMLPARSING_ERROR; break;
- default: ;
- };
-
- rtl::OUString aErrStr;
- if( nErrStrId != 0 )
+ Sequence<uno::Any> aParamsSeq( 6 );
+
+ aParamsSeq[0] = uno::makeAny( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "-lang" ) ));
+
+ rtl::OUString aLang;
+ sal_Int32 nLastSlash = aLangURL.lastIndexOf( '/' );
+ if( nLastSlash != -1 )
+ aLang = aLangURL.copy( nLastSlash + 1 );
+ else
+ aLang = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "en" ));
+ aParamsSeq[1] = uno::makeAny( aLang );
+
+ aParamsSeq[2] = uno::makeAny( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "-mod" ) ));
+ aParamsSeq[3] = uno::makeAny( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "help" ) ));
+
+ aParamsSeq[4] = uno::makeAny( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "-zipdir" ) ));
+ rtl::OUString aSystemPath;
+ osl::FileBase::getSystemPathFromFileURL(
+ langFolderDestExpanded, aSystemPath );
+ aParamsSeq[5] = uno::makeAny( aSystemPath );
+
+ Sequence< sal_Int16 > aOutParamIndex;
+ Sequence< uno::Any > aOutParam;
+ uno::Any aRet = xInvocation->invoke( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "createIndex" )),
+ aParamsSeq, aOutParamIndex, aOutParam );
+ }
+
+ if( !bSuccess )
{
- aErrStr = getResourceString( nErrStrId );
-
- // Remoce CR/LF
- rtl::OUString aErrMsg( aErrorInfo.m_aErrorMsg );
- sal_Unicode nCR = 13, nLF = 10;
- sal_Int32 nSearchCR = aErrMsg.indexOf( nCR );
- sal_Int32 nSearchLF = aErrMsg.indexOf( nLF );
- sal_Int32 nCopy;
- if( nSearchCR != -1 || nSearchLF != -1 )
+ sal_uInt16 nErrStrId = 0;
+ switch( aErrorInfo.m_eErrorClass )
{
- if( nSearchCR == -1 )
- nCopy = nSearchLF;
- else if( nSearchLF == -1 )
- nCopy = nSearchCR;
- else
- nCopy = ( nSearchCR < nSearchLF ) ? nSearchCR : nSearchLF;
-
- aErrMsg = aErrMsg.copy( 0, nCopy );
- }
- aErrStr += aErrMsg;
- if( nErrStrId == RID_STR_HELPPROCESSING_XMLPARSING_ERROR && aErrorInfo.m_aXMLParsingFile.getLength() )
+ case HELPPROCESSING_GENERAL_ERROR:
+ case HELPPROCESSING_INTERNAL_ERROR: nErrStrId = RID_STR_HELPPROCESSING_GENERAL_ERROR; break;
+ case HELPPROCESSING_XMLPARSING_ERROR: nErrStrId = RID_STR_HELPPROCESSING_XMLPARSING_ERROR; break;
+ default: ;
+ };
+
+ rtl::OUString aErrStr;
+ if( nErrStrId != 0 )
{
- aErrStr += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( " in " ));
-
- rtl::OUString aDecodedFile = rtl::Uri::decode( aErrorInfo.m_aXMLParsingFile,
- rtl_UriDecodeWithCharset, RTL_TEXTENCODING_UTF8 );
- aErrStr += aDecodedFile;
- if( aErrorInfo.m_nXMLParsingLine != -1 )
+ aErrStr = getResourceString( nErrStrId );
+
+ // Remoce CR/LF
+ rtl::OUString aErrMsg( aErrorInfo.m_aErrorMsg );
+ sal_Unicode nCR = 13, nLF = 10;
+ sal_Int32 nSearchCR = aErrMsg.indexOf( nCR );
+ sal_Int32 nSearchLF = aErrMsg.indexOf( nLF );
+ sal_Int32 nCopy;
+ if( nSearchCR != -1 || nSearchLF != -1 )
{
- aErrStr += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( ", line " ));
- aErrStr += ::rtl::OUString::valueOf( aErrorInfo.m_nXMLParsingLine );
+ if( nSearchCR == -1 )
+ nCopy = nSearchLF;
+ else if( nSearchLF == -1 )
+ nCopy = nSearchCR;
+ else
+ nCopy = ( nSearchCR < nSearchLF ) ? nSearchCR : nSearchLF;
+
+ aErrMsg = aErrMsg.copy( 0, nCopy );
+ }
+ aErrStr += aErrMsg;
+ if( nErrStrId == RID_STR_HELPPROCESSING_XMLPARSING_ERROR && aErrorInfo.m_aXMLParsingFile.getLength() )
+ {
+ aErrStr += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( " in " ));
+
+ rtl::OUString aDecodedFile = rtl::Uri::decode( aErrorInfo.m_aXMLParsingFile,
+ rtl_UriDecodeWithCharset, RTL_TEXTENCODING_UTF8 );
+ aErrStr += aDecodedFile;
+ if( aErrorInfo.m_nXMLParsingLine != -1 )
+ {
+ aErrStr += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( ", line " ));
+ aErrStr += ::rtl::OUString::valueOf( aErrorInfo.m_nXMLParsingLine );
+ }
}
}
+
+ OWeakObject* oWeakThis = static_cast<OWeakObject *>(this);
+ throw deployment::DeploymentException( rtl::OUString(), oWeakThis,
+ makeAny( uno::Exception( aErrStr, oWeakThis ) ) );
}
-
- OWeakObject* oWeakThis = static_cast<OWeakObject *>(this);
- throw deployment::DeploymentException( rtl::OUString(), oWeakThis,
- makeAny( uno::Exception( aErrStr, oWeakThis ) ) );
}
}
}
+ //Writing the data entry replaces writing the flag file. If we got to this
+ //point the registration was successful.
+ addDataToDb(xPackage->getURL(), data);
}
- //Writing the data entry replaces writing the flag file. If we got to this
- //point the registration was successful.
- addDataToDb(xPackage->getURL(), data);
} //if (doRegisterPackage)
else
{
- deleteDataFromDb(xPackage->getURL());
+ revokeEntryFromDb(xPackage->getURL());
}
}
diff --git a/desktop/source/deployment/registry/help/dp_help.hrc b/desktop/source/deployment/registry/help/dp_help.hrc
index 451144813f..451144813f 100644..100755
--- a/desktop/source/deployment/registry/help/dp_help.hrc
+++ b/desktop/source/deployment/registry/help/dp_help.hrc
diff --git a/desktop/source/deployment/registry/help/dp_help.src b/desktop/source/deployment/registry/help/dp_help.src
index 6cb9b023e6..6cb9b023e6 100644..100755
--- a/desktop/source/deployment/registry/help/dp_help.src
+++ b/desktop/source/deployment/registry/help/dp_help.src
diff --git a/desktop/source/deployment/registry/help/dp_helpbackenddb.cxx b/desktop/source/deployment/registry/help/dp_helpbackenddb.cxx
index b18243b8a7..45aa70934c 100644..100755
--- a/desktop/source/deployment/registry/help/dp_helpbackenddb.cxx
+++ b/desktop/source/deployment/registry/help/dp_helpbackenddb.cxx
@@ -84,11 +84,14 @@ OUString HelpBackendDb::getKeyElementName()
void HelpBackendDb::addEntry(::rtl::OUString const & url, Data const & data)
{
try{
- Reference<css::xml::dom::XNode> helpNode
- = writeKeyElement(url);
-
- writeSimpleElement(OUSTR("data-url"), data.dataUrl, helpNode);
- save();
+ if (!activateEntry(url))
+ {
+ Reference<css::xml::dom::XNode> helpNode
+ = writeKeyElement(url);
+
+ writeSimpleElement(OUSTR("data-url"), data.dataUrl, helpNode);
+ save();
+ }
}
catch (css::deployment::DeploymentException& )
{
diff --git a/desktop/source/deployment/registry/help/dp_helpbackenddb.hxx b/desktop/source/deployment/registry/help/dp_helpbackenddb.hxx
index 4a2eb8ec59..4bfa93204c 100644..100755
--- a/desktop/source/deployment/registry/help/dp_helpbackenddb.hxx
+++ b/desktop/source/deployment/registry/help/dp_helpbackenddb.hxx
@@ -77,6 +77,8 @@ public:
void addEntry(::rtl::OUString const & url, Data const & data);
::boost::optional<Data> getEntry(::rtl::OUString const & url);
+ //must also return the data urls for entries with @activ="false". That is,
+ //those are currently revoked.
::std::list< ::rtl::OUString> getAllDataUrls();
};
diff --git a/desktop/source/deployment/registry/help/makefile.mk b/desktop/source/deployment/registry/help/makefile.mk
index d4934f71a4..d4934f71a4 100644..100755
--- a/desktop/source/deployment/registry/help/makefile.mk
+++ b/desktop/source/deployment/registry/help/makefile.mk
diff --git a/desktop/source/deployment/registry/inc/dp_backend.h b/desktop/source/deployment/registry/inc/dp_backend.h
index 5d8c60e4fb..656f81ff6d 100644..100755
--- a/desktop/source/deployment/registry/inc/dp_backend.h
+++ b/desktop/source/deployment/registry/inc/dp_backend.h
@@ -237,6 +237,9 @@ public:
virtual ::rtl::OUString SAL_CALL getDescription()
throw (css::deployment::ExtensionRemovedException,
css::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getLicenseText()
+ throw (css::deployment::ExtensionRemovedException,
+ css::uno::RuntimeException);
virtual css::uno::Sequence< ::rtl::OUString > SAL_CALL
getUpdateInformationURLs()
throw (css::deployment::ExtensionRemovedException,
@@ -294,9 +297,9 @@ protected:
::rtl::OUString m_context;
// currently only for library containers:
- enum context {
+ enum {
CONTEXT_UNKNOWN,
- CONTEXT_USER, CONTEXT_SHARED,CONTEXT_BUNDLED, CONTEXT_TMP,
+ CONTEXT_USER, CONTEXT_SHARED,CONTEXT_BUNDLED, CONTEXT_TMP, CONTEXT_BUNDLED_PREREG,
CONTEXT_DOCUMENT
} m_eContext;
bool m_readOnly;
@@ -341,6 +344,18 @@ protected:
*/
static void deleteTempFolder(
::rtl::OUString const & folderUrl);
+
+ ::rtl::OUString getSharedRegistrationDataURL(
+ css::uno::Reference<css::deployment::XPackage> const & extension,
+ css::uno::Reference<css::deployment::XPackage> const & item);
+
+ /* The backends must implement this function, which is called
+ from XPackageRegistry::packageRemoved (also implemented here).
+ This ensure that the backends clean up their registration data
+ when an extension was removed.
+ */
+// virtual void deleteDbEntry( ::rtl::OUString const & url) = 0;
+
public:
@@ -370,6 +385,12 @@ public:
css::deployment::InvalidRemovedParameterException,
css::ucb::CommandFailedException,
css::lang::IllegalArgumentException, css::uno::RuntimeException);
+
+// virtual void SAL_CALL packageRemoved(
+// ::rtl::OUString const & url, ::rtl::OUString const & mediaType)
+// throw (css::deployment::DeploymentException,
+// css::uno::RuntimeException);
+
};
}
diff --git a/desktop/source/deployment/registry/inc/dp_backenddb.hxx b/desktop/source/deployment/registry/inc/dp_backenddb.hxx
index 12a9d14086..2deb1c6e56 100644..100755
--- a/desktop/source/deployment/registry/inc/dp_backenddb.hxx
+++ b/desktop/source/deployment/registry/inc/dp_backenddb.hxx
@@ -146,6 +146,18 @@ public:
virtual ~BackendDb() {};
void removeEntry(::rtl::OUString const & url);
+
+ /* This is called to write the "revoked" attribute to the entry.
+ This is done when XPackage::revokePackage is called.
+ */
+ void revokeEntry(::rtl::OUString const & url);
+
+ /* returns false if the entry does not exist yet.
+ */
+ bool activateEntry(::rtl::OUString const & url);
+
+ bool hasActiveEntry(::rtl::OUString const & url);
+
};
class RegisteredDb: public BackendDb
diff --git a/desktop/source/deployment/registry/inc/dp_registry.hrc b/desktop/source/deployment/registry/inc/dp_registry.hrc
index 7f8124b78d..7f8124b78d 100644..100755
--- a/desktop/source/deployment/registry/inc/dp_registry.hrc
+++ b/desktop/source/deployment/registry/inc/dp_registry.hrc
diff --git a/desktop/source/deployment/registry/makefile.mk b/desktop/source/deployment/registry/makefile.mk
index e45cec272c..e45cec272c 100644..100755
--- a/desktop/source/deployment/registry/makefile.mk
+++ b/desktop/source/deployment/registry/makefile.mk
diff --git a/desktop/source/deployment/registry/package/dp_extbackenddb.cxx b/desktop/source/deployment/registry/package/dp_extbackenddb.cxx
index 9da7756929..5f20628dc9 100644..100755
--- a/desktop/source/deployment/registry/package/dp_extbackenddb.cxx
+++ b/desktop/source/deployment/registry/package/dp_extbackenddb.cxx
@@ -82,15 +82,19 @@ OUString ExtensionBackendDb::getKeyElementName()
void ExtensionBackendDb::addEntry(::rtl::OUString const & url, Data const & data)
{
try{
- Reference<css::xml::dom::XNode> extensionNodeNode = writeKeyElement(url);
- writeVectorOfPair(
- data.items,
- OUSTR("extension-items"),
- OUSTR("item"),
- OUSTR("url"),
- OUSTR("media-type"),
- extensionNodeNode);
- save();
+ //reactive revoked entry if possible.
+ if (!activateEntry(url))
+ {
+ Reference<css::xml::dom::XNode> extensionNodeNode = writeKeyElement(url);
+ writeVectorOfPair(
+ data.items,
+ OUSTR("extension-items"),
+ OUSTR("item"),
+ OUSTR("url"),
+ OUSTR("media-type"),
+ extensionNodeNode);
+ save();
+ }
}
catch(css::uno::Exception &)
{
diff --git a/desktop/source/deployment/registry/package/dp_extbackenddb.hxx b/desktop/source/deployment/registry/package/dp_extbackenddb.hxx
index f25203193a..f25203193a 100644..100755
--- a/desktop/source/deployment/registry/package/dp_extbackenddb.hxx
+++ b/desktop/source/deployment/registry/package/dp_extbackenddb.hxx
diff --git a/desktop/source/deployment/registry/package/dp_package.cxx b/desktop/source/deployment/registry/package/dp_package.cxx
index 3444aac638..a3d835a27a 100644..100755
--- a/desktop/source/deployment/registry/package/dp_package.cxx
+++ b/desktop/source/deployment/registry/package/dp_package.cxx
@@ -191,6 +191,9 @@ class BackendImpl : public ImplBaseT
virtual OUString SAL_CALL getDescription()
throw (deployment::ExtensionRemovedException, RuntimeException);
+ virtual OUString SAL_CALL getLicenseText()
+ throw (deployment::ExtensionRemovedException, RuntimeException);
+
virtual void SAL_CALL exportTo(
OUString const & destFolderURL, OUString const & newTitle,
sal_Int32 nameClashAction,
@@ -248,7 +251,7 @@ class BackendImpl : public ImplBaseT
void addDataToDb(OUString const & url, ExtensionBackendDb::Data const & data);
ExtensionBackendDb::Data readDataFromDb(OUString const & url);
- void deleteDataFromDb(OUString const & url);
+ void revokeEntryFromDb(OUString const & url);
// PackageRegistryBackend
virtual Reference<deployment::XPackage> bindPackage_(
@@ -274,7 +277,10 @@ public:
// XPackageRegistry
virtual Sequence< Reference<deployment::XPackageTypeInfo> > SAL_CALL
getSupportedPackageTypes() throw (RuntimeException);
-
+ virtual void SAL_CALL packageRemoved(OUString const & url, OUString const & mediaType)
+ throw (deployment::DeploymentException,
+ uno::RuntimeException);
+
using ImplBaseT::disposing;
};
@@ -356,6 +362,21 @@ BackendImpl::getSupportedPackageTypes() throw (RuntimeException)
return m_typeInfos;
}
+void BackendImpl::packageRemoved(OUString const & url, OUString const & /*mediaType*/)
+ throw (deployment::DeploymentException,
+ uno::RuntimeException)
+{
+ //Notify the backend responsible for processing the different media
+ //types that this extension was removed.
+ ExtensionBackendDb::Data data = readDataFromDb(url);
+ for (ExtensionBackendDb::Data::ITC_ITEMS i = data.items.begin(); i != data.items.end(); i++)
+ {
+ m_xRootRegistry->packageRemoved(i->first, i->second);
+ }
+
+ if (m_backendDb.get())
+ m_backendDb->removeEntry(url);
+}
// PackageRegistryBackend
@@ -456,10 +477,10 @@ ExtensionBackendDb::Data BackendImpl::readDataFromDb(
return data;
}
-void BackendImpl::deleteDataFromDb(OUString const & url)
+void BackendImpl::revokeEntryFromDb(OUString const & url)
{
if (m_backendDb.get())
- m_backendDb->removeEntry(url);
+ m_backendDb->revokeEntry(url);
}
@@ -965,7 +986,7 @@ void BackendImpl::PackageImpl::processPackage_(
// selected
}
}
- getMyBackend()->deleteDataFromDb(getURL());
+ getMyBackend()->revokeEntryFromDb(getURL());
}
}
@@ -998,6 +1019,31 @@ OUString BackendImpl::PackageImpl::getDescription()
}
//______________________________________________________________________________
+OUString BackendImpl::PackageImpl::getLicenseText()
+ throw (deployment::ExtensionRemovedException, RuntimeException)
+{
+ if (m_bRemoved)
+ throw deployment::ExtensionRemovedException();
+
+ OUString sLicense;
+ DescriptionInfoset aInfo = getDescriptionInfoset();
+
+ ::boost::optional< SimpleLicenseAttributes > aSimplLicAttr = aInfo.getSimpleLicenseAttributes();
+ if ( aSimplLicAttr )
+ {
+ OUString aLicenseURL = aInfo.getLocalizedLicenseURL();
+
+ if ( aLicenseURL.getLength() )
+ {
+ OUString aFullURL = m_url_expanded + OUSTR("/") + aLicenseURL;
+ sLicense = getTextFromURL( Reference< ucb::XCommandEnvironment >(), aFullURL);
+ }
+ }
+
+ return sLicense;
+}
+
+//______________________________________________________________________________
void BackendImpl::PackageImpl::exportTo(
OUString const & destFolderURL, OUString const & newTitle,
sal_Int32 nameClashAction, Reference<ucb::XCommandEnvironment> const & xCmdEnv )
diff --git a/desktop/source/deployment/registry/package/dp_package.hrc b/desktop/source/deployment/registry/package/dp_package.hrc
index 0b258a58cd..0b258a58cd 100644..100755
--- a/desktop/source/deployment/registry/package/dp_package.hrc
+++ b/desktop/source/deployment/registry/package/dp_package.hrc
diff --git a/desktop/source/deployment/registry/package/dp_package.src b/desktop/source/deployment/registry/package/dp_package.src
index 056a17cb06..056a17cb06 100644..100755
--- a/desktop/source/deployment/registry/package/dp_package.src
+++ b/desktop/source/deployment/registry/package/dp_package.src
diff --git a/desktop/source/deployment/registry/package/makefile.mk b/desktop/source/deployment/registry/package/makefile.mk
index 203ce176d2..203ce176d2 100644..100755
--- a/desktop/source/deployment/registry/package/makefile.mk
+++ b/desktop/source/deployment/registry/package/makefile.mk
diff --git a/desktop/source/deployment/registry/script/dp_lib_container.cxx b/desktop/source/deployment/registry/script/dp_lib_container.cxx
index ccc2b29874..ccc2b29874 100644..100755
--- a/desktop/source/deployment/registry/script/dp_lib_container.cxx
+++ b/desktop/source/deployment/registry/script/dp_lib_container.cxx
diff --git a/desktop/source/deployment/registry/script/dp_lib_container.h b/desktop/source/deployment/registry/script/dp_lib_container.h
index 009846a3c0..009846a3c0 100644..100755
--- a/desktop/source/deployment/registry/script/dp_lib_container.h
+++ b/desktop/source/deployment/registry/script/dp_lib_container.h
diff --git a/desktop/source/deployment/registry/script/dp_script.cxx b/desktop/source/deployment/registry/script/dp_script.cxx
index 8a338073e0..f9266bfc6f 100644..100755
--- a/desktop/source/deployment/registry/script/dp_script.cxx
+++ b/desktop/source/deployment/registry/script/dp_script.cxx
@@ -100,8 +100,8 @@ class BackendImpl : public t_helper
Reference<XCommandEnvironment> const & xCmdEnv );
void addDataToDb(OUString const & url);
- void deleteDataFromDb(OUString const & url);
- bool isRegisteredInDb(OUString const & url);
+ bool hasActiveEntry(OUString const & url);
+ void revokeEntryFromDb(OUString const & url);
const Reference<deployment::XPackageTypeInfo> m_xBasicLibTypeInfo;
const Reference<deployment::XPackageTypeInfo> m_xDialogLibTypeInfo;
@@ -117,6 +117,10 @@ public:
// XPackageRegistry
virtual Sequence< Reference<deployment::XPackageTypeInfo> > SAL_CALL
getSupportedPackageTypes() throw (RuntimeException);
+ virtual void SAL_CALL packageRemoved(OUString const & url, OUString const & mediaType)
+ throw (deployment::DeploymentException,
+ uno::RuntimeException);
+
};
//______________________________________________________________________________
@@ -185,18 +189,11 @@ void BackendImpl::addDataToDb(OUString const & url)
m_backendDb->addEntry(url);
}
-bool BackendImpl::isRegisteredInDb(OUString const & url)
-{
- bool registered = false;
- if (m_backendDb.get())
- registered = m_backendDb->getEntry(url);
- return registered;
-}
-
-void BackendImpl::deleteDataFromDb(OUString const & url)
+bool BackendImpl::hasActiveEntry(OUString const & url)
{
if (m_backendDb.get())
- m_backendDb->removeEntry(url);
+ return m_backendDb->hasActiveEntry(url);
+ return false;
}
// XUpdatable
@@ -213,6 +210,19 @@ BackendImpl::getSupportedPackageTypes() throw (RuntimeException)
{
return m_typeInfos;
}
+void BackendImpl::revokeEntryFromDb(OUString const & url)
+{
+ if (m_backendDb.get())
+ m_backendDb->revokeEntry(url);
+}
+
+void BackendImpl::packageRemoved(OUString const & url, OUString const & /*mediaType*/)
+ throw (deployment::DeploymentException,
+ uno::RuntimeException)
+{
+ if (m_backendDb.get())
+ m_backendDb->removeEntry(url);
+}
// PackageRegistryBackend
//______________________________________________________________________________
@@ -313,7 +323,7 @@ BackendImpl::PackageImpl::isRegistered_(
BackendImpl * that = getMyBackend();
Reference< deployment::XPackage > xThisPackage( this );
- bool registered = that->isRegisteredInDb(getURL());
+ bool registered = that->hasActiveEntry(getURL());
return beans::Optional< beans::Ambiguous<sal_Bool> >(
true /* IsPresent */,
beans::Ambiguous<sal_Bool>( registered, false /* IsAmbiguous */ ) );
@@ -410,7 +420,7 @@ void BackendImpl::PackageImpl::processPackage_(
xComponentContext ), UNO_QUERY_THROW );
}
}
- bool bRegistered = getMyBackend()->isRegisteredInDb(getURL());
+ bool bRegistered = getMyBackend()->hasActiveEntry(getURL());
if( !doRegisterPackage )
{
//We cannot just call removeLibrary(name) because this could remove a
@@ -431,7 +441,7 @@ void BackendImpl::PackageImpl::processPackage_(
lcl_maybeRemoveScript(bScript, m_name, m_scriptURL, xScriptLibs);
lcl_maybeRemoveScript(bDialog, m_dialogName, m_dialogURL, xDialogLibs);
}
- getMyBackend()->deleteDataFromDb(getURL());
+ getMyBackend()->revokeEntryFromDb(getURL());
return;
}
}
diff --git a/desktop/source/deployment/registry/script/dp_script.hrc b/desktop/source/deployment/registry/script/dp_script.hrc
index f5b52f1b1f..f5b52f1b1f 100644..100755
--- a/desktop/source/deployment/registry/script/dp_script.hrc
+++ b/desktop/source/deployment/registry/script/dp_script.hrc
diff --git a/desktop/source/deployment/registry/script/dp_script.src b/desktop/source/deployment/registry/script/dp_script.src
index 21e0cfdcc9..21e0cfdcc9 100644..100755
--- a/desktop/source/deployment/registry/script/dp_script.src
+++ b/desktop/source/deployment/registry/script/dp_script.src
diff --git a/desktop/source/deployment/registry/script/dp_scriptbackenddb.cxx b/desktop/source/deployment/registry/script/dp_scriptbackenddb.cxx
index 436ea3ce5f..436ea3ce5f 100644..100755
--- a/desktop/source/deployment/registry/script/dp_scriptbackenddb.cxx
+++ b/desktop/source/deployment/registry/script/dp_scriptbackenddb.cxx
diff --git a/desktop/source/deployment/registry/script/dp_scriptbackenddb.hxx b/desktop/source/deployment/registry/script/dp_scriptbackenddb.hxx
index 63015ab1e4..63015ab1e4 100644..100755
--- a/desktop/source/deployment/registry/script/dp_scriptbackenddb.hxx
+++ b/desktop/source/deployment/registry/script/dp_scriptbackenddb.hxx
diff --git a/desktop/source/deployment/registry/script/makefile.mk b/desktop/source/deployment/registry/script/makefile.mk
index 708def3580..708def3580 100644..100755
--- a/desktop/source/deployment/registry/script/makefile.mk
+++ b/desktop/source/deployment/registry/script/makefile.mk
diff --git a/desktop/source/deployment/registry/sfwk/dp_parceldesc.cxx b/desktop/source/deployment/registry/sfwk/dp_parceldesc.cxx
index 4ac316e785..4ac316e785 100644..100755
--- a/desktop/source/deployment/registry/sfwk/dp_parceldesc.cxx
+++ b/desktop/source/deployment/registry/sfwk/dp_parceldesc.cxx
diff --git a/desktop/source/deployment/registry/sfwk/dp_parceldesc.hxx b/desktop/source/deployment/registry/sfwk/dp_parceldesc.hxx
index 6d2dc52006..6d2dc52006 100644..100755
--- a/desktop/source/deployment/registry/sfwk/dp_parceldesc.hxx
+++ b/desktop/source/deployment/registry/sfwk/dp_parceldesc.hxx
diff --git a/desktop/source/deployment/registry/sfwk/dp_sfwk.cxx b/desktop/source/deployment/registry/sfwk/dp_sfwk.cxx
index 59b1c9b98f..9518e72b99 100644..100755
--- a/desktop/source/deployment/registry/sfwk/dp_sfwk.cxx
+++ b/desktop/source/deployment/registry/sfwk/dp_sfwk.cxx
@@ -89,6 +89,7 @@ class BackendImpl : public ::dp_registry::backend::PackageRegistryBackend
OUString const & identifier);
// XPackage
virtual OUString SAL_CALL getDescription() throw (RuntimeException);
+ virtual OUString SAL_CALL getLicenseText() throw (RuntimeException);
};
friend class PackageImpl;
@@ -99,6 +100,7 @@ class BackendImpl : public ::dp_registry::backend::PackageRegistryBackend
Reference<XCommandEnvironment> const & xCmdEnv );
const Reference<deployment::XPackageTypeInfo> m_xTypeInfo;
+
public:
BackendImpl(
@@ -108,6 +110,9 @@ public:
// XPackageRegistry
virtual Sequence< Reference<deployment::XPackageTypeInfo> > SAL_CALL
getSupportedPackageTypes() throw (RuntimeException);
+ virtual void SAL_CALL packageRemoved(OUString const & url, OUString const & mediaType)
+ throw (deployment::DeploymentException,
+ uno::RuntimeException);
};
BackendImpl * BackendImpl::PackageImpl::getMyBackend() const
@@ -134,6 +139,12 @@ OUString BackendImpl::PackageImpl::getDescription() throw (RuntimeException)
}
//______________________________________________________________________________
+OUString BackendImpl::PackageImpl::getLicenseText() throw (RuntimeException)
+{
+ return Package::getDescription();
+}
+
+//______________________________________________________________________________
BackendImpl::PackageImpl::PackageImpl(
::rtl::Reference<BackendImpl> const & myBackend,
OUString const & url, OUString const & libType, bool bRemoved,
@@ -175,6 +186,8 @@ BackendImpl::BackendImpl(
}
}
+
+
// XPackageRegistry
//______________________________________________________________________________
Sequence< Reference<deployment::XPackageTypeInfo> >
@@ -183,6 +196,12 @@ BackendImpl::getSupportedPackageTypes() throw (RuntimeException)
return Sequence< Reference<deployment::XPackageTypeInfo> >(&m_xTypeInfo, 1);
}
+void BackendImpl::packageRemoved(OUString const & /*url*/, OUString const & /*mediaType*/)
+ throw (deployment::DeploymentException,
+ uno::RuntimeException)
+{
+}
+
// PackageRegistryBackend
//______________________________________________________________________________
Reference<deployment::XPackage> BackendImpl::bindPackage_(
@@ -295,6 +314,11 @@ void BackendImpl::PackageImpl:: initPackageHandler()
{
aContext <<= OUSTR("bundled");
}
+ else if ( that->m_eContext == CONTEXT_BUNDLED_PREREG )
+ {
+ aContext <<= OUSTR("bundled_prereg");
+ }
+
else
{
OSL_ASSERT( 0 );
diff --git a/desktop/source/deployment/registry/sfwk/dp_sfwk.hrc b/desktop/source/deployment/registry/sfwk/dp_sfwk.hrc
index ed164251cc..ed164251cc 100644..100755
--- a/desktop/source/deployment/registry/sfwk/dp_sfwk.hrc
+++ b/desktop/source/deployment/registry/sfwk/dp_sfwk.hrc
diff --git a/desktop/source/deployment/registry/sfwk/dp_sfwk.src b/desktop/source/deployment/registry/sfwk/dp_sfwk.src
index 32a5072401..32a5072401 100644..100755
--- a/desktop/source/deployment/registry/sfwk/dp_sfwk.src
+++ b/desktop/source/deployment/registry/sfwk/dp_sfwk.src
diff --git a/desktop/source/deployment/registry/sfwk/makefile.mk b/desktop/source/deployment/registry/sfwk/makefile.mk
index a052296d5c..a052296d5c 100644..100755
--- a/desktop/source/deployment/registry/sfwk/makefile.mk
+++ b/desktop/source/deployment/registry/sfwk/makefile.mk
diff --git a/desktop/source/deployment/target.pmk b/desktop/source/deployment/target.pmk
index 82b41766b2..82b41766b2 100644..100755
--- a/desktop/source/deployment/target.pmk
+++ b/desktop/source/deployment/target.pmk
diff --git a/desktop/source/deployment/unopkg/makefile.mk b/desktop/source/deployment/unopkg/makefile.mk
index 06b39cd2d0..06b39cd2d0 100644..100755
--- a/desktop/source/deployment/unopkg/makefile.mk
+++ b/desktop/source/deployment/unopkg/makefile.mk
diff --git a/desktop/source/deployment/unopkg/unopkg.src b/desktop/source/deployment/unopkg/unopkg.src
index b40b505af2..b40b505af2 100644..100755
--- a/desktop/source/deployment/unopkg/unopkg.src
+++ b/desktop/source/deployment/unopkg/unopkg.src
diff --git a/desktop/source/inc/exithelper.hxx b/desktop/source/inc/exithelper.hxx
index 441cc06a1b..441cc06a1b 100644..100755
--- a/desktop/source/inc/exithelper.hxx
+++ b/desktop/source/inc/exithelper.hxx
diff --git a/desktop/source/inc/helpid.hrc b/desktop/source/inc/helpid.hrc
index 2435467f76..facdc1f410 100644..100755
--- a/desktop/source/inc/helpid.hrc
+++ b/desktop/source/inc/helpid.hrc
@@ -28,51 +28,40 @@
#if ! defined INCLUDED_DESKTOP_HELPID_HRC
#define INCLUDED_DESKTOP_HELPID_HRC
-#include "svl/solar.hrc"
+#define HID_PACKAGE_MANAGER "DESKTOP_HID_PACKAGE_MANAGER"
+#define HID_PACKAGE_MANAGER_TREELISTBOX "DESKTOP_HID_PACKAGE_MANAGER_TREELISTBOX"
+#define HID_PACKAGE_MANAGER_PROGRESS "DESKTOP_HID_PACKAGE_MANAGER_PROGRESS"
+#define HID_PACKAGE_MANAGER_PROGRESS_CANCEL "DESKTOP_HID_PACKAGE_MANAGER_PROGRESS_CANCEL"
+#define HID_PACKAGE_MANAGER_MENU_ITEM "DESKTOP_HID_PACKAGE_MANAGER_MENU_ITEM"
-#define HID_GLOBAL_FALLBACK 0xFFFFFFFF
+#define HID_FIRSTSTART_DIALOG "DESKTOP_HID_FIRSTSTART_DIALOG"
+#define HID_FIRSTSTART_WELCOME "DESKTOP_HID_FIRSTSTART_WELCOME"
+#define HID_FIRSTSTART_LICENSE "DESKTOP_HID_FIRSTSTART_LICENSE"
+#define HID_FIRSTSTART_MIGRATION "DESKTOP_HID_FIRSTSTART_MIGRATION"
+#define HID_FIRSTSTART_REGISTRATION "DESKTOP_HID_FIRSTSTART_REGISTRATION"
+#define HID_FIRSTSTART_USER "DESKTOP_HID_FIRSTSTART_USER"
+#define HID_FIRSTSTART_PREV "DESKTOP_HID_FIRSTSTART_PREV"
+#define HID_FIRSTSTART_NEXT "DESKTOP_HID_FIRSTSTART_NEXT"
+#define HID_FIRSTSTART_CANCEL "DESKTOP_HID_FIRSTSTART_CANCEL"
+#define HID_FIRSTSTART_FINISH "DESKTOP_HID_FIRSTSTART_FINISH"
+#define UID_FIRSTSTART_HELP "DESKTOP_UID_FIRSTSTART_HELP"
+#define UID_BTN_LICENSE_ACCEPT "DESKTOP_UID_BTN_LICENSE_ACCEPT"
+#define HID_FIRSTSTART_UPDATE_CHECK "DESKTOP_HID_FIRSTSTART_UPDATE_CHECK"
+#define HID_DEPLOYMENT_GUI_UPDATE "DESKTOP_HID_DEPLOYMENT_GUI_UPDATE"
+#define HID_DEPLOYMENT_GUI_UPDATEINSTALL "DESKTOP_HID_DEPLOYMENT_GUI_UPDATEINSTALL"
+#define HID_DEPLOYMENT_GUI_UPDATE_PUBLISHER "DESKTOP_HID_DEPLOYMENT_GUI_UPDATE_PUBLISHER"
+#define HID_DEPLOYMENT_GUI_UPDATE_RELEASENOTES "DESKTOP_HID_DEPLOYMENT_GUI_UPDATE_RELEASENOTES"
+#define HID_DEPLOYMENT_GUI_UPDATE_AVAILABLE_UPDATES "DESKTOP_HID_DEPLOYMENT_GUI_UPDATE_AVAILABLE_UPDATES"
-#define HID_PACKAGE_MANAGER (HID_DESKTOP_START + 0)
-#define HID_PACKAGE_MANAGER_TREELISTBOX (HID_DESKTOP_START + 1)
-#define HID_PACKAGE_MANAGER_PROGRESS (HID_DESKTOP_START + 2)
-#define HID_PACKAGE_MANAGER_PROGRESS_CANCEL (HID_DESKTOP_START + 3)
-#define HID_PACKAGE_MANAGER_MENU_ITEM (HID_DESKTOP_START + 4)
+#define HID_EXTENSION_MANAGER_LISTBOX "DESKTOP_HID_EXTENSION_MANAGER_LISTBOX"
+#define HID_EXTENSION_MANAGER_LISTBOX_OPTIONS "DESKTOP_HID_EXTENSION_MANAGER_LISTBOX_OPTIONS"
+#define HID_EXTENSION_MANAGER_LISTBOX_ENABLE "DESKTOP_HID_EXTENSION_MANAGER_LISTBOX_ENABLE"
+#define HID_EXTENSION_MANAGER_LISTBOX_DISABLE "DESKTOP_HID_EXTENSION_MANAGER_LISTBOX_DISABLE"
+#define HID_EXTENSION_MANAGER_LISTBOX_REMOVE "DESKTOP_HID_EXTENSION_MANAGER_LISTBOX_REMOVE"
-#define HID_FIRSTSTART_DIALOG (HID_DESKTOP_START + 5)
-#define HID_FIRSTSTART_WELCOME (HID_DESKTOP_START + 6)
-#define HID_FIRSTSTART_LICENSE (HID_DESKTOP_START + 7)
-#define HID_FIRSTSTART_MIGRATION (HID_DESKTOP_START + 8)
-#define HID_FIRSTSTART_REGISTRATION (HID_DESKTOP_START + 9)
-#define HID_FIRSTSTART_USER (HID_DESKTOP_START + 10)
-#define HID_FIRSTSTART_PREV (HID_DESKTOP_START + 11)
-#define HID_FIRSTSTART_NEXT (HID_DESKTOP_START + 12)
-#define HID_FIRSTSTART_CANCEL (HID_DESKTOP_START + 13)
-#define HID_FIRSTSTART_FINISH (HID_DESKTOP_START + 14)
-#define UID_FIRSTSTART_HELP (HID_DESKTOP_START + 15)
-#define UID_BTN_LICENSE_ACCEPT (HID_DESKTOP_START + 16)
-#define HID_FIRSTSTART_UPDATE_CHECK (HID_DESKTOP_START + 17)
-#define HID_DEPLOYMENT_GUI_UPDATE (HID_DESKTOP_START + 18)
-#define HID_DEPLOYMENT_GUI_UPDATEINSTALL (HID_DESKTOP_START + 19)
-#define HID_DEPLOYMENT_GUI_UPDATE_PUBLISHER (HID_DESKTOP_START + 20)
-#define HID_DEPLOYMENT_GUI_UPDATE_RELEASENOTES (HID_DESKTOP_START + 21)
-#define HID_DEPLOYMENT_GUI_UPDATE_AVAILABLE_UPDATES (HID_DESKTOP_START + 22)
+#define HID_EXTENSION_DEPENDENCIES "DESKTOP_HID_EXTENSION_DEPENDENCIES"
-#define HID_EXTENSION_MANAGER_LISTBOX (HID_DESKTOP_START + 23)
-#define HID_EXTENSION_MANAGER_LISTBOX_OPTIONS (HID_DESKTOP_START + 24)
-#define HID_EXTENSION_MANAGER_LISTBOX_ENABLE (HID_DESKTOP_START + 25)
-#define HID_EXTENSION_MANAGER_LISTBOX_DISABLE (HID_DESKTOP_START + 26)
-#define HID_EXTENSION_MANAGER_LISTBOX_REMOVE (HID_DESKTOP_START + 27)
-
-#define HID_EXTENSION_DEPENDENCIES (HID_DESKTOP_START + 28)
-
-#define HID_PACKAGE_MANAGER_UPD_REQ (HID_DESKTOP_START + 29)
-
-#define ACT_DESKTOP_HID_END HID_PACKAGE_MANAGER_UPD_REQ
-
-// check bounds:
-#if ACT_DESKTOP_HID_END > HID_DESKTOP_END
-#error Resource overflow in #line, #file
-#endif
+#define HID_PACKAGE_MANAGER_UPD_REQ "DESKTOP_HID_PACKAGE_MANAGER_UPD_REQ"
#endif
diff --git a/desktop/source/migration/makefile.mk b/desktop/source/migration/makefile.mk
index b20b4c5797..b20b4c5797 100644..100755
--- a/desktop/source/migration/makefile.mk
+++ b/desktop/source/migration/makefile.mk
diff --git a/desktop/source/migration/migration.cxx b/desktop/source/migration/migration.cxx
index e755dda19b..e755dda19b 100644..100755
--- a/desktop/source/migration/migration.cxx
+++ b/desktop/source/migration/migration.cxx
diff --git a/desktop/source/migration/migration_impl.hxx b/desktop/source/migration/migration_impl.hxx
index a4619b4c8d..a4619b4c8d 100644..100755
--- a/desktop/source/migration/migration_impl.hxx
+++ b/desktop/source/migration/migration_impl.hxx
diff --git a/desktop/source/migration/pages.cxx b/desktop/source/migration/pages.cxx
new file mode 100755
index 0000000000..291ec4d8b8
--- /dev/null
+++ b/desktop/source/migration/pages.cxx
@@ -0,0 +1,671 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_desktop.hxx"
+
+#include "pages.hxx"
+#include "wizard.hrc"
+#include "wizard.hxx"
+#include "migration.hxx"
+#include <vcl/msgbox.hxx>
+#include <vcl/mnemonic.hxx>
+#include <vos/security.hxx>
+#include <app.hxx>
+#include <rtl/ustring.hxx>
+#include <osl/file.hxx>
+#include <unotools/bootstrap.hxx>
+#include <unotools/configmgr.hxx>
+#include <unotools/regoptions.hxx>
+#include <unotools/useroptions.hxx>
+#include <sfx2/basedlgs.hxx>
+#include <comphelper/processfactory.hxx>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/lang/XInitialization.hpp>
+#include <com/sun/star/frame/XDesktop.hpp>
+#include <com/sun/star/beans/XMaterialHolder.hpp>
+#include <com/sun/star/beans/NamedValue.hpp>
+#include <com/sun/star/container/XNameReplace.hpp>
+#include <com/sun/star/task/XJobExecutor.hpp>
+#include <comphelper/configurationhelper.hxx>
+#include <rtl/bootstrap.hxx>
+#include <rtl/ustrbuf.hxx>
+#include <osl/file.hxx>
+#include <osl/thread.hxx>
+#include <unotools/bootstrap.hxx>
+#include <tools/config.hxx>
+
+using namespace rtl;
+using namespace osl;
+using namespace utl;
+using namespace svt;
+using namespace com::sun::star;
+using namespace com::sun::star::frame;
+using namespace com::sun::star::lang;
+using namespace com::sun::star::util;
+using namespace com::sun::star::beans;
+using namespace com::sun::star::uno;
+using namespace com::sun::star::container;
+
+#define UNISTRING(s) rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(s))
+
+namespace desktop {
+
+static void _setBold(FixedText& ft)
+{
+ Font f = ft.GetControlFont();
+ f.SetWeight(WEIGHT_BOLD);
+ ft.SetControlFont(f);
+}
+
+WelcomePage::WelcomePage( svt::OWizardMachine* parent, const ResId& resid, sal_Bool bLicenseNeedsAcceptance )
+ : OWizardPage(parent, resid)
+ , m_ftHead(this, WizardResId(FT_WELCOME_HEADER))
+ , m_ftBody(this, WizardResId(FT_WELCOME_BODY))
+ , m_pParent(parent)
+ , m_bLicenseNeedsAcceptance( bLicenseNeedsAcceptance )
+ , bIsEvalVersion(false)
+ , bNoEvalText(false)
+{
+ FreeResource();
+
+ _setBold(m_ftHead);
+
+ checkEval();
+
+ // check for migration
+ if (Migration::checkMigration())
+ {
+ String aText(WizardResId(STR_WELCOME_MIGRATION));
+ // replace %OLDPRODUCT with found version name
+ aText.SearchAndReplaceAll( UniString::CreateFromAscii("%OLD_VERSION"), Migration::getOldVersionName());
+ m_ftBody.SetText( aText );
+ }
+ else if ( ! m_bLicenseNeedsAcceptance )
+ {
+ String aText(WizardResId(STR_WELCOME_WITHOUT_LICENSE));
+ m_ftBody.SetText( aText );
+ }
+}
+
+
+void WelcomePage::checkEval()
+{
+ Reference< XMultiServiceFactory > xFactory = ::comphelper::getProcessServiceFactory();
+ Reference< XMaterialHolder > xHolder(xFactory->createInstance(
+ OUString::createFromAscii("com.sun.star.tab.tabreg")), UNO_QUERY);
+ if (xHolder.is()) {
+ Any aData = xHolder->getMaterial();
+ Sequence < NamedValue > aSeq;
+ if (aData >>= aSeq) {
+ bIsEvalVersion = true;
+ for (int i=0; i< aSeq.getLength(); i++) {
+ if (aSeq[i].Name.equalsAscii("NoEvalText")) {
+ aSeq[i].Value >>= bNoEvalText;
+ }
+ }
+ }
+ }
+}
+
+
+void WelcomePage::ActivatePage()
+{
+ OWizardPage::ActivatePage();
+ // this page has no controls, so forwarding to default
+ // button (next) won't work if we grap focus
+ // GrabFocus();
+}
+
+LicensePage::LicensePage( svt::OWizardMachine* parent, const ResId& resid, const rtl::OUString &rLicensePath )
+ : OWizardPage(parent, resid)
+ , m_pParent(parent)
+ , m_ftHead(this, WizardResId(FT_LICENSE_HEADER))
+ , m_ftBody1(this, WizardResId(FT_LICENSE_BODY_1))
+ , m_ftBody1Txt(this, WizardResId(FT_LICENSE_BODY_1_TXT))
+ , m_ftBody2(this, WizardResId(FT_LICENSE_BODY_2))
+ , m_ftBody2Txt(this, WizardResId(FT_LICENSE_BODY_2_TXT))
+ , m_mlLicense(this, WizardResId(ML_LICENSE))
+ , m_pbDown(this, WizardResId(PB_LICENSE_DOWN))
+ , m_bLicenseRead(sal_False)
+{
+ FreeResource();
+
+ _setBold(m_ftHead);
+
+ m_mlLicense.SetEndReachedHdl( LINK(this, LicensePage, EndReachedHdl) );
+ m_mlLicense.SetScrolledHdl( LINK(this, LicensePage, ScrolledHdl) );
+ m_pbDown.SetClickHdl( LINK(this, LicensePage, PageDownHdl) );
+
+ // We want a automatic repeating page down button
+ WinBits aStyle = m_pbDown.GetStyle();
+ aStyle |= WB_REPEAT;
+ m_pbDown.SetStyle( aStyle );
+
+ // replace %PAGEDOWN in text2 with button text
+ String aText = m_ftBody1Txt.GetText();
+ aText.SearchAndReplaceAll( UniString::CreateFromAscii("%PAGEDOWN"),
+ MnemonicGenerator::EraseAllMnemonicChars(m_pbDown.GetText()));
+
+ m_ftBody1Txt.SetText( aText );
+
+ // load license text
+ File aLicenseFile(rLicensePath);
+ if ( aLicenseFile.open(OpenFlag_Read) == FileBase::E_None)
+ {
+ DirectoryItem d;
+ DirectoryItem::get(rLicensePath, d);
+ FileStatus fs(FileStatusMask_FileSize);
+ d.getFileStatus(fs);
+ sal_uInt64 nBytesRead = 0;
+ sal_uInt64 nPosition = 0;
+ sal_uInt32 nBytes = (sal_uInt32)fs.getFileSize();
+ sal_Char *pBuffer = new sal_Char[nBytes];
+ // FileBase RC r = FileBase::E_None;
+ while (aLicenseFile.read(pBuffer+nPosition, nBytes-nPosition, nBytesRead) == FileBase::E_None
+ && nPosition + nBytesRead < nBytes)
+ {
+ nPosition += nBytesRead;
+ }
+ OUString aLicenseString(pBuffer, nBytes, RTL_TEXTENCODING_UTF8,
+ OSTRING_TO_OUSTRING_CVTFLAGS | RTL_TEXTTOUNICODE_FLAGS_GLOBAL_SIGNATURE);
+ delete[] pBuffer;
+ m_mlLicense.SetText(aLicenseString);
+
+ }
+}
+
+void LicensePage::ActivatePage()
+{
+ OWizardPage::ActivatePage();
+ m_bLicenseRead = m_mlLicense.IsEndReached();
+ m_pbDown.GrabFocus();
+ updateDialogTravelUI();
+}
+
+bool LicensePage::canAdvance() const
+{
+ if (m_mlLicense.IsEndReached())
+ const_cast< LicensePage* >( this )->m_pbDown.Disable();
+ else
+ const_cast< LicensePage* >( this )->m_pbDown.Enable();
+
+ return m_bLicenseRead;
+}
+
+IMPL_LINK( LicensePage, PageDownHdl, PushButton *, EMPTYARG )
+{
+ m_mlLicense.ScrollDown( SCROLL_PAGEDOWN );
+ return 0;
+}
+
+IMPL_LINK( LicensePage, EndReachedHdl, LicenseView *, EMPTYARG )
+{
+ m_bLicenseRead = sal_True;
+ updateDialogTravelUI();
+ return 0;
+}
+
+IMPL_LINK( LicensePage, ScrolledHdl, LicenseView *, EMPTYARG )
+{
+ updateDialogTravelUI();
+ return 0;
+}
+
+
+LicenseView::LicenseView( Window* pParent, const ResId& rResId )
+ : MultiLineEdit( pParent, rResId )
+{
+ SetLeftMargin( 5 );
+ mbEndReached = IsEndReached();
+ StartListening( *GetTextEngine() );
+}
+
+LicenseView::~LicenseView()
+{
+ maEndReachedHdl = Link();
+ maScrolledHdl = Link();
+ EndListeningAll();
+}
+
+void LicenseView::ScrollDown( ScrollType eScroll )
+{
+ ScrollBar* pScroll = GetVScrollBar();
+ if ( pScroll )
+ pScroll->DoScrollAction( eScroll );
+}
+
+sal_Bool LicenseView::IsEndReached() const
+{
+ sal_Bool bEndReached;
+
+ ExtTextView* pView = GetTextView();
+ ExtTextEngine* pEdit = GetTextEngine();
+ sal_uLong nHeight = pEdit->GetTextHeight();
+ Size aOutSize = pView->GetWindow()->GetOutputSizePixel();
+ Point aBottom( 0, aOutSize.Height() );
+
+ if ( (sal_uLong) pView->GetDocPos( aBottom ).Y() >= nHeight - 1 )
+ bEndReached = sal_True;
+ else
+ bEndReached = sal_False;
+
+ return bEndReached;
+}
+
+void LicenseView::Notify( SfxBroadcaster&, const SfxHint& rHint )
+{
+ if ( rHint.IsA( TYPE(TextHint) ) )
+ {
+ sal_Bool bLastVal = EndReached();
+ sal_uLong nId = ((const TextHint&)rHint).GetId();
+
+ if ( nId == TEXT_HINT_PARAINSERTED )
+ {
+ if ( bLastVal )
+ mbEndReached = IsEndReached();
+ }
+ else if ( nId == TEXT_HINT_VIEWSCROLLED )
+ {
+ if ( ! mbEndReached )
+ mbEndReached = IsEndReached();
+ maScrolledHdl.Call( this );
+ }
+
+ if ( EndReached() && !bLastVal )
+ {
+ maEndReachedHdl.Call( this );
+ }
+ }
+}
+
+
+
+// -------------------------------------------------------------------
+
+class MigrationThread : public ::osl::Thread
+{
+ public:
+ MigrationThread();
+
+ virtual void SAL_CALL run();
+ virtual void SAL_CALL onTerminated();
+};
+
+MigrationThread::MigrationThread()
+{
+}
+
+void MigrationThread::run()
+{
+ try
+ {
+ Migration::doMigration();
+ }
+ catch ( uno::Exception& )
+ {
+ }
+}
+
+void MigrationThread::onTerminated()
+{
+}
+
+// -------------------------------------------------------------------
+
+MigrationPage::MigrationPage(
+ svt::OWizardMachine* parent,
+ const ResId& resid, Throbber& i_throbber )
+ : OWizardPage(parent, resid)
+ , m_ftHead(this, WizardResId(FT_MIGRATION_HEADER))
+ , m_ftBody(this, WizardResId(FT_MIGRATION_BODY))
+ , m_cbMigration(this, WizardResId(CB_MIGRATION))
+ , m_rThrobber(i_throbber)
+ , m_bMigrationDone(sal_False)
+{
+ FreeResource();
+ _setBold(m_ftHead);
+
+ // replace %OLDPRODUCT with found version name
+ String aText = m_ftBody.GetText();
+ aText.SearchAndReplaceAll( UniString::CreateFromAscii("%OLDPRODUCT"), Migration::getOldVersionName());
+ m_ftBody.SetText( aText );
+}
+
+sal_Bool MigrationPage::commitPage( svt::WizardTypes::CommitPageReason _eReason )
+{
+ if (_eReason == svt::WizardTypes::eTravelForward && m_cbMigration.IsChecked() && !m_bMigrationDone)
+ {
+ GetParent()->EnterWait();
+ FirstStartWizard* pWizard = dynamic_cast< FirstStartWizard* >( GetParent() );
+ if ( pWizard )
+ pWizard->DisableButtonsWhileMigration();
+
+ m_rThrobber.Show();
+ m_rThrobber.start();
+ MigrationThread* pMigThread = new MigrationThread();
+ pMigThread->create();
+
+ while ( pMigThread->isRunning() )
+ {
+ Application::Reschedule();
+ }
+
+ m_rThrobber.stop();
+ GetParent()->LeaveWait();
+ // Next state will enable buttons - so no EnableButtons necessary!
+ m_rThrobber.Hide();
+ pMigThread->join();
+ delete pMigThread;
+ m_bMigrationDone = sal_True;
+ }
+ else
+ Migration::cancelMigration();
+ return sal_True;
+}
+
+void MigrationPage::ActivatePage()
+{
+ OWizardPage::ActivatePage();
+ GrabFocus();
+}
+
+UserPage::UserPage( svt::OWizardMachine* parent, const ResId& resid)
+ : OWizardPage(parent, resid)
+ , m_ftHead(this, WizardResId(FT_USER_HEADER))
+ , m_ftBody(this, WizardResId(FT_USER_BODY))
+ , m_ftFirst(this, WizardResId(FT_USER_FIRST))
+ , m_edFirst(this, WizardResId(ED_USER_FIRST))
+ , m_ftLast(this, WizardResId(FT_USER_LAST))
+ , m_edLast(this, WizardResId(ED_USER_LAST))
+ , m_ftInitials(this, WizardResId(FT_USER_INITIALS))
+ , m_edInitials(this, WizardResId(ED_USER_INITIALS))
+ , m_ftFather(this, WizardResId(FT_USER_FATHER))
+ , m_edFather(this, WizardResId(ED_USER_FATHER))
+ , m_lang(Application::GetSettings().GetUILanguage())
+{
+ FreeResource();
+ _setBold(m_ftHead);
+
+ // check whether this is a russian version. otherwise
+ // we'll hide the 'Fathers name' field
+ SvtUserOptions aUserOpt;
+ m_edFirst.SetText(aUserOpt.GetFirstName());
+ m_edLast.SetText(aUserOpt.GetLastName());
+#if 0
+ rtl::OUString aUserName;
+ vos::OSecurity().getUserName( aUserName );
+ aUserOpt.SetID( aUserName );
+#endif
+
+ m_edInitials.SetText(aUserOpt.GetID());
+ if (m_lang == LANGUAGE_RUSSIAN)
+ {
+ m_ftFather.Show();
+ m_edFather.Show();
+ m_edFather.SetText(aUserOpt.GetFathersName());
+ }
+}
+
+sal_Bool UserPage::commitPage( svt::WizardTypes::CommitPageReason )
+{
+ SvtUserOptions aUserOpt;
+ aUserOpt.SetFirstName(m_edFirst.GetText());
+ aUserOpt.SetLastName(m_edLast.GetText());
+ aUserOpt.SetID( m_edInitials.GetText());
+
+ if (m_lang == LANGUAGE_RUSSIAN)
+ aUserOpt.SetFathersName(m_edFather.GetText());
+
+ return sal_True;
+}
+
+void UserPage::ActivatePage()
+{
+ OWizardPage::ActivatePage();
+ GrabFocus();
+}
+
+// -------------------------------------------------------------------
+UpdateCheckPage::UpdateCheckPage( svt::OWizardMachine* parent, const ResId& resid)
+ : OWizardPage(parent, resid)
+ , m_ftHead(this, WizardResId(FT_UPDATE_CHECK_HEADER))
+ , m_ftBody(this, WizardResId(FT_UPDATE_CHECK_BODY))
+ , m_cbUpdateCheck(this, WizardResId(CB_UPDATE_CHECK))
+{
+ FreeResource();
+ _setBold(m_ftHead);
+}
+
+sal_Bool UpdateCheckPage::commitPage( svt::WizardTypes::CommitPageReason _eReason )
+{
+ if ( _eReason == svt::WizardTypes::eTravelForward )
+ {
+ try {
+ Reference < XNameReplace > xUpdateAccess;
+ Reference < XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() );
+
+ xUpdateAccess = Reference < XNameReplace >(
+ xFactory->createInstance( UNISTRING( "com.sun.star.setup.UpdateCheckConfig" ) ), UNO_QUERY_THROW );
+
+ if ( !xUpdateAccess.is() )
+ return sal_False;
+
+ sal_Bool bAutoUpdChk = m_cbUpdateCheck.IsChecked();
+ xUpdateAccess->replaceByName( UNISTRING("AutoCheckEnabled"), makeAny( bAutoUpdChk ) );
+
+ Reference< XChangesBatch > xChangesBatch( xUpdateAccess, UNO_QUERY);
+ if( xChangesBatch.is() && xChangesBatch->hasPendingChanges() )
+ xChangesBatch->commitChanges();
+ } catch (RuntimeException)
+ {
+ }
+ }
+
+ return sal_True;
+}
+
+void UpdateCheckPage::ActivatePage()
+{
+ OWizardPage::ActivatePage();
+ GrabFocus();
+}
+
+// -------------------------------------------------------------------
+RegistrationPage::RegistrationPage( Window* pParent, const ResId& rResid )
+ : OWizardPage( pParent, rResid )
+ , m_ftHeader(this, WizardResId(FT_REGISTRATION_HEADER))
+ , m_ftBody(this, WizardResId(FT_REGISTRATION_BODY))
+ , m_rbNow(this, WizardResId(RB_REGISTRATION_NOW))
+ , m_rbLater(this, WizardResId(RB_REGISTRATION_LATER))
+ , m_rbNever(this, WizardResId(RB_REGISTRATION_NEVER))
+ , m_flSeparator(this, WizardResId(FL_REGISTRATION))
+ , m_ftEnd(this, WizardResId(FT_REGISTRATION_END))
+ , m_bNeverVisible( sal_True )
+{
+ FreeResource();
+
+ // another text for OOo
+ sal_Int32 nOpenSourceContext = 0;
+ try
+ {
+ ::utl::ConfigManager::GetDirectConfigProperty(
+ ::utl::ConfigManager::OPENSOURCECONTEXT ) >>= nOpenSourceContext;
+ }
+ catch( Exception& )
+ {
+ DBG_ERRORFILE( "RegistrationPage::RegistrationPage(): error while getting open source context" );
+ }
+
+ if ( nOpenSourceContext > 0 )
+ {
+ String sBodyText( WizardResId( STR_REGISTRATION_OOO ) );
+ m_ftBody.SetText( sBodyText );
+ }
+
+ // calculate height of body text and rearrange the buttons
+ Size aSize = m_ftBody.GetSizePixel();
+ Size aMinSize = m_ftBody.CalcMinimumSize( aSize.Width() );
+ long nTxtH = aMinSize.Height();
+ long nCtrlH = aSize.Height();
+ long nDelta = ( nCtrlH - nTxtH );
+ aSize.Height() -= nDelta;
+ m_ftBody.SetSizePixel( aSize );
+ Window* pWins[] = { &m_rbNow, &m_rbLater, &m_rbNever };
+ Window** pCurrent = pWins;
+ for ( sal_uInt32 i = 0; i < sizeof( pWins ) / sizeof( pWins[ 0 ] ); ++i, ++pCurrent )
+ {
+ Point aNewPos = (*pCurrent)->GetPosPixel();
+ aNewPos.Y() -= nDelta;
+ (*pCurrent)->SetPosPixel( aNewPos );
+ }
+
+ _setBold(m_ftHeader);
+ impl_retrieveConfigurationData();
+ updateButtonStates();
+}
+
+bool RegistrationPage::canAdvance() const
+{
+ return false;
+}
+
+void RegistrationPage::ActivatePage()
+{
+ OWizardPage::ActivatePage();
+ GrabFocus();
+}
+
+void RegistrationPage::impl_retrieveConfigurationData()
+{
+ static ::rtl::OUString PACKAGE = ::rtl::OUString::createFromAscii("org.openoffice.FirstStartWizard");
+ static ::rtl::OUString PATH = ::rtl::OUString::createFromAscii("TabPages/Registration/RegistrationOptions/NeverButton");
+ static ::rtl::OUString KEY = ::rtl::OUString::createFromAscii("Visible");
+
+ ::com::sun::star::uno::Any aValue;
+ try
+ {
+ aValue = ::comphelper::ConfigurationHelper::readDirectKey(
+ ::comphelper::getProcessServiceFactory(),
+ PACKAGE,
+ PATH,
+ KEY,
+ ::comphelper::ConfigurationHelper::E_READONLY);
+ }
+ catch(const ::com::sun::star::uno::Exception&)
+ { aValue.clear(); }
+
+ aValue >>= m_bNeverVisible;
+}
+
+void RegistrationPage::updateButtonStates()
+{
+ m_rbNever.Show( m_bNeverVisible );
+}
+
+sal_Bool RegistrationPage::commitPage( svt::WizardTypes::CommitPageReason _eReason )
+{
+ if ( _eReason == svt::WizardTypes::eFinish )
+ {
+ ::utl::RegOptions aOptions;
+ rtl::OUString aEvent;
+
+ if ( m_rbNow.IsChecked())
+ {
+ aEvent = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RegistrationRequired" ) );
+ }
+ else if (m_rbLater.IsChecked())
+ {
+ aOptions.activateReminder(7);
+ // avtivate a reminder job...
+ }
+ // aOptions.markSessionDone();
+
+ try
+ {
+ // create the Desktop component which can load components
+ Reference < XMultiServiceFactory > xFactory = ::comphelper::getProcessServiceFactory();
+ if( xFactory.is() )
+ {
+ Reference< com::sun::star::task::XJobExecutor > xProductRegistration(
+ xFactory->createInstance( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.setup.ProductRegistration" ) ) ),
+ UNO_QUERY_THROW );
+
+ // tell it that the user wants to register
+ xProductRegistration->trigger( aEvent );
+ }
+ }
+ catch( const Exception& )
+ {
+ }
+ }
+ return sal_True;
+}
+
+RegistrationPage::RegistrationMode RegistrationPage::getRegistrationMode() const
+{
+ RegistrationPage::RegistrationMode eMode = rmNow;
+ if ( m_rbLater.IsChecked() )
+ eMode = rmLater;
+ else if ( m_rbNever.IsChecked() )
+ eMode = rmNever;
+ return eMode;
+}
+
+void RegistrationPage::prepareSingleMode()
+{
+ // remove wizard text (hide and cut)
+ m_flSeparator.Hide();
+ m_ftEnd.Hide();
+ Size aNewSize = GetSizePixel();
+ aNewSize.Height() -= ( aNewSize.Height() - m_flSeparator.GetPosPixel().Y() );
+ SetSizePixel( aNewSize );
+}
+
+bool RegistrationPage::hasReminderDateCome()
+{
+ return ::utl::RegOptions().hasReminderDateCome();
+}
+
+void RegistrationPage::executeSingleMode()
+{
+ // opens the page in a single tabdialog
+ SfxSingleTabDialog aSingleDlg( NULL, TP_REGISTRATION );
+ RegistrationPage* pPage = new RegistrationPage( &aSingleDlg, WizardResId( TP_REGISTRATION ) );
+ pPage->prepareSingleMode();
+ aSingleDlg.SetPage( pPage );
+ aSingleDlg.SetText( pPage->getSingleModeTitle() );
+ aSingleDlg.Execute();
+ // the registration modes "Now" and "Later" are handled by the page
+ RegistrationPage::RegistrationMode eMode = pPage->getRegistrationMode();
+ if ( eMode == RegistrationPage::rmNow || eMode == RegistrationPage::rmLater )
+ pPage->commitPage( WizardTypes::eFinish );
+ if ( eMode != RegistrationPage::rmLater )
+ ::utl::RegOptions().removeReminder();
+}
+
+} // namespace desktop
diff --git a/desktop/source/migration/pages.hxx b/desktop/source/migration/pages.hxx
new file mode 100755
index 0000000000..2f6c2d31a5
--- /dev/null
+++ b/desktop/source/migration/pages.hxx
@@ -0,0 +1,212 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _PAGES_HXX_
+#define _PAGES_HXX_
+
+#include <vcl/tabpage.hxx>
+#include <vcl/button.hxx>
+#include <vcl/dialog.hxx>
+#include <vcl/scrbar.hxx>
+#include <vcl/throbber.hxx>
+#include <svtools/wizardmachine.hxx>
+#include <svtools/svmedit.hxx>
+#include <svl/lstner.hxx>
+#include <svtools/xtextedt.hxx>
+
+namespace desktop
+{
+class WelcomePage : public svt::OWizardPage
+{
+private:
+ FixedText m_ftHead;
+ FixedText m_ftBody;
+ svt::OWizardMachine *m_pParent;
+ sal_Bool m_bLicenseNeedsAcceptance;
+ enum OEMType
+ {
+ OEM_NONE, OEM_NORMAL, OEM_EXTENDED
+ };
+ bool bIsEvalVersion;
+ bool bNoEvalText;
+ void checkEval();
+
+
+public:
+ WelcomePage( svt::OWizardMachine* parent, const ResId& resid, sal_Bool bLicenseNeedsAcceptance );
+protected:
+ virtual void ActivatePage();
+};
+
+class LicenseView : public MultiLineEdit, public SfxListener
+{
+ sal_Bool mbEndReached;
+ Link maEndReachedHdl;
+ Link maScrolledHdl;
+
+public:
+ LicenseView( Window* pParent, const ResId& rResId );
+ ~LicenseView();
+
+ void ScrollDown( ScrollType eScroll );
+
+ sal_Bool IsEndReached() const;
+ sal_Bool EndReached() const { return mbEndReached; }
+ void SetEndReached( sal_Bool bEnd ) { mbEndReached = bEnd; }
+
+ void SetEndReachedHdl( const Link& rHdl ) { maEndReachedHdl = rHdl; }
+ const Link& GetAutocompleteHdl() const { return maEndReachedHdl; }
+
+ void SetScrolledHdl( const Link& rHdl ) { maScrolledHdl = rHdl; }
+ const Link& GetScrolledHdl() const { return maScrolledHdl; }
+
+ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+
+protected:
+ using MultiLineEdit::Notify;
+};
+
+class LicensePage : public svt::OWizardPage
+{
+private:
+ svt::OWizardMachine *m_pParent;
+ FixedText m_ftHead;
+ FixedText m_ftBody1;
+ FixedText m_ftBody1Txt;
+ FixedText m_ftBody2;
+ FixedText m_ftBody2Txt;
+ LicenseView m_mlLicense;
+ PushButton m_pbDown;
+ sal_Bool m_bLicenseRead;
+public:
+ LicensePage( svt::OWizardMachine* parent, const ResId& resid, const rtl::OUString &rLicensePath );
+private:
+ DECL_LINK(PageDownHdl, PushButton*);
+ DECL_LINK(EndReachedHdl, LicenseView*);
+ DECL_LINK(ScrolledHdl, LicenseView*);
+protected:
+ virtual bool canAdvance() const;
+ virtual void ActivatePage();
+};
+
+class MigrationPage : public svt::OWizardPage
+{
+private:
+ FixedText m_ftHead;
+ FixedText m_ftBody;
+ CheckBox m_cbMigration;
+ Throbber& m_rThrobber;
+ sal_Bool m_bMigrationDone;
+public:
+ MigrationPage( svt::OWizardMachine* parent, const ResId& resid, Throbber& i_throbber );
+ virtual sal_Bool commitPage( svt::WizardTypes::CommitPageReason _eReason );
+
+protected:
+ virtual void ActivatePage();
+};
+
+class UserPage : public svt::OWizardPage
+{
+private:
+ FixedText m_ftHead;
+ FixedText m_ftBody;
+ FixedText m_ftFirst;
+ Edit m_edFirst;
+ FixedText m_ftLast;
+ Edit m_edLast;
+ FixedText m_ftInitials;
+ Edit m_edInitials;
+ FixedText m_ftFather;
+ Edit m_edFather;
+ LanguageType m_lang;
+
+public:
+ UserPage( svt::OWizardMachine* parent, const ResId& resid);
+ virtual sal_Bool commitPage( svt::WizardTypes::CommitPageReason _eReason );
+protected:
+ virtual void ActivatePage();
+};
+
+class UpdateCheckPage : public svt::OWizardPage
+{
+private:
+ FixedText m_ftHead;
+ FixedText m_ftBody;
+ CheckBox m_cbUpdateCheck;
+public:
+ UpdateCheckPage( svt::OWizardMachine* parent, const ResId& resid);
+ virtual sal_Bool commitPage( svt::WizardTypes::CommitPageReason _eReason );
+
+protected:
+ virtual void ActivatePage();
+};
+
+
+class RegistrationPage : public svt::OWizardPage
+{
+private:
+ FixedText m_ftHeader;
+ FixedText m_ftBody;
+ RadioButton m_rbNow;
+ RadioButton m_rbLater;
+ RadioButton m_rbNever;
+ FixedLine m_flSeparator;
+ FixedText m_ftEnd;
+
+ sal_Bool m_bNeverVisible;
+
+ void updateButtonStates();
+ void impl_retrieveConfigurationData();
+
+protected:
+ virtual bool canAdvance() const;
+ virtual void ActivatePage();
+
+ virtual sal_Bool commitPage( svt::WizardTypes::CommitPageReason _eReason );
+
+public:
+ RegistrationPage( Window* parent, const ResId& resid);
+
+ enum RegistrationMode
+ {
+ rmNow, // register now
+ rmLater, // register later
+ rmNever // register never
+ };
+
+ RegistrationMode getRegistrationMode() const;
+ void prepareSingleMode();
+ inline String getSingleModeTitle() const { return m_ftHeader.GetText(); }
+
+ static bool hasReminderDateCome();
+ static void executeSingleMode();
+};
+
+} // namespace desktop
+
+#endif // #ifndef _PAGES_HXX_
+
diff --git a/desktop/source/migration/services/autocorrmigration.cxx b/desktop/source/migration/services/autocorrmigration.cxx
index 4b12969dbe..4b12969dbe 100644..100755
--- a/desktop/source/migration/services/autocorrmigration.cxx
+++ b/desktop/source/migration/services/autocorrmigration.cxx
diff --git a/desktop/source/migration/services/autocorrmigration.hxx b/desktop/source/migration/services/autocorrmigration.hxx
index 9a8aef32cd..9a8aef32cd 100644..100755
--- a/desktop/source/migration/services/autocorrmigration.hxx
+++ b/desktop/source/migration/services/autocorrmigration.hxx
diff --git a/desktop/source/migration/services/basicmigration.cxx b/desktop/source/migration/services/basicmigration.cxx
index fa3fa81fa4..fa3fa81fa4 100644..100755
--- a/desktop/source/migration/services/basicmigration.cxx
+++ b/desktop/source/migration/services/basicmigration.cxx
diff --git a/desktop/source/migration/services/basicmigration.hxx b/desktop/source/migration/services/basicmigration.hxx
index 131092748a..131092748a 100644..100755
--- a/desktop/source/migration/services/basicmigration.hxx
+++ b/desktop/source/migration/services/basicmigration.hxx
diff --git a/desktop/source/migration/services/cexports.cxx b/desktop/source/migration/services/cexports.cxx
index 261cf26665..02ff514a0b 100644..100755
--- a/desktop/source/migration/services/cexports.cxx
+++ b/desktop/source/migration/services/cexports.cxx
@@ -67,13 +67,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- return ::cppu::component_writeInfoHelper(
- pServiceManager, pRegistryKey, entries );
-}
-
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/desktop/source/migration/services/cexportsoo3.cxx b/desktop/source/migration/services/cexportsoo3.cxx
index 771c161879..9ffc255de5 100644..100755
--- a/desktop/source/migration/services/cexportsoo3.cxx
+++ b/desktop/source/migration/services/cexportsoo3.cxx
@@ -52,13 +52,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- return ::cppu::component_writeInfoHelper(
- pServiceManager, pRegistryKey, entries );
-}
-
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/desktop/source/migration/services/cppumaker.mk b/desktop/source/migration/services/cppumaker.mk
index 5ab16ed1e3..5ab16ed1e3 100644..100755
--- a/desktop/source/migration/services/cppumaker.mk
+++ b/desktop/source/migration/services/cppumaker.mk
diff --git a/desktop/source/migration/services/jvmfwk.cxx b/desktop/source/migration/services/jvmfwk.cxx
index 3e756bf451..3e756bf451 100644..100755
--- a/desktop/source/migration/services/jvmfwk.cxx
+++ b/desktop/source/migration/services/jvmfwk.cxx
diff --git a/desktop/source/migration/services/jvmfwk.hxx b/desktop/source/migration/services/jvmfwk.hxx
index 96e459521d..96e459521d 100644..100755
--- a/desktop/source/migration/services/jvmfwk.hxx
+++ b/desktop/source/migration/services/jvmfwk.hxx
diff --git a/desktop/source/migration/services/makefile.mk b/desktop/source/migration/services/makefile.mk
index 35f21ba99d..718ac0387c 100644..100755
--- a/desktop/source/migration/services/makefile.mk
+++ b/desktop/source/migration/services/makefile.mk
@@ -87,7 +87,7 @@ DEF1NAME=$(SHL1TARGET)
COMP2TYPELIST = migrationoo3
SHL2TARGET=migrationoo3.uno
-SHL2VERSIONMAP = migrationoo3.map
+SHL2VERSIONMAP = $(SOLARENV)/src/component.map
SHL2OBJS= \
$(SLO)$/cexportsoo3.obj \
@@ -116,3 +116,18 @@ DEF2NAME=$(SHL2TARGET)
.INCLUDE : target.mk
+ALLTAR : $(MISC)/migrationoo3.component
+
+$(MISC)/migrationoo3.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt migrationoo3.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL2TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt migrationoo3.component
+
+ALLTAR : $(MISC)/migrationoo2.component
+
+$(MISC)/migrationoo2.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt migrationoo2.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt migrationoo2.component
diff --git a/desktop/source/migration/services/migrationoo2.component b/desktop/source/migration/services/migrationoo2.component
new file mode 100755
index 0000000000..2b21ab123b
--- /dev/null
+++ b/desktop/source/migration/services/migrationoo2.component
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.desktop.migration.Basic">
+ <service name="com.sun.star.migration.Basic"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.desktop.migration.Wordbooks">
+ <service name="com.sun.star.migration.Wordbooks"/>
+ </implementation>
+</component>
diff --git a/desktop/source/migration/services/migrationoo2.xml b/desktop/source/migration/services/migrationoo2.xml
index 0c77badebc..0c77badebc 100644..100755
--- a/desktop/source/migration/services/migrationoo2.xml
+++ b/desktop/source/migration/services/migrationoo2.xml
diff --git a/desktop/source/migration/services/migrationoo3.component b/desktop/source/migration/services/migrationoo3.component
new file mode 100755
index 0000000000..380c389ab7
--- /dev/null
+++ b/desktop/source/migration/services/migrationoo3.component
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.desktop.migration.OOo3Extensions">
+ <service name="com.sun.star.migration.Extensions"/>
+ </implementation>
+</component>
diff --git a/desktop/source/migration/services/migrationoo3.map b/desktop/source/migration/services/migrationoo3.map
deleted file mode 100644
index ac2c3750bf..0000000000
--- a/desktop/source/migration/services/migrationoo3.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/desktop/source/migration/services/misc.hxx b/desktop/source/migration/services/misc.hxx
index a8f7babef9..a8f7babef9 100644..100755
--- a/desktop/source/migration/services/misc.hxx
+++ b/desktop/source/migration/services/misc.hxx
diff --git a/desktop/source/migration/services/oo3extensionmigration.cxx b/desktop/source/migration/services/oo3extensionmigration.cxx
index bf61dbb1b1..bd8c27e0c3 100644..100755
--- a/desktop/source/migration/services/oo3extensionmigration.cxx
+++ b/desktop/source/migration/services/oo3extensionmigration.cxx
@@ -293,7 +293,7 @@ bool OO3ExtensionMigration::scanDescriptionXml( const ::rtl::OUString& sDescript
utl::TextSearch ts(param, LANGUAGE_DONTKNOW);
xub_StrLen start = 0;
- xub_StrLen end = static_cast<USHORT>(aExtIdentifier.getLength());
+ xub_StrLen end = static_cast<sal_uInt16>(aExtIdentifier.getLength());
if (ts.SearchFrwrd(aExtIdentifier, &start, &end))
return false;
}
@@ -318,7 +318,7 @@ bool OO3ExtensionMigration::scanDescriptionXml( const ::rtl::OUString& sDescript
utl::TextSearch ts(param, LANGUAGE_DONTKNOW);
xub_StrLen start = 0;
- xub_StrLen end = static_cast<USHORT>(sDescriptionXmlURL.getLength());
+ xub_StrLen end = static_cast<sal_uInt16>(sDescriptionXmlURL.getLength());
if (ts.SearchFrwrd(sDescriptionXmlURL, &start, &end))
return false;
}
diff --git a/desktop/source/migration/services/oo3extensionmigration.hxx b/desktop/source/migration/services/oo3extensionmigration.hxx
index 0843707fb6..0843707fb6 100644..100755
--- a/desktop/source/migration/services/oo3extensionmigration.hxx
+++ b/desktop/source/migration/services/oo3extensionmigration.hxx
diff --git a/desktop/source/migration/services/wordbookmigration.cxx b/desktop/source/migration/services/wordbookmigration.cxx
index 4900c02755..3f1a79d1c6 100644..100755
--- a/desktop/source/migration/services/wordbookmigration.cxx
+++ b/desktop/source/migration/services/wordbookmigration.cxx
@@ -177,7 +177,7 @@ bool IsUserWordbook( const ::rtl::OUString& rFile )
bRet = true;
else
{
- USHORT nLen;
+ sal_uInt16 nLen;
pStream->Seek (nSniffPos);
*pStream >> nLen;
if ( nLen < MAX_HEADER_LENGTH )
diff --git a/desktop/source/migration/services/wordbookmigration.hxx b/desktop/source/migration/services/wordbookmigration.hxx
index 8b04417dba..8b04417dba 100644..100755
--- a/desktop/source/migration/services/wordbookmigration.hxx
+++ b/desktop/source/migration/services/wordbookmigration.hxx
diff --git a/desktop/source/migration/wizard.cxx b/desktop/source/migration/wizard.cxx
new file mode 100755
index 0000000000..47f3fcda50
--- /dev/null
+++ b/desktop/source/migration/wizard.cxx
@@ -0,0 +1,603 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_desktop.hxx"
+
+#include <migration.hxx>
+#include "wizard.hxx"
+#include "wizard.hrc"
+#include "pages.hxx"
+#include "app.hxx"
+
+#include <rtl/ustring.hxx>
+#include <rtl/ustrbuf.hxx>
+#include <rtl/string.hxx>
+#include <rtl/strbuf.hxx>
+#include <rtl/bootstrap.hxx>
+
+#include <comphelper/processfactory.hxx>
+#include <tools/date.hxx>
+#include <tools/time.hxx>
+#include <tools/datetime.hxx>
+#include <osl/file.hxx>
+#include <osl/time.h>
+#include <osl/module.hxx>
+#include <unotools/bootstrap.hxx>
+#include <vcl/msgbox.hxx>
+
+#include <com/sun/star/uno/Any.hxx>
+#include <com/sun/star/uno/Sequence.hxx>
+#include <com/sun/star/beans/NamedValue.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/beans/XPropertyState.hpp>
+#include <com/sun/star/frame/XDesktop.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/lang/XInitialization.hpp>
+#include <com/sun/star/lang/XComponent.hpp>
+#include <com/sun/star/util/XChangesBatch.hpp>
+#include <com/sun/star/container/XNameReplace.hpp>
+#include <com/sun/star/awt/WindowDescriptor.hpp>
+#include <com/sun/star/awt/WindowAttribute.hpp>
+
+using namespace svt;
+using namespace rtl;
+using namespace osl;
+using namespace utl;
+using namespace com::sun::star;
+using namespace com::sun::star::uno;
+using namespace com::sun::star::lang;
+using namespace com::sun::star::beans;
+using namespace com::sun::star::util;
+using namespace com::sun::star::container;
+
+#define UNISTRING(s) rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(s))
+
+namespace desktop
+{
+
+const FirstStartWizard::WizardState FirstStartWizard::STATE_WELCOME = 0;
+const FirstStartWizard::WizardState FirstStartWizard::STATE_LICENSE = 1;
+const FirstStartWizard::WizardState FirstStartWizard::STATE_MIGRATION = 2;
+const FirstStartWizard::WizardState FirstStartWizard::STATE_USER = 3;
+const FirstStartWizard::WizardState FirstStartWizard::STATE_UPDATE_CHECK = 4;
+const FirstStartWizard::WizardState FirstStartWizard::STATE_REGISTRATION = 5;
+
+static sal_Int32 getBuildId()
+{
+ ::rtl::OUString aDefault;
+ ::rtl::OUString aBuildIdData = utl::Bootstrap::getBuildIdData( aDefault );
+ sal_Int32 nBuildId( 0 );
+ sal_Int32 nIndex1 = aBuildIdData.indexOf(':');
+ sal_Int32 nIndex2 = aBuildIdData.indexOf(')');
+ if (( nIndex1 > 0 ) && ( nIndex2 > 0 ) && ( nIndex2-1 > nIndex1+1 ))
+ {
+ ::rtl::OUString aBuildId = aBuildIdData.copy( nIndex1+1, nIndex2-nIndex1-1 );
+ nBuildId = aBuildId.toInt32();
+ }
+ return nBuildId;
+}
+
+WizardResId::WizardResId( sal_uInt16 nId ) :
+ ResId( nId, *FirstStartWizard::GetResManager() )
+{
+}
+
+ResMgr *FirstStartWizard::pResMgr = 0;
+
+ResMgr *FirstStartWizard::GetResManager()
+{
+ if ( !FirstStartWizard::pResMgr )
+ {
+ String aMgrName = String::CreateFromAscii( "dkt" );
+ FirstStartWizard::pResMgr = ResMgr::CreateResMgr( OUStringToOString( aMgrName, RTL_TEXTENCODING_UTF8 ));
+ }
+ return FirstStartWizard::pResMgr;
+}
+
+FirstStartWizard::FirstStartWizard( Window* pParent, sal_Bool bLicenseNeedsAcceptance, const rtl::OUString &rLicensePath )
+ :RoadmapWizard( pParent, WizardResId(DLG_FIRSTSTART_WIZARD),
+ WZB_NEXT|WZB_PREVIOUS|WZB_FINISH|WZB_CANCEL|WZB_HELP)
+ ,m_bOverride(sal_False)
+ ,m_aDefaultPath(0)
+ ,m_aMigrationPath(0)
+ ,m_bDone(sal_False)
+ ,m_bLicenseNeedsAcceptance( bLicenseNeedsAcceptance )
+ ,m_bLicenseWasAccepted(sal_False)
+ ,m_bAutomaticUpdChk(sal_True)
+ ,m_aThrobber(this, WizardResId(CTRL_THROBBER))
+ ,m_aLicensePath( rLicensePath )
+{
+ FreeResource();
+ // ---
+// enableState(STATE_USER, sal_False);
+// enableState(STATE_REGISTRATION, sal_False);
+
+ Size aTPSize(TP_WIDTH, TP_HEIGHT);
+ SetPageSizePixel(LogicToPixel(aTPSize, MAP_APPFONT));
+
+ //set help id
+ m_pPrevPage->SetHelpId(HID_FIRSTSTART_PREV);
+ m_pNextPage->SetHelpId(HID_FIRSTSTART_NEXT);
+ m_pCancel->SetHelpId(HID_FIRSTSTART_CANCEL);
+ m_pFinish->SetHelpId(HID_FIRSTSTART_FINISH);
+ // m_pHelp->SetUniqueId(UID_FIRSTSTART_HELP);
+ m_pHelp->Hide();
+ m_pHelp->Disable();
+
+ // save button lables
+ m_sNext = m_pNextPage->GetText();
+ m_sCancel = m_pCancel->GetText();
+
+ // save cancel click handler
+ m_lnkCancel = m_pCancel->GetClickHdl();
+
+ m_aDefaultPath = defineWizardPagesDependingFromContext();
+ activatePath(m_aDefaultPath, sal_True);
+
+ ActivatePage();
+
+ // set text of finish putton:
+ m_pFinish->SetText(String(WizardResId(STR_FINISH)));
+ // disable "finish button"
+ enableButtons(WZB_FINISH, sal_False);
+ defaultButton(WZB_NEXT);
+}
+
+void FirstStartWizard::DisableButtonsWhileMigration()
+{
+ enableButtons(0xff, sal_False);
+}
+
+::svt::RoadmapWizardTypes::PathId FirstStartWizard::defineWizardPagesDependingFromContext()
+{
+ ::svt::RoadmapWizardTypes::PathId aDefaultPath = 0;
+
+ sal_Bool bPage_Welcome = sal_True;
+ sal_Bool bPage_License = sal_True;
+ sal_Bool bPage_Migration = sal_True;
+ sal_Bool bPage_User = sal_True;
+ sal_Bool bPage_UpdateCheck = sal_True;
+ sal_Bool bPage_Registration = sal_True;
+
+ bPage_License = m_bLicenseNeedsAcceptance;
+ bPage_Migration = Migration::checkMigration();
+ bPage_UpdateCheck = showOnlineUpdatePage();
+
+ WizardPath aPath;
+ if (bPage_Welcome)
+ aPath.push_back(STATE_WELCOME);
+ if (bPage_License)
+ aPath.push_back(STATE_LICENSE);
+ if (bPage_Migration)
+ aPath.push_back(STATE_MIGRATION);
+ if (bPage_User)
+ aPath.push_back(STATE_USER);
+ if (bPage_UpdateCheck)
+ aPath.push_back(STATE_UPDATE_CHECK);
+ if (bPage_Registration)
+ aPath.push_back(STATE_REGISTRATION);
+
+ declarePath(aDefaultPath, aPath);
+
+ // a) If license must be accepted by the user, all direct links
+ // to wizard tab pages must be disabled. Because such pages
+ // should be accessible only in case license was accepted !
+ // b) But if no license should be shown at all ...
+ // such direct links can be enabled by default.
+ sal_Bool bAllowDirectLink = ( ! bPage_License);
+
+ if (bPage_User)
+ enableState(STATE_USER, bAllowDirectLink);
+ if (bPage_UpdateCheck)
+ enableState(STATE_UPDATE_CHECK, bAllowDirectLink);
+ if (bPage_Migration)
+ enableState(STATE_MIGRATION, bAllowDirectLink);
+ if (bPage_Registration)
+ enableState(STATE_REGISTRATION, bAllowDirectLink);
+
+ return aDefaultPath;
+}
+
+// catch F1 and disable help
+long FirstStartWizard::PreNotify( NotifyEvent& rNEvt )
+{
+ if( rNEvt.GetType() == EVENT_KEYINPUT )
+ {
+ const KeyCode& rKey = rNEvt.GetKeyEvent()->GetKeyCode();
+ if( rKey.GetCode() == KEY_F1 && ! rKey.GetModifier() )
+ return sal_True;
+ }
+ return RoadmapWizard::PreNotify(rNEvt);
+}
+
+
+void FirstStartWizard::enterState(WizardState _nState)
+{
+ RoadmapWizard::enterState(_nState);
+ // default state
+ // all on
+ enableButtons(0xff, sal_True);
+ // finish off
+ enableButtons(WZB_FINISH, sal_False);
+ // default text
+ m_pCancel->SetText(m_sCancel);
+ m_pCancel->SetClickHdl(m_lnkCancel);
+ m_pNextPage->SetText(m_sNext);
+
+ // default
+ defaultButton(WZB_NEXT);
+
+ // specialized state
+ switch (_nState)
+ {
+ case STATE_WELCOME:
+ enableButtons(WZB_PREVIOUS, sal_False);
+ break;
+ case STATE_LICENSE:
+ m_pCancel->SetText(String(WizardResId(STR_LICENSE_DECLINE)));
+ m_pNextPage->SetText(String(WizardResId(STR_LICENSE_ACCEPT)));
+ enableButtons(WZB_NEXT, sal_False);
+ // attach warning dialog to cancel/decline button
+ m_pCancel->SetClickHdl( LINK(this, FirstStartWizard, DeclineHdl) );
+ break;
+ case STATE_REGISTRATION:
+ enableButtons(WZB_NEXT, sal_False);
+ enableButtons(WZB_FINISH, sal_True);
+ defaultButton(WZB_FINISH);
+ break;
+ }
+
+ // focus
+
+}
+
+IMPL_LINK( FirstStartWizard, DeclineHdl, PushButton *, EMPTYARG )
+{
+ QueryBox aBox(this, WizardResId(QB_ASK_DECLINE));
+ sal_Int32 ret = aBox.Execute();
+ if ( ret == BUTTON_OK || ret == BUTTON_YES)
+ {
+ Close();
+ return sal_False;
+ }
+ else
+ return sal_True;
+}
+
+
+TabPage* FirstStartWizard::createPage(WizardState _nState)
+{
+ TabPage *pTabPage = 0;
+ switch (_nState)
+ {
+ case STATE_WELCOME:
+ pTabPage = new WelcomePage(this, WizardResId(TP_WELCOME), m_bLicenseNeedsAcceptance);
+ break;
+ case STATE_LICENSE:
+ pTabPage = new LicensePage(this, WizardResId(TP_LICENSE), m_aLicensePath);
+ break;
+ case STATE_MIGRATION:
+ pTabPage = new MigrationPage(this, WizardResId(TP_MIGRATION), m_aThrobber);
+ break;
+ case STATE_USER:
+ pTabPage = new UserPage(this, WizardResId(TP_USER));
+ break;
+ case STATE_UPDATE_CHECK:
+ pTabPage = new UpdateCheckPage(this, WizardResId(TP_UPDATE_CHECK));
+ break;
+ case STATE_REGISTRATION:
+ pTabPage = new RegistrationPage(this, WizardResId(TP_REGISTRATION));
+ break;
+ }
+ pTabPage->Show();
+
+ return pTabPage;
+}
+
+String FirstStartWizard::getStateDisplayName( WizardState _nState ) const
+{
+ String sName;
+ switch(_nState)
+ {
+ case STATE_WELCOME:
+ sName = String(WizardResId(STR_STATE_WELCOME));
+ break;
+ case STATE_LICENSE:
+ sName = String(WizardResId(STR_STATE_LICENSE));
+ break;
+ case STATE_MIGRATION:
+ sName = String(WizardResId(STR_STATE_MIGRATION));
+ break;
+ case STATE_USER:
+ sName = String(WizardResId(STR_STATE_USER));
+ break;
+ case STATE_UPDATE_CHECK:
+ sName = String(WizardResId(STR_STATE_UPDATE_CHECK));
+ break;
+ case STATE_REGISTRATION:
+ sName = String(WizardResId(STR_STATE_REGISTRATION));
+ break;
+ }
+ return sName;
+}
+
+sal_Bool FirstStartWizard::prepareLeaveCurrentState( CommitPageReason _eReason )
+{
+ // the license acceptance is handled here, because it needs to change the state
+ // of the roadmap wizard which the page implementation does not know.
+ if (
+ (_eReason == eTravelForward) &&
+ (getCurrentState() == STATE_LICENSE ) &&
+ (m_bLicenseWasAccepted == sal_False )
+ )
+ {
+ if (Migration::checkMigration())
+ enableState(FirstStartWizard::STATE_MIGRATION, sal_True);
+ if ( showOnlineUpdatePage() )
+ enableState(FirstStartWizard::STATE_UPDATE_CHECK, sal_True);
+ enableState(FirstStartWizard::STATE_USER, sal_True);
+ enableState(FirstStartWizard::STATE_REGISTRATION, sal_True);
+
+ storeAcceptDate();
+ m_bLicenseWasAccepted = sal_True;
+ }
+
+ return svt::RoadmapWizard::prepareLeaveCurrentState(_eReason);
+}
+
+sal_Bool FirstStartWizard::leaveState(WizardState)
+{
+ if (( getCurrentState() == STATE_MIGRATION ) && m_bLicenseWasAccepted )
+ {
+ // Store accept date and patch level now as it has been
+ // overwritten by the migration process!
+ storeAcceptDate();
+ setPatchLevel();
+ }
+
+ return sal_True;
+}
+
+sal_Bool FirstStartWizard::onFinish()
+{
+ // return sal_True;
+ if ( svt::RoadmapWizard::onFinish() )
+ {
+#ifndef OS2 // cannot enable quickstart on first startup, see shutdownicon.cxx comments.
+ enableQuickstart();
+#endif
+ disableWizard();
+ return sal_True;
+ }
+ else
+ return sal_False;
+}
+
+short FirstStartWizard::Execute()
+{
+ return svt::RoadmapWizard::Execute();
+}
+
+static OUString _makeDateTimeString (const DateTime& aDateTime, sal_Bool bUTC = sal_False)
+{
+ OStringBuffer aDateTimeString;
+ aDateTimeString.append((sal_Int32)aDateTime.GetYear());
+ aDateTimeString.append("-");
+ if (aDateTime.GetMonth()<10) aDateTimeString.append("0");
+ aDateTimeString.append((sal_Int32)aDateTime.GetMonth());
+ aDateTimeString.append("-");
+ if (aDateTime.GetDay()<10) aDateTimeString.append("0");
+ aDateTimeString.append((sal_Int32)aDateTime.GetDay());
+ aDateTimeString.append("T");
+ if (aDateTime.GetHour()<10) aDateTimeString.append("0");
+ aDateTimeString.append((sal_Int32)aDateTime.GetHour());
+ aDateTimeString.append(":");
+ if (aDateTime.GetMin()<10) aDateTimeString.append("0");
+ aDateTimeString.append((sal_Int32)aDateTime.GetMin());
+ aDateTimeString.append(":");
+ if (aDateTime.GetSec()<10) aDateTimeString.append("0");
+ aDateTimeString.append((sal_Int32)aDateTime.GetSec());
+ if (bUTC) aDateTimeString.append("Z");
+
+ return OStringToOUString(aDateTimeString.makeStringAndClear(), RTL_TEXTENCODING_ASCII_US);
+}
+
+static OUString _getCurrentDateString()
+{
+ OUString aString;
+ return _makeDateTimeString(DateTime());
+}
+
+
+static const OUString sConfigSrvc( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.configuration.ConfigurationProvider" ) );
+static const OUString sAccessSrvc( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.configuration.ConfigurationUpdateAccess" ) );
+static const OUString sReadSrvc ( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.configuration.ConfigurationAccess" ) );
+
+void FirstStartWizard::storeAcceptDate()
+{
+
+ try {
+ Reference < XMultiServiceFactory > xFactory = ::comphelper::getProcessServiceFactory();
+ // get configuration provider
+ Reference< XMultiServiceFactory > theConfigProvider = Reference< XMultiServiceFactory >(
+ xFactory->createInstance(sConfigSrvc), UNO_QUERY_THROW);
+ Sequence< Any > theArgs(1);
+ NamedValue v(OUString::createFromAscii("NodePath"),
+ makeAny(OUString::createFromAscii("org.openoffice.Setup/Office")));
+ theArgs[0] <<= v;
+ Reference< XPropertySet > pset = Reference< XPropertySet >(
+ theConfigProvider->createInstanceWithArguments(sAccessSrvc, theArgs), UNO_QUERY_THROW);
+ Any result = pset->getPropertyValue(OUString::createFromAscii("LicenseAcceptDate"));
+
+ OUString aAcceptDate = _getCurrentDateString();
+ pset->setPropertyValue(OUString::createFromAscii("LicenseAcceptDate"), makeAny(aAcceptDate));
+ Reference< XChangesBatch >(pset, UNO_QUERY_THROW)->commitChanges();
+
+ // since the license is accepted the local user registry can be cleaned if required
+ cleanOldOfficeRegKeys();
+ } catch (const Exception&)
+ {
+ }
+
+}
+
+void FirstStartWizard::setPatchLevel()
+{
+ try {
+ Reference < XMultiServiceFactory > xFactory = ::comphelper::getProcessServiceFactory();
+ // get configuration provider
+ Reference< XMultiServiceFactory > theConfigProvider = Reference< XMultiServiceFactory >(
+ xFactory->createInstance(sConfigSrvc), UNO_QUERY_THROW);
+ Sequence< Any > theArgs(1);
+ NamedValue v(OUString::createFromAscii("NodePath"),
+ makeAny(OUString::createFromAscii("org.openoffice.Office.Common/Help/Registration")));
+ theArgs[0] <<= v;
+ Reference< XPropertySet > pset = Reference< XPropertySet >(
+ theConfigProvider->createInstanceWithArguments(sAccessSrvc, theArgs), UNO_QUERY_THROW);
+ Any result = pset->getPropertyValue(OUString::createFromAscii("ReminderDate"));
+
+ OUString aPatchLevel( RTL_CONSTASCII_USTRINGPARAM( "Patch" ));
+ aPatchLevel += OUString::valueOf( getBuildId(), 10 );
+ pset->setPropertyValue(OUString::createFromAscii("ReminderDate"), makeAny(aPatchLevel));
+ Reference< XChangesBatch >(pset, UNO_QUERY_THROW)->commitChanges();
+ } catch (const Exception&)
+ {
+ }
+}
+
+#ifdef WNT
+typedef int ( __stdcall * CleanCurUserRegProc ) ( wchar_t* );
+#endif
+
+void FirstStartWizard::cleanOldOfficeRegKeys()
+{
+#ifdef WNT
+ // after the wizard is completed clean OOo1.1.x entries in the current user registry if required
+ // issue i47658
+
+ OUString aBaseLocationPath;
+ OUString aSharedLocationPath;
+ OUString aInstallMode;
+
+ ::utl::Bootstrap::PathStatus aBaseLocateResult =
+ ::utl::Bootstrap::locateBaseInstallation( aBaseLocationPath );
+ ::utl::Bootstrap::PathStatus aSharedLocateResult =
+ ::utl::Bootstrap::locateSharedData( aSharedLocationPath );
+ aInstallMode = ::utl::Bootstrap::getAllUsersValue( ::rtl::OUString() );
+
+ // TODO: replace the checking for install mode
+ if ( aBaseLocateResult == ::utl::Bootstrap::PATH_EXISTS && aSharedLocateResult == ::utl::Bootstrap::PATH_EXISTS
+ && aInstallMode.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "1" ) ) ) )
+ {
+ ::rtl::OUString aDeregCompletePath =
+ aBaseLocationPath + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "/program/regcleanold.dll" ) );
+ ::rtl::OUString aExecCompletePath =
+ aSharedLocationPath + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "/regdeinstall/userdeinst.exe" ) );
+
+ osl::Module aCleanModule( aDeregCompletePath );
+ CleanCurUserRegProc pNativeProc = ( CleanCurUserRegProc )(
+ aCleanModule.getFunctionSymbol(
+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CleanCurUserOldSystemRegistry" ) ) ) );
+
+ if( pNativeProc!=NULL )
+ {
+ ::rtl::OUString aExecCompleteSysPath;
+ if ( osl::File::getSystemPathFromFileURL( aExecCompletePath, aExecCompleteSysPath ) == FileBase::E_None
+ && aExecCompleteSysPath.getLength() )
+ {
+ ( *pNativeProc )( (wchar_t*)( aExecCompleteSysPath.getStr() ) );
+ }
+ }
+ }
+#endif
+}
+
+void FirstStartWizard::disableWizard()
+{
+
+ try {
+ Reference < XMultiServiceFactory > xFactory = ::comphelper::getProcessServiceFactory();
+ // get configuration provider
+ Reference< XMultiServiceFactory > theConfigProvider = Reference< XMultiServiceFactory >(
+ xFactory->createInstance(sConfigSrvc), UNO_QUERY_THROW);
+ Sequence< Any > theArgs(1);
+ NamedValue v(OUString::createFromAscii("NodePath"),
+ makeAny(OUString::createFromAscii("org.openoffice.Setup/Office")));
+ theArgs[0] <<= v;
+ Reference< XPropertySet > pset = Reference< XPropertySet >(
+ theConfigProvider->createInstanceWithArguments(sAccessSrvc, theArgs), UNO_QUERY_THROW);
+ pset->setPropertyValue(OUString::createFromAscii("FirstStartWizardCompleted"), makeAny(sal_True));
+ Reference< XChangesBatch >(pset, UNO_QUERY_THROW)->commitChanges();
+ } catch (const Exception&)
+ {
+ }
+
+}
+
+
+void FirstStartWizard::enableQuickstart()
+{
+ sal_Bool bQuickstart( sal_True );
+ sal_Bool bAutostart( sal_True );
+ Sequence< Any > aSeq( 2 );
+ aSeq[0] <<= bQuickstart;
+ aSeq[1] <<= bAutostart;
+
+ Reference < XInitialization > xQuickstart( ::comphelper::getProcessServiceFactory()->createInstance(
+ OUString::createFromAscii( "com.sun.star.office.Quickstart" )),UNO_QUERY );
+ if ( xQuickstart.is() )
+ xQuickstart->initialize( aSeq );
+
+}
+
+sal_Bool FirstStartWizard::showOnlineUpdatePage()
+{
+ try {
+ Reference < XNameReplace > xUpdateAccess;
+ Reference < XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() );
+
+ xUpdateAccess = Reference < XNameReplace >(
+ xFactory->createInstance( UNISTRING( "com.sun.star.setup.UpdateCheckConfig" ) ), UNO_QUERY_THROW );
+
+ if ( xUpdateAccess.is() )
+ {
+ sal_Bool bAutoUpdChk = sal_False;
+ Any result = xUpdateAccess->getByName( UNISTRING( "AutoCheckEnabled" ) );
+ result >>= bAutoUpdChk;
+ if ( bAutoUpdChk == sal_False )
+ return sal_True;
+ else
+ return sal_False;
+ }
+ } catch (const Exception&)
+ {
+ }
+ return sal_False;
+}
+
+}
diff --git a/desktop/source/migration/wizard.hrc b/desktop/source/migration/wizard.hrc
new file mode 100755
index 0000000000..8ba9c89d7e
--- /dev/null
+++ b/desktop/source/migration/wizard.hrc
@@ -0,0 +1,100 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include "desktop.hrc"
+#include "helpid.hrc"
+
+#define TP_WIDTH 220
+#define TP_HEIGHT 205
+
+#define DLG_FIRSTSTART_WIZARD RID_FIRSTSTSTART_START+1
+ // FREE
+#define TP_WELCOME RID_FIRSTSTSTART_START+3
+#define TP_REGISTRATION RID_FIRSTSTSTART_START+4
+#define TP_MIGRATION RID_FIRSTSTSTART_START+5
+#define TP_USER RID_FIRSTSTSTART_START+6
+#define TP_LICENSE RID_FIRSTSTSTART_START+7
+#define TP_UPDATE_CHECK RID_FIRSTSTSTART_START+8
+#define ERRBOX_REG_NOSYSBROWSER RID_FIRSTSTSTART_START+29
+#define QB_ASK_DECLINE RID_FIRSTSTSTART_START+30
+
+// local resIDs
+
+#define FT_WELCOME_HEADER 1
+#define FT_WELCOME_BODY 2
+#define FT_LICENSE_HEADER 1
+#define FT_LICENSE_BODY_1 2
+#define FT_LICENSE_BODY_1_TXT 3
+#define FT_LICENSE_BODY_2 4
+#define FT_LICENSE_BODY_2_TXT 5
+#define ML_LICENSE 6
+#define PB_LICENSE_DOWN 7
+#define FT_MIGRATION_HEADER 1
+#define FT_MIGRATION_BODY 2
+#define CB_MIGRATION 3
+#define FT_UPDATE_CHECK_HEADER 1
+#define FT_UPDATE_CHECK_BODY 2
+#define CB_UPDATE_CHECK 3
+#define FT_REGISTRATION_HEADER 1
+#define FT_REGISTRATION_BODY 2
+#define FL_REGISTRATION 3
+#define FT_REGISTRATION_END 4
+#define RB_REGISTRATION_NOW 5
+#define RB_REGISTRATION_LATER 6
+#define RB_REGISTRATION_NEVER 7
+#define RB_REGISTRATION_REG 8
+#define IMG_REGISTRATION 9
+#define FT_USER_HEADER 10
+#define FT_USER_BODY 11
+#define FT_USER_FIRST 12
+#define FT_USER_LAST 13
+#define FT_USER_FATHER 14
+#define FT_USER_INITIALS 15
+#define ED_USER_FIRST 16
+#define ED_USER_LAST 17
+#define ED_USER_FATHER 18
+#define ED_USER_INITIALS 19
+#define TR_WAITING 20
+#define CTRL_THROBBER 21
+
+// global strings
+#define STR_STATE_WELCOME RID_FIRSTSTSTART_START+100
+#define STR_STATE_LICENSE RID_FIRSTSTSTART_START+101
+#define STR_STATE_MIGRATION RID_FIRSTSTSTART_START+102
+#define STR_STATE_REGISTRATION RID_FIRSTSTSTART_START+103
+#define STR_WELCOME_MIGRATION RID_FIRSTSTSTART_START+104
+// FREE RID_FIRSTSTSTART_START+105
+// FREE RID_FIRSTSTSTART_START+106
+#define STR_LICENSE_ACCEPT RID_FIRSTSTSTART_START+107
+#define STR_LICENSE_DECLINE RID_FIRSTSTSTART_START+108
+#define STR_FINISH RID_FIRSTSTSTART_START+109
+#define STR_STATE_USER RID_FIRSTSTSTART_START+110
+// FREE RID_FIRSTSTSTART_START+111
+#define STR_STATE_UPDATE_CHECK RID_FIRSTSTSTART_START+112
+#define STR_WELCOME_WITHOUT_LICENSE RID_FIRSTSTSTART_START+113
+#define STR_REGISTRATION_OOO RID_FIRSTSTSTART_START+114
+
diff --git a/desktop/source/migration/wizard.hxx b/desktop/source/migration/wizard.hxx
new file mode 100755
index 0000000000..7a9681a30f
--- /dev/null
+++ b/desktop/source/migration/wizard.hxx
@@ -0,0 +1,105 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _WIZARD_HXX_
+#define _WIZARD_HXX_
+
+#include <rtl/ustring.hxx>
+#include <svtools/roadmapwizard.hxx>
+#include <vcl/throbber.hxx>
+#include <tools/resid.hxx>
+
+namespace desktop
+{
+
+class WizardResId : public ResId
+{
+public:
+ WizardResId( sal_uInt16 nId );
+};
+
+class FirstStartWizard : public svt::RoadmapWizard
+{
+
+public:
+ static const WizardState STATE_WELCOME;
+ static const WizardState STATE_LICENSE;
+ static const WizardState STATE_MIGRATION;
+ static const WizardState STATE_USER;
+ static const WizardState STATE_UPDATE_CHECK;
+ static const WizardState STATE_REGISTRATION;
+
+ static ResMgr* pResMgr;
+ static ResMgr* GetResManager();
+
+ FirstStartWizard( Window* pParent, sal_Bool bLicenseNeedsAcceptance, const rtl::OUString &rLicensePath );
+
+ virtual short Execute();
+ virtual long PreNotify( NotifyEvent& rNEvt );
+
+ void DisableButtonsWhileMigration();
+
+private:
+ sal_Bool m_bOverride;
+ WizardState _currentState;
+ ::svt::RoadmapWizardTypes::PathId m_aDefaultPath;
+ ::svt::RoadmapWizardTypes::PathId m_aMigrationPath;
+ String m_sNext;
+ String m_sCancel;
+ sal_Bool m_bDone;
+ sal_Bool m_bLicenseNeedsAcceptance;
+ sal_Bool m_bLicenseWasAccepted;
+ sal_Bool m_bAutomaticUpdChk;
+ Link m_lnkCancel;
+ Throbber m_aThrobber;
+
+ rtl::OUString m_aLicensePath;
+
+ void storeAcceptDate();
+ void setPatchLevel();
+ void disableWizard();
+ void enableQuickstart();
+
+ DECL_LINK(DeclineHdl, PushButton*);
+
+ void cleanOldOfficeRegKeys();
+ sal_Bool showOnlineUpdatePage();
+ ::svt::RoadmapWizardTypes::PathId defineWizardPagesDependingFromContext();
+
+protected:
+ // from svt::WizardMachine
+ virtual TabPage* createPage(WizardState _nState);
+ virtual sal_Bool prepareLeaveCurrentState( CommitPageReason _eReason );
+ virtual sal_Bool leaveState(WizardState _nState );
+ virtual sal_Bool onFinish();
+ virtual void enterState(WizardState _nState);
+
+ // from svt::RoadmapWizard
+ virtual String getStateDisplayName( WizardState _nState ) const;
+};
+}
+#endif
diff --git a/desktop/source/migration/wizard.src b/desktop/source/migration/wizard.src
new file mode 100755
index 0000000000..4f98ce91bb
--- /dev/null
+++ b/desktop/source/migration/wizard.src
@@ -0,0 +1,442 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+ /*
+ * encoding for resources: windows-1252
+ */
+
+#include "wizard.hrc"
+#include <svtools/controldims.hrc>
+
+ModalDialog DLG_FIRSTSTART_WIZARD
+{
+ Text [ en-US ] = "Welcome to %PRODUCTNAME %PRODUCTVERSION";
+
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ Hide = TRUE;
+ HelpID = HID_FIRSTSTART_DIALOG;
+
+ FixedImage CTRL_THROBBER
+ {
+ Pos = MAP_APPFONT( 5, 210 );
+ Size = MAP_APPFONT( 11, 11 );
+ Hide = TRUE;
+ };
+};
+
+String STR_STATE_WELCOME
+{
+ Text [ en-US ] = "Welcome";
+};
+String STR_STATE_LICENSE
+{
+ Text [ en-US ] = "License Agreement";
+};
+String STR_STATE_MIGRATION
+{
+ Text [ en-US ] = "Personal Data";
+};
+String STR_STATE_USER
+{
+ Text [ en-US ] = "User name";
+};
+
+String STR_STATE_UPDATE_CHECK
+{
+ Text [ en-US ] = "Online Update";
+};
+
+String STR_STATE_REGISTRATION
+{
+ Text [ en-US ] = "Registration";
+};
+
+String STR_WELCOME_MIGRATION
+{
+ Text [ en-US ] = "This wizard will guide you through the license agreement, the transfer of user data from %OLD_VERSION and the registration of %PRODUCTNAME.\n\nClick 'Next' to continue.";
+
+};
+
+String STR_WELCOME_WITHOUT_LICENSE
+{
+ Text [ en-US ] = "This wizard will guide you through the registration of %PRODUCTNAME.\n\nClick 'Next' to continue.";
+};
+
+String STR_FINISH
+{
+ Text [ en-US ] = "~Finish";
+};
+
+String STR_REGISTRATION_OOO
+{
+ Text [ en-US ] = "You now have the opportunity to support and contribute to the fastest growing open source community in the world.\n\nHelp us prove that %PRODUCTNAME has already gained significant market share by registering.\n\nRegistering is voluntary and without obligation.";
+};
+
+ErrorBox ERRBOX_REG_NOSYSBROWSER
+{
+ BUTTONS = WB_OK ;
+ DEFBUTTON = WB_DEF_OK ;
+
+ Message [ en-US ] = "An error occurred in starting the web browser.\nPlease check the %PRODUCTNAME and web browser settings.";
+};
+
+QueryBox QB_ASK_DECLINE
+{
+ Buttons = WB_YES_NO;
+ DefButton = WB_DEF_NO;
+
+ Message [ en-US ] = "Do you really want to decline?";
+};
+
+
+#define ROWHEIGHT 8
+#define MARGINLEFT 10
+#define MARGINRIGHT 10
+#define BODYWIDTH TP_WIDTH-MARGINLEFT-MARGINRIGHT
+#define MARGINTOP 10
+#define MARGINBOTTOM 2
+#define BODYHEIGHT TP_HEIGHT-MARGINTOP-MARGINBOTTOM
+#define INDENT 10
+#define INDENT2 12
+
+TabPage TP_WELCOME
+{
+ SVLook = TRUE ;
+ Hide = TRUE ;
+ Size = MAP_APPFONT(TP_WIDTH, TP_HEIGHT);
+ HelpID = HID_FIRSTSTART_WELCOME;
+ // bold fixedtext for header
+ FixedText FT_WELCOME_HEADER
+ {
+ NoLabel = TRUE;
+ Pos = MAP_APPFONT(MARGINRIGHT, MARGINTOP);
+ Size = MAP_APPFONT( BODYWIDTH, ROWHEIGHT );
+ Text [ en-US ] = "Welcome to %PRODUCTNAME %PRODUCTVERSION";
+ };
+ FixedText FT_WELCOME_BODY
+ {
+ NoLabel = TRUE;
+ Pos = MAP_APPFONT(MARGINLEFT, MARGINTOP + 2*ROWHEIGHT);
+ Size = MAP_APPFONT( BODYWIDTH, BODYHEIGHT-MARGINTOP - 2*ROWHEIGHT );
+ WordBreak = TRUE;
+ Text [ en-US ] = "This wizard will guide you through the license agreement and the registration of %PRODUCTNAME.\n\nClick 'Next' to continue.";
+ };
+};
+
+TabPage TP_LICENSE
+{
+ SVLook = TRUE ;
+ Hide = TRUE ;
+ Size = MAP_APPFONT(TP_WIDTH, TP_HEIGHT);
+ HelpID = HID_FIRSTSTART_LICENSE;
+ FixedText FT_LICENSE_HEADER
+ {
+ Pos = MAP_APPFONT(MARGINLEFT, MARGINTOP);
+ Size = MAP_APPFONT( BODYWIDTH, ROWHEIGHT );
+ NoLabel = TRUE;
+ Text [ en-US ] = "Please follow these steps to accept the license";
+ };
+ FixedText FT_LICENSE_BODY_1
+ {
+ Pos = MAP_APPFONT(MARGINLEFT, MARGINTOP + 2*ROWHEIGHT);
+ Size = MAP_APPFONT( INDENT, ROWHEIGHT );
+ NoLabel = TRUE;
+ Text [ en-US ] = "1.";
+ };
+ FixedText FT_LICENSE_BODY_1_TXT
+ {
+ Pos = MAP_APPFONT(MARGINLEFT+INDENT, MARGINTOP +2*ROWHEIGHT);
+ Size = MAP_APPFONT( BODYWIDTH-INDENT, 3*ROWHEIGHT);
+ WordBreak = TRUE;
+ NoLabel = TRUE;
+ Text [ en-US ] = "View the complete License Agreement. Please use the scrollbar or the '%PAGEDOWN' button in this dialog to view the entire license text.";
+ };
+ FixedText FT_LICENSE_BODY_2
+ {
+ Pos = MAP_APPFONT(MARGINLEFT, MARGINTOP + 5*ROWHEIGHT);
+ Size = MAP_APPFONT(INDENT, ROWHEIGHT );
+ NoLabel = TRUE;
+ Text [ en-US ] = "2.";
+ };
+ FixedText FT_LICENSE_BODY_2_TXT
+ {
+ Pos = MAP_APPFONT(MARGINLEFT+INDENT, MARGINTOP + 5*ROWHEIGHT);
+ Size = MAP_APPFONT( BODYWIDTH-INDENT, 2*ROWHEIGHT);
+ WordBreak = TRUE;
+ NoLabel = TRUE;
+ Text [ en-US ] = "Click 'Accept' to accept the terms of the Agreement.";
+ };
+ MultiLineEdit ML_LICENSE
+ {
+ HelpID = "desktop:MultiLineEdit:TP_LICENSE:ML_LICENSE";
+ PosSize = MAP_APPFONT (MARGINLEFT+INDENT, MARGINTOP + 8*ROWHEIGHT, BODYWIDTH-INDENT , BODYHEIGHT - 8*ROWHEIGHT - 20-2*MARGINBOTTOM) ;
+ Border = TRUE;
+ VScroll = TRUE;
+ ReadOnly = TRUE;
+ };
+ PushButton PB_LICENSE_DOWN
+ {
+ HelpID = "desktop:PushButton:TP_LICENSE:PB_LICENSE_DOWN";
+ TabStop = TRUE ;
+ Pos = MAP_APPFONT ( TP_WIDTH-MARGINRIGHT-50 , TP_HEIGHT-MARGINBOTTOM-18 ) ;
+ Size = MAP_APPFONT ( 50, 15 ) ;
+ Text [ en-US ] = "Scroll Do~wn";
+ };
+};
+
+String STR_LICENSE_ACCEPT
+{
+ Text [ en-US ] = "~Accept";
+};
+String STR_LICENSE_DECLINE
+{
+ Text [ en-US ] = "~Decline";
+};
+
+
+TabPage TP_MIGRATION
+{
+ SVLook = TRUE ;
+ Hide = TRUE ;
+ Size = MAP_APPFONT(TP_WIDTH, TP_HEIGHT);
+ HelpID = HID_FIRSTSTART_MIGRATION;
+
+ FixedText FT_MIGRATION_HEADER
+ {
+ NoLabel = TRUE;
+ Pos = MAP_APPFONT(MARGINLEFT, MARGINTOP);
+ Size = MAP_APPFONT( BODYWIDTH, ROWHEIGHT );
+ Text [ en-US ] = "Transfer personal data";
+
+ };
+
+ FixedText FT_MIGRATION_BODY
+ {
+ NoLabel = TRUE;
+ Pos = MAP_APPFONT(MARGINLEFT, MARGINTOP+ROWHEIGHT*2);
+ Size = MAP_APPFONT(BODYWIDTH, ROWHEIGHT*8);
+ WordBreak = TRUE;
+ Text [ en-US ] = "Most personal data from %OLDPRODUCT installation can be reused in %PRODUCTNAME %PRODUCTVERSION.\n\nIf you do not want to reuse any settings in %PRODUCTNAME %PRODUCTVERSION, unmark the check box.";
+
+ };
+
+ CheckBox CB_MIGRATION
+ {
+ HelpID = "desktop:CheckBox:TP_MIGRATION:CB_MIGRATION";
+ Pos = MAP_APPFONT(MARGINLEFT, MARGINTOP+ROWHEIGHT*10);
+ Size = MAP_APPFONT(BODYWIDTH, ROWHEIGHT*2);
+ Check = TRUE;
+ Text [ en-US ] = "Transfer personal data";
+ };
+};
+
+TabPage TP_UPDATE_CHECK
+{
+ SVLook = TRUE ;
+ Hide = TRUE ;
+ Size = MAP_APPFONT(TP_WIDTH, TP_HEIGHT);
+ HelpID = HID_FIRSTSTART_UPDATE_CHECK;
+
+ FixedText FT_UPDATE_CHECK_HEADER
+ {
+ NoLabel = TRUE;
+ Pos = MAP_APPFONT(MARGINLEFT, MARGINTOP);
+ Size = MAP_APPFONT( BODYWIDTH, ROWHEIGHT );
+ Text [ en-US ] = "Online Update";
+
+ };
+
+ FixedText FT_UPDATE_CHECK_BODY
+ {
+ NoLabel = TRUE;
+ Pos = MAP_APPFONT(MARGINLEFT, MARGINTOP+ROWHEIGHT*2);
+ Size = MAP_APPFONT(BODYWIDTH, ROWHEIGHT*8);
+ WordBreak = TRUE;
+ Text [ en-US ] = "%PRODUCTNAME searches automatically at regular intervals for new versions.\nIn doing so online update does not transfer personal data.\nAs soon as a new version is available, you will be notified.\n\nYou can configure this feature at Tools / Options... / %PRODUCTNAME / Online Update.";
+
+ };
+
+ CheckBox CB_UPDATE_CHECK
+ {
+ HelpID = "desktop:CheckBox:TP_UPDATE_CHECK:CB_UPDATE_CHECK";
+ Pos = MAP_APPFONT(MARGINLEFT, MARGINTOP+ROWHEIGHT*10);
+ Size = MAP_APPFONT(BODYWIDTH, ROWHEIGHT*2);
+ Check = TRUE;
+ Text [ en-US ] = "~Check for updates automatically";
+ };
+};
+
+#define USERINDENT 40
+#define EDHEIGHT 12
+#define INITIALSWIDTH 50
+#define FTADD 2
+
+TabPage TP_USER
+{
+ SVLook = TRUE ;
+ Hide = TRUE ;
+ Size = MAP_APPFONT(TP_WIDTH, TP_HEIGHT);
+ HelpID = HID_FIRSTSTART_USER;
+
+ FixedText FT_USER_HEADER
+ {
+ NoLabel = TRUE;
+ Pos = MAP_APPFONT(MARGINLEFT, MARGINTOP);
+ Size = MAP_APPFONT( BODYWIDTH, ROWHEIGHT );
+ Text [ en-US ] = "Provide your full name and initials below";
+
+ };
+
+ FixedText FT_USER_BODY
+ {
+ NoLabel = TRUE;
+ Pos = MAP_APPFONT(MARGINLEFT, MARGINTOP+ROWHEIGHT*2);
+ Size = MAP_APPFONT(BODYWIDTH, ROWHEIGHT*3);
+ WordBreak = TRUE;
+ Text [ en-US ] = "The user name will be used in the document properties, templates and when you record changes made to documents.";
+ };
+
+
+ FixedText FT_USER_FIRST
+ {
+ Pos = MAP_APPFONT(MARGINLEFT, MARGINTOP+ROWHEIGHT*7+FTADD);
+ Size = MAP_APPFONT(USERINDENT, ROWHEIGHT);
+ Text [ en-US ] = "~First name";
+ };
+ Edit ED_USER_FIRST
+ {
+ HelpID = "desktop:Edit:TP_USER:ED_USER_FIRST";
+ Border = TRUE;
+ Pos = MAP_APPFONT(MARGINLEFT+USERINDENT, MARGINTOP+ROWHEIGHT*7);
+ Size = MAP_APPFONT(BODYWIDTH-USERINDENT, EDHEIGHT);
+ };
+ FixedText FT_USER_LAST
+ {
+ Pos = MAP_APPFONT(MARGINLEFT, MARGINTOP+ROWHEIGHT*9+FTADD);
+ Size = MAP_APPFONT(USERINDENT, ROWHEIGHT);
+ Text [ en-US ] = "~Last name";
+ };
+ Edit ED_USER_LAST
+ {
+ HelpID = "desktop:Edit:TP_USER:ED_USER_LAST";
+ Border = TRUE;
+ Pos = MAP_APPFONT(MARGINLEFT+USERINDENT, MARGINTOP+ROWHEIGHT*9);
+ Size = MAP_APPFONT(BODYWIDTH-USERINDENT, EDHEIGHT);
+ };
+ FixedText FT_USER_INITIALS
+ {
+ Pos = MAP_APPFONT(MARGINLEFT, MARGINTOP+ROWHEIGHT*11+FTADD);
+ Size = MAP_APPFONT(USERINDENT, ROWHEIGHT);
+ Text [ en-US ] = "~Initials";
+ };
+ Edit ED_USER_INITIALS
+ {
+ HelpID = "desktop:Edit:TP_USER:ED_USER_INITIALS";
+ Border = TRUE;
+ Pos = MAP_APPFONT(MARGINLEFT+USERINDENT, MARGINTOP+ROWHEIGHT*11);
+ Size = MAP_APPFONT(INITIALSWIDTH, EDHEIGHT);
+ };
+
+ FixedText FT_USER_FATHER
+ {
+ Hide = TRUE;
+ Pos = MAP_APPFONT(MARGINLEFT+USERINDENT+INITIALSWIDTH+10, MARGINTOP+ROWHEIGHT*11+FTADD);
+ Size = MAP_APPFONT(USERINDENT, ROWHEIGHT);
+ Text [ en-US ] = "~Father's name";
+ };
+ Edit ED_USER_FATHER
+ {
+ HelpID = "desktop:Edit:TP_USER:ED_USER_FATHER";
+ Border = TRUE;
+ Hide = TRUE;
+ Pos = MAP_APPFONT(MARGINLEFT+USERINDENT*2+INITIALSWIDTH+10, MARGINTOP+ROWHEIGHT*11);
+ Size = MAP_APPFONT(BODYWIDTH-10-USERINDENT*2-INITIALSWIDTH, EDHEIGHT);
+ };
+};
+
+#define RB_HEIGHT (RSC_CD_CHECKBOX_HEIGHT+RSC_SP_GRP_SPACE_Y)
+
+TabPage TP_REGISTRATION
+{
+ SVLook = TRUE ;
+ Hide = TRUE ;
+ Size = MAP_APPFONT(TP_WIDTH, TP_HEIGHT);
+ HelpID = HID_FIRSTSTART_REGISTRATION;
+ FixedText FT_REGISTRATION_HEADER
+ {
+ NoLabel = TRUE;
+ Text [ en-US ] = "%PRODUCTNAME Registration";
+ Pos = MAP_APPFONT(MARGINLEFT, MARGINRIGHT);
+ Size = MAP_APPFONT(BODYWIDTH, MARGINRIGHT);
+ };
+ FixedText FT_REGISTRATION_BODY
+ {
+ NoLabel = TRUE;
+ Text [ en-US ] = "You now have the opportunity to register as a %PRODUCTNAME user. Registration is voluntary and is without obligation.\n\nIf you register, we can inform you about new developments concerning this product.";
+ WordBreak = TRUE;
+ Pos = MAP_APPFONT(MARGINLEFT, MARGINTOP+ROWHEIGHT*2);
+ Size = MAP_APPFONT(BODYWIDTH, ROWHEIGHT*8);
+ };
+ RadioButton RB_REGISTRATION_NOW
+ {
+ HelpID = "desktop:RadioButton:TP_REGISTRATION:RB_REGISTRATION_NOW";
+ Text [ en-US ] = "I want to register ~now";
+ Pos = MAP_APPFONT(MARGINLEFT+INDENT2, ROWHEIGHT*12+2);
+ Size = MAP_APPFONT(BODYWIDTH-INDENT2, RSC_CD_CHECKBOX_HEIGHT);
+ Check = TRUE;
+ };
+ RadioButton RB_REGISTRATION_LATER
+ {
+ HelpID = "desktop:RadioButton:TP_REGISTRATION:RB_REGISTRATION_LATER";
+ Text [ en-US ] = "I want to register ~later";
+ Pos = MAP_APPFONT(MARGINLEFT+INDENT2, ROWHEIGHT*12+2+RB_HEIGHT);
+ Size = MAP_APPFONT(BODYWIDTH-INDENT2, RSC_CD_CHECKBOX_HEIGHT);
+ };
+ RadioButton RB_REGISTRATION_NEVER
+ {
+ HelpID = "desktop:RadioButton:TP_REGISTRATION:RB_REGISTRATION_NEVER";
+ Text [ en-US ] = "I do not want to ~register";
+ Pos = MAP_APPFONT(MARGINLEFT+INDENT2, ROWHEIGHT*12+2+RB_HEIGHT*2);
+ Size = MAP_APPFONT(BODYWIDTH-INDENT2, RSC_CD_CHECKBOX_HEIGHT);
+ };
+ FixedLine FL_REGISTRATION
+ {
+ Pos = MAP_APPFONT(MARGINLEFT, TP_HEIGHT-MARGINBOTTOM-ROWHEIGHT*6);
+ Size = MAP_APPFONT(BODYWIDTH, ROWHEIGHT);
+ };
+ FixedText FT_REGISTRATION_END
+ {
+ NoLabel = TRUE;
+ Text [ en-US ] = "We hope you enjoy working with %PRODUCTNAME.\n\nTo exit the wizard, click 'Finish'.";
+ Pos = MAP_APPFONT(MARGINLEFT, TP_HEIGHT-MARGINBOTTOM-ROWHEIGHT*4);
+ Size = MAP_APPFONT(BODYWIDTH, ROWHEIGHT*4);
+ };
+};
+
diff --git a/desktop/source/offacc/acceptor.cxx b/desktop/source/offacc/acceptor.cxx
index c33a3b9167..0b9f33ada3 100644..100755
--- a/desktop/source/offacc/acceptor.cxx
+++ b/desktop/source/offacc/acceptor.cxx
@@ -303,23 +303,6 @@ component_getImplementationEnvironment(const sal_Char **ppEnvironmentTypeName, u
*ppEnvironmentTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ;
}
-sal_Bool SAL_CALL
-component_writeInfo(void *pServiceManager, void *pRegistryKey)
-{
- Reference< XMultiServiceFactory > xMan(reinterpret_cast< XMultiServiceFactory* >(pServiceManager));
- Reference< XRegistryKey > xKey(reinterpret_cast< XRegistryKey* >(pRegistryKey));
-
- // register service
- ::rtl::OUString aTempStr;
- ::rtl::OUString aImpl(RTL_CONSTASCII_USTRINGPARAM("/"));
- aImpl += Acceptor::impl_getImplementationName();
- aImpl += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES"));
- Reference< XRegistryKey > xNewKey = xKey->createKey(aImpl);
- xNewKey->createKey(Acceptor::impl_getSupportedServiceNames()[0]);
-
- return sal_True;
-}
-
void * SAL_CALL
component_getFactory(const sal_Char *pImplementationName, void *pServiceManager, void *)
{
diff --git a/desktop/source/offacc/acceptor.hxx b/desktop/source/offacc/acceptor.hxx
index 4096b3e63c..4096b3e63c 100644..100755
--- a/desktop/source/offacc/acceptor.hxx
+++ b/desktop/source/offacc/acceptor.hxx
diff --git a/desktop/source/offacc/makefile.mk b/desktop/source/offacc/makefile.mk
index c2d53930b5..809c28414b 100644..100755
--- a/desktop/source/offacc/makefile.mk
+++ b/desktop/source/offacc/makefile.mk
@@ -60,3 +60,11 @@ SHL1STDLIBS= \
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/offacc.component
+
+$(MISC)/offacc.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ offacc.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt offacc.component
diff --git a/desktop/source/offacc/offacc.component b/desktop/source/offacc/offacc.component
new file mode 100755
index 0000000000..6f0d4a97a2
--- /dev/null
+++ b/desktop/source/offacc/offacc.component
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.office.comp.Acceptor">
+ <service name="com.sun.star.office.Acceptor"/>
+ </implementation>
+</component>
diff --git a/desktop/source/pagein/file_image.h b/desktop/source/pagein/file_image.h
index 4234140027..4234140027 100644..100755
--- a/desktop/source/pagein/file_image.h
+++ b/desktop/source/pagein/file_image.h
diff --git a/desktop/source/pagein/file_image_unx.c b/desktop/source/pagein/file_image_unx.c
index 41d60e8035..41d60e8035 100644..100755
--- a/desktop/source/pagein/file_image_unx.c
+++ b/desktop/source/pagein/file_image_unx.c
diff --git a/desktop/source/pagein/makefile.mk b/desktop/source/pagein/makefile.mk
index 09248d4f94..09248d4f94 100644..100755
--- a/desktop/source/pagein/makefile.mk
+++ b/desktop/source/pagein/makefile.mk
diff --git a/desktop/source/pagein/pagein.c b/desktop/source/pagein/pagein.c
index 15623bfd8d..15623bfd8d 100644..100755
--- a/desktop/source/pagein/pagein.c
+++ b/desktop/source/pagein/pagein.c
diff --git a/desktop/source/pkgchk/unopkg/makefile.mk b/desktop/source/pkgchk/unopkg/makefile.mk
index 8384f1b243..8384f1b243 100644..100755
--- a/desktop/source/pkgchk/unopkg/makefile.mk
+++ b/desktop/source/pkgchk/unopkg/makefile.mk
diff --git a/desktop/source/pkgchk/unopkg/unopkg_app.cxx b/desktop/source/pkgchk/unopkg/unopkg_app.cxx
index 06c8f83988..d81e1694f3 100644..100755
--- a/desktop/source/pkgchk/unopkg/unopkg_app.cxx
+++ b/desktop/source/pkgchk/unopkg/unopkg_app.cxx
@@ -380,7 +380,12 @@ extern "C" int unopkg_main()
}
else if (subCommand.equals(OUSTR("sync")))
{
- //sync is private!!!! Only for bundled extensions!!!
+ //sync is private!!!! Only to be called from setup!!!
+ //The UserInstallation is diverted to the prereg folder. But only
+ //the lock file is written! This requires that
+ //-env:UNO_JAVA_JFW_INSTALL_DATA is passed to javaldx and unopkg otherwise the
+ //javasettings file is written to the prereg folder.
+ //
//For performance reasons unopkg sync is called during the setup and
//creates the registration data for the repository of the bundled
//extensions. It is then copied to the user installation during
@@ -395,11 +400,22 @@ extern "C" int unopkg_main()
//$BUNDLED_EXTENSIONS_USER
if (hasNoFolder(OUSTR("$BRAND_BASE_DIR/share/extensions")))
{
- removeFolder(OUSTR("$BUNDLED_EXTENSIONS_USER"));
+ removeFolder(OUSTR("$BUNDLED_EXTENSIONS_PREREG"));
//return otherwise we create the registration data again
return 0;
}
-
+ //redirect the UserInstallation, so we do not create a
+ //user installation for the admin and we also do not need
+ //to call unopkg with -env:UserInstallation
+ ::rtl::Bootstrap::set(OUSTR("UserInstallation"),
+ OUSTR("$BUNDLED_EXTENSIONS_PREREG/.."));
+ //Setting UNO_JAVA_JFW_INSTALL_DATA causes the javasettings to be written
+ //in the office installation. We do not want to create the user data folder
+ //for the admin. The value must also be set in the unopkg script (Linux, etc.)
+ //when calling javaldx
+ ::rtl::Bootstrap::set(OUSTR("UNO_JAVA_JFW_INSTALL_DATA"),
+ OUSTR("$OOO_BASE_DIR/share/config/javasettingsunopkginstall.xml"));
+
}
xComponentContext = getUNO(
@@ -418,6 +434,7 @@ extern "C" int unopkg_main()
//prevent the deletion of the registry data folder
//synching is done in XExtensionManager.reinstall
if (!subcmd_gui && ! subCommand.equals(OUSTR("reinstall"))
+ && ! subCommand.equals(OUSTR("sync"))
&& ! dp_misc::office_is_running())
dp_misc::syncRepositories(xCmdEnv);
@@ -612,12 +629,15 @@ extern "C" int unopkg_main()
}
else if (subCommand.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("sync")))
{
- //This sub command may be removed later and is only there to have a
- //possibility to start extension synching without any output.
- //This is just here so we do not get an error, because of an unknown
- //sub-command. We do synching before
- //the sub-commands are processed.
-
+ if (! dp_misc::office_is_running())
+ {
+ xExtensionManager->synchronizeBundledPrereg(
+ Reference<task::XAbortChannel>(), xCmdEnv);
+ }
+ else
+ {
+ dp_misc::writeConsoleError(OUSTR("\nError: office is running"));
+ }
}
else
{
diff --git a/desktop/source/pkgchk/unopkg/unopkg_cmdenv.cxx b/desktop/source/pkgchk/unopkg/unopkg_cmdenv.cxx
index c6d26b1df1..c6d26b1df1 100644..100755
--- a/desktop/source/pkgchk/unopkg/unopkg_cmdenv.cxx
+++ b/desktop/source/pkgchk/unopkg/unopkg_cmdenv.cxx
diff --git a/desktop/source/pkgchk/unopkg/unopkg_main.c b/desktop/source/pkgchk/unopkg/unopkg_main.c
index 1d5b31d03f..1d5b31d03f 100644..100755
--- a/desktop/source/pkgchk/unopkg/unopkg_main.c
+++ b/desktop/source/pkgchk/unopkg/unopkg_main.c
diff --git a/desktop/source/pkgchk/unopkg/unopkg_main.h b/desktop/source/pkgchk/unopkg/unopkg_main.h
index 694cc41558..694cc41558 100644..100755
--- a/desktop/source/pkgchk/unopkg/unopkg_main.h
+++ b/desktop/source/pkgchk/unopkg/unopkg_main.h
diff --git a/desktop/source/pkgchk/unopkg/unopkg_misc.cxx b/desktop/source/pkgchk/unopkg/unopkg_misc.cxx
index e55b1c0abe..ee05e37a2d 100644..100755
--- a/desktop/source/pkgchk/unopkg/unopkg_misc.cxx
+++ b/desktop/source/pkgchk/unopkg/unopkg_misc.cxx
@@ -629,7 +629,7 @@ void removeFolder(OUString const & folderUrl)
dir.close();
::osl::Directory::remove(url);
}
- else
+ else if (rc != osl::File::E_NOENT)
{
dp_misc::writeConsole(
OUSTR("unopkg: Error while removing ") + url + OUSTR("\n"));
diff --git a/desktop/source/pkgchk/unopkg/unopkg_shared.h b/desktop/source/pkgchk/unopkg/unopkg_shared.h
index 232fbf8f52..cc25e934d6 100644..100755
--- a/desktop/source/pkgchk/unopkg/unopkg_shared.h
+++ b/desktop/source/pkgchk/unopkg/unopkg_shared.h
@@ -161,7 +161,7 @@ public:
{
m_bDeinitUCB = true;
}
-
+
};
//==============================================================================
diff --git a/desktop/source/pkgchk/unopkg/version.map b/desktop/source/pkgchk/unopkg/version.map
index 8591bb3b58..8591bb3b58 100644..100755
--- a/desktop/source/pkgchk/unopkg/version.map
+++ b/desktop/source/pkgchk/unopkg/version.map
diff --git a/desktop/source/registration/com/sun/star/registration/Registration.java b/desktop/source/registration/com/sun/star/registration/Registration.java
index 3a2cad1923..d00ed1dde3 100644..100755
--- a/desktop/source/registration/com/sun/star/registration/Registration.java
+++ b/desktop/source/registration/com/sun/star/registration/Registration.java
@@ -63,10 +63,6 @@ public class Registration {
return xSingleServiceFactory;
}
- public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) {
- return FactoryHelper.writeRegistryServiceInfo(Registration.class.getName(), _serviceName, regKey);
- }
-
static final String _serviceName = "com.sun.star.comp.framework.DoRegistrationJob";
static public class _Registration implements XJob {
diff --git a/desktop/source/registration/com/sun/star/registration/makefile.mk b/desktop/source/registration/com/sun/star/registration/makefile.mk
index 9784166eb9..8598022562 100644..100755
--- a/desktop/source/registration/com/sun/star/registration/makefile.mk
+++ b/desktop/source/registration/com/sun/star/registration/makefile.mk
@@ -53,3 +53,10 @@ CUSTOMMANIFESTFILE = manifest
.INCLUDE : target.mk
+ALLTAR : $(MISC)/productregistration.jar.component
+
+$(MISC)/productregistration.jar.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt productregistration.jar.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_JAVA)productregistration.jar' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt productregistration.jar.component
diff --git a/desktop/source/registration/com/sun/star/registration/manifest b/desktop/source/registration/com/sun/star/registration/manifest
index 952aaa804e..952aaa804e 100644..100755
--- a/desktop/source/registration/com/sun/star/registration/manifest
+++ b/desktop/source/registration/com/sun/star/registration/manifest
diff --git a/desktop/source/registration/com/sun/star/registration/productregistration.jar.component b/desktop/source/registration/com/sun/star/registration/productregistration.jar.component
new file mode 100755
index 0000000000..c022a98ae0
--- /dev/null
+++ b/desktop/source/registration/com/sun/star/registration/productregistration.jar.component
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Java2"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.registration.Registration">
+ <service name="com.sun.star.comp.framework.DoRegistrationJob"/>
+ </implementation>
+</component>
diff --git a/desktop/source/registration/com/sun/star/servicetag/BrowserSupport.java b/desktop/source/registration/com/sun/star/servicetag/BrowserSupport.java
index c475b75dd3..c475b75dd3 100644..100755
--- a/desktop/source/registration/com/sun/star/servicetag/BrowserSupport.java
+++ b/desktop/source/registration/com/sun/star/servicetag/BrowserSupport.java
diff --git a/desktop/source/registration/com/sun/star/servicetag/Installer.java b/desktop/source/registration/com/sun/star/servicetag/Installer.java
index 41d328ca08..41d328ca08 100644..100755
--- a/desktop/source/registration/com/sun/star/servicetag/Installer.java
+++ b/desktop/source/registration/com/sun/star/servicetag/Installer.java
diff --git a/desktop/source/registration/com/sun/star/servicetag/LinuxSystemEnvironment.java b/desktop/source/registration/com/sun/star/servicetag/LinuxSystemEnvironment.java
index f81d935891..f81d935891 100644..100755
--- a/desktop/source/registration/com/sun/star/servicetag/LinuxSystemEnvironment.java
+++ b/desktop/source/registration/com/sun/star/servicetag/LinuxSystemEnvironment.java
diff --git a/desktop/source/registration/com/sun/star/servicetag/RegistrationData.java b/desktop/source/registration/com/sun/star/servicetag/RegistrationData.java
index 9323e5de7e..9323e5de7e 100644..100755
--- a/desktop/source/registration/com/sun/star/servicetag/RegistrationData.java
+++ b/desktop/source/registration/com/sun/star/servicetag/RegistrationData.java
diff --git a/desktop/source/registration/com/sun/star/servicetag/RegistrationDocument.java b/desktop/source/registration/com/sun/star/servicetag/RegistrationDocument.java
index 4bfa1aa16a..4bfa1aa16a 100644..100755
--- a/desktop/source/registration/com/sun/star/servicetag/RegistrationDocument.java
+++ b/desktop/source/registration/com/sun/star/servicetag/RegistrationDocument.java
diff --git a/desktop/source/registration/com/sun/star/servicetag/Registry.java b/desktop/source/registration/com/sun/star/servicetag/Registry.java
index d1b7607197..d1b7607197 100644..100755
--- a/desktop/source/registration/com/sun/star/servicetag/Registry.java
+++ b/desktop/source/registration/com/sun/star/servicetag/Registry.java
diff --git a/desktop/source/registration/com/sun/star/servicetag/ServiceTag.java b/desktop/source/registration/com/sun/star/servicetag/ServiceTag.java
index cbaf44e1d0..cbaf44e1d0 100644..100755
--- a/desktop/source/registration/com/sun/star/servicetag/ServiceTag.java
+++ b/desktop/source/registration/com/sun/star/servicetag/ServiceTag.java
diff --git a/desktop/source/registration/com/sun/star/servicetag/SolarisServiceTag.java b/desktop/source/registration/com/sun/star/servicetag/SolarisServiceTag.java
index 8378c78e76..8378c78e76 100644..100755
--- a/desktop/source/registration/com/sun/star/servicetag/SolarisServiceTag.java
+++ b/desktop/source/registration/com/sun/star/servicetag/SolarisServiceTag.java
diff --git a/desktop/source/registration/com/sun/star/servicetag/SolarisSystemEnvironment.java b/desktop/source/registration/com/sun/star/servicetag/SolarisSystemEnvironment.java
index a9c094d1af..a9c094d1af 100644..100755
--- a/desktop/source/registration/com/sun/star/servicetag/SolarisSystemEnvironment.java
+++ b/desktop/source/registration/com/sun/star/servicetag/SolarisSystemEnvironment.java
diff --git a/desktop/source/registration/com/sun/star/servicetag/SunConnection.java b/desktop/source/registration/com/sun/star/servicetag/SunConnection.java
index 9b9c7595ac..9b9c7595ac 100644..100755
--- a/desktop/source/registration/com/sun/star/servicetag/SunConnection.java
+++ b/desktop/source/registration/com/sun/star/servicetag/SunConnection.java
diff --git a/desktop/source/registration/com/sun/star/servicetag/SysnetRegistryHelper.java b/desktop/source/registration/com/sun/star/servicetag/SysnetRegistryHelper.java
index 0f03d0d621..0f03d0d621 100644..100755
--- a/desktop/source/registration/com/sun/star/servicetag/SysnetRegistryHelper.java
+++ b/desktop/source/registration/com/sun/star/servicetag/SysnetRegistryHelper.java
diff --git a/desktop/source/registration/com/sun/star/servicetag/SystemEnvironment.java b/desktop/source/registration/com/sun/star/servicetag/SystemEnvironment.java
index 013c1251bc..013c1251bc 100644..100755
--- a/desktop/source/registration/com/sun/star/servicetag/SystemEnvironment.java
+++ b/desktop/source/registration/com/sun/star/servicetag/SystemEnvironment.java
diff --git a/desktop/source/registration/com/sun/star/servicetag/UnauthorizedAccessException.java b/desktop/source/registration/com/sun/star/servicetag/UnauthorizedAccessException.java
index a6d41e07b3..a6d41e07b3 100644..100755
--- a/desktop/source/registration/com/sun/star/servicetag/UnauthorizedAccessException.java
+++ b/desktop/source/registration/com/sun/star/servicetag/UnauthorizedAccessException.java
diff --git a/desktop/source/registration/com/sun/star/servicetag/Util.java b/desktop/source/registration/com/sun/star/servicetag/Util.java
index c1cb14f7c2..c1cb14f7c2 100644..100755
--- a/desktop/source/registration/com/sun/star/servicetag/Util.java
+++ b/desktop/source/registration/com/sun/star/servicetag/Util.java
diff --git a/desktop/source/registration/com/sun/star/servicetag/WindowsSystemEnvironment.java b/desktop/source/registration/com/sun/star/servicetag/WindowsSystemEnvironment.java
index fd500a8ac8..fd500a8ac8 100644..100755
--- a/desktop/source/registration/com/sun/star/servicetag/WindowsSystemEnvironment.java
+++ b/desktop/source/registration/com/sun/star/servicetag/WindowsSystemEnvironment.java
diff --git a/desktop/source/registration/com/sun/star/servicetag/makefile.mk b/desktop/source/registration/com/sun/star/servicetag/makefile.mk
index 7849646529..7849646529 100644..100755
--- a/desktop/source/registration/com/sun/star/servicetag/makefile.mk
+++ b/desktop/source/registration/com/sun/star/servicetag/makefile.mk
diff --git a/desktop/source/registration/com/sun/star/servicetag/resources/product_registration.xsd b/desktop/source/registration/com/sun/star/servicetag/resources/product_registration.xsd
index 6681a563a0..6681a563a0 100644..100755
--- a/desktop/source/registration/com/sun/star/servicetag/resources/product_registration.xsd
+++ b/desktop/source/registration/com/sun/star/servicetag/resources/product_registration.xsd
diff --git a/desktop/source/so_comp/evaluation.cxx b/desktop/source/so_comp/evaluation.cxx
index aa113b4caf..aa113b4caf 100644..100755
--- a/desktop/source/so_comp/evaluation.cxx
+++ b/desktop/source/so_comp/evaluation.cxx
diff --git a/desktop/source/so_comp/evaluation.hxx b/desktop/source/so_comp/evaluation.hxx
index a34cc65253..a34cc65253 100644..100755
--- a/desktop/source/so_comp/evaluation.hxx
+++ b/desktop/source/so_comp/evaluation.hxx
diff --git a/desktop/source/so_comp/makefile.mk b/desktop/source/so_comp/makefile.mk
index 5016489425..4d8d479b96 100644..100755
--- a/desktop/source/so_comp/makefile.mk
+++ b/desktop/source/so_comp/makefile.mk
@@ -70,3 +70,10 @@ SHL1STDLIBS= \
.INCLUDE : target.mk
+ALLTAR : $(MISC)/socomp.component
+
+$(MISC)/socomp.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ socomp.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt socomp.component
diff --git a/desktop/source/so_comp/oemjob.cxx b/desktop/source/so_comp/oemjob.cxx
index d50bab209c..d50bab209c 100644..100755
--- a/desktop/source/so_comp/oemjob.cxx
+++ b/desktop/source/so_comp/oemjob.cxx
diff --git a/desktop/source/so_comp/oemjob.hxx b/desktop/source/so_comp/oemjob.hxx
index 26c1f0943d..26c1f0943d 100644..100755
--- a/desktop/source/so_comp/oemjob.hxx
+++ b/desktop/source/so_comp/oemjob.hxx
diff --git a/desktop/source/so_comp/services.cxx b/desktop/source/so_comp/services.cxx
index 177b5fb3ff..439b73364d 100644..100755
--- a/desktop/source/so_comp/services.cxx
+++ b/desktop/source/so_comp/services.cxx
@@ -101,33 +101,7 @@ component_getImplementationEnvironment(
*ppEnvironmentTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ;
}
-sal_Bool SAL_CALL
-component_writeInfo(
- void* pServiceManager,
- void* pRegistryKey)
-{
- Reference<XMultiServiceFactory> xMan(
- reinterpret_cast< XMultiServiceFactory* >( pServiceManager ) ) ;
- Reference<XRegistryKey> xKey(
- reinterpret_cast< XRegistryKey* >( pRegistryKey ) ) ;
-
- // iterate over service names and register them...
- OUString aImpl;
- const char* pServiceName = NULL;
- const char* pImplName = NULL;
- for (int i = 0; (pServices[i]!=NULL)&&(pImplementations[i]!=NULL); i++) {
- pServiceName= pServices[i];
- pImplName = pImplementations[i];
- aImpl = OUString(RTL_CONSTASCII_USTRINGPARAM("/"))
- + OUString::createFromAscii(pImplName)
- + OUString(RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES"));
- Reference<XRegistryKey> xNewKey = xKey->createKey(aImpl);
- xNewKey->createKey(OUString::createFromAscii(pServiceName));
- }
- return sal_True;
-}
-
-void* SAL_CALL
+void* SAL_CALL
component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
diff --git a/desktop/source/so_comp/socomp.component b/desktop/source/so_comp/socomp.component
new file mode 100755
index 0000000000..a53035223c
--- /dev/null
+++ b/desktop/source/so_comp/socomp.component
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.desktop.Evaluation">
+ <service name="com.sun.star.office.Evaluation"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.desktop.OEMPreloadJob">
+ <service name="com.sun.star.office.OEMPreloadJob"/>
+ </implementation>
+</component>
diff --git a/desktop/source/splash/makefile.mk b/desktop/source/splash/makefile.mk
index 351b055435..8db499d7c9 100644..100755
--- a/desktop/source/splash/makefile.mk
+++ b/desktop/source/splash/makefile.mk
@@ -70,3 +70,11 @@ SHL1STDLIBS= \
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/spl.component
+
+$(MISC)/spl.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ spl.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt spl.component
diff --git a/desktop/source/splash/services_spl.cxx b/desktop/source/splash/services_spl.cxx
index d79adf8725..39fd09774e 100644..100755
--- a/desktop/source/splash/services_spl.cxx
+++ b/desktop/source/splash/services_spl.cxx
@@ -92,33 +92,7 @@ component_getImplementationEnvironment(
*ppEnvironmentTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ;
}
-sal_Bool SAL_CALL
-component_writeInfo(
- void* pServiceManager,
- void* pRegistryKey)
-{
- Reference<XMultiServiceFactory> xMan(
- reinterpret_cast< XMultiServiceFactory* >( pServiceManager ) ) ;
- Reference<XRegistryKey> xKey(
- reinterpret_cast< XRegistryKey* >( pRegistryKey ) ) ;
-
- // iterate over service names and register them...
- OUString aImpl;
- const char* pServiceName = NULL;
- const char* pImplName = NULL;
- for (int i = 0; (pServices[i]!=NULL)&&(pImplementations[i]!=NULL); i++) {
- pServiceName= pServices[i];
- pImplName = pImplementations[i];
- aImpl = OUString(RTL_CONSTASCII_USTRINGPARAM("/"))
- + OUString::createFromAscii(pImplName)
- + OUString(RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES"));
- Reference<XRegistryKey> xNewKey = xKey->createKey(aImpl);
- xNewKey->createKey(OUString::createFromAscii(pServiceName));
- }
- return sal_True;
-}
-
-void* SAL_CALL
+void* SAL_CALL
component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
diff --git a/desktop/source/splash/spl.component b/desktop/source/splash/spl.component
new file mode 100755
index 0000000000..2caecf5c0e
--- /dev/null
+++ b/desktop/source/splash/spl.component
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.desktop.FirstStart">
+ <service name="com.sun.star.task.Job"/>
+ </implementation>
+ <implementation name="com.sun.star.office.comp.SplashScreen">
+ <service name="com.sun.star.office.SplashScreen"/>
+ </implementation>
+</component>
diff --git a/desktop/source/splash/splash.cxx b/desktop/source/splash/splash.cxx
index f8bbc3db7e..339155b174 100644..100755
--- a/desktop/source/splash/splash.cxx
+++ b/desktop/source/splash/splash.cxx
@@ -102,7 +102,7 @@ void SAL_CALL SplashScreen::start(const OUString&, sal_Int32 nRange)
_bProgressEnd = sal_False;
SolarMutexGuard aSolarGuard;
if ( _eBitmapMode == BM_FULLSCREEN )
- ShowFullScreenMode( TRUE );
+ ShowFullScreenMode( sal_True );
Show();
Paint(Rectangle());
Flush();
@@ -129,7 +129,7 @@ void SAL_CALL SplashScreen::reset()
if (_bVisible && !_bProgressEnd )
{
if ( _eBitmapMode == BM_FULLSCREEN )
- ShowFullScreenMode( TRUE );
+ ShowFullScreenMode( sal_True );
Show();
updateStatus();
}
@@ -146,7 +146,7 @@ void SAL_CALL SplashScreen::setText(const OUString& rText)
if (_bVisible && !_bProgressEnd)
{
if ( _eBitmapMode == BM_FULLSCREEN )
- ShowFullScreenMode( TRUE );
+ ShowFullScreenMode( sal_True );
Show();
updateStatus();
}
@@ -162,7 +162,7 @@ void SAL_CALL SplashScreen::setValue(sal_Int32 nValue)
SolarMutexGuard aSolarGuard;
if (_bVisible && !_bProgressEnd) {
if ( _eBitmapMode == BM_FULLSCREEN )
- ShowFullScreenMode( TRUE );
+ ShowFullScreenMode( sal_True );
Show();
if (nValue >= _iMax) _iProgress = _iMax;
else _iProgress = nValue;
@@ -319,36 +319,36 @@ void SplashScreen::loadConfig()
if ( sProgressFrameColor.getLength() )
{
- UINT8 nRed = 0;
+ sal_uInt8 nRed = 0;
sal_Int32 idx = 0;
sal_Int32 temp = sProgressFrameColor.getToken( 0, ',', idx ).toInt32();
if ( idx != -1 )
{
- nRed = static_cast< UINT8 >( temp );
+ nRed = static_cast< sal_uInt8 >( temp );
temp = sProgressFrameColor.getToken( 0, ',', idx ).toInt32();
}
if ( idx != -1 )
{
- UINT8 nGreen = static_cast< UINT8 >( temp );
- UINT8 nBlue = static_cast< UINT8 >( sProgressFrameColor.getToken( 0, ',', idx ).toInt32() );
+ sal_uInt8 nGreen = static_cast< sal_uInt8 >( temp );
+ sal_uInt8 nBlue = static_cast< sal_uInt8 >( sProgressFrameColor.getToken( 0, ',', idx ).toInt32() );
_cProgressFrameColor = Color( nRed, nGreen, nBlue );
}
}
if ( sProgressBarColor.getLength() )
{
- UINT8 nRed = 0;
+ sal_uInt8 nRed = 0;
sal_Int32 idx = 0;
sal_Int32 temp = sProgressBarColor.getToken( 0, ',', idx ).toInt32();
if ( idx != -1 )
{
- nRed = static_cast< UINT8 >( temp );
+ nRed = static_cast< sal_uInt8 >( temp );
temp = sProgressBarColor.getToken( 0, ',', idx ).toInt32();
}
if ( idx != -1 )
{
- UINT8 nGreen = static_cast< UINT8 >( temp );
- UINT8 nBlue = static_cast< UINT8 >( sProgressBarColor.getToken( 0, ',', idx ).toInt32() );
+ sal_uInt8 nGreen = static_cast< sal_uInt8 >( temp );
+ sal_uInt8 nBlue = static_cast< sal_uInt8 >( sProgressBarColor.getToken( 0, ',', idx ).toInt32() );
_cProgressBarColor = Color( nRed, nGreen, nBlue );
}
}
@@ -500,7 +500,7 @@ void SplashScreen::Paint( const Rectangle&)
if(!_bVisible) return;
//native drawing
- BOOL bNativeOK = FALSE;
+ sal_Bool bNativeOK = sal_False;
// in case of native controls we need to draw directly to the window
if( _bNativeProgress && IsNativeControlSupported( CTRL_INTROPROGRESS, PART_ENTIRE_CONTROL ) )
@@ -521,7 +521,7 @@ void SplashScreen::Paint( const Rectangle&)
}
if( (bNativeOK = DrawNativeControl( CTRL_INTROPROGRESS, PART_ENTIRE_CONTROL, aDrawRect,
- CTRL_STATE_ENABLED, aValue, _sProgressText )) != FALSE )
+ CTRL_STATE_ENABLED, aValue, _sProgressText )) != sal_False )
{
return;
}
diff --git a/desktop/source/splash/splash.hxx b/desktop/source/splash/splash.hxx
index c7c3ff5b52..c7c3ff5b52 100644..100755
--- a/desktop/source/splash/splash.hxx
+++ b/desktop/source/splash/splash.hxx
diff --git a/desktop/test/deployment/active/Addons.xcu b/desktop/test/deployment/active/Addons.xcu
new file mode 100755
index 0000000000..cc75f2ab8f
--- /dev/null
+++ b/desktop/test/deployment/active/Addons.xcu
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<o:component-data xmlns:o="http://openoffice.org/2001/registry"
+ o:package="org.openoffice.Office" o:name="Addons">
+ <node o:name="AddonUI">
+ <node o:name="OfficeMenuBar">
+ <node o:name="org.openoffice.test.desktop.deployment.active"
+ o:op="replace">
+ <prop o:name="Title" xml:lang="en-US">
+ <value>active</value>
+ </prop>
+ <node o:name="Submenu">
+ <node o:name="1" o:op="replace">
+ <prop o:name="URL">
+ <value>vnd.org.openoffice.test.desktop.deployment.active_native:</value>
+ </prop>
+ <prop o:name="Title" xml:lang="en-US">
+ <value>native</value>
+ </prop>
+ </node>
+ <node o:name="2" o:op="replace">
+ <prop o:name="URL">
+ <value>vnd.org.openoffice.test.desktop.deployment.active_java:</value>
+ </prop>
+ <prop o:name="Title" xml:lang="en-US">
+ <value>java</value>
+ </prop>
+ </node>
+ <node o:name="3" o:op="replace">
+ <prop o:name="URL">
+ <value>vnd.org.openoffice.test.desktop.deployment.active_python:</value>
+ </prop>
+ <prop o:name="Title" xml:lang="en-US">
+ <value>python</value>
+ </prop>
+ </node>
+ </node>
+ </node>
+ </node>
+ </node>
+</o:component-data>
diff --git a/desktop/test/deployment/active/Dispatch.java b/desktop/test/deployment/active/Dispatch.java
new file mode 100755
index 0000000000..25443f96e0
--- /dev/null
+++ b/desktop/test/deployment/active/Dispatch.java
@@ -0,0 +1,101 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+************************************************************************/
+
+package com.sun.star.comp.test.deployment.active_java;
+
+import com.sun.star.awt.MessageBoxButtons;
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.XMessageBox;
+import com.sun.star.awt.XMessageBoxFactory;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.DispatchDescriptor;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XStatusListener;
+import com.sun.star.lang.WrappedTargetRuntimeException;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiComponentFactory;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.lib.uno.helper.WeakBase;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.util.URL;
+
+public final class Dispatch extends WeakBase implements XServiceInfo, XDispatch
+{
+ public Dispatch(XComponentContext context) {
+ this.context = context;
+ }
+
+ public String getImplementationName() { return implementationName; }
+
+ public boolean supportsService(String ServiceName) {
+ return false; //TODO
+ }
+
+ public String[] getSupportedServiceNames() {
+ return serviceNames;
+ }
+
+ public void dispatch(URL URL, PropertyValue[] Arguments) {
+ try {
+ XMultiComponentFactory smgr = UnoRuntime.queryInterface(
+ XMultiComponentFactory.class, context.getServiceManager());
+ XMessageBox box = UnoRuntime.queryInterface(
+ XMessageBoxFactory.class,
+ smgr.createInstanceWithContext(
+ "com.sun.star.awt.Toolkit", context)).
+ createMessageBox(
+ UnoRuntime.queryInterface(
+ XWindowPeer.class,
+ (UnoRuntime.queryInterface(
+ XDesktop.class,
+ smgr.createInstanceWithContext(
+ "com.sun.star.frame.Desktop", context)).
+ getCurrentFrame().getComponentWindow())),
+ new Rectangle(), "infobox", MessageBoxButtons.BUTTONS_OK,
+ "active", "java");
+ box.execute();
+ UnoRuntime.queryInterface(XComponent.class, box).dispose();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ throw e;
+ } catch (com.sun.star.uno.Exception e) {
+ throw new WrappedTargetRuntimeException(
+ "wrapped: " + e.getMessage(), this, e);
+ }
+ }
+
+ public void addStatusListener(XStatusListener Control, URL URL) {}
+
+ public void removeStatusListener(XStatusListener Control, URL URL) {}
+
+ private final XComponentContext context;
+
+ static final String implementationName =
+ "com.sun.star.comp.test.deployment.active_java_singleton";
+
+ static final String[] serviceNames = new String[0];
+}
diff --git a/desktop/test/deployment/active/MANIFEST.MF b/desktop/test/deployment/active/MANIFEST.MF
new file mode 100755
index 0000000000..63480874dd
--- /dev/null
+++ b/desktop/test/deployment/active/MANIFEST.MF
@@ -0,0 +1,3 @@
+Sealed: true
+RegistrationClassName: com.sun.star.comp.test.deployment.active_java.Services
+UNO-Type-Path:
diff --git a/desktop/test/deployment/active/ProtocolHandler.xcu b/desktop/test/deployment/active/ProtocolHandler.xcu
new file mode 100755
index 0000000000..017bdea72b
--- /dev/null
+++ b/desktop/test/deployment/active/ProtocolHandler.xcu
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<o:component-data xmlns:o="http://openoffice.org/2001/registry"
+ o:package="org.openoffice.Office" o:name="ProtocolHandler">
+ <node o:name="HandlerSet">
+ <node o:name="com.sun.star.test.deployment.active_native" o:op="replace">
+ <prop o:name="Protocols">
+ <value>vnd.org.openoffice.test.desktop.deployment.active_native:*</value>
+ </prop>
+ </node>
+ <node o:name="com.sun.star.test.deployment.active_java" o:op="replace">
+ <prop o:name="Protocols">
+ <value>vnd.org.openoffice.test.desktop.deployment.active_java:*</value>
+ </prop>
+ </node>
+ <node o:name="com.sun.star.test.deployment.active_python" o:op="replace">
+ <prop o:name="Protocols">
+ <value>vnd.org.openoffice.test.desktop.deployment.active_python:*</value>
+ </prop>
+ </node>
+ </node>
+</o:component-data>
diff --git a/desktop/test/deployment/active/Provider.java b/desktop/test/deployment/active/Provider.java
new file mode 100755
index 0000000000..df31979f4b
--- /dev/null
+++ b/desktop/test/deployment/active/Provider.java
@@ -0,0 +1,81 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+************************************************************************/
+
+package com.sun.star.comp.test.deployment.active_java;
+
+import com.sun.star.frame.DispatchDescriptor;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.lib.uno.helper.WeakBase;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.util.URL;
+
+public final class Provider extends WeakBase
+ implements XServiceInfo, XDispatchProvider
+{
+ public Provider(XComponentContext context) {
+ this.context = context;
+ }
+
+ public String getImplementationName() { return implementationName; }
+
+ public boolean supportsService(String ServiceName) {
+ return ServiceName.equals(getSupportedServiceNames()[0]); //TODO
+ }
+
+ public String[] getSupportedServiceNames() {
+ return serviceNames;
+ }
+
+ public XDispatch queryDispatch(
+ URL URL, String TargetFrameName, int SearchFlags)
+ {
+ return UnoRuntime.queryInterface(
+ XDispatch.class,
+ context.getValueByName(
+ "/singletons/" +
+ "com.sun.star.test.deployment.active_java_singleton"));
+ }
+
+ public XDispatch[] queryDispatches(DispatchDescriptor[] Requests) {
+ XDispatch[] s = new XDispatch[Requests.length];
+ for (int i = 0; i < s.length; ++i) {
+ s[i] = queryDispatch(
+ Requests[i].FeatureURL, Requests[i].FrameName,
+ Requests[i].SearchFlags);
+ }
+ return s;
+ }
+
+ private final XComponentContext context;
+
+ static final String implementationName =
+ "com.sun.star.comp.test.deployment.active_java";
+
+ static final String[] serviceNames = new String[] {
+ "com.sun.star.test.deployment.active_java" };
+}
diff --git a/desktop/test/deployment/active/Services.java b/desktop/test/deployment/active/Services.java
new file mode 100755
index 0000000000..4ea19f4b7a
--- /dev/null
+++ b/desktop/test/deployment/active/Services.java
@@ -0,0 +1,72 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+************************************************************************/
+
+package com.sun.star.comp.test.deployment.active_java;
+
+import com.sun.star.lang.XSingleComponentFactory;
+import com.sun.star.lib.uno.helper.Factory;
+import com.sun.star.registry.InvalidRegistryException;
+import com.sun.star.registry.XRegistryKey;
+
+public final class Services {
+ private Services() {}
+
+ public static XSingleComponentFactory __getComponentFactory(
+ String implementation)
+ {
+ if (implementation.equals(Dispatch.implementationName)) {
+ return Factory.createComponentFactory(
+ Dispatch.class, Dispatch.implementationName,
+ Dispatch.serviceNames);
+ } else if (implementation.equals(Provider.implementationName)) {
+ return Factory.createComponentFactory(
+ Provider.class, Provider.implementationName,
+ Provider.serviceNames);
+ } else {
+ return null;
+ }
+ }
+
+ public static boolean __writeRegistryServiceInfo(XRegistryKey key) {
+ if (!(Factory.writeRegistryServiceInfo(
+ Dispatch.implementationName, Dispatch.serviceNames, key) &&
+ Factory.writeRegistryServiceInfo(
+ Provider.implementationName, Provider.serviceNames, key)))
+ {
+ return false;
+ }
+ try {
+ key.
+ createKey(
+ "/" + Dispatch.implementationName +
+ "/UNO/SINGLETONS/" +
+ "com.sun.star.test.deployment.active_java_singleton").
+ setStringValue(Dispatch.implementationName);
+ } catch (InvalidRegistryException e) {
+ return false;
+ }
+ return true;
+ }
+}
diff --git a/desktop/test/deployment/active/active_native.cxx b/desktop/test/deployment/active/active_native.cxx
new file mode 100755
index 0000000000..a34d8de88a
--- /dev/null
+++ b/desktop/test/deployment/active/active_native.cxx
@@ -0,0 +1,320 @@
+/*************************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+************************************************************************/
+
+#include "precompiled_desktop.hxx"
+#include "sal/config.h"
+
+#include "boost/noncopyable.hpp"
+#include "com/sun/star/awt/MessageBoxButtons.hpp"
+#include "com/sun/star/awt/Rectangle.hpp"
+#include "com/sun/star/awt/XMessageBox.hpp"
+#include "com/sun/star/awt/XMessageBoxFactory.hpp"
+#include "com/sun/star/awt/XWindowPeer.hpp"
+#include "com/sun/star/beans/PropertyValue.hpp"
+#include "com/sun/star/frame/DispatchDescriptor.hpp"
+#include "com/sun/star/frame/XDesktop.hpp"
+#include "com/sun/star/frame/XDispatch.hpp"
+#include "com/sun/star/frame/XDispatchProvider.hpp"
+#include "com/sun/star/frame/XFrame.hpp"
+#include "com/sun/star/frame/XStatusListener.hpp"
+#include "com/sun/star/lang/XComponent.hpp"
+#include "com/sun/star/lang/XMultiComponentFactory.hpp"
+#include "com/sun/star/lang/XServiceInfo.hpp"
+#include "com/sun/star/registry/XRegistryKey.hpp"
+#include "com/sun/star/uno/DeploymentException.hpp"
+#include "com/sun/star/uno/Exception.hpp"
+#include "com/sun/star/uno/Reference.hxx"
+#include "com/sun/star/uno/RuntimeException.hpp"
+#include "com/sun/star/uno/Sequence.hxx"
+#include "com/sun/star/uno/XComponentContext.hpp"
+#include "com/sun/star/uno/XInterface.hpp"
+#include "com/sun/star/util/URL.hpp"
+#include "cppuhelper/factory.hxx"
+#include "cppuhelper/implbase2.hxx"
+#include "cppuhelper/implementationentry.hxx"
+#include "cppuhelper/weak.hxx"
+#include "osl/diagnose.h"
+#include "rtl/textenc.h"
+#include "rtl/ustring.h"
+#include "rtl/ustring.hxx"
+#include "sal/types.h"
+#include "uno/lbnames.h"
+
+namespace {
+
+namespace css = com::sun::star;
+
+class Provider:
+ public cppu::WeakImplHelper2<
+ css::lang::XServiceInfo, css::frame::XDispatchProvider >,
+ private boost::noncopyable
+{
+public:
+ static css::uno::Reference< css::uno::XInterface > SAL_CALL static_create(
+ css::uno::Reference< css::uno::XComponentContext > const & xContext)
+ SAL_THROW((css::uno::Exception))
+ { return static_cast< cppu::OWeakObject * >(new Provider(xContext)); }
+
+ static rtl::OUString SAL_CALL static_getImplementationName();
+
+ static css::uno::Sequence< rtl::OUString > SAL_CALL
+ static_getSupportedServiceNames();
+
+private:
+ Provider(
+ css::uno::Reference< css::uno::XComponentContext > const & context):
+ context_(context) { OSL_ASSERT(context.is()); }
+
+ virtual ~Provider() {}
+
+ virtual rtl::OUString SAL_CALL getImplementationName()
+ throw (css::uno::RuntimeException)
+ { return static_getImplementationName(); }
+
+ virtual sal_Bool SAL_CALL supportsService(rtl::OUString const & ServiceName)
+ throw (css::uno::RuntimeException)
+ { return ServiceName == getSupportedServiceNames()[0]; } //TODO
+
+ virtual css::uno::Sequence< rtl::OUString > SAL_CALL
+ getSupportedServiceNames() throw (css::uno::RuntimeException)
+ { return static_getSupportedServiceNames(); }
+
+ virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL queryDispatch(
+ css::util::URL const &, rtl::OUString const &, sal_Int32)
+ throw (css::uno::RuntimeException);
+
+ virtual css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > >
+ SAL_CALL queryDispatches(
+ css::uno::Sequence< css::frame::DispatchDescriptor > const & Requests)
+ throw (css::uno::RuntimeException);
+
+ css::uno::Reference< css::uno::XComponentContext > context_;
+};
+
+rtl::OUString Provider::static_getImplementationName() {
+ return rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.comp.test.deployment.active_native"));
+}
+
+css::uno::Sequence< rtl::OUString > Provider::static_getSupportedServiceNames()
+{
+ rtl::OUString name(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.test.deployment.active_native"));
+ return css::uno::Sequence< rtl::OUString >(&name, 1);
+}
+
+css::uno::Reference< css::frame::XDispatch > Provider::queryDispatch(
+ css::util::URL const &, rtl::OUString const &, sal_Int32)
+ throw (css::uno::RuntimeException)
+{
+ css::uno::Reference< css::frame::XDispatch > dispatch;
+ if (!(context_->getValueByName(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "/singletons/com.sun.star.test.deployment."
+ "active_native_singleton"))) >>=
+ dispatch) ||
+ !dispatch.is())
+ {
+ throw css::uno::DeploymentException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "component context fails to supply singleton"
+ " com.sun.star.test.deployment.active_native_singleton of"
+ " type com.sun.star.frame.XDispatch")),
+ context_);
+ }
+ return dispatch;
+}
+
+css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > >
+Provider::queryDispatches(
+ css::uno::Sequence< css::frame::DispatchDescriptor > const & Requests)
+ throw (css::uno::RuntimeException)
+{
+ css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > s(
+ Requests.getLength());
+ for (sal_Int32 i = 0; i < s.getLength(); ++i) {
+ s[i] = queryDispatch(
+ Requests[i].FeatureURL, Requests[i].FrameName,
+ Requests[i].SearchFlags);
+ }
+ return s;
+}
+
+class Dispatch:
+ public cppu::WeakImplHelper2<
+ css::lang::XServiceInfo, css::frame::XDispatch >,
+ private boost::noncopyable
+{
+public:
+ static css::uno::Reference< css::uno::XInterface > SAL_CALL static_create(
+ css::uno::Reference< css::uno::XComponentContext > const & xContext)
+ SAL_THROW((css::uno::Exception))
+ { return static_cast< cppu::OWeakObject * >(new Dispatch(xContext)); }
+
+ static rtl::OUString SAL_CALL static_getImplementationName();
+
+ static css::uno::Sequence< rtl::OUString > SAL_CALL
+ static_getSupportedServiceNames()
+ { return css::uno::Sequence< rtl::OUString >(); }
+
+private:
+ Dispatch(
+ css::uno::Reference< css::uno::XComponentContext > const & context):
+ context_(context) { OSL_ASSERT(context.is()); }
+
+ virtual ~Dispatch() {}
+
+ virtual rtl::OUString SAL_CALL getImplementationName()
+ throw (css::uno::RuntimeException)
+ { return static_getImplementationName(); }
+
+ virtual sal_Bool SAL_CALL supportsService(rtl::OUString const &)
+ throw (css::uno::RuntimeException)
+ { return false; } //TODO
+
+ virtual css::uno::Sequence< rtl::OUString > SAL_CALL
+ getSupportedServiceNames() throw (css::uno::RuntimeException)
+ { return static_getSupportedServiceNames(); }
+
+ virtual void SAL_CALL dispatch(
+ css::util::URL const &,
+ css::uno::Sequence< css::beans::PropertyValue > const &)
+ throw (css::uno::RuntimeException);
+
+ virtual void SAL_CALL addStatusListener(
+ css::uno::Reference< css::frame::XStatusListener > const &,
+ css::util::URL const &)
+ throw (css::uno::RuntimeException)
+ {}
+
+ virtual void SAL_CALL removeStatusListener(
+ css::uno::Reference< css::frame::XStatusListener > const &,
+ css::util::URL const &)
+ throw (css::uno::RuntimeException)
+ {}
+
+ css::uno::Reference< css::uno::XComponentContext > context_;
+};
+
+rtl::OUString Dispatch::static_getImplementationName() {
+ return rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.comp.test.deployment.active_native_singleton"));
+}
+
+void Dispatch::dispatch(
+ css::util::URL const &,
+ css::uno::Sequence< css::beans::PropertyValue > const &)
+ throw (css::uno::RuntimeException)
+{
+ css::uno::Reference< css::lang::XMultiComponentFactory > smgr(
+ context_->getServiceManager(), css::uno::UNO_SET_THROW);
+ css::uno::Reference< css::awt::XMessageBox > box(
+ css::uno::Reference< css::awt::XMessageBoxFactory >(
+ smgr->createInstanceWithContext(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.awt.Toolkit")), context_),
+ css::uno::UNO_QUERY_THROW)->createMessageBox(
+ css::uno::Reference< css::awt::XWindowPeer >(
+ css::uno::Reference< css::frame::XFrame >(
+ css::uno::Reference< css::frame::XDesktop >(
+ smgr->createInstanceWithContext(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.frame.Desktop")),
+ context_),
+ css::uno::UNO_QUERY_THROW)->getCurrentFrame(),
+ css::uno::UNO_SET_THROW)->getComponentWindow(),
+ css::uno::UNO_QUERY_THROW),
+ css::awt::Rectangle(),
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("infobox")),
+ css::awt::MessageBoxButtons::BUTTONS_OK,
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("active")),
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("native"))),
+ css::uno::UNO_SET_THROW);
+ box->execute();
+ css::uno::Reference< css::lang::XComponent >(
+ box, css::uno::UNO_QUERY_THROW)->dispose();
+}
+
+static cppu::ImplementationEntry const services[] = {
+ { &Provider::static_create, &Provider::static_getImplementationName,
+ &Provider::static_getSupportedServiceNames,
+ &cppu::createSingleComponentFactory, 0, 0 },
+ { &Dispatch::static_create, &Dispatch::static_getImplementationName,
+ &Dispatch::static_getSupportedServiceNames,
+ &cppu::createSingleComponentFactory, 0, 0 },
+ { 0, 0, 0, 0, 0, 0 }
+};
+
+}
+
+extern "C" void * SAL_CALL component_getFactory(
+ char const * pImplName, void * pServiceManager, void * pRegistryKey)
+{
+ return cppu::component_getFactoryHelper(
+ pImplName, pServiceManager, pRegistryKey, services);
+}
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+ char const ** ppEnvTypeName, uno_Environment **)
+{
+ *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+extern "C" sal_Bool SAL_CALL component_writeInfo(
+ void * pServiceManager, void * pRegistryKey)
+{
+ if (!component_writeInfoHelper(pServiceManager, pRegistryKey, services)) {
+ return false;
+ }
+ try {
+ css::uno::Reference< css::registry::XRegistryKey >(
+ (css::uno::Reference< css::registry::XRegistryKey >(
+ static_cast< css::registry::XRegistryKey * >(pRegistryKey))->
+ createKey(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/")) +
+ Dispatch::static_getImplementationName() +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "/UNO/SINGLETONS/com.sun.star.test.deployment."
+ "active_native_singleton")))),
+ css::uno::UNO_SET_THROW)->
+ setStringValue(Dispatch::static_getImplementationName());
+ } catch (css::uno::Exception & e) {
+ (void) e;
+ OSL_TRACE(
+ "active_native component_writeInfo exception: %s",
+ rtl::OUStringToOString(e.Message, RTL_TEXTENCODING_UTF8).getStr());
+ return false;
+ }
+ return true;
+}
diff --git a/desktop/test/deployment/active/active_python.py b/desktop/test/deployment/active/active_python.py
new file mode 100755
index 0000000000..8ba0947b6b
--- /dev/null
+++ b/desktop/test/deployment/active/active_python.py
@@ -0,0 +1,120 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#***********************************************************************/
+
+import uno
+import unohelper
+
+from com.sun.star.awt import Rectangle
+from com.sun.star.awt.MessageBoxButtons import BUTTONS_OK
+from com.sun.star.frame import XDispatch, XDispatchProvider
+from com.sun.star.lang import XServiceInfo
+from com.sun.star.registry import InvalidRegistryException
+
+class Provider(unohelper.Base, XServiceInfo, XDispatchProvider):
+ implementationName = "com.sun.star.comp.test.deployment.active_python"
+
+ serviceNames = ("com.sun.star.test.deployment.active_python",)
+
+ def __init__(self, context):
+ self.context = context
+
+ def getImplementationName(self):
+ return self.implementationName
+
+ def supportsService(self, ServiceName):
+ return ServiceName in self.serviceNames
+
+ def getSupportedServiceNames(self):
+ return self.serviceNames
+
+ def queryDispatch(self, URL, TargetFrame, SearchFlags):
+ return self.context.getValueByName( \
+ "/singletons/com.sun.star.test.deployment.active_python_singleton")
+
+ def queryDispatches(self, Requests):
+ tuple( \
+ self.queryDispatch(i.FeatureURL, i.FrameName, i.SearchFlags) \
+ for i in Requests)
+
+class Dispatch(unohelper.Base, XServiceInfo, XDispatch):
+ implementationName = \
+ "com.sun.star.comp.test.deployment.active_python_singleton"
+
+ serviceNames = ()
+
+ def __init__(self, context):
+ self.context = context
+
+ def getImplementationName(self):
+ return self.implementationName
+
+ def supportsService(self, ServiceName):
+ return ServiceName in self.serviceNames
+
+ def getSupportedServiceNames(self):
+ return self.serviceNames
+
+ def dispatch(self, URL, Arguments):
+ smgr = self.context.getServiceManager()
+ box = smgr.createInstanceWithContext( \
+ "com.sun.star.awt.Toolkit", self.context).createMessageBox( \
+ smgr.createInstanceWithContext( \
+ "com.sun.star.frame.Desktop", self.context). \
+ getCurrentFrame().getComponentWindow(), \
+ Rectangle(), "infobox", BUTTONS_OK, "active", "python")
+ box.execute();
+ box.dispose();
+
+ def addStatusListener(self, Control, URL):
+ pass
+
+ def removeStatusListener(self, Control, URL):
+ pass
+
+def getComponentFactory(implementationName, smgr, regKey):
+ if implementationName == Provider.implementationName:
+ return unohelper.createSingleServiceFactory( \
+ Provider, Provider.implementationName, Provider.serviceNames)
+ elif implementationName == Dispatch.implementationName:
+ return unohelper.createSingleServiceFactory( \
+ Dispatch, Dispatch.implementationName, Dispatch.serviceNames)
+ else:
+ return None
+
+def writeRegistryInfo(smgr, regKey):
+ try:
+ for i in (Provider, Dispatch):
+ key = regKey.createKey("/" + i.implementationName + "/UNO")
+ for j in i.serviceNames:
+ key.createKey("/SERVICES/" + j);
+ regKey.createKey( \
+ "/" + Dispatch.implementationName + "/UNO/SINGLETONS/" \
+ "com.sun.star.test.deployment.active_python_singleton"). \
+ setStringValue(Dispatch.implementationName)
+ except InvalidRegistryException:
+ return False
+ return True
diff --git a/desktop/test/deployment/active/description.xml b/desktop/test/deployment/active/description.xml
new file mode 100755
index 0000000000..fd7049e0cc
--- /dev/null
+++ b/desktop/test/deployment/active/description.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<d:description xmlns:d="http://openoffice.org/extensions/description/2006">
+ <d:identifier
+ value="org.openoffice/framework/desktop/test/deployment/active"/>
+ <d:version value="1"/>
+ <d:dependencies>
+ <d:OpenOffice.org-minimal-version d:name="OpenOffice.org 3.4" value="3.4"/>
+ </d:dependencies>
+</d:description>
diff --git a/desktop/test/deployment/active/makefile.mk b/desktop/test/deployment/active/makefile.mk
new file mode 100755
index 0000000000..5511a39c8b
--- /dev/null
+++ b/desktop/test/deployment/active/makefile.mk
@@ -0,0 +1,83 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#***********************************************************************/
+
+PRJ = ../../..
+PRJNAME = desktop
+TARGET = test_deployment_active
+
+ENABLE_EXCEPTIONS = TRUE
+
+PACKAGE = com/sun/star/comp/test/deployment/active_java
+JAVAFILES = Dispatch.java Provider.java Services.java
+JARFILES = juh.jar ridl.jar unoil.jar
+
+.INCLUDE: settings.mk
+
+DLLPRE =
+
+SLOFILES = $(SHL1OBJS)
+
+SHL1TARGET = active_native.uno
+SHL1OBJS = $(SLO)/active_native.obj
+SHL1RPATH = OXT
+SHL1STDLIBS = $(CPPUHELPERLIB) $(CPPULIB) $(SALLIB)
+SHL1VERSIONMAP = $(SOLARENV)/src/reg-component.map
+DEF1NAME = $(SHL1TARGET)
+
+.INCLUDE: target.mk
+
+ALLTAR : $(MISC)/active.oxt
+
+$(MISC)/active.oxt : manifest.xml description.xml Addons.xcu \
+ ProtocolHandler.xcu $(SHL1TARGETN) $(MISC)/$(TARGET)/active_java.jar \
+ active_python.py
+ $(RM) $@
+ $(RM) -r $(MISC)/$(TARGET)/active.oxt-zip
+ $(MKDIR) $(MISC)/$(TARGET)/active.oxt-zip
+ $(MKDIRHIER) $(MISC)/$(TARGET)/active.oxt-zip/META-INF
+ $(SED) -e 's|@PATH@|$(SHL1TARGETN:f)|g' \
+ -e 's|@PLATFORM@|$(RTL_OS:l)_$(RTL_ARCH:l)|g' < manifest.xml \
+ > $(MISC)/$(TARGET)/active.oxt-zip/META-INF/manifest.xml
+ $(COPY) description.xml Addons.xcu ProtocolHandler.xcu $(SHL1TARGETN) \
+ $(MISC)/$(TARGET)/active_java.jar active_python.py \
+ $(MISC)/$(TARGET)/active.oxt-zip/
+ cd $(MISC)/$(TARGET)/active.oxt-zip && zip ../../active.oxt \
+ META-INF/manifest.xml description.xml Addons.xcu ProtocolHandler.xcu \
+ $(SHL1TARGETN:f) active_java.jar active_python.py
+
+$(MISC)/$(TARGET)/active_java.jar : MANIFEST.MF $(JAVATARGET)
+ $(MKDIRHIER) $(@:d)
+ $(RM) $@
+ $(RM) -r $(MISC)/$(TARGET)/active_java.jar-zip
+ $(MKDIR) $(MISC)/$(TARGET)/active_java.jar-zip
+ $(MKDIRHIER) $(MISC)/$(TARGET)/active_java.jar-zip/META-INF \
+ $(MISC)/$(TARGET)/active_java.jar-zip/$(PACKAGE)
+ $(COPY) MANIFEST.MF $(MISC)/$(TARGET)/active_java.jar-zip/META-INF/
+ $(COPY) $(foreach,i,$(JAVAFILES:b) $(CLASSDIR)/$(PACKAGE)/$i.class) \
+ $(MISC)/$(TARGET)/active_java.jar-zip/$(PACKAGE)/
+ cd $(MISC)/$(TARGET)/active_java.jar-zip && zip ../active_java.jar \
+ META-INF/MANIFEST.MF $(foreach,i,$(JAVAFILES:b) $(PACKAGE)/$i.class)
diff --git a/desktop/test/deployment/active/manifest.xml b/desktop/test/deployment/active/manifest.xml
new file mode 100755
index 0000000000..4f07669666
--- /dev/null
+++ b/desktop/test/deployment/active/manifest.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<m:manifest xmlns:m="http://openoffice.org/2001/manifest">
+ <m:file-entry m:media-type="application/vnd.sun.star.configuration-data"
+ m:full-path="Addons.xcu"/>
+ <m:file-entry m:media-type="application/vnd.sun.star.configuration-data"
+ m:full-path="ProtocolHandler.xcu"/>
+ <m:file-entry
+ m:media-type="application/vnd.sun.star.uno-component;type=native;platform=@PLATFORM@"
+ m:full-path="@PATH@"/>
+ <m:file-entry
+ m:media-type="application/vnd.sun.star.uno-component;type=Java"
+ m:full-path="active_java.jar"/>
+ <m:file-entry
+ m:media-type="application/vnd.sun.star.uno-component;type=Python"
+ m:full-path="active_python.py"/>
+</m:manifest>
diff --git a/desktop/test/deployment/boxt/Addons.xcu b/desktop/test/deployment/boxt/Addons.xcu
index 3df7e2de27..3df7e2de27 100644..100755
--- a/desktop/test/deployment/boxt/Addons.xcu
+++ b/desktop/test/deployment/boxt/Addons.xcu
diff --git a/desktop/test/deployment/boxt/ProtocolHandler.xcu b/desktop/test/deployment/boxt/ProtocolHandler.xcu
index fe448aedbe..fe448aedbe 100644..100755
--- a/desktop/test/deployment/boxt/ProtocolHandler.xcu
+++ b/desktop/test/deployment/boxt/ProtocolHandler.xcu
diff --git a/desktop/test/deployment/boxt/boxt.cxx b/desktop/test/deployment/boxt/boxt.cxx
index a2fb2c43cb..f0b706bc64 100644..100755
--- a/desktop/test/deployment/boxt/boxt.cxx
+++ b/desktop/test/deployment/boxt/boxt.cxx
@@ -36,8 +36,6 @@
#include "com/sun/star/frame/XDispatchProvider.hpp"
#include "com/sun/star/frame/XStatusListener.hpp"
#include "com/sun/star/lang/XServiceInfo.hpp"
-#include "com/sun/star/lang/XSingleComponentFactory.hpp"
-#include "com/sun/star/uno/Any.hxx"
#include "com/sun/star/uno/Exception.hpp"
#include "com/sun/star/uno/Reference.hxx"
#include "com/sun/star/uno/RuntimeException.hpp"
@@ -46,7 +44,6 @@
#include "com/sun/star/uno/XInterface.hpp"
#include "com/sun/star/util/URL.hpp"
#include "cppuhelper/factory.hxx"
-#include "cppuhelper/implbase1.hxx"
#include "cppuhelper/implbase3.hxx"
#include "cppuhelper/implementationentry.hxx"
#include "cppuhelper/weak.hxx"
@@ -62,21 +59,6 @@ namespace {
namespace css = com::sun::star;
-namespace service {
-
-rtl::OUString getImplementationName() {
- return rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.test.deployment.boxt"));
-}
-
-css::uno::Sequence< rtl::OUString > getSupportedServiceNames() {
- rtl::OUString name(
- RTL_CONSTASCII_USTRINGPARAM("com.sun.star.test.deployment.boxt"));
- return css::uno::Sequence< rtl::OUString >(&name, 1);
-}
-
-}
-
class Service:
public cppu::WeakImplHelper3<
css::lang::XServiceInfo, css::frame::XDispatchProvider,
@@ -84,14 +66,24 @@ class Service:
private boost::noncopyable
{
public:
- Service() {}
+ static css::uno::Reference< css::uno::XInterface > SAL_CALL static_create(
+ css::uno::Reference< css::uno::XComponentContext > const &)
+ SAL_THROW((css::uno::Exception))
+ { return static_cast< cppu::OWeakObject * >(new Service); }
+
+ static rtl::OUString SAL_CALL static_getImplementationName();
+
+ static css::uno::Sequence< rtl::OUString > SAL_CALL
+ static_getSupportedServiceNames();
private:
+ Service() {}
+
virtual ~Service() {}
virtual rtl::OUString SAL_CALL getImplementationName()
throw (css::uno::RuntimeException)
- { return service::getImplementationName(); }
+ { return static_getImplementationName(); }
virtual sal_Bool SAL_CALL supportsService(rtl::OUString const & ServiceName)
throw (css::uno::RuntimeException)
@@ -99,7 +91,7 @@ private:
virtual css::uno::Sequence< rtl::OUString > SAL_CALL
getSupportedServiceNames() throw (css::uno::RuntimeException)
- { return service::getSupportedServiceNames(); }
+ { return static_getSupportedServiceNames(); }
virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL queryDispatch(
css::util::URL const &, rtl::OUString const &, sal_Int32)
@@ -129,6 +121,17 @@ private:
{}
};
+rtl::OUString Service::static_getImplementationName() {
+ return rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.test.deployment.boxt"));
+}
+
+css::uno::Sequence< rtl::OUString > Service::static_getSupportedServiceNames() {
+ rtl::OUString name(
+ RTL_CONSTASCII_USTRINGPARAM("com.sun.star.test.deployment.boxt"));
+ return css::uno::Sequence< rtl::OUString >(&name, 1);
+}
+
css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > >
Service::queryDispatches(
css::uno::Sequence< css::frame::DispatchDescriptor > const & Requests)
@@ -156,61 +159,10 @@ void Service::dispatch(
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("test")));
}
-class Factory:
- public cppu::WeakImplHelper1< css::lang::XSingleComponentFactory >,
- private boost::noncopyable
-{
-public:
- Factory() {}
-
-private:
- virtual ~Factory() {}
-
- virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
- createInstanceWithContext(
- css::uno::Reference< css::uno::XComponentContext > const &)
- throw (css::uno::Exception, css::uno::RuntimeException)
- { return static_cast< cppu::OWeakObject * >(new Service); }
-
- virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
- createInstanceWithArgumentsAndContext(
- css::uno::Sequence< css::uno::Any > const &,
- css::uno::Reference< css::uno::XComponentContext > const & Context)
- throw (css::uno::Exception, css::uno::RuntimeException)
- { return createInstanceWithContext(Context); }
-};
-
-css::uno::Reference< css::uno::XInterface > SAL_CALL dummy(
- css::uno::Reference< css::uno::XComponentContext > const &)
- SAL_THROW((css::uno::Exception))
-{
- OSL_ASSERT(false);
- return css::uno::Reference< css::uno::XInterface >();
-}
-
-rtl::OUString SAL_CALL getImplementationName() {
- return rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.test.deployment.boxt"));
-}
-
-css::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames() {
- rtl::OUString name(
- RTL_CONSTASCII_USTRINGPARAM("com.sun.star.test.deployment.boxt"));
- return css::uno::Sequence< rtl::OUString >(&name, 1);
-}
-
-css::uno::Reference< css::lang::XSingleComponentFactory > SAL_CALL
-createFactory(
- cppu::ComponentFactoryFunc, rtl::OUString const &,
- css::uno::Sequence< rtl::OUString > const &, rtl_ModuleCount *)
- SAL_THROW(())
-{
- return new Factory;
-}
-
static cppu::ImplementationEntry const services[] = {
- { &dummy, &service::getImplementationName,
- &service::getSupportedServiceNames, &createFactory, 0, 0 },
+ { &Service::static_create, &Service::static_getImplementationName,
+ &Service::static_getSupportedServiceNames,
+ &cppu::createSingleComponentFactory, 0, 0 },
{ 0, 0, 0, 0, 0, 0 }
};
diff --git a/desktop/test/deployment/boxt/description.xml b/desktop/test/deployment/boxt/description.xml
index 5a67bf3e94..5a67bf3e94 100644..100755
--- a/desktop/test/deployment/boxt/description.xml
+++ b/desktop/test/deployment/boxt/description.xml
diff --git a/desktop/test/deployment/boxt/makefile.mk b/desktop/test/deployment/boxt/makefile.mk
index 11d736448d..88e72aef4a 100644..100755
--- a/desktop/test/deployment/boxt/makefile.mk
+++ b/desktop/test/deployment/boxt/makefile.mk
@@ -46,7 +46,7 @@ SHL1OBJS = $(SLO)/boxt.obj
SHL1RPATH = BOXT
SHL1STDLIBS = \
$(CPPUHELPERLIB) $(CPPULIB) $(MSFILTERLIB) $(SALLIB) $(TOOLSLIB) $(VCLLIB)
-SHL1VERSIONMAP = $(SOLARENV)/src/component.map
+SHL1VERSIONMAP = $(SOLARENV)/src/reg-component.map
DEF1NAME = $(SHL1TARGET)
.INCLUDE: target.mk
diff --git a/desktop/test/deployment/boxt/manifest.xml b/desktop/test/deployment/boxt/manifest.xml
index 73ebfc306e..73ebfc306e 100644..100755
--- a/desktop/test/deployment/boxt/manifest.xml
+++ b/desktop/test/deployment/boxt/manifest.xml
diff --git a/desktop/test/deployment/dependencies/broken-dependency.oxt b/desktop/test/deployment/dependencies/broken-dependency.oxt
index 11bab0a950..11bab0a950 100644..100755
--- a/desktop/test/deployment/dependencies/broken-dependency.oxt
+++ b/desktop/test/deployment/dependencies/broken-dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/double-dependencies.oxt b/desktop/test/deployment/dependencies/double-dependencies.oxt
index 055c27ea53..055c27ea53 100644..100755
--- a/desktop/test/deployment/dependencies/double-dependencies.oxt
+++ b/desktop/test/deployment/dependencies/double-dependencies.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/empty-dependencies.oxt b/desktop/test/deployment/dependencies/empty-dependencies.oxt
index ebb18dcbf5..ebb18dcbf5 100644..100755
--- a/desktop/test/deployment/dependencies/empty-dependencies.oxt
+++ b/desktop/test/deployment/dependencies/empty-dependencies.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/funny-dependency.oxt b/desktop/test/deployment/dependencies/funny-dependency.oxt
index 9b683e6d1e..9b683e6d1e 100644..100755
--- a/desktop/test/deployment/dependencies/funny-dependency.oxt
+++ b/desktop/test/deployment/dependencies/funny-dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/license-dependency.oxt b/desktop/test/deployment/dependencies/license-dependency.oxt
index b01da4b5ca..b01da4b5ca 100644..100755
--- a/desktop/test/deployment/dependencies/license-dependency.oxt
+++ b/desktop/test/deployment/dependencies/license-dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/many-dependencies.oxt b/desktop/test/deployment/dependencies/many-dependencies.oxt
index 3675681437..3675681437 100644..100755
--- a/desktop/test/deployment/dependencies/many-dependencies.oxt
+++ b/desktop/test/deployment/dependencies/many-dependencies.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/minattr22.oxt b/desktop/test/deployment/dependencies/minattr22.oxt
index a6c8e3758c..a6c8e3758c 100644..100755
--- a/desktop/test/deployment/dependencies/minattr22.oxt
+++ b/desktop/test/deployment/dependencies/minattr22.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/minattr23.oxt b/desktop/test/deployment/dependencies/minattr23.oxt
index 83d17938c4..83d17938c4 100644..100755
--- a/desktop/test/deployment/dependencies/minattr23.oxt
+++ b/desktop/test/deployment/dependencies/minattr23.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/minattr24.oxt b/desktop/test/deployment/dependencies/minattr24.oxt
index 00f053f487..00f053f487 100644..100755
--- a/desktop/test/deployment/dependencies/minattr24.oxt
+++ b/desktop/test/deployment/dependencies/minattr24.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/no-dependencies.oxt b/desktop/test/deployment/dependencies/no-dependencies.oxt
index 6487eb66ae..6487eb66ae 100644..100755
--- a/desktop/test/deployment/dependencies/no-dependencies.oxt
+++ b/desktop/test/deployment/dependencies/no-dependencies.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/no-description.oxt b/desktop/test/deployment/dependencies/no-description.oxt
index 1e6579cd7d..1e6579cd7d 100644..100755
--- a/desktop/test/deployment/dependencies/no-description.oxt
+++ b/desktop/test/deployment/dependencies/no-description.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/readme.txt b/desktop/test/deployment/dependencies/readme.txt
index a99fade002..a99fade002 100644..100755
--- a/desktop/test/deployment/dependencies/readme.txt
+++ b/desktop/test/deployment/dependencies/readme.txt
diff --git a/desktop/test/deployment/dependencies/unknown-dependency.oxt b/desktop/test/deployment/dependencies/unknown-dependency.oxt
index 7c2a22c6d5..7c2a22c6d5 100644..100755
--- a/desktop/test/deployment/dependencies/unknown-dependency.oxt
+++ b/desktop/test/deployment/dependencies/unknown-dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/version10000.oxt b/desktop/test/deployment/dependencies/version10000.oxt
index c15b7a117c..c15b7a117c 100644..100755
--- a/desktop/test/deployment/dependencies/version10000.oxt
+++ b/desktop/test/deployment/dependencies/version10000.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/version21.oxt b/desktop/test/deployment/dependencies/version21.oxt
index 922b279555..922b279555 100644..100755
--- a/desktop/test/deployment/dependencies/version21.oxt
+++ b/desktop/test/deployment/dependencies/version21.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/version21ns.oxt b/desktop/test/deployment/dependencies/version21ns.oxt
index 5efb2ed902..5efb2ed902 100644..100755
--- a/desktop/test/deployment/dependencies/version21ns.oxt
+++ b/desktop/test/deployment/dependencies/version21ns.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/version21other.oxt b/desktop/test/deployment/dependencies/version21other.oxt
index d88a8155af..d88a8155af 100644..100755
--- a/desktop/test/deployment/dependencies/version21other.oxt
+++ b/desktop/test/deployment/dependencies/version21other.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/version22.oxt b/desktop/test/deployment/dependencies/version22.oxt
index 4c8a207b68..4c8a207b68 100644..100755
--- a/desktop/test/deployment/dependencies/version22.oxt
+++ b/desktop/test/deployment/dependencies/version22.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/version23.oxt b/desktop/test/deployment/dependencies/version23.oxt
index 6c08d2949c..6c08d2949c 100644..100755
--- a/desktop/test/deployment/dependencies/version23.oxt
+++ b/desktop/test/deployment/dependencies/version23.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/versionempty.oxt b/desktop/test/deployment/dependencies/versionempty.oxt
index a06bb01294..a06bb01294 100644..100755
--- a/desktop/test/deployment/dependencies/versionempty.oxt
+++ b/desktop/test/deployment/dependencies/versionempty.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/versionnone.oxt b/desktop/test/deployment/dependencies/versionnone.oxt
index ace2a11651..ace2a11651 100644..100755
--- a/desktop/test/deployment/dependencies/versionnone.oxt
+++ b/desktop/test/deployment/dependencies/versionnone.oxt
Binary files differ
diff --git a/desktop/test/deployment/description/desc1.oxt b/desktop/test/deployment/description/desc1.oxt
index e447fd6eae..e447fd6eae 100644..100755
--- a/desktop/test/deployment/description/desc1.oxt
+++ b/desktop/test/deployment/description/desc1.oxt
Binary files differ
diff --git a/desktop/test/deployment/description/desc2.oxt b/desktop/test/deployment/description/desc2.oxt
index 8df2f33fa6..8df2f33fa6 100644..100755
--- a/desktop/test/deployment/description/desc2.oxt
+++ b/desktop/test/deployment/description/desc2.oxt
Binary files differ
diff --git a/desktop/test/deployment/description/desc3.oxt b/desktop/test/deployment/description/desc3.oxt
index fbd1136b03..fbd1136b03 100644..100755
--- a/desktop/test/deployment/description/desc3.oxt
+++ b/desktop/test/deployment/description/desc3.oxt
Binary files differ
diff --git a/desktop/test/deployment/description/desc4.oxt b/desktop/test/deployment/description/desc4.oxt
index 0c97f5fd44..0c97f5fd44 100644..100755
--- a/desktop/test/deployment/description/desc4.oxt
+++ b/desktop/test/deployment/description/desc4.oxt
Binary files differ
diff --git a/desktop/test/deployment/description/desc5.oxt b/desktop/test/deployment/description/desc5.oxt
index 8110073499..8110073499 100644..100755
--- a/desktop/test/deployment/description/desc5.oxt
+++ b/desktop/test/deployment/description/desc5.oxt
Binary files differ
diff --git a/desktop/test/deployment/display_name/name1.oxt b/desktop/test/deployment/display_name/name1.oxt
index 5a53690d69..5a53690d69 100644..100755
--- a/desktop/test/deployment/display_name/name1.oxt
+++ b/desktop/test/deployment/display_name/name1.oxt
Binary files differ
diff --git a/desktop/test/deployment/display_name/name2.oxt b/desktop/test/deployment/display_name/name2.oxt
index f6cbcae3bc..f6cbcae3bc 100644..100755
--- a/desktop/test/deployment/display_name/name2.oxt
+++ b/desktop/test/deployment/display_name/name2.oxt
Binary files differ
diff --git a/desktop/test/deployment/display_name/name3.oxt b/desktop/test/deployment/display_name/name3.oxt
index 8df750ce62..8df750ce62 100644..100755
--- a/desktop/test/deployment/display_name/name3.oxt
+++ b/desktop/test/deployment/display_name/name3.oxt
Binary files differ
diff --git a/desktop/test/deployment/display_name/name4.oxt b/desktop/test/deployment/display_name/name4.oxt
index 6ce4822e37..6ce4822e37 100644..100755
--- a/desktop/test/deployment/display_name/name4.oxt
+++ b/desktop/test/deployment/display_name/name4.oxt
Binary files differ
diff --git a/desktop/test/deployment/display_name/name5.oxt b/desktop/test/deployment/display_name/name5.oxt
index 56973be781..56973be781 100644..100755
--- a/desktop/test/deployment/display_name/name5.oxt
+++ b/desktop/test/deployment/display_name/name5.oxt
Binary files differ
diff --git a/desktop/test/deployment/display_name/readme.txt b/desktop/test/deployment/display_name/readme.txt
index 23173bde63..23173bde63 100644..100755
--- a/desktop/test/deployment/display_name/readme.txt
+++ b/desktop/test/deployment/display_name/readme.txt
diff --git a/desktop/test/deployment/executable_content/build/hello.c b/desktop/test/deployment/executable_content/build/hello.c
index e5f41dc651..e5f41dc651 100644..100755
--- a/desktop/test/deployment/executable_content/build/hello.c
+++ b/desktop/test/deployment/executable_content/build/hello.c
diff --git a/desktop/test/deployment/executable_content/build/makefile.mk b/desktop/test/deployment/executable_content/build/makefile.mk
index 038051c974..038051c974 100644..100755
--- a/desktop/test/deployment/executable_content/build/makefile.mk
+++ b/desktop/test/deployment/executable_content/build/makefile.mk
diff --git a/desktop/test/deployment/executable_content/build/readme.txt b/desktop/test/deployment/executable_content/build/readme.txt
index 4f956e573e..4f956e573e 100644..100755
--- a/desktop/test/deployment/executable_content/build/readme.txt
+++ b/desktop/test/deployment/executable_content/build/readme.txt
diff --git a/desktop/test/deployment/executable_content/hello.oxt b/desktop/test/deployment/executable_content/hello.oxt
index 97d6d14a31..97d6d14a31 100644..100755
--- a/desktop/test/deployment/executable_content/hello.oxt
+++ b/desktop/test/deployment/executable_content/hello.oxt
Binary files differ
diff --git a/desktop/test/deployment/executable_content/readme.txt b/desktop/test/deployment/executable_content/readme.txt
index ad3c01097e..ad3c01097e 100644..100755
--- a/desktop/test/deployment/executable_content/readme.txt
+++ b/desktop/test/deployment/executable_content/readme.txt
diff --git a/desktop/test/deployment/identifier/explicit/identifier.oxt b/desktop/test/deployment/identifier/explicit/identifier.oxt
index 3851e291c9..3851e291c9 100644..100755
--- a/desktop/test/deployment/identifier/explicit/identifier.oxt
+++ b/desktop/test/deployment/identifier/explicit/identifier.oxt
Binary files differ
diff --git a/desktop/test/deployment/identifier/legacy/identifier.oxt b/desktop/test/deployment/identifier/legacy/identifier.oxt
index df8bb84492..df8bb84492 100644..100755
--- a/desktop/test/deployment/identifier/legacy/identifier.oxt
+++ b/desktop/test/deployment/identifier/legacy/identifier.oxt
Binary files differ
diff --git a/desktop/test/deployment/identifier/readme.txt b/desktop/test/deployment/identifier/readme.txt
index 8a791c586a..8a791c586a 100644..100755
--- a/desktop/test/deployment/identifier/readme.txt
+++ b/desktop/test/deployment/identifier/readme.txt
diff --git a/desktop/test/deployment/locationtest/LocationTest.idl b/desktop/test/deployment/locationtest/LocationTest.idl
index 43beaac0a3..43beaac0a3 100644..100755
--- a/desktop/test/deployment/locationtest/LocationTest.idl
+++ b/desktop/test/deployment/locationtest/LocationTest.idl
diff --git a/desktop/test/deployment/locationtest/LocationTest.java b/desktop/test/deployment/locationtest/LocationTest.java
index b16d494551..b16d494551 100644..100755
--- a/desktop/test/deployment/locationtest/LocationTest.java
+++ b/desktop/test/deployment/locationtest/LocationTest.java
diff --git a/desktop/test/deployment/locationtest/LocationTest.odt b/desktop/test/deployment/locationtest/LocationTest.odt
index 8e1aa70078..8e1aa70078 100644..100755
--- a/desktop/test/deployment/locationtest/LocationTest.odt
+++ b/desktop/test/deployment/locationtest/LocationTest.odt
Binary files differ
diff --git a/desktop/test/deployment/locationtest/MANIFEST.MF b/desktop/test/deployment/locationtest/MANIFEST.MF
index a2fa8c34b7..a2fa8c34b7 100644..100755
--- a/desktop/test/deployment/locationtest/MANIFEST.MF
+++ b/desktop/test/deployment/locationtest/MANIFEST.MF
diff --git a/desktop/test/deployment/locationtest/delzip b/desktop/test/deployment/locationtest/delzip
index 636fda90bf..636fda90bf 100644..100755
--- a/desktop/test/deployment/locationtest/delzip
+++ b/desktop/test/deployment/locationtest/delzip
diff --git a/desktop/test/deployment/locationtest/description.xml b/desktop/test/deployment/locationtest/description.xml
index 54e45537b0..54e45537b0 100644..100755
--- a/desktop/test/deployment/locationtest/description.xml
+++ b/desktop/test/deployment/locationtest/description.xml
diff --git a/desktop/test/deployment/locationtest/makefile.mk b/desktop/test/deployment/locationtest/makefile.mk
index 8fe1897919..24be56c28d 100644..100755
--- a/desktop/test/deployment/locationtest/makefile.mk
+++ b/desktop/test/deployment/locationtest/makefile.mk
@@ -80,5 +80,8 @@ $(MISC)$/$(TARGET)_resort : manifest.xml $(JARTARGETN) $(MISC)$/$(ZIP1TARGET).cr
$(COPY) description.xml $(MISC)$/$(TARGET)$/description.xml
$(TOUCH) $@
+.IF "$(ZIP1TARGETN)"!=""
$(ZIP1TARGETN) : $(MISC)$/$(TARGET)_resort $(MISC)$/$(ZIP1TARGET).createdir
+.ENDIF # "$(ZIP1TARGETN)"!=""
+
diff --git a/desktop/test/deployment/locationtest/manifest.xml b/desktop/test/deployment/locationtest/manifest.xml
index 3dd6460faf..3dd6460faf 100644..100755
--- a/desktop/test/deployment/locationtest/manifest.xml
+++ b/desktop/test/deployment/locationtest/manifest.xml
diff --git a/desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/MANIFEST.MF b/desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/MANIFEST.MF
index fba55a6e0d..fba55a6e0d 100644..100755
--- a/desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/MANIFEST.MF
+++ b/desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/MANIFEST.MF
diff --git a/desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/OptionsEventHandler.java b/desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/OptionsEventHandler.java
index bd8e40826c..bd8e40826c 100644..100755
--- a/desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/OptionsEventHandler.java
+++ b/desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/OptionsEventHandler.java
diff --git a/desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/makefile.mk b/desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/makefile.mk
index 662fffce40..662fffce40 100644..100755
--- a/desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/makefile.mk
+++ b/desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/makefile.mk
diff --git a/desktop/test/deployment/options/leaf1.oxt b/desktop/test/deployment/options/leaf1.oxt
index 9c3ff86985..9c3ff86985 100644..100755
--- a/desktop/test/deployment/options/leaf1.oxt
+++ b/desktop/test/deployment/options/leaf1.oxt
Binary files differ
diff --git a/desktop/test/deployment/options/leaf1mod.oxt b/desktop/test/deployment/options/leaf1mod.oxt
index d5d9fe6896..d5d9fe6896 100644..100755
--- a/desktop/test/deployment/options/leaf1mod.oxt
+++ b/desktop/test/deployment/options/leaf1mod.oxt
Binary files differ
diff --git a/desktop/test/deployment/options/leaf2.oxt b/desktop/test/deployment/options/leaf2.oxt
index b95628900c..b95628900c 100644..100755
--- a/desktop/test/deployment/options/leaf2.oxt
+++ b/desktop/test/deployment/options/leaf2.oxt
Binary files differ
diff --git a/desktop/test/deployment/options/leaves1.oxt b/desktop/test/deployment/options/leaves1.oxt
index 037389a018..037389a018 100644..100755
--- a/desktop/test/deployment/options/leaves1.oxt
+++ b/desktop/test/deployment/options/leaves1.oxt
Binary files differ
diff --git a/desktop/test/deployment/options/leaves2.oxt b/desktop/test/deployment/options/leaves2.oxt
index 531b385663..531b385663 100644..100755
--- a/desktop/test/deployment/options/leaves2.oxt
+++ b/desktop/test/deployment/options/leaves2.oxt
Binary files differ
diff --git a/desktop/test/deployment/options/leaves3.oxt b/desktop/test/deployment/options/leaves3.oxt
index f5bb0f2262..f5bb0f2262 100644..100755
--- a/desktop/test/deployment/options/leaves3.oxt
+++ b/desktop/test/deployment/options/leaves3.oxt
Binary files differ
diff --git a/desktop/test/deployment/options/modules1.oxt b/desktop/test/deployment/options/modules1.oxt
index bae652ffbc..bae652ffbc 100644..100755
--- a/desktop/test/deployment/options/modules1.oxt
+++ b/desktop/test/deployment/options/modules1.oxt
Binary files differ
diff --git a/desktop/test/deployment/options/modules2.oxt b/desktop/test/deployment/options/modules2.oxt
index d6d7956d45..d6d7956d45 100644..100755
--- a/desktop/test/deployment/options/modules2.oxt
+++ b/desktop/test/deployment/options/modules2.oxt
Binary files differ
diff --git a/desktop/test/deployment/options/nodes1.oxt b/desktop/test/deployment/options/nodes1.oxt
index b1dfa18d3e..b1dfa18d3e 100644..100755
--- a/desktop/test/deployment/options/nodes1.oxt
+++ b/desktop/test/deployment/options/nodes1.oxt
Binary files differ
diff --git a/desktop/test/deployment/options/nodes2.oxt b/desktop/test/deployment/options/nodes2.oxt
index a35cfaba9d..a35cfaba9d 100644..100755
--- a/desktop/test/deployment/options/nodes2.oxt
+++ b/desktop/test/deployment/options/nodes2.oxt
Binary files differ
diff --git a/desktop/test/deployment/options/nodes3.oxt b/desktop/test/deployment/options/nodes3.oxt
index db0bc49da5..db0bc49da5 100644..100755
--- a/desktop/test/deployment/options/nodes3.oxt
+++ b/desktop/test/deployment/options/nodes3.oxt
Binary files differ
diff --git a/desktop/test/deployment/options/nodes4.oxt b/desktop/test/deployment/options/nodes4.oxt
index fe0550fdc6..fe0550fdc6 100644..100755
--- a/desktop/test/deployment/options/nodes4.oxt
+++ b/desktop/test/deployment/options/nodes4.oxt
Binary files differ
diff --git a/desktop/test/deployment/options/nodes5.oxt b/desktop/test/deployment/options/nodes5.oxt
index 893e9ee3e2..893e9ee3e2 100644..100755
--- a/desktop/test/deployment/options/nodes5.oxt
+++ b/desktop/test/deployment/options/nodes5.oxt
Binary files differ
diff --git a/desktop/test/deployment/options/readme.txt b/desktop/test/deployment/options/readme.txt
index 9879a72cef..9879a72cef 100644..100755
--- a/desktop/test/deployment/options/readme.txt
+++ b/desktop/test/deployment/options/readme.txt
diff --git a/desktop/test/deployment/passive/Addons.xcu b/desktop/test/deployment/passive/Addons.xcu
new file mode 100755
index 0000000000..61578d7426
--- /dev/null
+++ b/desktop/test/deployment/passive/Addons.xcu
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<o:component-data xmlns:o="http://openoffice.org/2001/registry"
+ o:package="org.openoffice.Office" o:name="Addons">
+ <node o:name="AddonUI">
+ <node o:name="OfficeMenuBar">
+ <node o:name="org.openoffice.test.desktop.deployment.passive"
+ o:op="replace">
+ <prop o:name="Title" xml:lang="en-US">
+ <value>passive</value>
+ </prop>
+ <node o:name="Submenu">
+ <node o:name="1" o:op="replace">
+ <prop o:name="URL">
+ <value>vnd.org.openoffice.test.desktop.deployment.passive_native:</value>
+ </prop>
+ <prop o:name="Title" xml:lang="en-US">
+ <value>native</value>
+ </prop>
+ </node>
+ <node o:name="2" o:op="replace">
+ <prop o:name="URL">
+ <value>vnd.org.openoffice.test.desktop.deployment.passive_java:</value>
+ </prop>
+ <prop o:name="Title" xml:lang="en-US">
+ <value>java</value>
+ </prop>
+ </node>
+ <node o:name="3" o:op="replace">
+ <prop o:name="URL">
+ <value>vnd.org.openoffice.test.desktop.deployment.passive_python:</value>
+ </prop>
+ <prop o:name="Title" xml:lang="en-US">
+ <value>python</value>
+ </prop>
+ </node>
+ </node>
+ </node>
+ </node>
+ </node>
+</o:component-data>
diff --git a/desktop/test/deployment/passive/Dispatch.java b/desktop/test/deployment/passive/Dispatch.java
new file mode 100755
index 0000000000..295f34d599
--- /dev/null
+++ b/desktop/test/deployment/passive/Dispatch.java
@@ -0,0 +1,101 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+************************************************************************/
+
+package com.sun.star.comp.test.deployment.passive_java;
+
+import com.sun.star.awt.MessageBoxButtons;
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.XMessageBox;
+import com.sun.star.awt.XMessageBoxFactory;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.DispatchDescriptor;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XStatusListener;
+import com.sun.star.lang.WrappedTargetRuntimeException;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiComponentFactory;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.lib.uno.helper.WeakBase;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.util.URL;
+
+public final class Dispatch extends WeakBase implements XServiceInfo, XDispatch
+{
+ public Dispatch(XComponentContext context) {
+ this.context = context;
+ }
+
+ public String getImplementationName() { return implementationName; }
+
+ public boolean supportsService(String ServiceName) {
+ return false; //TODO
+ }
+
+ public String[] getSupportedServiceNames() {
+ return serviceNames;
+ }
+
+ public void dispatch(URL URL, PropertyValue[] Arguments) {
+ try {
+ XMultiComponentFactory smgr = UnoRuntime.queryInterface(
+ XMultiComponentFactory.class, context.getServiceManager());
+ XMessageBox box = UnoRuntime.queryInterface(
+ XMessageBoxFactory.class,
+ smgr.createInstanceWithContext(
+ "com.sun.star.awt.Toolkit", context)).
+ createMessageBox(
+ UnoRuntime.queryInterface(
+ XWindowPeer.class,
+ (UnoRuntime.queryInterface(
+ XDesktop.class,
+ smgr.createInstanceWithContext(
+ "com.sun.star.frame.Desktop", context)).
+ getCurrentFrame().getComponentWindow())),
+ new Rectangle(), "infobox", MessageBoxButtons.BUTTONS_OK,
+ "passive", "java");
+ box.execute();
+ UnoRuntime.queryInterface(XComponent.class, box).dispose();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ throw e;
+ } catch (com.sun.star.uno.Exception e) {
+ throw new WrappedTargetRuntimeException(
+ "wrapped: " + e.getMessage(), this, e);
+ }
+ }
+
+ public void addStatusListener(XStatusListener Control, URL URL) {}
+
+ public void removeStatusListener(XStatusListener Control, URL URL) {}
+
+ private final XComponentContext context;
+
+ static final String implementationName =
+ "com.sun.star.comp.test.deployment.passive_java_singleton";
+
+ static final String[] serviceNames = new String[0];
+}
diff --git a/desktop/test/deployment/passive/MANIFEST.MF b/desktop/test/deployment/passive/MANIFEST.MF
new file mode 100755
index 0000000000..45a04bf263
--- /dev/null
+++ b/desktop/test/deployment/passive/MANIFEST.MF
@@ -0,0 +1,3 @@
+Sealed: true
+RegistrationClassName: com.sun.star.comp.test.deployment.passive_java.Services
+UNO-Type-Path:
diff --git a/desktop/test/deployment/passive/ProtocolHandler.xcu b/desktop/test/deployment/passive/ProtocolHandler.xcu
new file mode 100755
index 0000000000..bc0355be41
--- /dev/null
+++ b/desktop/test/deployment/passive/ProtocolHandler.xcu
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<o:component-data xmlns:o="http://openoffice.org/2001/registry"
+ o:package="org.openoffice.Office" o:name="ProtocolHandler">
+ <node o:name="HandlerSet">
+ <node o:name="com.sun.star.test.deployment.passive_native" o:op="replace">
+ <prop o:name="Protocols">
+ <value>vnd.org.openoffice.test.desktop.deployment.passive_native:*</value>
+ </prop>
+ </node>
+ <node o:name="com.sun.star.test.deployment.passive_java" o:op="replace">
+ <prop o:name="Protocols">
+ <value>vnd.org.openoffice.test.desktop.deployment.passive_java:*</value>
+ </prop>
+ </node>
+ <node o:name="com.sun.star.test.deployment.passive_python" o:op="replace">
+ <prop o:name="Protocols">
+ <value>vnd.org.openoffice.test.desktop.deployment.passive_python:*</value>
+ </prop>
+ </node>
+ </node>
+</o:component-data>
diff --git a/desktop/test/deployment/passive/Provider.java b/desktop/test/deployment/passive/Provider.java
new file mode 100755
index 0000000000..6f74ed9eb8
--- /dev/null
+++ b/desktop/test/deployment/passive/Provider.java
@@ -0,0 +1,81 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+************************************************************************/
+
+package com.sun.star.comp.test.deployment.passive_java;
+
+import com.sun.star.frame.DispatchDescriptor;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.lib.uno.helper.WeakBase;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.util.URL;
+
+public final class Provider extends WeakBase
+ implements XServiceInfo, XDispatchProvider
+{
+ public Provider(XComponentContext context) {
+ this.context = context;
+ }
+
+ public String getImplementationName() { return implementationName; }
+
+ public boolean supportsService(String ServiceName) {
+ return ServiceName.equals(getSupportedServiceNames()[0]); //TODO
+ }
+
+ public String[] getSupportedServiceNames() {
+ return serviceNames;
+ }
+
+ public XDispatch queryDispatch(
+ URL URL, String TargetFrameName, int SearchFlags)
+ {
+ return UnoRuntime.queryInterface(
+ XDispatch.class,
+ context.getValueByName(
+ "/singletons/" +
+ "com.sun.star.test.deployment.passive_java_singleton"));
+ }
+
+ public XDispatch[] queryDispatches(DispatchDescriptor[] Requests) {
+ XDispatch[] s = new XDispatch[Requests.length];
+ for (int i = 0; i < s.length; ++i) {
+ s[i] = queryDispatch(
+ Requests[i].FeatureURL, Requests[i].FrameName,
+ Requests[i].SearchFlags);
+ }
+ return s;
+ }
+
+ private final XComponentContext context;
+
+ static final String implementationName =
+ "com.sun.star.comp.test.deployment.passive_java";
+
+ static final String[] serviceNames = new String[] {
+ "com.sun.star.test.deployment.passive_java" };
+}
diff --git a/desktop/test/deployment/passive/Services.java b/desktop/test/deployment/passive/Services.java
new file mode 100755
index 0000000000..799df3e702
--- /dev/null
+++ b/desktop/test/deployment/passive/Services.java
@@ -0,0 +1,49 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+************************************************************************/
+
+package com.sun.star.comp.test.deployment.passive_java;
+
+import com.sun.star.lang.XSingleComponentFactory;
+import com.sun.star.lib.uno.helper.Factory;
+
+public final class Services {
+ private Services() {}
+
+ public static XSingleComponentFactory __getComponentFactory(
+ String implementation)
+ {
+ if (implementation.equals(Dispatch.implementationName)) {
+ return Factory.createComponentFactory(
+ Dispatch.class, Dispatch.implementationName,
+ Dispatch.serviceNames);
+ } else if (implementation.equals(Provider.implementationName)) {
+ return Factory.createComponentFactory(
+ Provider.class, Provider.implementationName,
+ Provider.serviceNames);
+ } else {
+ return null;
+ }
+ }
+}
diff --git a/desktop/test/deployment/passive/description.xml b/desktop/test/deployment/passive/description.xml
new file mode 100755
index 0000000000..468dfa065f
--- /dev/null
+++ b/desktop/test/deployment/passive/description.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<d:description xmlns:d="http://openoffice.org/extensions/description/2006">
+ <d:identifier
+ value="org.openoffice/framework/desktop/test/deployment/passive"/>
+ <d:version value="1"/>
+ <d:dependencies>
+ <d:OpenOffice.org-minimal-version d:name="OpenOffice.org 3.4" value="3.4"/>
+ </d:dependencies>
+</d:description>
diff --git a/desktop/test/deployment/passive/makefile.mk b/desktop/test/deployment/passive/makefile.mk
new file mode 100755
index 0000000000..019e5dcab8
--- /dev/null
+++ b/desktop/test/deployment/passive/makefile.mk
@@ -0,0 +1,136 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#***********************************************************************/
+
+PRJ = ../../..
+PRJNAME = desktop
+TARGET = test_deployment_passive
+
+ENABLE_EXCEPTIONS = TRUE
+
+PACKAGE = com/sun/star/comp/test/deployment/passive_java
+JAVAFILES = Dispatch.java Provider.java Services.java
+JARFILES = juh.jar ridl.jar unoil.jar
+
+my_platform_components = passive_native
+my_generic_components = passive_java passive_python
+
+.INCLUDE: settings.mk
+
+DLLPRE =
+
+SLOFILES = $(SHL1OBJS)
+
+SHL1TARGET = passive_native.uno
+SHL1OBJS = $(SLO)/passive_native.obj
+SHL1RPATH = OXT
+SHL1STDLIBS = $(CPPUHELPERLIB) $(CPPULIB) $(SALLIB)
+SHL1VERSIONMAP = $(SOLARENV)/src/component.map
+DEF1NAME = $(SHL1TARGET)
+
+.INCLUDE: target.mk
+
+ALLTAR : $(MISC)/passive.oxt
+
+$(MISC)/passive.oxt : manifest.xml description.xml Addons.xcu \
+ ProtocolHandler.xcu $(MISC)/$(TARGET)/platform.components \
+ $(MISC)/$(TARGET)/generic.components $(SHL1TARGETN) \
+ $(MISC)/$(TARGET)/passive_java.jar passive_python.py
+ $(RM) $@
+ $(RM) -r $(MISC)/$(TARGET)/passive.oxt-zip
+ $(MKDIR) $(MISC)/$(TARGET)/passive.oxt-zip
+ $(MKDIRHIER) $(MISC)/$(TARGET)/passive.oxt-zip/META-INF
+ $(SED) -e 's|@PLATFORM@|$(RTL_OS:l)_$(RTL_ARCH:l)|g' < manifest.xml \
+ > $(MISC)/$(TARGET)/passive.oxt-zip/META-INF/manifest.xml
+ $(COPY) description.xml Addons.xcu ProtocolHandler.xcu \
+ $(MISC)/$(TARGET)/platform.components \
+ $(MISC)/$(TARGET)/generic.components $(SHL1TARGETN) \
+ $(MISC)/$(TARGET)/passive_java.jar passive_python.py \
+ $(MISC)/$(TARGET)/passive.oxt-zip/
+ cd $(MISC)/$(TARGET)/passive.oxt-zip && zip ../../passive.oxt \
+ META-INF/manifest.xml description.xml Addons.xcu ProtocolHandler.xcu \
+ platform.components generic.components $(SHL1TARGETN:f) \
+ passive_java.jar passive_python.py
+
+$(MISC)/$(TARGET)/platform.components : $(SOLARENV)/bin/packcomponents.xslt \
+ $(MISC)/$(TARGET)/platform.components.input \
+ $(my_platform_components:^"$(MISC)/$(TARGET)/":+".component")
+ $(XSLTPROC) --nonet --stringparam prefix $(PWD)/$(MISC)/$(TARGET)/ -o $@ \
+ $(SOLARENV)/bin/packcomponents.xslt \
+ $(MISC)/$(TARGET)/platform.components.input
+
+$(MISC)/$(TARGET)/platform.components.input :
+ $(MKDIRHIER) $(@:d)
+ echo '<list>' \
+ '$(my_platform_components:^"<filename>":+".component</filename>")' \
+ '</list>' > $@
+
+$(MISC)/$(TARGET)/generic.components : $(SOLARENV)/bin/packcomponents.xslt \
+ $(MISC)/$(TARGET)/generic.components.input \
+ $(my_generic_components:^"$(MISC)/$(TARGET)/":+".component")
+ $(XSLTPROC) --nonet --stringparam prefix $(PWD)/$(MISC)/$(TARGET)/ -o $@ \
+ $(SOLARENV)/bin/packcomponents.xslt \
+ $(MISC)/$(TARGET)/generic.components.input
+
+$(MISC)/$(TARGET)/generic.components.input :
+ $(MKDIRHIER) $(@:d)
+ echo '<list>' \
+ '$(my_generic_components:^"<filename>":+".component</filename>")' \
+ '</list>' > $@
+
+$(MISC)/$(TARGET)/passive_native.component : \
+ $(SOLARENV)/bin/createcomponent.xslt passive_native.component
+ $(MKDIRHIER) $(@:d)
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_EXTENSION)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt passive_native.component
+
+$(MISC)/$(TARGET)/passive_java.component : \
+ $(SOLARENV)/bin/createcomponent.xslt passive_java.component
+ $(MKDIRHIER) $(@:d)
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_EXTENSION)passive_java.jar' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt passive_java.component
+
+$(MISC)/$(TARGET)/passive_python.component : \
+ $(SOLARENV)/bin/createcomponent.xslt passive_python.component
+ $(MKDIRHIER) $(@:d)
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_EXTENSION)passive_python.py' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt passive_python.component
+
+$(MISC)/$(TARGET)/passive_java.jar : MANIFEST.MF $(JAVATARGET)
+ $(MKDIRHIER) $(@:d)
+ $(RM) $@
+ $(RM) -r $(MISC)/$(TARGET)/passive_java.jar-zip
+ $(MKDIR) $(MISC)/$(TARGET)/passive_java.jar-zip
+ $(MKDIRHIER) $(MISC)/$(TARGET)/passive_java.jar-zip/META-INF \
+ $(MISC)/$(TARGET)/passive_java.jar-zip/$(PACKAGE)
+ $(COPY) MANIFEST.MF $(MISC)/$(TARGET)/passive_java.jar-zip/META-INF/
+ $(COPY) $(foreach,i,$(JAVAFILES:b) $(CLASSDIR)/$(PACKAGE)/$i.class) \
+ $(MISC)/$(TARGET)/passive_java.jar-zip/$(PACKAGE)/
+ cd $(MISC)/$(TARGET)/passive_java.jar-zip && zip ../passive_java.jar \
+ META-INF/MANIFEST.MF $(foreach,i,$(JAVAFILES:b) $(PACKAGE)/$i.class)
diff --git a/desktop/test/deployment/passive/manifest.xml b/desktop/test/deployment/passive/manifest.xml
new file mode 100755
index 0000000000..5b8ac8419b
--- /dev/null
+++ b/desktop/test/deployment/passive/manifest.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<m:manifest xmlns:m="http://openoffice.org/2001/manifest">
+ <m:file-entry m:media-type="application/vnd.sun.star.configuration-data"
+ m:full-path="Addons.xcu"/>
+ <m:file-entry m:media-type="application/vnd.sun.star.configuration-data"
+ m:full-path="ProtocolHandler.xcu"/>
+ <m:file-entry
+ m:media-type="application/vnd.sun.star.uno-components;platform=@PLATFORM@"
+ m:full-path="platform.components"/>
+ <m:file-entry
+ m:media-type="application/vnd.sun.star.uno-components"
+ m:full-path="generic.components"/>
+</m:manifest>
diff --git a/desktop/test/deployment/passive/passive_java.component b/desktop/test/deployment/passive/passive_java.component
new file mode 100755
index 0000000000..74be57177d
--- /dev/null
+++ b/desktop/test/deployment/passive/passive_java.component
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Java2"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.test.deployment.passive_java">
+ <service name="com.sun.star.test.deployment.passive_java"/>
+ </implementation>
+ <implementation
+ name="com.sun.star.comp.test.deployment.passive_java_singleton">
+ <singleton name="com.sun.star.test.deployment.passive_java_singleton"/>
+ </implementation>
+</component>
diff --git a/desktop/test/deployment/passive/passive_native.component b/desktop/test/deployment/passive/passive_native.component
new file mode 100755
index 0000000000..c14fd7ff00
--- /dev/null
+++ b/desktop/test/deployment/passive/passive_native.component
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.test.deployment.passive_native">
+ <service name="com.sun.star.test.deployment.passive_native"/>
+ </implementation>
+ <implementation
+ name="com.sun.star.comp.test.deployment.passive_native_singleton">
+ <singleton name="com.sun.star.test.deployment.passive_native_singleton"/>
+ </implementation>
+</component>
diff --git a/desktop/test/deployment/passive/passive_native.cxx b/desktop/test/deployment/passive/passive_native.cxx
new file mode 100755
index 0000000000..39101257ad
--- /dev/null
+++ b/desktop/test/deployment/passive/passive_native.cxx
@@ -0,0 +1,289 @@
+/*************************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+************************************************************************/
+
+#include "precompiled_desktop.hxx"
+#include "sal/config.h"
+
+#include "boost/noncopyable.hpp"
+#include "com/sun/star/awt/MessageBoxButtons.hpp"
+#include "com/sun/star/awt/Rectangle.hpp"
+#include "com/sun/star/awt/XMessageBox.hpp"
+#include "com/sun/star/awt/XMessageBoxFactory.hpp"
+#include "com/sun/star/awt/XWindowPeer.hpp"
+#include "com/sun/star/beans/PropertyValue.hpp"
+#include "com/sun/star/frame/DispatchDescriptor.hpp"
+#include "com/sun/star/frame/XDesktop.hpp"
+#include "com/sun/star/frame/XDispatch.hpp"
+#include "com/sun/star/frame/XDispatchProvider.hpp"
+#include "com/sun/star/frame/XFrame.hpp"
+#include "com/sun/star/frame/XStatusListener.hpp"
+#include "com/sun/star/lang/XComponent.hpp"
+#include "com/sun/star/lang/XMultiComponentFactory.hpp"
+#include "com/sun/star/lang/XServiceInfo.hpp"
+#include "com/sun/star/uno/DeploymentException.hpp"
+#include "com/sun/star/uno/Exception.hpp"
+#include "com/sun/star/uno/Reference.hxx"
+#include "com/sun/star/uno/RuntimeException.hpp"
+#include "com/sun/star/uno/Sequence.hxx"
+#include "com/sun/star/uno/XComponentContext.hpp"
+#include "com/sun/star/uno/XInterface.hpp"
+#include "com/sun/star/util/URL.hpp"
+#include "cppuhelper/factory.hxx"
+#include "cppuhelper/implbase2.hxx"
+#include "cppuhelper/implementationentry.hxx"
+#include "cppuhelper/weak.hxx"
+#include "osl/diagnose.h"
+#include "rtl/ustring.h"
+#include "rtl/ustring.hxx"
+#include "sal/types.h"
+#include "uno/lbnames.h"
+
+namespace {
+
+namespace css = com::sun::star;
+
+class Provider:
+ public cppu::WeakImplHelper2<
+ css::lang::XServiceInfo, css::frame::XDispatchProvider >,
+ private boost::noncopyable
+{
+public:
+ static css::uno::Reference< css::uno::XInterface > SAL_CALL static_create(
+ css::uno::Reference< css::uno::XComponentContext > const & xContext)
+ SAL_THROW((css::uno::Exception))
+ { return static_cast< cppu::OWeakObject * >(new Provider(xContext)); }
+
+ static rtl::OUString SAL_CALL static_getImplementationName();
+
+ static css::uno::Sequence< rtl::OUString > SAL_CALL
+ static_getSupportedServiceNames();
+
+private:
+ Provider(
+ css::uno::Reference< css::uno::XComponentContext > const & context):
+ context_(context) { OSL_ASSERT(context.is()); }
+
+ virtual ~Provider() {}
+
+ virtual rtl::OUString SAL_CALL getImplementationName()
+ throw (css::uno::RuntimeException)
+ { return static_getImplementationName(); }
+
+ virtual sal_Bool SAL_CALL supportsService(rtl::OUString const & ServiceName)
+ throw (css::uno::RuntimeException)
+ { return ServiceName == getSupportedServiceNames()[0]; } //TODO
+
+ virtual css::uno::Sequence< rtl::OUString > SAL_CALL
+ getSupportedServiceNames() throw (css::uno::RuntimeException)
+ { return static_getSupportedServiceNames(); }
+
+ virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL queryDispatch(
+ css::util::URL const &, rtl::OUString const &, sal_Int32)
+ throw (css::uno::RuntimeException);
+
+ virtual css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > >
+ SAL_CALL queryDispatches(
+ css::uno::Sequence< css::frame::DispatchDescriptor > const & Requests)
+ throw (css::uno::RuntimeException);
+
+ css::uno::Reference< css::uno::XComponentContext > context_;
+};
+
+rtl::OUString Provider::static_getImplementationName() {
+ return rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.comp.test.deployment.passive_native"));
+}
+
+css::uno::Sequence< rtl::OUString > Provider::static_getSupportedServiceNames()
+{
+ rtl::OUString name(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.test.deployment.passive_native"));
+ return css::uno::Sequence< rtl::OUString >(&name, 1);
+}
+
+css::uno::Reference< css::frame::XDispatch > Provider::queryDispatch(
+ css::util::URL const &, rtl::OUString const &, sal_Int32)
+ throw (css::uno::RuntimeException)
+{
+ css::uno::Reference< css::frame::XDispatch > dispatch;
+ if (!(context_->getValueByName(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "/singletons/com.sun.star.test.deployment."
+ "passive_native_singleton"))) >>=
+ dispatch) ||
+ !dispatch.is())
+ {
+ throw css::uno::DeploymentException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "component context fails to supply singleton"
+ " com.sun.star.test.deployment.passive_native_singleton of"
+ " type com.sun.star.frame.XDispatch")),
+ context_);
+ }
+ return dispatch;
+}
+
+css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > >
+Provider::queryDispatches(
+ css::uno::Sequence< css::frame::DispatchDescriptor > const & Requests)
+ throw (css::uno::RuntimeException)
+{
+ css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > s(
+ Requests.getLength());
+ for (sal_Int32 i = 0; i < s.getLength(); ++i) {
+ s[i] = queryDispatch(
+ Requests[i].FeatureURL, Requests[i].FrameName,
+ Requests[i].SearchFlags);
+ }
+ return s;
+}
+
+class Dispatch:
+ public cppu::WeakImplHelper2<
+ css::lang::XServiceInfo, css::frame::XDispatch >,
+ private boost::noncopyable
+{
+public:
+ static css::uno::Reference< css::uno::XInterface > SAL_CALL static_create(
+ css::uno::Reference< css::uno::XComponentContext > const & xContext)
+ SAL_THROW((css::uno::Exception))
+ { return static_cast< cppu::OWeakObject * >(new Dispatch(xContext)); }
+
+ static rtl::OUString SAL_CALL static_getImplementationName();
+
+ static css::uno::Sequence< rtl::OUString > SAL_CALL
+ static_getSupportedServiceNames()
+ { return css::uno::Sequence< rtl::OUString >(); }
+
+private:
+ Dispatch(
+ css::uno::Reference< css::uno::XComponentContext > const & context):
+ context_(context) { OSL_ASSERT(context.is()); }
+
+ virtual ~Dispatch() {}
+
+ virtual rtl::OUString SAL_CALL getImplementationName()
+ throw (css::uno::RuntimeException)
+ { return static_getImplementationName(); }
+
+ virtual sal_Bool SAL_CALL supportsService(rtl::OUString const &)
+ throw (css::uno::RuntimeException)
+ { return false; } //TODO
+
+ virtual css::uno::Sequence< rtl::OUString > SAL_CALL
+ getSupportedServiceNames() throw (css::uno::RuntimeException)
+ { return static_getSupportedServiceNames(); }
+
+ virtual void SAL_CALL dispatch(
+ css::util::URL const &,
+ css::uno::Sequence< css::beans::PropertyValue > const &)
+ throw (css::uno::RuntimeException);
+
+ virtual void SAL_CALL addStatusListener(
+ css::uno::Reference< css::frame::XStatusListener > const &,
+ css::util::URL const &)
+ throw (css::uno::RuntimeException)
+ {}
+
+ virtual void SAL_CALL removeStatusListener(
+ css::uno::Reference< css::frame::XStatusListener > const &,
+ css::util::URL const &)
+ throw (css::uno::RuntimeException)
+ {}
+
+ css::uno::Reference< css::uno::XComponentContext > context_;
+};
+
+rtl::OUString Dispatch::static_getImplementationName() {
+ return rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.comp.test.deployment.passive_native_singleton"));
+}
+
+void Dispatch::dispatch(
+ css::util::URL const &,
+ css::uno::Sequence< css::beans::PropertyValue > const &)
+ throw (css::uno::RuntimeException)
+{
+ css::uno::Reference< css::lang::XMultiComponentFactory > smgr(
+ context_->getServiceManager(), css::uno::UNO_SET_THROW);
+ css::uno::Reference< css::awt::XMessageBox > box(
+ css::uno::Reference< css::awt::XMessageBoxFactory >(
+ smgr->createInstanceWithContext(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.awt.Toolkit")), context_),
+ css::uno::UNO_QUERY_THROW)->createMessageBox(
+ css::uno::Reference< css::awt::XWindowPeer >(
+ css::uno::Reference< css::frame::XFrame >(
+ css::uno::Reference< css::frame::XDesktop >(
+ smgr->createInstanceWithContext(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.frame.Desktop")),
+ context_),
+ css::uno::UNO_QUERY_THROW)->getCurrentFrame(),
+ css::uno::UNO_SET_THROW)->getComponentWindow(),
+ css::uno::UNO_QUERY_THROW),
+ css::awt::Rectangle(),
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("infobox")),
+ css::awt::MessageBoxButtons::BUTTONS_OK,
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("passive")),
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("native"))),
+ css::uno::UNO_SET_THROW);
+ box->execute();
+ css::uno::Reference< css::lang::XComponent >(
+ box, css::uno::UNO_QUERY_THROW)->dispose();
+}
+
+static cppu::ImplementationEntry const services[] = {
+ { &Provider::static_create, &Provider::static_getImplementationName,
+ &Provider::static_getSupportedServiceNames,
+ &cppu::createSingleComponentFactory, 0, 0 },
+ { &Dispatch::static_create, &Dispatch::static_getImplementationName,
+ &Dispatch::static_getSupportedServiceNames,
+ &cppu::createSingleComponentFactory, 0, 0 },
+ { 0, 0, 0, 0, 0, 0 }
+};
+
+}
+
+extern "C" void * SAL_CALL component_getFactory(
+ char const * pImplName, void * pServiceManager, void * pRegistryKey)
+{
+ return cppu::component_getFactoryHelper(
+ pImplName, pServiceManager, pRegistryKey, services);
+}
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+ char const ** ppEnvTypeName, uno_Environment **)
+{
+ *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
diff --git a/desktop/test/deployment/passive/passive_python.component b/desktop/test/deployment/passive/passive_python.component
new file mode 100755
index 0000000000..ea7a1992b5
--- /dev/null
+++ b/desktop/test/deployment/passive/passive_python.component
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Python"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.test.deployment.passive_python">
+ <service name="com.sun.star.test.deployment.passive_python"/>
+ </implementation>
+ <implementation
+ name="com.sun.star.comp.test.deployment.passive_python_singleton">
+ <singleton name="com.sun.star.test.deployment.passive_python_singleton"/>
+ </implementation>
+</component>
diff --git a/desktop/test/deployment/passive/passive_python.py b/desktop/test/deployment/passive/passive_python.py
new file mode 100755
index 0000000000..dda68cccdb
--- /dev/null
+++ b/desktop/test/deployment/passive/passive_python.py
@@ -0,0 +1,101 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#***********************************************************************/
+
+import uno
+import unohelper
+
+from com.sun.star.awt import Rectangle
+from com.sun.star.awt.MessageBoxButtons import BUTTONS_OK
+from com.sun.star.frame import XDispatch, XDispatchProvider
+from com.sun.star.lang import XServiceInfo
+
+class Provider(unohelper.Base, XServiceInfo, XDispatchProvider):
+ implementationName = "com.sun.star.comp.test.deployment.passive_python"
+
+ serviceNames = ("com.sun.star.test.deployment.passive_python",)
+
+ def __init__(self, context):
+ self.context = context
+
+ def getImplementationName(self):
+ return self.implementationName
+
+ def supportsService(self, ServiceName):
+ return ServiceName in self.serviceNames
+
+ def getSupportedServiceNames(self):
+ return self.serviceNames
+
+ def queryDispatch(self, URL, TargetFrame, SearchFlags):
+ return self.context.getValueByName( \
+ "/singletons/com.sun.star.test.deployment.passive_python_singleton")
+
+ def queryDispatches(self, Requests):
+ tuple( \
+ self.queryDispatch(i.FeatureURL, i.FrameName, i.SearchFlags) \
+ for i in Requests)
+
+class Dispatch(unohelper.Base, XServiceInfo, XDispatch):
+ implementationName = \
+ "com.sun.star.comp.test.deployment.passive_python_singleton"
+
+ serviceNames = ()
+
+ def __init__(self, context):
+ self.context = context
+
+ def getImplementationName(self):
+ return self.implementationName
+
+ def supportsService(self, ServiceName):
+ return ServiceName in self.serviceNames
+
+ def getSupportedServiceNames(self):
+ return self.serviceNames
+
+ def dispatch(self, URL, Arguments):
+ smgr = self.context.getServiceManager()
+ box = smgr.createInstanceWithContext( \
+ "com.sun.star.awt.Toolkit", self.context).createMessageBox( \
+ smgr.createInstanceWithContext( \
+ "com.sun.star.frame.Desktop", self.context). \
+ getCurrentFrame().getComponentWindow(), \
+ Rectangle(), "infobox", BUTTONS_OK, "passive", "python")
+ box.execute();
+ box.dispose();
+
+ def addStatusListener(self, Control, URL):
+ pass
+
+ def removeStatusListener(self, Control, URL):
+ pass
+
+g_ImplementationHelper = unohelper.ImplementationHelper()
+g_ImplementationHelper.addImplementation( \
+ Provider, Provider.implementationName, Provider.serviceNames)
+g_ImplementationHelper.addImplementation( \
+ Dispatch, Dispatch.implementationName, Dispatch.serviceNames)
diff --git a/desktop/test/deployment/simple_license/BadDesc.oxt b/desktop/test/deployment/simple_license/BadDesc.oxt
index 436778d54d..436778d54d 100644..100755
--- a/desktop/test/deployment/simple_license/BadDesc.oxt
+++ b/desktop/test/deployment/simple_license/BadDesc.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/BadNamespace.oxt b/desktop/test/deployment/simple_license/BadNamespace.oxt
index e439c9e171..e439c9e171 100644..100755
--- a/desktop/test/deployment/simple_license/BadNamespace.oxt
+++ b/desktop/test/deployment/simple_license/BadNamespace.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/BadRoot.oxt b/desktop/test/deployment/simple_license/BadRoot.oxt
index 1f6c60c992..1f6c60c992 100644..100755
--- a/desktop/test/deployment/simple_license/BadRoot.oxt
+++ b/desktop/test/deployment/simple_license/BadRoot.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/Locale1.oxt b/desktop/test/deployment/simple_license/Locale1.oxt
index 51ecb5c75c..51ecb5c75c 100644..100755
--- a/desktop/test/deployment/simple_license/Locale1.oxt
+++ b/desktop/test/deployment/simple_license/Locale1.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/Locale2.oxt b/desktop/test/deployment/simple_license/Locale2.oxt
index bb6b236a5d..bb6b236a5d 100644..100755
--- a/desktop/test/deployment/simple_license/Locale2.oxt
+++ b/desktop/test/deployment/simple_license/Locale2.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/Locale3.oxt b/desktop/test/deployment/simple_license/Locale3.oxt
index 56bfedc240..56bfedc240 100644..100755
--- a/desktop/test/deployment/simple_license/Locale3.oxt
+++ b/desktop/test/deployment/simple_license/Locale3.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/Locale4.oxt b/desktop/test/deployment/simple_license/Locale4.oxt
index 9a465bc7cf..9a465bc7cf 100644..100755
--- a/desktop/test/deployment/simple_license/Locale4.oxt
+++ b/desktop/test/deployment/simple_license/Locale4.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/Locale5.oxt b/desktop/test/deployment/simple_license/Locale5.oxt
index ce16830c13..ce16830c13 100644..100755
--- a/desktop/test/deployment/simple_license/Locale5.oxt
+++ b/desktop/test/deployment/simple_license/Locale5.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/Locale6.oxt b/desktop/test/deployment/simple_license/Locale6.oxt
index 770d32506e..770d32506e 100644..100755
--- a/desktop/test/deployment/simple_license/Locale6.oxt
+++ b/desktop/test/deployment/simple_license/Locale6.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/LongLic.oxt b/desktop/test/deployment/simple_license/LongLic.oxt
index a0a49daeba..a0a49daeba 100644..100755
--- a/desktop/test/deployment/simple_license/LongLic.oxt
+++ b/desktop/test/deployment/simple_license/LongLic.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/MissingLic.oxt b/desktop/test/deployment/simple_license/MissingLic.oxt
index 04d58fd117..04d58fd117 100644..100755
--- a/desktop/test/deployment/simple_license/MissingLic.oxt
+++ b/desktop/test/deployment/simple_license/MissingLic.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/MissingLicRef.oxt b/desktop/test/deployment/simple_license/MissingLicRef.oxt
index 01c9d19a28..01c9d19a28 100644..100755
--- a/desktop/test/deployment/simple_license/MissingLicRef.oxt
+++ b/desktop/test/deployment/simple_license/MissingLicRef.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/NoDefLang.oxt b/desktop/test/deployment/simple_license/NoDefLang.oxt
index 3eadd5254c..3eadd5254c 100644..100755
--- a/desktop/test/deployment/simple_license/NoDefLang.oxt
+++ b/desktop/test/deployment/simple_license/NoDefLang.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/NoDesc.oxt b/desktop/test/deployment/simple_license/NoDesc.oxt
index ac83dac97e..ac83dac97e 100644..100755
--- a/desktop/test/deployment/simple_license/NoDesc.oxt
+++ b/desktop/test/deployment/simple_license/NoDesc.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/NoLang.oxt b/desktop/test/deployment/simple_license/NoLang.oxt
index a4f3dd43a0..a4f3dd43a0 100644..100755
--- a/desktop/test/deployment/simple_license/NoLang.oxt
+++ b/desktop/test/deployment/simple_license/NoLang.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/Prefix.oxt b/desktop/test/deployment/simple_license/Prefix.oxt
index 3e09b8d804..3e09b8d804 100644..100755
--- a/desktop/test/deployment/simple_license/Prefix.oxt
+++ b/desktop/test/deployment/simple_license/Prefix.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/ShortLicense.oxt b/desktop/test/deployment/simple_license/ShortLicense.oxt
index efcfdc98e1..efcfdc98e1 100644..100755
--- a/desktop/test/deployment/simple_license/ShortLicense.oxt
+++ b/desktop/test/deployment/simple_license/ShortLicense.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/ShortLicenseShared.oxt b/desktop/test/deployment/simple_license/ShortLicenseShared.oxt
index 775559a2c7..775559a2c7 100644..100755
--- a/desktop/test/deployment/simple_license/ShortLicenseShared.oxt
+++ b/desktop/test/deployment/simple_license/ShortLicenseShared.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/tests_simple_license.odt b/desktop/test/deployment/simple_license/tests_simple_license.odt
index b0c86e11c6..b0c86e11c6 100644..100755
--- a/desktop/test/deployment/simple_license/tests_simple_license.odt
+++ b/desktop/test/deployment/simple_license/tests_simple_license.odt
Binary files differ
diff --git a/desktop/test/deployment/update/changing_display_name/change1.oxt b/desktop/test/deployment/update/changing_display_name/change1.oxt
index c919129ab6..c919129ab6 100644..100755
--- a/desktop/test/deployment/update/changing_display_name/change1.oxt
+++ b/desktop/test/deployment/update/changing_display_name/change1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/changing_display_name/change1_mod.oxt b/desktop/test/deployment/update/changing_display_name/change1_mod.oxt
index 5ab99d7bf2..5ab99d7bf2 100644..100755
--- a/desktop/test/deployment/update/changing_display_name/change1_mod.oxt
+++ b/desktop/test/deployment/update/changing_display_name/change1_mod.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/changing_display_name/readme.txt b/desktop/test/deployment/update/changing_display_name/readme.txt
index 905f0be9a9..905f0be9a9 100644..100755
--- a/desktop/test/deployment/update/changing_display_name/readme.txt
+++ b/desktop/test/deployment/update/changing_display_name/readme.txt
diff --git a/desktop/test/deployment/update/changing_display_name/update1/change1.oxt b/desktop/test/deployment/update/changing_display_name/update1/change1.oxt
index ef034f9445..ef034f9445 100644..100755
--- a/desktop/test/deployment/update/changing_display_name/update1/change1.oxt
+++ b/desktop/test/deployment/update/changing_display_name/update1/change1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/changing_display_name/update1/change1.update.xml b/desktop/test/deployment/update/changing_display_name/update1/change1.update.xml
index 29aee72fa1..29aee72fa1 100644..100755
--- a/desktop/test/deployment/update/changing_display_name/update1/change1.update.xml
+++ b/desktop/test/deployment/update/changing_display_name/update1/change1.update.xml
diff --git a/desktop/test/deployment/update/changing_display_name/update2/change1.oxt b/desktop/test/deployment/update/changing_display_name/update2/change1.oxt
index 551f5a3f48..551f5a3f48 100644..100755
--- a/desktop/test/deployment/update/changing_display_name/update2/change1.oxt
+++ b/desktop/test/deployment/update/changing_display_name/update2/change1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/changing_display_name/update2/change1.update.xml b/desktop/test/deployment/update/changing_display_name/update2/change1.update.xml
index 1e2ee11e9f..1e2ee11e9f 100644..100755
--- a/desktop/test/deployment/update/changing_display_name/update2/change1.update.xml
+++ b/desktop/test/deployment/update/changing_display_name/update2/change1.update.xml
diff --git a/desktop/test/deployment/update/default_url/default1.oxt b/desktop/test/deployment/update/default_url/default1.oxt
index 3fa8c9f08f..3fa8c9f08f 100644..100755
--- a/desktop/test/deployment/update/default_url/default1.oxt
+++ b/desktop/test/deployment/update/default_url/default1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/default_url/default2.oxt b/desktop/test/deployment/update/default_url/default2.oxt
index d54ce88c51..d54ce88c51 100644..100755
--- a/desktop/test/deployment/update/default_url/default2.oxt
+++ b/desktop/test/deployment/update/default_url/default2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/default_url/readme.txt b/desktop/test/deployment/update/default_url/readme.txt
index 4ae7936bfc..4ae7936bfc 100644..100755
--- a/desktop/test/deployment/update/default_url/readme.txt
+++ b/desktop/test/deployment/update/default_url/readme.txt
diff --git a/desktop/test/deployment/update/default_url/update/default1.oxt b/desktop/test/deployment/update/default_url/update/default1.oxt
index 198395c76e..198395c76e 100644..100755
--- a/desktop/test/deployment/update/default_url/update/default1.oxt
+++ b/desktop/test/deployment/update/default_url/update/default1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/default_url/update/default1.update.xml b/desktop/test/deployment/update/default_url/update/default1.update.xml
index 0351d23e68..0351d23e68 100644..100755
--- a/desktop/test/deployment/update/default_url/update/default1.update.xml
+++ b/desktop/test/deployment/update/default_url/update/default1.update.xml
diff --git a/desktop/test/deployment/update/default_url/update/default2.oxt b/desktop/test/deployment/update/default_url/update/default2.oxt
index 198395c76e..198395c76e 100644..100755
--- a/desktop/test/deployment/update/default_url/update/default2.oxt
+++ b/desktop/test/deployment/update/default_url/update/default2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/default_url/update/default2.update.xml b/desktop/test/deployment/update/default_url/update/default2.update.xml
index 8bf00b2e22..8bf00b2e22 100644..100755
--- a/desktop/test/deployment/update/default_url/update/default2.update.xml
+++ b/desktop/test/deployment/update/default_url/update/default2.update.xml
diff --git a/desktop/test/deployment/update/default_url/update/feed1.xml b/desktop/test/deployment/update/default_url/update/feed1.xml
index b504b7b4b0..b504b7b4b0 100644..100755
--- a/desktop/test/deployment/update/default_url/update/feed1.xml
+++ b/desktop/test/deployment/update/default_url/update/feed1.xml
diff --git a/desktop/test/deployment/update/defect/fail1.oxt b/desktop/test/deployment/update/defect/fail1.oxt
index 5b5cdba2cd..5b5cdba2cd 100644..100755
--- a/desktop/test/deployment/update/defect/fail1.oxt
+++ b/desktop/test/deployment/update/defect/fail1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/defect/fail2.oxt b/desktop/test/deployment/update/defect/fail2.oxt
index 61b0306f09..61b0306f09 100644..100755
--- a/desktop/test/deployment/update/defect/fail2.oxt
+++ b/desktop/test/deployment/update/defect/fail2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/defect/fail3.oxt b/desktop/test/deployment/update/defect/fail3.oxt
index 9da26d48a6..9da26d48a6 100644..100755
--- a/desktop/test/deployment/update/defect/fail3.oxt
+++ b/desktop/test/deployment/update/defect/fail3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/defect/fail4.oxt b/desktop/test/deployment/update/defect/fail4.oxt
index 66b87caa14..66b87caa14 100644..100755
--- a/desktop/test/deployment/update/defect/fail4.oxt
+++ b/desktop/test/deployment/update/defect/fail4.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/defect/info1.oxt b/desktop/test/deployment/update/defect/info1.oxt
index 9ffd373fa1..9ffd373fa1 100644..100755
--- a/desktop/test/deployment/update/defect/info1.oxt
+++ b/desktop/test/deployment/update/defect/info1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/defect/info2.oxt b/desktop/test/deployment/update/defect/info2.oxt
index 229a52c3bc..229a52c3bc 100644..100755
--- a/desktop/test/deployment/update/defect/info2.oxt
+++ b/desktop/test/deployment/update/defect/info2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/defect/info3.oxt b/desktop/test/deployment/update/defect/info3.oxt
index b702f3e004..b702f3e004 100644..100755
--- a/desktop/test/deployment/update/defect/info3.oxt
+++ b/desktop/test/deployment/update/defect/info3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/defect/readme.txt b/desktop/test/deployment/update/defect/readme.txt
index 5e8322f5cf..5e8322f5cf 100644..100755
--- a/desktop/test/deployment/update/defect/readme.txt
+++ b/desktop/test/deployment/update/defect/readme.txt
diff --git a/desktop/test/deployment/update/defect/update/fail1.oxt b/desktop/test/deployment/update/defect/update/fail1.oxt
index dbcc7cd73e..dbcc7cd73e 100644..100755
--- a/desktop/test/deployment/update/defect/update/fail1.oxt
+++ b/desktop/test/deployment/update/defect/update/fail1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/defect/update/fail1.update.xml b/desktop/test/deployment/update/defect/update/fail1.update.xml
index 69cb73c4f1..69cb73c4f1 100644..100755
--- a/desktop/test/deployment/update/defect/update/fail1.update.xml
+++ b/desktop/test/deployment/update/defect/update/fail1.update.xml
diff --git a/desktop/test/deployment/update/defect/update/fail2.oxt b/desktop/test/deployment/update/defect/update/fail2.oxt
index 6df0c3cf99..6df0c3cf99 100644..100755
--- a/desktop/test/deployment/update/defect/update/fail2.oxt
+++ b/desktop/test/deployment/update/defect/update/fail2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/defect/update/fail2.update.xml b/desktop/test/deployment/update/defect/update/fail2.update.xml
index 8b235acd9b..8b235acd9b 100644..100755
--- a/desktop/test/deployment/update/defect/update/fail2.update.xml
+++ b/desktop/test/deployment/update/defect/update/fail2.update.xml
diff --git a/desktop/test/deployment/update/defect/update/fail3.oxt b/desktop/test/deployment/update/defect/update/fail3.oxt
index 2d340f4144..2d340f4144 100644..100755
--- a/desktop/test/deployment/update/defect/update/fail3.oxt
+++ b/desktop/test/deployment/update/defect/update/fail3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/defect/update/fail3.update.xml b/desktop/test/deployment/update/defect/update/fail3.update.xml
index 60a2999210..60a2999210 100644..100755
--- a/desktop/test/deployment/update/defect/update/fail3.update.xml
+++ b/desktop/test/deployment/update/defect/update/fail3.update.xml
diff --git a/desktop/test/deployment/update/defect/update/fail4.oxt b/desktop/test/deployment/update/defect/update/fail4.oxt
index e69de29bb2..e69de29bb2 100644..100755
--- a/desktop/test/deployment/update/defect/update/fail4.oxt
+++ b/desktop/test/deployment/update/defect/update/fail4.oxt
diff --git a/desktop/test/deployment/update/defect/update/fail4.update.xml b/desktop/test/deployment/update/defect/update/fail4.update.xml
index 81775a7257..81775a7257 100644..100755
--- a/desktop/test/deployment/update/defect/update/fail4.update.xml
+++ b/desktop/test/deployment/update/defect/update/fail4.update.xml
diff --git a/desktop/test/deployment/update/defect/update/info1.update.xml b/desktop/test/deployment/update/defect/update/info1.update.xml
index e69de29bb2..e69de29bb2 100644..100755
--- a/desktop/test/deployment/update/defect/update/info1.update.xml
+++ b/desktop/test/deployment/update/defect/update/info1.update.xml
diff --git a/desktop/test/deployment/update/defect/update/info2.update.xml b/desktop/test/deployment/update/defect/update/info2.update.xml
index 1446608022..1446608022 100644..100755
--- a/desktop/test/deployment/update/defect/update/info2.update.xml
+++ b/desktop/test/deployment/update/defect/update/info2.update.xml
diff --git a/desktop/test/deployment/update/defect/update/info3.oxt b/desktop/test/deployment/update/defect/update/info3.oxt
index 60debac57c..60debac57c 100644..100755
--- a/desktop/test/deployment/update/defect/update/info3.oxt
+++ b/desktop/test/deployment/update/defect/update/info3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/defect/update/info3.update.xml b/desktop/test/deployment/update/defect/update/info3.update.xml
index 35106ea29a..35106ea29a 100644..100755
--- a/desktop/test/deployment/update/defect/update/info3.update.xml
+++ b/desktop/test/deployment/update/defect/update/info3.update.xml
diff --git a/desktop/test/deployment/update/dependencies/publisher_en.html b/desktop/test/deployment/update/dependencies/publisher_en.html
index 37dbc2b9d6..37dbc2b9d6 100644..100755
--- a/desktop/test/deployment/update/dependencies/publisher_en.html
+++ b/desktop/test/deployment/update/dependencies/publisher_en.html
diff --git a/desktop/test/deployment/update/dependencies/readme.txt b/desktop/test/deployment/update/dependencies/readme.txt
index 3c71da2488..3c71da2488 100644..100755
--- a/desktop/test/deployment/update/dependencies/readme.txt
+++ b/desktop/test/deployment/update/dependencies/readme.txt
diff --git a/desktop/test/deployment/update/dependencies/release-notes_en.html b/desktop/test/deployment/update/dependencies/release-notes_en.html
index 0971f78d14..0971f78d14 100644..100755
--- a/desktop/test/deployment/update/dependencies/release-notes_en.html
+++ b/desktop/test/deployment/update/dependencies/release-notes_en.html
diff --git a/desktop/test/deployment/update/dependencies/update-dependencies.oxt b/desktop/test/deployment/update/dependencies/update-dependencies.oxt
index 513b25d207..513b25d207 100644..100755
--- a/desktop/test/deployment/update/dependencies/update-dependencies.oxt
+++ b/desktop/test/deployment/update/dependencies/update-dependencies.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/dependencies/update/update-dependencies.update.xml b/desktop/test/deployment/update/dependencies/update/update-dependencies.update.xml
index 51a631a8eb..51a631a8eb 100644..100755
--- a/desktop/test/deployment/update/dependencies/update/update-dependencies.update.xml
+++ b/desktop/test/deployment/update/dependencies/update/update-dependencies.update.xml
diff --git a/desktop/test/deployment/update/license/lic1.oxt b/desktop/test/deployment/update/license/lic1.oxt
index 43bfe3b77b..43bfe3b77b 100644..100755
--- a/desktop/test/deployment/update/license/lic1.oxt
+++ b/desktop/test/deployment/update/license/lic1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/license/lic2.oxt b/desktop/test/deployment/update/license/lic2.oxt
index 266a45e9a8..266a45e9a8 100644..100755
--- a/desktop/test/deployment/update/license/lic2.oxt
+++ b/desktop/test/deployment/update/license/lic2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/license/lic3.oxt b/desktop/test/deployment/update/license/lic3.oxt
index 3f1b989600..3f1b989600 100644..100755
--- a/desktop/test/deployment/update/license/lic3.oxt
+++ b/desktop/test/deployment/update/license/lic3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/license/readme.txt b/desktop/test/deployment/update/license/readme.txt
index 03123d2c58..03123d2c58 100644..100755
--- a/desktop/test/deployment/update/license/readme.txt
+++ b/desktop/test/deployment/update/license/readme.txt
diff --git a/desktop/test/deployment/update/license/update/lic1.oxt b/desktop/test/deployment/update/license/update/lic1.oxt
index cc91e1ff16..cc91e1ff16 100644..100755
--- a/desktop/test/deployment/update/license/update/lic1.oxt
+++ b/desktop/test/deployment/update/license/update/lic1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/license/update/lic1.update.xml b/desktop/test/deployment/update/license/update/lic1.update.xml
index 6c60375905..6c60375905 100644..100755
--- a/desktop/test/deployment/update/license/update/lic1.update.xml
+++ b/desktop/test/deployment/update/license/update/lic1.update.xml
diff --git a/desktop/test/deployment/update/license/update/lic2.oxt b/desktop/test/deployment/update/license/update/lic2.oxt
index 3510007924..3510007924 100644..100755
--- a/desktop/test/deployment/update/license/update/lic2.oxt
+++ b/desktop/test/deployment/update/license/update/lic2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/license/update/lic2.update.xml b/desktop/test/deployment/update/license/update/lic2.update.xml
index 6e284e9def..6e284e9def 100644..100755
--- a/desktop/test/deployment/update/license/update/lic2.update.xml
+++ b/desktop/test/deployment/update/license/update/lic2.update.xml
diff --git a/desktop/test/deployment/update/license/update/lic3.oxt b/desktop/test/deployment/update/license/update/lic3.oxt
index 6ac6e0fd0f..6ac6e0fd0f 100644..100755
--- a/desktop/test/deployment/update/license/update/lic3.oxt
+++ b/desktop/test/deployment/update/license/update/lic3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/license/update/lic3.update.xml b/desktop/test/deployment/update/license/update/lic3.update.xml
index b6f55bca20..b6f55bca20 100644..100755
--- a/desktop/test/deployment/update/license/update/lic3.update.xml
+++ b/desktop/test/deployment/update/license/update/lic3.update.xml
diff --git a/desktop/test/deployment/update/platform/all1.oxt b/desktop/test/deployment/update/platform/all1.oxt
index ad9662a7c2..ad9662a7c2 100644..100755
--- a/desktop/test/deployment/update/platform/all1.oxt
+++ b/desktop/test/deployment/update/platform/all1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/all2.oxt b/desktop/test/deployment/update/platform/all2.oxt
index 632d11b429..632d11b429 100644..100755
--- a/desktop/test/deployment/update/platform/all2.oxt
+++ b/desktop/test/deployment/update/platform/all2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/all3.oxt b/desktop/test/deployment/update/platform/all3.oxt
index ab781552a5..ab781552a5 100644..100755
--- a/desktop/test/deployment/update/platform/all3.oxt
+++ b/desktop/test/deployment/update/platform/all3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/freebsd_x86.oxt b/desktop/test/deployment/update/platform/freebsd_x86.oxt
index 338f5761de..338f5761de 100644..100755
--- a/desktop/test/deployment/update/platform/freebsd_x86.oxt
+++ b/desktop/test/deployment/update/platform/freebsd_x86.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/freebsd_x86_64.oxt b/desktop/test/deployment/update/platform/freebsd_x86_64.oxt
index 39fee6de1a..39fee6de1a 100644..100755
--- a/desktop/test/deployment/update/platform/freebsd_x86_64.oxt
+++ b/desktop/test/deployment/update/platform/freebsd_x86_64.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/invalid1.oxt b/desktop/test/deployment/update/platform/invalid1.oxt
index 13d709f438..13d709f438 100644..100755
--- a/desktop/test/deployment/update/platform/invalid1.oxt
+++ b/desktop/test/deployment/update/platform/invalid1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/invalid2.oxt b/desktop/test/deployment/update/platform/invalid2.oxt
index f14257191b..f14257191b 100644..100755
--- a/desktop/test/deployment/update/platform/invalid2.oxt
+++ b/desktop/test/deployment/update/platform/invalid2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/invalid3.oxt b/desktop/test/deployment/update/platform/invalid3.oxt
index cadffa4f2a..cadffa4f2a 100644..100755
--- a/desktop/test/deployment/update/platform/invalid3.oxt
+++ b/desktop/test/deployment/update/platform/invalid3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/linux_arm_eabi.oxt b/desktop/test/deployment/update/platform/linux_arm_eabi.oxt
index 9c504e841b..9c504e841b 100644..100755
--- a/desktop/test/deployment/update/platform/linux_arm_eabi.oxt
+++ b/desktop/test/deployment/update/platform/linux_arm_eabi.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/linux_arm_oabi.oxt b/desktop/test/deployment/update/platform/linux_arm_oabi.oxt
index f2c987f645..f2c987f645 100644..100755
--- a/desktop/test/deployment/update/platform/linux_arm_oabi.oxt
+++ b/desktop/test/deployment/update/platform/linux_arm_oabi.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/linux_ia64.oxt b/desktop/test/deployment/update/platform/linux_ia64.oxt
index f579a18ab9..f579a18ab9 100644..100755
--- a/desktop/test/deployment/update/platform/linux_ia64.oxt
+++ b/desktop/test/deployment/update/platform/linux_ia64.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/linux_mips_eb.oxt b/desktop/test/deployment/update/platform/linux_mips_eb.oxt
index bf0bd94233..bf0bd94233 100644..100755
--- a/desktop/test/deployment/update/platform/linux_mips_eb.oxt
+++ b/desktop/test/deployment/update/platform/linux_mips_eb.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/linux_mips_el.oxt b/desktop/test/deployment/update/platform/linux_mips_el.oxt
index 6bd5644683..6bd5644683 100644..100755
--- a/desktop/test/deployment/update/platform/linux_mips_el.oxt
+++ b/desktop/test/deployment/update/platform/linux_mips_el.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/linux_powerpc.oxt b/desktop/test/deployment/update/platform/linux_powerpc.oxt
index e301a3fb3a..e301a3fb3a 100644..100755
--- a/desktop/test/deployment/update/platform/linux_powerpc.oxt
+++ b/desktop/test/deployment/update/platform/linux_powerpc.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/linux_powerpc64.oxt b/desktop/test/deployment/update/platform/linux_powerpc64.oxt
index e5f3ae0639..e5f3ae0639 100644..100755
--- a/desktop/test/deployment/update/platform/linux_powerpc64.oxt
+++ b/desktop/test/deployment/update/platform/linux_powerpc64.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/linux_s390.oxt b/desktop/test/deployment/update/platform/linux_s390.oxt
index 199702ebf0..199702ebf0 100644..100755
--- a/desktop/test/deployment/update/platform/linux_s390.oxt
+++ b/desktop/test/deployment/update/platform/linux_s390.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/linux_s390x.oxt b/desktop/test/deployment/update/platform/linux_s390x.oxt
index 2ed250833f..2ed250833f 100644..100755
--- a/desktop/test/deployment/update/platform/linux_s390x.oxt
+++ b/desktop/test/deployment/update/platform/linux_s390x.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/linux_sparc.oxt b/desktop/test/deployment/update/platform/linux_sparc.oxt
index 53dfc71e0c..53dfc71e0c 100644..100755
--- a/desktop/test/deployment/update/platform/linux_sparc.oxt
+++ b/desktop/test/deployment/update/platform/linux_sparc.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/linux_x86.oxt b/desktop/test/deployment/update/platform/linux_x86.oxt
index 8379539cad..8379539cad 100644..100755
--- a/desktop/test/deployment/update/platform/linux_x86.oxt
+++ b/desktop/test/deployment/update/platform/linux_x86.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/linux_x86_64.oxt b/desktop/test/deployment/update/platform/linux_x86_64.oxt
index 0fb1822752..0fb1822752 100644..100755
--- a/desktop/test/deployment/update/platform/linux_x86_64.oxt
+++ b/desktop/test/deployment/update/platform/linux_x86_64.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/macosx_powerpc.oxt b/desktop/test/deployment/update/platform/macosx_powerpc.oxt
index 7c14634712..7c14634712 100644..100755
--- a/desktop/test/deployment/update/platform/macosx_powerpc.oxt
+++ b/desktop/test/deployment/update/platform/macosx_powerpc.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/macosx_x86.oxt b/desktop/test/deployment/update/platform/macosx_x86.oxt
index a20aadfeff..a20aadfeff 100644..100755
--- a/desktop/test/deployment/update/platform/macosx_x86.oxt
+++ b/desktop/test/deployment/update/platform/macosx_x86.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/mul1.oxt b/desktop/test/deployment/update/platform/mul1.oxt
index b3b555969b..b3b555969b 100644..100755
--- a/desktop/test/deployment/update/platform/mul1.oxt
+++ b/desktop/test/deployment/update/platform/mul1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/os2_x86.oxt b/desktop/test/deployment/update/platform/os2_x86.oxt
index 1c7fd40bef..1c7fd40bef 100644..100755
--- a/desktop/test/deployment/update/platform/os2_x86.oxt
+++ b/desktop/test/deployment/update/platform/os2_x86.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/readme.txt b/desktop/test/deployment/update/platform/readme.txt
index 2ab102a27d..2ab102a27d 100644..100755
--- a/desktop/test/deployment/update/platform/readme.txt
+++ b/desktop/test/deployment/update/platform/readme.txt
diff --git a/desktop/test/deployment/update/platform/solaris_sparc.oxt b/desktop/test/deployment/update/platform/solaris_sparc.oxt
index a61f81f439..a61f81f439 100644..100755
--- a/desktop/test/deployment/update/platform/solaris_sparc.oxt
+++ b/desktop/test/deployment/update/platform/solaris_sparc.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/solaris_x86.oxt b/desktop/test/deployment/update/platform/solaris_x86.oxt
index 44d43df691..44d43df691 100644..100755
--- a/desktop/test/deployment/update/platform/solaris_x86.oxt
+++ b/desktop/test/deployment/update/platform/solaris_x86.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/windows_x86.oxt b/desktop/test/deployment/update/platform/windows_x86.oxt
index c66a9b1418..c66a9b1418 100644..100755
--- a/desktop/test/deployment/update/platform/windows_x86.oxt
+++ b/desktop/test/deployment/update/platform/windows_x86.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/pub1.oxt b/desktop/test/deployment/update/publisher/pub1.oxt
index c44ee9f3bc..c44ee9f3bc 100644..100755
--- a/desktop/test/deployment/update/publisher/pub1.oxt
+++ b/desktop/test/deployment/update/publisher/pub1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/pub10.oxt b/desktop/test/deployment/update/publisher/pub10.oxt
index 1e7410ec1b..1e7410ec1b 100644..100755
--- a/desktop/test/deployment/update/publisher/pub10.oxt
+++ b/desktop/test/deployment/update/publisher/pub10.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/pub11.oxt b/desktop/test/deployment/update/publisher/pub11.oxt
index ef7fbca5e6..ef7fbca5e6 100644..100755
--- a/desktop/test/deployment/update/publisher/pub11.oxt
+++ b/desktop/test/deployment/update/publisher/pub11.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/pub2.oxt b/desktop/test/deployment/update/publisher/pub2.oxt
index 438bcae830..438bcae830 100644..100755
--- a/desktop/test/deployment/update/publisher/pub2.oxt
+++ b/desktop/test/deployment/update/publisher/pub2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/pub3.oxt b/desktop/test/deployment/update/publisher/pub3.oxt
index 62fd69f559..62fd69f559 100644..100755
--- a/desktop/test/deployment/update/publisher/pub3.oxt
+++ b/desktop/test/deployment/update/publisher/pub3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/pub4.oxt b/desktop/test/deployment/update/publisher/pub4.oxt
index 4f6224f780..4f6224f780 100644..100755
--- a/desktop/test/deployment/update/publisher/pub4.oxt
+++ b/desktop/test/deployment/update/publisher/pub4.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/pub5.oxt b/desktop/test/deployment/update/publisher/pub5.oxt
index 1774e6cd35..1774e6cd35 100644..100755
--- a/desktop/test/deployment/update/publisher/pub5.oxt
+++ b/desktop/test/deployment/update/publisher/pub5.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/pub6.oxt b/desktop/test/deployment/update/publisher/pub6.oxt
index 791a37f8e7..791a37f8e7 100644..100755
--- a/desktop/test/deployment/update/publisher/pub6.oxt
+++ b/desktop/test/deployment/update/publisher/pub6.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/pub7.oxt b/desktop/test/deployment/update/publisher/pub7.oxt
index 96e96887d0..96e96887d0 100644..100755
--- a/desktop/test/deployment/update/publisher/pub7.oxt
+++ b/desktop/test/deployment/update/publisher/pub7.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/pub8.oxt b/desktop/test/deployment/update/publisher/pub8.oxt
index dc9f0ce34d..dc9f0ce34d 100644..100755
--- a/desktop/test/deployment/update/publisher/pub8.oxt
+++ b/desktop/test/deployment/update/publisher/pub8.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/pub9.oxt b/desktop/test/deployment/update/publisher/pub9.oxt
index 5e8ba9ebc1..5e8ba9ebc1 100644..100755
--- a/desktop/test/deployment/update/publisher/pub9.oxt
+++ b/desktop/test/deployment/update/publisher/pub9.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/publisher_de-DE-altmark.html b/desktop/test/deployment/update/publisher/publisher_de-DE-altmark.html
index c770b914ad..c770b914ad 100644..100755
--- a/desktop/test/deployment/update/publisher/publisher_de-DE-altmark.html
+++ b/desktop/test/deployment/update/publisher/publisher_de-DE-altmark.html
diff --git a/desktop/test/deployment/update/publisher/publisher_de-DE.html b/desktop/test/deployment/update/publisher/publisher_de-DE.html
index b06ed7088f..b06ed7088f 100644..100755
--- a/desktop/test/deployment/update/publisher/publisher_de-DE.html
+++ b/desktop/test/deployment/update/publisher/publisher_de-DE.html
diff --git a/desktop/test/deployment/update/publisher/publisher_de.html b/desktop/test/deployment/update/publisher/publisher_de.html
index 4cba9f423d..4cba9f423d 100644..100755
--- a/desktop/test/deployment/update/publisher/publisher_de.html
+++ b/desktop/test/deployment/update/publisher/publisher_de.html
diff --git a/desktop/test/deployment/update/publisher/publisher_en-GB.html b/desktop/test/deployment/update/publisher/publisher_en-GB.html
index c73cf6219b..c73cf6219b 100644..100755
--- a/desktop/test/deployment/update/publisher/publisher_en-GB.html
+++ b/desktop/test/deployment/update/publisher/publisher_en-GB.html
diff --git a/desktop/test/deployment/update/publisher/publisher_en-US-region1.html b/desktop/test/deployment/update/publisher/publisher_en-US-region1.html
index 68beac7248..68beac7248 100644..100755
--- a/desktop/test/deployment/update/publisher/publisher_en-US-region1.html
+++ b/desktop/test/deployment/update/publisher/publisher_en-US-region1.html
diff --git a/desktop/test/deployment/update/publisher/publisher_en-US-region2.html b/desktop/test/deployment/update/publisher/publisher_en-US-region2.html
index 501adb6596..501adb6596 100644..100755
--- a/desktop/test/deployment/update/publisher/publisher_en-US-region2.html
+++ b/desktop/test/deployment/update/publisher/publisher_en-US-region2.html
diff --git a/desktop/test/deployment/update/publisher/publisher_en-US.html b/desktop/test/deployment/update/publisher/publisher_en-US.html
index fd25751503..fd25751503 100644..100755
--- a/desktop/test/deployment/update/publisher/publisher_en-US.html
+++ b/desktop/test/deployment/update/publisher/publisher_en-US.html
diff --git a/desktop/test/deployment/update/publisher/publisher_en-region3.html b/desktop/test/deployment/update/publisher/publisher_en-region3.html
index b9fdc9d657..b9fdc9d657 100644..100755
--- a/desktop/test/deployment/update/publisher/publisher_en-region3.html
+++ b/desktop/test/deployment/update/publisher/publisher_en-region3.html
diff --git a/desktop/test/deployment/update/publisher/publisher_en.html b/desktop/test/deployment/update/publisher/publisher_en.html
index 416ab81243..416ab81243 100644..100755
--- a/desktop/test/deployment/update/publisher/publisher_en.html
+++ b/desktop/test/deployment/update/publisher/publisher_en.html
diff --git a/desktop/test/deployment/update/publisher/readme.txt b/desktop/test/deployment/update/publisher/readme.txt
index 1a659d8e87..1a659d8e87 100644..100755
--- a/desktop/test/deployment/update/publisher/readme.txt
+++ b/desktop/test/deployment/update/publisher/readme.txt
diff --git a/desktop/test/deployment/update/publisher/release-notes_de-DE-altmark.html b/desktop/test/deployment/update/publisher/release-notes_de-DE-altmark.html
index 81b38a9f5b..81b38a9f5b 100644..100755
--- a/desktop/test/deployment/update/publisher/release-notes_de-DE-altmark.html
+++ b/desktop/test/deployment/update/publisher/release-notes_de-DE-altmark.html
diff --git a/desktop/test/deployment/update/publisher/release-notes_de-DE.html b/desktop/test/deployment/update/publisher/release-notes_de-DE.html
index f8f0121f02..f8f0121f02 100644..100755
--- a/desktop/test/deployment/update/publisher/release-notes_de-DE.html
+++ b/desktop/test/deployment/update/publisher/release-notes_de-DE.html
diff --git a/desktop/test/deployment/update/publisher/release-notes_de.html b/desktop/test/deployment/update/publisher/release-notes_de.html
index a9e1dc3647..a9e1dc3647 100644..100755
--- a/desktop/test/deployment/update/publisher/release-notes_de.html
+++ b/desktop/test/deployment/update/publisher/release-notes_de.html
diff --git a/desktop/test/deployment/update/publisher/release-notes_en-GB.html b/desktop/test/deployment/update/publisher/release-notes_en-GB.html
index ca72ec1b9c..ca72ec1b9c 100644..100755
--- a/desktop/test/deployment/update/publisher/release-notes_en-GB.html
+++ b/desktop/test/deployment/update/publisher/release-notes_en-GB.html
diff --git a/desktop/test/deployment/update/publisher/release-notes_en-US-region1.html b/desktop/test/deployment/update/publisher/release-notes_en-US-region1.html
index 0e6f99ce4c..0e6f99ce4c 100644..100755
--- a/desktop/test/deployment/update/publisher/release-notes_en-US-region1.html
+++ b/desktop/test/deployment/update/publisher/release-notes_en-US-region1.html
diff --git a/desktop/test/deployment/update/publisher/release-notes_en-US-region2.html b/desktop/test/deployment/update/publisher/release-notes_en-US-region2.html
index 597bca0ebe..597bca0ebe 100644..100755
--- a/desktop/test/deployment/update/publisher/release-notes_en-US-region2.html
+++ b/desktop/test/deployment/update/publisher/release-notes_en-US-region2.html
diff --git a/desktop/test/deployment/update/publisher/release-notes_en-US.html b/desktop/test/deployment/update/publisher/release-notes_en-US.html
index 7f9d73e338..7f9d73e338 100644..100755
--- a/desktop/test/deployment/update/publisher/release-notes_en-US.html
+++ b/desktop/test/deployment/update/publisher/release-notes_en-US.html
diff --git a/desktop/test/deployment/update/publisher/release-notes_en-region3.html b/desktop/test/deployment/update/publisher/release-notes_en-region3.html
index 5d62c7bcb4..5d62c7bcb4 100644..100755
--- a/desktop/test/deployment/update/publisher/release-notes_en-region3.html
+++ b/desktop/test/deployment/update/publisher/release-notes_en-region3.html
diff --git a/desktop/test/deployment/update/publisher/release-notes_en.html b/desktop/test/deployment/update/publisher/release-notes_en.html
index d02e4f3330..d02e4f3330 100644..100755
--- a/desktop/test/deployment/update/publisher/release-notes_en.html
+++ b/desktop/test/deployment/update/publisher/release-notes_en.html
diff --git a/desktop/test/deployment/update/publisher/update/pub1.oxt b/desktop/test/deployment/update/publisher/update/pub1.oxt
index cd04a58d55..cd04a58d55 100644..100755
--- a/desktop/test/deployment/update/publisher/update/pub1.oxt
+++ b/desktop/test/deployment/update/publisher/update/pub1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/update/pub1.update.xml b/desktop/test/deployment/update/publisher/update/pub1.update.xml
index 65ca88e5b7..65ca88e5b7 100644..100755
--- a/desktop/test/deployment/update/publisher/update/pub1.update.xml
+++ b/desktop/test/deployment/update/publisher/update/pub1.update.xml
diff --git a/desktop/test/deployment/update/publisher/update/pub10.oxt b/desktop/test/deployment/update/publisher/update/pub10.oxt
index 501a843381..501a843381 100644..100755
--- a/desktop/test/deployment/update/publisher/update/pub10.oxt
+++ b/desktop/test/deployment/update/publisher/update/pub10.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/update/pub11.oxt b/desktop/test/deployment/update/publisher/update/pub11.oxt
index 692c0401f4..692c0401f4 100644..100755
--- a/desktop/test/deployment/update/publisher/update/pub11.oxt
+++ b/desktop/test/deployment/update/publisher/update/pub11.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/update/pub2.oxt b/desktop/test/deployment/update/publisher/update/pub2.oxt
index 2a0bd6c21f..2a0bd6c21f 100644..100755
--- a/desktop/test/deployment/update/publisher/update/pub2.oxt
+++ b/desktop/test/deployment/update/publisher/update/pub2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/update/pub2.update.xml b/desktop/test/deployment/update/publisher/update/pub2.update.xml
index 35415fc87d..35415fc87d 100644..100755
--- a/desktop/test/deployment/update/publisher/update/pub2.update.xml
+++ b/desktop/test/deployment/update/publisher/update/pub2.update.xml
diff --git a/desktop/test/deployment/update/publisher/update/pub3.oxt b/desktop/test/deployment/update/publisher/update/pub3.oxt
index 60675fc4d2..60675fc4d2 100644..100755
--- a/desktop/test/deployment/update/publisher/update/pub3.oxt
+++ b/desktop/test/deployment/update/publisher/update/pub3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/update/pub3.update.xml b/desktop/test/deployment/update/publisher/update/pub3.update.xml
index f15a4c525a..f15a4c525a 100644..100755
--- a/desktop/test/deployment/update/publisher/update/pub3.update.xml
+++ b/desktop/test/deployment/update/publisher/update/pub3.update.xml
diff --git a/desktop/test/deployment/update/publisher/update/pub4.oxt b/desktop/test/deployment/update/publisher/update/pub4.oxt
index 19f7b7991b..19f7b7991b 100644..100755
--- a/desktop/test/deployment/update/publisher/update/pub4.oxt
+++ b/desktop/test/deployment/update/publisher/update/pub4.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/update/pub4.update.xml b/desktop/test/deployment/update/publisher/update/pub4.update.xml
index 9c46b6eb3d..9c46b6eb3d 100644..100755
--- a/desktop/test/deployment/update/publisher/update/pub4.update.xml
+++ b/desktop/test/deployment/update/publisher/update/pub4.update.xml
diff --git a/desktop/test/deployment/update/publisher/update/pub5.oxt b/desktop/test/deployment/update/publisher/update/pub5.oxt
index afc632d570..afc632d570 100644..100755
--- a/desktop/test/deployment/update/publisher/update/pub5.oxt
+++ b/desktop/test/deployment/update/publisher/update/pub5.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/update/pub5.update.xml b/desktop/test/deployment/update/publisher/update/pub5.update.xml
index dd47e95403..dd47e95403 100644..100755
--- a/desktop/test/deployment/update/publisher/update/pub5.update.xml
+++ b/desktop/test/deployment/update/publisher/update/pub5.update.xml
diff --git a/desktop/test/deployment/update/publisher/update/pub6.oxt b/desktop/test/deployment/update/publisher/update/pub6.oxt
index a68b445b8a..a68b445b8a 100644..100755
--- a/desktop/test/deployment/update/publisher/update/pub6.oxt
+++ b/desktop/test/deployment/update/publisher/update/pub6.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/update/pub6.update.xml b/desktop/test/deployment/update/publisher/update/pub6.update.xml
index 5d4adc7a16..5d4adc7a16 100644..100755
--- a/desktop/test/deployment/update/publisher/update/pub6.update.xml
+++ b/desktop/test/deployment/update/publisher/update/pub6.update.xml
diff --git a/desktop/test/deployment/update/publisher/update/pub7.oxt b/desktop/test/deployment/update/publisher/update/pub7.oxt
index 1b4bee0442..1b4bee0442 100644..100755
--- a/desktop/test/deployment/update/publisher/update/pub7.oxt
+++ b/desktop/test/deployment/update/publisher/update/pub7.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/update/pub7.update.xml b/desktop/test/deployment/update/publisher/update/pub7.update.xml
index cf61bc092d..cf61bc092d 100644..100755
--- a/desktop/test/deployment/update/publisher/update/pub7.update.xml
+++ b/desktop/test/deployment/update/publisher/update/pub7.update.xml
diff --git a/desktop/test/deployment/update/publisher/update/pub8.oxt b/desktop/test/deployment/update/publisher/update/pub8.oxt
index 5688ab9d24..5688ab9d24 100644..100755
--- a/desktop/test/deployment/update/publisher/update/pub8.oxt
+++ b/desktop/test/deployment/update/publisher/update/pub8.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/update/pub9.oxt b/desktop/test/deployment/update/publisher/update/pub9.oxt
index 752cfbbcf0..752cfbbcf0 100644..100755
--- a/desktop/test/deployment/update/publisher/update/pub9.oxt
+++ b/desktop/test/deployment/update/publisher/update/pub9.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/readme.txt b/desktop/test/deployment/update/readme.txt
index b3fd9126ca..b3fd9126ca 100644..100755
--- a/desktop/test/deployment/update/readme.txt
+++ b/desktop/test/deployment/update/readme.txt
diff --git a/desktop/test/deployment/update/simple/plain1.oxt b/desktop/test/deployment/update/simple/plain1.oxt
index 6256f99d5e..6256f99d5e 100644..100755
--- a/desktop/test/deployment/update/simple/plain1.oxt
+++ b/desktop/test/deployment/update/simple/plain1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/simple/plain2.oxt b/desktop/test/deployment/update/simple/plain2.oxt
index 03249c2777..03249c2777 100644..100755
--- a/desktop/test/deployment/update/simple/plain2.oxt
+++ b/desktop/test/deployment/update/simple/plain2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/simple/plain3.oxt b/desktop/test/deployment/update/simple/plain3.oxt
index 64838932d1..64838932d1 100644..100755
--- a/desktop/test/deployment/update/simple/plain3.oxt
+++ b/desktop/test/deployment/update/simple/plain3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/simple/readme.txt b/desktop/test/deployment/update/simple/readme.txt
index 34ad6bedab..34ad6bedab 100644..100755
--- a/desktop/test/deployment/update/simple/readme.txt
+++ b/desktop/test/deployment/update/simple/readme.txt
diff --git a/desktop/test/deployment/update/simple/update/plain1.oxt b/desktop/test/deployment/update/simple/update/plain1.oxt
index d73362e873..d73362e873 100644..100755
--- a/desktop/test/deployment/update/simple/update/plain1.oxt
+++ b/desktop/test/deployment/update/simple/update/plain1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/simple/update/plain1.update.xml b/desktop/test/deployment/update/simple/update/plain1.update.xml
index 5ee57aacb8..5ee57aacb8 100644..100755
--- a/desktop/test/deployment/update/simple/update/plain1.update.xml
+++ b/desktop/test/deployment/update/simple/update/plain1.update.xml
diff --git a/desktop/test/deployment/update/simple/update/plain2.oxt b/desktop/test/deployment/update/simple/update/plain2.oxt
index 3dc02aa97a..3dc02aa97a 100644..100755
--- a/desktop/test/deployment/update/simple/update/plain2.oxt
+++ b/desktop/test/deployment/update/simple/update/plain2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/simple/update/plain2.update.xml b/desktop/test/deployment/update/simple/update/plain2.update.xml
index e572908df6..e572908df6 100644..100755
--- a/desktop/test/deployment/update/simple/update/plain2.update.xml
+++ b/desktop/test/deployment/update/simple/update/plain2.update.xml
diff --git a/desktop/test/deployment/update/simple/update/plain3.oxt b/desktop/test/deployment/update/simple/update/plain3.oxt
index 575152403b..575152403b 100644..100755
--- a/desktop/test/deployment/update/simple/update/plain3.oxt
+++ b/desktop/test/deployment/update/simple/update/plain3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/simple/update/plain3.update.xml b/desktop/test/deployment/update/simple/update/plain3.update.xml
index 038bebef02..038bebef02 100644..100755
--- a/desktop/test/deployment/update/simple/update/plain3.update.xml
+++ b/desktop/test/deployment/update/simple/update/plain3.update.xml
diff --git a/desktop/test/deployment/update/updatefeed/feed1.oxt b/desktop/test/deployment/update/updatefeed/feed1.oxt
index b1b11eccea..b1b11eccea 100644..100755
--- a/desktop/test/deployment/update/updatefeed/feed1.oxt
+++ b/desktop/test/deployment/update/updatefeed/feed1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/updatefeed/feed2.oxt b/desktop/test/deployment/update/updatefeed/feed2.oxt
index 47dca1676c..47dca1676c 100644..100755
--- a/desktop/test/deployment/update/updatefeed/feed2.oxt
+++ b/desktop/test/deployment/update/updatefeed/feed2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/updatefeed/update/feed1.oxt b/desktop/test/deployment/update/updatefeed/update/feed1.oxt
index 82bb9665ae..82bb9665ae 100644..100755
--- a/desktop/test/deployment/update/updatefeed/update/feed1.oxt
+++ b/desktop/test/deployment/update/updatefeed/update/feed1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/updatefeed/update/feed1.update.xml b/desktop/test/deployment/update/updatefeed/update/feed1.update.xml
index ebf421dbfd..ebf421dbfd 100644..100755
--- a/desktop/test/deployment/update/updatefeed/update/feed1.update.xml
+++ b/desktop/test/deployment/update/updatefeed/update/feed1.update.xml
diff --git a/desktop/test/deployment/update/updatefeed/update/feed1.xml b/desktop/test/deployment/update/updatefeed/update/feed1.xml
index 1c31851d8c..1c31851d8c 100644..100755
--- a/desktop/test/deployment/update/updatefeed/update/feed1.xml
+++ b/desktop/test/deployment/update/updatefeed/update/feed1.xml
diff --git a/desktop/test/deployment/update/updatefeed/update/feed2.oxt b/desktop/test/deployment/update/updatefeed/update/feed2.oxt
index 9c867ae4a8..9c867ae4a8 100644..100755
--- a/desktop/test/deployment/update/updatefeed/update/feed2.oxt
+++ b/desktop/test/deployment/update/updatefeed/update/feed2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/updatefeed/update/feed2.update.xml b/desktop/test/deployment/update/updatefeed/update/feed2.update.xml
index 7a554b30c4..7a554b30c4 100644..100755
--- a/desktop/test/deployment/update/updatefeed/update/feed2.update.xml
+++ b/desktop/test/deployment/update/updatefeed/update/feed2.update.xml
diff --git a/desktop/test/deployment/update/updateinfocreation/build/description.xml b/desktop/test/deployment/update/updateinfocreation/build/description.xml
index a175c3232a..a175c3232a 100644..100755
--- a/desktop/test/deployment/update/updateinfocreation/build/description.xml
+++ b/desktop/test/deployment/update/updateinfocreation/build/description.xml
diff --git a/desktop/test/deployment/update/updateinfocreation/build/makefile.mk b/desktop/test/deployment/update/updateinfocreation/build/makefile.mk
index 6af3928279..b0479c942b 100755
--- a/desktop/test/deployment/update/updateinfocreation/build/makefile.mk
+++ b/desktop/test/deployment/update/updateinfocreation/build/makefile.mk
@@ -84,5 +84,8 @@ $(MISC)$/$(TARGET)_resort : manifest.xml $(JARTARGETN) $(MISC)$/$(ZIP1TARGET).cr
$(GNUCOPY) -u description.xml $(MISC)$/$(TARGET)$/description.xml
$(TOUCH) $@
+.IF "$(ZIP1TARGETN)"!=""
$(ZIP1TARGETN) : $(MISC)$/$(TARGET)_resort $(MISC)$/$(ZIP1TARGET).createdir
+.ENDIF # "$(ZIP1TARGETN)"!=""
+
diff --git a/desktop/test/deployment/update/updateinfocreation/readme.txt b/desktop/test/deployment/update/updateinfocreation/readme.txt
index c4fc059053..c4fc059053 100644..100755
--- a/desktop/test/deployment/update/updateinfocreation/readme.txt
+++ b/desktop/test/deployment/update/updateinfocreation/readme.txt
diff --git a/desktop/test/deployment/update/updateinfocreation/update/updateinfo.oxt b/desktop/test/deployment/update/updateinfocreation/update/updateinfo.oxt
index 52ddd3158e..52ddd3158e 100644..100755
--- a/desktop/test/deployment/update/updateinfocreation/update/updateinfo.oxt
+++ b/desktop/test/deployment/update/updateinfocreation/update/updateinfo.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/updateinfocreation/updateinfo.oxt b/desktop/test/deployment/update/updateinfocreation/updateinfo.oxt
index 43ac7003bc..43ac7003bc 100644..100755
--- a/desktop/test/deployment/update/updateinfocreation/updateinfo.oxt
+++ b/desktop/test/deployment/update/updateinfocreation/updateinfo.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/readme.txt b/desktop/test/deployment/update/website_update/readme.txt
index 4ae5ddd918..4ae5ddd918 100644..100755
--- a/desktop/test/deployment/update/website_update/readme.txt
+++ b/desktop/test/deployment/update/website_update/readme.txt
diff --git a/desktop/test/deployment/update/website_update/update/web1.oxt b/desktop/test/deployment/update/website_update/update/web1.oxt
index 157d5d952c..157d5d952c 100644..100755
--- a/desktop/test/deployment/update/website_update/update/web1.oxt
+++ b/desktop/test/deployment/update/website_update/update/web1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/update/web1.update.xml b/desktop/test/deployment/update/website_update/update/web1.update.xml
index 1355851073..1355851073 100644..100755
--- a/desktop/test/deployment/update/website_update/update/web1.update.xml
+++ b/desktop/test/deployment/update/website_update/update/web1.update.xml
diff --git a/desktop/test/deployment/update/website_update/update/web1_de-DE-altmark.html b/desktop/test/deployment/update/website_update/update/web1_de-DE-altmark.html
index ffed5a52e8..ffed5a52e8 100644..100755
--- a/desktop/test/deployment/update/website_update/update/web1_de-DE-altmark.html
+++ b/desktop/test/deployment/update/website_update/update/web1_de-DE-altmark.html
diff --git a/desktop/test/deployment/update/website_update/update/web1_de-DE.html b/desktop/test/deployment/update/website_update/update/web1_de-DE.html
index 33fb7f2ec8..33fb7f2ec8 100644..100755
--- a/desktop/test/deployment/update/website_update/update/web1_de-DE.html
+++ b/desktop/test/deployment/update/website_update/update/web1_de-DE.html
diff --git a/desktop/test/deployment/update/website_update/update/web1_de.html b/desktop/test/deployment/update/website_update/update/web1_de.html
index 31a53b91db..31a53b91db 100644..100755
--- a/desktop/test/deployment/update/website_update/update/web1_de.html
+++ b/desktop/test/deployment/update/website_update/update/web1_de.html
diff --git a/desktop/test/deployment/update/website_update/update/web1_en-GB.html b/desktop/test/deployment/update/website_update/update/web1_en-GB.html
index c46328a821..c46328a821 100644..100755
--- a/desktop/test/deployment/update/website_update/update/web1_en-GB.html
+++ b/desktop/test/deployment/update/website_update/update/web1_en-GB.html
diff --git a/desktop/test/deployment/update/website_update/update/web1_en-US-region1.html b/desktop/test/deployment/update/website_update/update/web1_en-US-region1.html
index 80b41823b7..80b41823b7 100644..100755
--- a/desktop/test/deployment/update/website_update/update/web1_en-US-region1.html
+++ b/desktop/test/deployment/update/website_update/update/web1_en-US-region1.html
diff --git a/desktop/test/deployment/update/website_update/update/web1_en-US-region2.html b/desktop/test/deployment/update/website_update/update/web1_en-US-region2.html
index 1a501f520d..1a501f520d 100644..100755
--- a/desktop/test/deployment/update/website_update/update/web1_en-US-region2.html
+++ b/desktop/test/deployment/update/website_update/update/web1_en-US-region2.html
diff --git a/desktop/test/deployment/update/website_update/update/web1_en-US.html b/desktop/test/deployment/update/website_update/update/web1_en-US.html
index f861b09c01..f861b09c01 100644..100755
--- a/desktop/test/deployment/update/website_update/update/web1_en-US.html
+++ b/desktop/test/deployment/update/website_update/update/web1_en-US.html
diff --git a/desktop/test/deployment/update/website_update/update/web1_en-region3.html b/desktop/test/deployment/update/website_update/update/web1_en-region3.html
index f55bcbe381..f55bcbe381 100644..100755
--- a/desktop/test/deployment/update/website_update/update/web1_en-region3.html
+++ b/desktop/test/deployment/update/website_update/update/web1_en-region3.html
diff --git a/desktop/test/deployment/update/website_update/update/web1_en.html b/desktop/test/deployment/update/website_update/update/web1_en.html
index a0b422ebf2..a0b422ebf2 100644..100755
--- a/desktop/test/deployment/update/website_update/update/web1_en.html
+++ b/desktop/test/deployment/update/website_update/update/web1_en.html
diff --git a/desktop/test/deployment/update/website_update/update/web2.oxt b/desktop/test/deployment/update/website_update/update/web2.oxt
index 3a13e81143..3a13e81143 100644..100755
--- a/desktop/test/deployment/update/website_update/update/web2.oxt
+++ b/desktop/test/deployment/update/website_update/update/web2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/update/web2.update.xml b/desktop/test/deployment/update/website_update/update/web2.update.xml
index 23343ecede..23343ecede 100644..100755
--- a/desktop/test/deployment/update/website_update/update/web2.update.xml
+++ b/desktop/test/deployment/update/website_update/update/web2.update.xml
diff --git a/desktop/test/deployment/update/website_update/update/web3.oxt b/desktop/test/deployment/update/website_update/update/web3.oxt
index b3214a4e69..b3214a4e69 100644..100755
--- a/desktop/test/deployment/update/website_update/update/web3.oxt
+++ b/desktop/test/deployment/update/website_update/update/web3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/update/web3.update.xml b/desktop/test/deployment/update/website_update/update/web3.update.xml
index 0958b497f8..0958b497f8 100644..100755
--- a/desktop/test/deployment/update/website_update/update/web3.update.xml
+++ b/desktop/test/deployment/update/website_update/update/web3.update.xml
diff --git a/desktop/test/deployment/update/website_update/update/web4.oxt b/desktop/test/deployment/update/website_update/update/web4.oxt
index 93766fd44f..93766fd44f 100644..100755
--- a/desktop/test/deployment/update/website_update/update/web4.oxt
+++ b/desktop/test/deployment/update/website_update/update/web4.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/update/web4.update.xml b/desktop/test/deployment/update/website_update/update/web4.update.xml
index ddff6eb0a9..ddff6eb0a9 100644..100755
--- a/desktop/test/deployment/update/website_update/update/web4.update.xml
+++ b/desktop/test/deployment/update/website_update/update/web4.update.xml
diff --git a/desktop/test/deployment/update/website_update/update/web5.oxt b/desktop/test/deployment/update/website_update/update/web5.oxt
index 1ae8f01b19..1ae8f01b19 100644..100755
--- a/desktop/test/deployment/update/website_update/update/web5.oxt
+++ b/desktop/test/deployment/update/website_update/update/web5.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/update/web5.update.xml b/desktop/test/deployment/update/website_update/update/web5.update.xml
index 28a61e14de..28a61e14de 100644..100755
--- a/desktop/test/deployment/update/website_update/update/web5.update.xml
+++ b/desktop/test/deployment/update/website_update/update/web5.update.xml
diff --git a/desktop/test/deployment/update/website_update/update/web6.oxt b/desktop/test/deployment/update/website_update/update/web6.oxt
index 8bc16fb2c7..8bc16fb2c7 100644..100755
--- a/desktop/test/deployment/update/website_update/update/web6.oxt
+++ b/desktop/test/deployment/update/website_update/update/web6.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/update/web6/description.xml b/desktop/test/deployment/update/website_update/update/web6/description.xml
index 294661b6fc..294661b6fc 100644..100755
--- a/desktop/test/deployment/update/website_update/update/web6/description.xml
+++ b/desktop/test/deployment/update/website_update/update/web6/description.xml
diff --git a/desktop/test/deployment/update/website_update/update/web6/readme.txt b/desktop/test/deployment/update/website_update/update/web6/readme.txt
index 7a1ba06efa..7a1ba06efa 100644..100755
--- a/desktop/test/deployment/update/website_update/update/web6/readme.txt
+++ b/desktop/test/deployment/update/website_update/update/web6/readme.txt
diff --git a/desktop/test/deployment/update/website_update/update/web7.oxt b/desktop/test/deployment/update/website_update/update/web7.oxt
index 4d6220a48a..4d6220a48a 100644..100755
--- a/desktop/test/deployment/update/website_update/update/web7.oxt
+++ b/desktop/test/deployment/update/website_update/update/web7.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/update/web7/description.xml b/desktop/test/deployment/update/website_update/update/web7/description.xml
index 8fcaf9278c..8fcaf9278c 100644..100755
--- a/desktop/test/deployment/update/website_update/update/web7/description.xml
+++ b/desktop/test/deployment/update/website_update/update/web7/description.xml
diff --git a/desktop/test/deployment/update/website_update/update/web7/readme.txt b/desktop/test/deployment/update/website_update/update/web7/readme.txt
index 8a6721b8e8..8a6721b8e8 100644..100755
--- a/desktop/test/deployment/update/website_update/update/web7/readme.txt
+++ b/desktop/test/deployment/update/website_update/update/web7/readme.txt
diff --git a/desktop/test/deployment/update/website_update/web1.oxt b/desktop/test/deployment/update/website_update/web1.oxt
index 7c17586e04..7c17586e04 100644..100755
--- a/desktop/test/deployment/update/website_update/web1.oxt
+++ b/desktop/test/deployment/update/website_update/web1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/web2.oxt b/desktop/test/deployment/update/website_update/web2.oxt
index 705e70a753..705e70a753 100644..100755
--- a/desktop/test/deployment/update/website_update/web2.oxt
+++ b/desktop/test/deployment/update/website_update/web2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/web3.oxt b/desktop/test/deployment/update/website_update/web3.oxt
index 4e63a75f0c..4e63a75f0c 100644..100755
--- a/desktop/test/deployment/update/website_update/web3.oxt
+++ b/desktop/test/deployment/update/website_update/web3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/web4.oxt b/desktop/test/deployment/update/website_update/web4.oxt
index e66513e683..e66513e683 100644..100755
--- a/desktop/test/deployment/update/website_update/web4.oxt
+++ b/desktop/test/deployment/update/website_update/web4.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/web5.oxt b/desktop/test/deployment/update/website_update/web5.oxt
index 65b02db934..65b02db934 100644..100755
--- a/desktop/test/deployment/update/website_update/web5.oxt
+++ b/desktop/test/deployment/update/website_update/web5.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/web6.oxt b/desktop/test/deployment/update/website_update/web6.oxt
index 98416edfa5..98416edfa5 100644..100755
--- a/desktop/test/deployment/update/website_update/web6.oxt
+++ b/desktop/test/deployment/update/website_update/web6.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/web7.oxt b/desktop/test/deployment/update/website_update/web7.oxt
index 31ba45f032..31ba45f032 100644..100755
--- a/desktop/test/deployment/update/website_update/web7.oxt
+++ b/desktop/test/deployment/update/website_update/web7.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/wrong_url/readme.txt b/desktop/test/deployment/update/wrong_url/readme.txt
index cc2459763c..cc2459763c 100644..100755
--- a/desktop/test/deployment/update/wrong_url/readme.txt
+++ b/desktop/test/deployment/update/wrong_url/readme.txt
diff --git a/desktop/test/deployment/update/wrong_url/update/url1.oxt b/desktop/test/deployment/update/wrong_url/update/url1.oxt
index 479b546c84..479b546c84 100644..100755
--- a/desktop/test/deployment/update/wrong_url/update/url1.oxt
+++ b/desktop/test/deployment/update/wrong_url/update/url1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/wrong_url/update/url1.update.xml b/desktop/test/deployment/update/wrong_url/update/url1.update.xml
index a50dec4cd5..a50dec4cd5 100644..100755
--- a/desktop/test/deployment/update/wrong_url/update/url1.update.xml
+++ b/desktop/test/deployment/update/wrong_url/update/url1.update.xml
diff --git a/desktop/test/deployment/update/wrong_url/update/url2.oxt b/desktop/test/deployment/update/wrong_url/update/url2.oxt
index ec2c5c6528..ec2c5c6528 100644..100755
--- a/desktop/test/deployment/update/wrong_url/update/url2.oxt
+++ b/desktop/test/deployment/update/wrong_url/update/url2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/wrong_url/update/url2.update.xml b/desktop/test/deployment/update/wrong_url/update/url2.update.xml
index 13757c8257..13757c8257 100644..100755
--- a/desktop/test/deployment/update/wrong_url/update/url2.update.xml
+++ b/desktop/test/deployment/update/wrong_url/update/url2.update.xml
diff --git a/desktop/test/deployment/update/wrong_url/update/wrongdownload1.update.xml b/desktop/test/deployment/update/wrong_url/update/wrongdownload1.update.xml
index b2b62a3be3..b2b62a3be3 100644..100755
--- a/desktop/test/deployment/update/wrong_url/update/wrongdownload1.update.xml
+++ b/desktop/test/deployment/update/wrong_url/update/wrongdownload1.update.xml
diff --git a/desktop/test/deployment/update/wrong_url/update/wrongdownload2.update.xml b/desktop/test/deployment/update/wrong_url/update/wrongdownload2.update.xml
index cb01718765..cb01718765 100644..100755
--- a/desktop/test/deployment/update/wrong_url/update/wrongdownload2.update.xml
+++ b/desktop/test/deployment/update/wrong_url/update/wrongdownload2.update.xml
diff --git a/desktop/test/deployment/update/wrong_url/update/wrongdownload3.update.xml b/desktop/test/deployment/update/wrong_url/update/wrongdownload3.update.xml
index 6ce027763d..6ce027763d 100644..100755
--- a/desktop/test/deployment/update/wrong_url/update/wrongdownload3.update.xml
+++ b/desktop/test/deployment/update/wrong_url/update/wrongdownload3.update.xml
diff --git a/desktop/test/deployment/update/wrong_url/url1.oxt b/desktop/test/deployment/update/wrong_url/url1.oxt
index 41d8522fbb..41d8522fbb 100644..100755
--- a/desktop/test/deployment/update/wrong_url/url1.oxt
+++ b/desktop/test/deployment/update/wrong_url/url1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/wrong_url/url2.oxt b/desktop/test/deployment/update/wrong_url/url2.oxt
index d68e45e5e5..d68e45e5e5 100644..100755
--- a/desktop/test/deployment/update/wrong_url/url2.oxt
+++ b/desktop/test/deployment/update/wrong_url/url2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/wrong_url/url3.oxt b/desktop/test/deployment/update/wrong_url/url3.oxt
index 80f93b74d1..80f93b74d1 100644..100755
--- a/desktop/test/deployment/update/wrong_url/url3.oxt
+++ b/desktop/test/deployment/update/wrong_url/url3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/wrong_url/wrongdownload1.oxt b/desktop/test/deployment/update/wrong_url/wrongdownload1.oxt
index 535ae331a9..535ae331a9 100644..100755
--- a/desktop/test/deployment/update/wrong_url/wrongdownload1.oxt
+++ b/desktop/test/deployment/update/wrong_url/wrongdownload1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/wrong_url/wrongdownload2.oxt b/desktop/test/deployment/update/wrong_url/wrongdownload2.oxt
index aafe2c2467..aafe2c2467 100644..100755
--- a/desktop/test/deployment/update/wrong_url/wrongdownload2.oxt
+++ b/desktop/test/deployment/update/wrong_url/wrongdownload2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/wrong_url/wrongdownload3.oxt b/desktop/test/deployment/update/wrong_url/wrongdownload3.oxt
index fbdac925a2..fbdac925a2 100644..100755
--- a/desktop/test/deployment/update/wrong_url/wrongdownload3.oxt
+++ b/desktop/test/deployment/update/wrong_url/wrongdownload3.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/readme.txt b/desktop/test/deployment/version/readme.txt
index c2ba28afd9..c2ba28afd9 100644..100755
--- a/desktop/test/deployment/version/readme.txt
+++ b/desktop/test/deployment/version/readme.txt
diff --git a/desktop/test/deployment/version/version_0.0/dependency.oxt b/desktop/test/deployment/version/version_0.0/dependency.oxt
index 30c8432251..30c8432251 100644..100755
--- a/desktop/test/deployment/version/version_0.0/dependency.oxt
+++ b/desktop/test/deployment/version/version_0.0/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_0.0/license.oxt b/desktop/test/deployment/version/version_0.0/license.oxt
index b994ff71b7..b994ff71b7 100644..100755
--- a/desktop/test/deployment/version/version_0.0/license.oxt
+++ b/desktop/test/deployment/version/version_0.0/license.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_0.0/plain.oxt b/desktop/test/deployment/version/version_0.0/plain.oxt
index f156014eb8..f156014eb8 100644..100755
--- a/desktop/test/deployment/version/version_0.0/plain.oxt
+++ b/desktop/test/deployment/version/version_0.0/plain.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_1.02.4.7.0/dependency.oxt b/desktop/test/deployment/version/version_1.02.4.7.0/dependency.oxt
index 4d75f70762..4d75f70762 100644..100755
--- a/desktop/test/deployment/version/version_1.02.4.7.0/dependency.oxt
+++ b/desktop/test/deployment/version/version_1.02.4.7.0/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_1.02.4.7.0/license.oxt b/desktop/test/deployment/version/version_1.02.4.7.0/license.oxt
index 40938b7543..40938b7543 100644..100755
--- a/desktop/test/deployment/version/version_1.02.4.7.0/license.oxt
+++ b/desktop/test/deployment/version/version_1.02.4.7.0/license.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_1.02.4.7.0/plain.oxt b/desktop/test/deployment/version/version_1.02.4.7.0/plain.oxt
index 521a2b6c77..521a2b6c77 100644..100755
--- a/desktop/test/deployment/version/version_1.02.4.7.0/plain.oxt
+++ b/desktop/test/deployment/version/version_1.02.4.7.0/plain.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_1.2.15.3/dependency.oxt b/desktop/test/deployment/version/version_1.2.15.3/dependency.oxt
index 6f2a301f3b..6f2a301f3b 100644..100755
--- a/desktop/test/deployment/version/version_1.2.15.3/dependency.oxt
+++ b/desktop/test/deployment/version/version_1.2.15.3/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_1.2.15.3/license.oxt b/desktop/test/deployment/version/version_1.2.15.3/license.oxt
index 2e2a875750..2e2a875750 100644..100755
--- a/desktop/test/deployment/version/version_1.2.15.3/license.oxt
+++ b/desktop/test/deployment/version/version_1.2.15.3/license.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_1.2.15.3/plain.oxt b/desktop/test/deployment/version/version_1.2.15.3/plain.oxt
index 000f3a144f..000f3a144f 100644..100755
--- a/desktop/test/deployment/version/version_1.2.15.3/plain.oxt
+++ b/desktop/test/deployment/version/version_1.2.15.3/plain.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_1.2.3/dependency.oxt b/desktop/test/deployment/version/version_1.2.3/dependency.oxt
index c296634587..c296634587 100644..100755
--- a/desktop/test/deployment/version/version_1.2.3/dependency.oxt
+++ b/desktop/test/deployment/version/version_1.2.3/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_1.2.3/license.oxt b/desktop/test/deployment/version/version_1.2.3/license.oxt
index 9cd80e9911..9cd80e9911 100644..100755
--- a/desktop/test/deployment/version/version_1.2.3/license.oxt
+++ b/desktop/test/deployment/version/version_1.2.3/license.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_1.2.3/plain.oxt b/desktop/test/deployment/version/version_1.2.3/plain.oxt
index e34264591c..e34264591c 100644..100755
--- a/desktop/test/deployment/version/version_1.2.3/plain.oxt
+++ b/desktop/test/deployment/version/version_1.2.3/plain.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_1.2.4.7/dependency.oxt b/desktop/test/deployment/version/version_1.2.4.7/dependency.oxt
index 53089e76b0..53089e76b0 100644..100755
--- a/desktop/test/deployment/version/version_1.2.4.7/dependency.oxt
+++ b/desktop/test/deployment/version/version_1.2.4.7/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_1.2.4.7/license.oxt b/desktop/test/deployment/version/version_1.2.4.7/license.oxt
index e283508d34..e283508d34 100644..100755
--- a/desktop/test/deployment/version/version_1.2.4.7/license.oxt
+++ b/desktop/test/deployment/version/version_1.2.4.7/license.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_1.2.4.7/plain.oxt b/desktop/test/deployment/version/version_1.2.4.7/plain.oxt
index d63c79a734..d63c79a734 100644..100755
--- a/desktop/test/deployment/version/version_1.2.4.7/plain.oxt
+++ b/desktop/test/deployment/version/version_1.2.4.7/plain.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_badelement/dependency.oxt b/desktop/test/deployment/version/version_badelement/dependency.oxt
index 3cb8faa2e7..3cb8faa2e7 100644..100755
--- a/desktop/test/deployment/version/version_badelement/dependency.oxt
+++ b/desktop/test/deployment/version/version_badelement/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_badelement/license.oxt b/desktop/test/deployment/version/version_badelement/license.oxt
index 7b2b7730ec..7b2b7730ec 100644..100755
--- a/desktop/test/deployment/version/version_badelement/license.oxt
+++ b/desktop/test/deployment/version/version_badelement/license.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_badelement/plain.oxt b/desktop/test/deployment/version/version_badelement/plain.oxt
index 62267c212f..62267c212f 100644..100755
--- a/desktop/test/deployment/version/version_badelement/plain.oxt
+++ b/desktop/test/deployment/version/version_badelement/plain.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_badvalue/dependency.oxt b/desktop/test/deployment/version/version_badvalue/dependency.oxt
index 7d81033654..7d81033654 100644..100755
--- a/desktop/test/deployment/version/version_badvalue/dependency.oxt
+++ b/desktop/test/deployment/version/version_badvalue/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_badvalue/license.oxt b/desktop/test/deployment/version/version_badvalue/license.oxt
index b97723ebb0..b97723ebb0 100644..100755
--- a/desktop/test/deployment/version/version_badvalue/license.oxt
+++ b/desktop/test/deployment/version/version_badvalue/license.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_badvalue/plain.oxt b/desktop/test/deployment/version/version_badvalue/plain.oxt
index f9964ed8f0..f9964ed8f0 100644..100755
--- a/desktop/test/deployment/version/version_badvalue/plain.oxt
+++ b/desktop/test/deployment/version/version_badvalue/plain.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_nodependencies_0.0/dependency.oxt b/desktop/test/deployment/version/version_nodependencies_0.0/dependency.oxt
index f156014eb8..f156014eb8 100644..100755
--- a/desktop/test/deployment/version/version_nodependencies_0.0/dependency.oxt
+++ b/desktop/test/deployment/version/version_nodependencies_0.0/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_nodependencies_1.02.4.7.0/dependency.oxt b/desktop/test/deployment/version/version_nodependencies_1.02.4.7.0/dependency.oxt
index 521a2b6c77..521a2b6c77 100644..100755
--- a/desktop/test/deployment/version/version_nodependencies_1.02.4.7.0/dependency.oxt
+++ b/desktop/test/deployment/version/version_nodependencies_1.02.4.7.0/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_nodependencies_1.2.15.3/dependency.oxt b/desktop/test/deployment/version/version_nodependencies_1.2.15.3/dependency.oxt
index 000f3a144f..000f3a144f 100644..100755
--- a/desktop/test/deployment/version/version_nodependencies_1.2.15.3/dependency.oxt
+++ b/desktop/test/deployment/version/version_nodependencies_1.2.15.3/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_nodependencies_1.2.3/dependency.oxt b/desktop/test/deployment/version/version_nodependencies_1.2.3/dependency.oxt
index e34264591c..e34264591c 100644..100755
--- a/desktop/test/deployment/version/version_nodependencies_1.2.3/dependency.oxt
+++ b/desktop/test/deployment/version/version_nodependencies_1.2.3/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_nodependencies_1.2.4.7/dependency.oxt b/desktop/test/deployment/version/version_nodependencies_1.2.4.7/dependency.oxt
index d63c79a734..d63c79a734 100644..100755
--- a/desktop/test/deployment/version/version_nodependencies_1.2.4.7/dependency.oxt
+++ b/desktop/test/deployment/version/version_nodependencies_1.2.4.7/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_nodependencies_badelement/dependency.oxt b/desktop/test/deployment/version/version_nodependencies_badelement/dependency.oxt
index 62267c212f..62267c212f 100644..100755
--- a/desktop/test/deployment/version/version_nodependencies_badelement/dependency.oxt
+++ b/desktop/test/deployment/version/version_nodependencies_badelement/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_nodependencies_badvalue/dependency.oxt b/desktop/test/deployment/version/version_nodependencies_badvalue/dependency.oxt
index f9964ed8f0..f9964ed8f0 100644..100755
--- a/desktop/test/deployment/version/version_nodependencies_badvalue/dependency.oxt
+++ b/desktop/test/deployment/version/version_nodependencies_badvalue/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_nodependencies_none/dependency.oxt b/desktop/test/deployment/version/version_nodependencies_none/dependency.oxt
index fc227b099e..fc227b099e 100644..100755
--- a/desktop/test/deployment/version/version_nodependencies_none/dependency.oxt
+++ b/desktop/test/deployment/version/version_nodependencies_none/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_none/dependency.oxt b/desktop/test/deployment/version/version_none/dependency.oxt
index 36a1854bf5..36a1854bf5 100644..100755
--- a/desktop/test/deployment/version/version_none/dependency.oxt
+++ b/desktop/test/deployment/version/version_none/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_none/license.oxt b/desktop/test/deployment/version/version_none/license.oxt
index 1564c089b0..1564c089b0 100644..100755
--- a/desktop/test/deployment/version/version_none/license.oxt
+++ b/desktop/test/deployment/version/version_none/license.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_none/plain.oxt b/desktop/test/deployment/version/version_none/plain.oxt
index fc227b099e..fc227b099e 100644..100755
--- a/desktop/test/deployment/version/version_none/plain.oxt
+++ b/desktop/test/deployment/version/version_none/plain.oxt
Binary files differ
diff --git a/desktop/unx/source/makefile.mk b/desktop/unx/source/makefile.mk
index 494477a0c4..494477a0c4 100644..100755
--- a/desktop/unx/source/makefile.mk
+++ b/desktop/unx/source/makefile.mk
diff --git a/desktop/unx/source/officeloader/makefile.mk b/desktop/unx/source/officeloader/makefile.mk
index 050da981e8..050da981e8 100644..100755
--- a/desktop/unx/source/officeloader/makefile.mk
+++ b/desktop/unx/source/officeloader/makefile.mk
diff --git a/desktop/unx/source/officeloader/officeloader.cxx b/desktop/unx/source/officeloader/officeloader.cxx
index 39f0014f76..39f0014f76 100644..100755
--- a/desktop/unx/source/officeloader/officeloader.cxx
+++ b/desktop/unx/source/officeloader/officeloader.cxx
diff --git a/desktop/unx/source/splashx.c b/desktop/unx/source/splashx.c
index 4aa562269a..4aa562269a 100644..100755
--- a/desktop/unx/source/splashx.c
+++ b/desktop/unx/source/splashx.c
diff --git a/desktop/unx/source/splashx.h b/desktop/unx/source/splashx.h
index 537034c6ef..537034c6ef 100644..100755
--- a/desktop/unx/source/splashx.h
+++ b/desktop/unx/source/splashx.h
diff --git a/desktop/unx/source/start.c b/desktop/unx/source/start.c
index d7820339c3..d7820339c3 100644..100755
--- a/desktop/unx/source/start.c
+++ b/desktop/unx/source/start.c
diff --git a/desktop/unx/splash/exports.map b/desktop/unx/splash/exports.map
index ba501f9ae0..ba501f9ae0 100644..100755
--- a/desktop/unx/splash/exports.map
+++ b/desktop/unx/splash/exports.map
diff --git a/desktop/unx/splash/makefile.mk b/desktop/unx/splash/makefile.mk
index d182173de1..d182173de1 100644..100755
--- a/desktop/unx/splash/makefile.mk
+++ b/desktop/unx/splash/makefile.mk
diff --git a/desktop/unx/splash/services_unxsplash.cxx b/desktop/unx/splash/services_unxsplash.cxx
index d370b452b4..d370b452b4 100644..100755
--- a/desktop/unx/splash/services_unxsplash.cxx
+++ b/desktop/unx/splash/services_unxsplash.cxx
diff --git a/desktop/unx/splash/unxsplash.cxx b/desktop/unx/splash/unxsplash.cxx
index f51e22a7c1..f51e22a7c1 100644..100755
--- a/desktop/unx/splash/unxsplash.cxx
+++ b/desktop/unx/splash/unxsplash.cxx
diff --git a/desktop/unx/splash/unxsplash.hxx b/desktop/unx/splash/unxsplash.hxx
index abe5a8cac2..abe5a8cac2 100644..100755
--- a/desktop/unx/splash/unxsplash.hxx
+++ b/desktop/unx/splash/unxsplash.hxx
diff --git a/desktop/util/hidother.src b/desktop/util/hidother.src
index 0ab7ca9f8d..0ab7ca9f8d 100644..100755
--- a/desktop/util/hidother.src
+++ b/desktop/util/hidother.src
diff --git a/desktop/util/makefile.mk b/desktop/util/makefile.mk
index df2fe688b9..df2fe688b9 100644..100755
--- a/desktop/util/makefile.mk
+++ b/desktop/util/makefile.mk
diff --git a/desktop/util/ooverinfo.rc b/desktop/util/ooverinfo.rc
index 5412f5fb2f..5412f5fb2f 100644..100755
--- a/desktop/util/ooverinfo.rc
+++ b/desktop/util/ooverinfo.rc
diff --git a/desktop/util/ooverinfo2.rc b/desktop/util/ooverinfo2.rc
index 8bc39767f0..17af681855 100644..100755
--- a/desktop/util/ooverinfo2.rc
+++ b/desktop/util/ooverinfo2.rc
@@ -25,21 +25,7 @@
*
*************************************************************************/
-#define VERSION 3
-#define SUBVERSION 3
-//#define VERVARIANT 0
-// .0 + VER_CONCEPT
-// .100 + VER_ALPHA
-// .200 + VER_BETA
-// .300 + VER_GAMMA
-// .500 + VER_FINAL
-//#define VER_CONCEPT 0
-//#define VER_BETA 6
-#define VER_FINAL 0
-
-#define VER_DAY 1
-#define VER_MONTH 1
-#define VER_YEAR 2010
+#include "version.hrc"
// -----------------------------------------------------------------------
diff --git a/desktop/util/soffice.ico b/desktop/util/soffice.ico
index 88ccf5e5a6..88ccf5e5a6 100644..100755
--- a/desktop/util/soffice.ico
+++ b/desktop/util/soffice.ico
Binary files differ
diff --git a/desktop/util/template.manifest b/desktop/util/template.manifest
index d3bd0c101f..d3bd0c101f 100644..100755
--- a/desktop/util/template.manifest
+++ b/desktop/util/template.manifest
diff --git a/desktop/win32/source/applauncher/launcher.cxx b/desktop/win32/source/applauncher/launcher.cxx
index dd50c351a9..dd50c351a9 100644..100755
--- a/desktop/win32/source/applauncher/launcher.cxx
+++ b/desktop/win32/source/applauncher/launcher.cxx
diff --git a/desktop/win32/source/applauncher/launcher.hxx b/desktop/win32/source/applauncher/launcher.hxx
index 444789c96a..444789c96a 100644..100755
--- a/desktop/win32/source/applauncher/launcher.hxx
+++ b/desktop/win32/source/applauncher/launcher.hxx
diff --git a/desktop/win32/source/applauncher/makefile.mk b/desktop/win32/source/applauncher/makefile.mk
index f0f5743f38..f0f5743f38 100644..100755
--- a/desktop/win32/source/applauncher/makefile.mk
+++ b/desktop/win32/source/applauncher/makefile.mk
diff --git a/desktop/win32/source/applauncher/ooo/makefile.mk b/desktop/win32/source/applauncher/ooo/makefile.mk
index 02f240cce9..02f240cce9 100644..100755
--- a/desktop/win32/source/applauncher/ooo/makefile.mk
+++ b/desktop/win32/source/applauncher/ooo/makefile.mk
diff --git a/desktop/win32/source/applauncher/sbase.cxx b/desktop/win32/source/applauncher/sbase.cxx
index df940d0267..df940d0267 100644..100755
--- a/desktop/win32/source/applauncher/sbase.cxx
+++ b/desktop/win32/source/applauncher/sbase.cxx
diff --git a/desktop/win32/source/applauncher/scalc.cxx b/desktop/win32/source/applauncher/scalc.cxx
index ed741c28e0..ed741c28e0 100644..100755
--- a/desktop/win32/source/applauncher/scalc.cxx
+++ b/desktop/win32/source/applauncher/scalc.cxx
diff --git a/desktop/win32/source/applauncher/sdraw.cxx b/desktop/win32/source/applauncher/sdraw.cxx
index c8aa2f62f8..c8aa2f62f8 100644..100755
--- a/desktop/win32/source/applauncher/sdraw.cxx
+++ b/desktop/win32/source/applauncher/sdraw.cxx
diff --git a/desktop/win32/source/applauncher/simpress.cxx b/desktop/win32/source/applauncher/simpress.cxx
index 6160827922..6160827922 100644..100755
--- a/desktop/win32/source/applauncher/simpress.cxx
+++ b/desktop/win32/source/applauncher/simpress.cxx
diff --git a/desktop/win32/source/applauncher/smath.cxx b/desktop/win32/source/applauncher/smath.cxx
index cec6bbdca1..cec6bbdca1 100644..100755
--- a/desktop/win32/source/applauncher/smath.cxx
+++ b/desktop/win32/source/applauncher/smath.cxx
diff --git a/desktop/win32/source/applauncher/sweb.cxx b/desktop/win32/source/applauncher/sweb.cxx
index 578239dd1a..578239dd1a 100644..100755
--- a/desktop/win32/source/applauncher/sweb.cxx
+++ b/desktop/win32/source/applauncher/sweb.cxx
diff --git a/desktop/win32/source/applauncher/swriter.cxx b/desktop/win32/source/applauncher/swriter.cxx
index 5235e5b7b2..5235e5b7b2 100644..100755
--- a/desktop/win32/source/applauncher/swriter.cxx
+++ b/desktop/win32/source/applauncher/swriter.cxx
diff --git a/desktop/win32/source/applauncher/verinfo.rc b/desktop/win32/source/applauncher/verinfo.rc
index afb58f3a37..afb58f3a37 100644..100755
--- a/desktop/win32/source/applauncher/verinfo.rc
+++ b/desktop/win32/source/applauncher/verinfo.rc
diff --git a/desktop/win32/source/extendloaderenvironment.cxx b/desktop/win32/source/extendloaderenvironment.cxx
index 436003c770..436003c770 100644..100755
--- a/desktop/win32/source/extendloaderenvironment.cxx
+++ b/desktop/win32/source/extendloaderenvironment.cxx
diff --git a/desktop/win32/source/extendloaderenvironment.hxx b/desktop/win32/source/extendloaderenvironment.hxx
index 2c1207a0db..2c1207a0db 100644..100755
--- a/desktop/win32/source/extendloaderenvironment.hxx
+++ b/desktop/win32/source/extendloaderenvironment.hxx
diff --git a/desktop/win32/source/guiloader/genericloader.cxx b/desktop/win32/source/guiloader/genericloader.cxx
index ac84ed3510..ac84ed3510 100644..100755
--- a/desktop/win32/source/guiloader/genericloader.cxx
+++ b/desktop/win32/source/guiloader/genericloader.cxx
diff --git a/desktop/win32/source/guiloader/makefile.mk b/desktop/win32/source/guiloader/makefile.mk
index 5bb1c523ff..5bb1c523ff 100644..100755
--- a/desktop/win32/source/guiloader/makefile.mk
+++ b/desktop/win32/source/guiloader/makefile.mk
diff --git a/desktop/win32/source/guistdio/guistdio.cxx b/desktop/win32/source/guistdio/guistdio.cxx
index 7ebf4cb120..7ebf4cb120 100644..100755
--- a/desktop/win32/source/guistdio/guistdio.cxx
+++ b/desktop/win32/source/guistdio/guistdio.cxx
diff --git a/desktop/win32/source/guistdio/guistdio.inc b/desktop/win32/source/guistdio/guistdio.inc
index 05d462d231..05d462d231 100644..100755
--- a/desktop/win32/source/guistdio/guistdio.inc
+++ b/desktop/win32/source/guistdio/guistdio.inc
diff --git a/desktop/win32/source/guistdio/makefile.mk b/desktop/win32/source/guistdio/makefile.mk
index 660a48bcdc..660a48bcdc 100644..100755
--- a/desktop/win32/source/guistdio/makefile.mk
+++ b/desktop/win32/source/guistdio/makefile.mk
diff --git a/desktop/win32/source/guistdio/unopkgio.cxx b/desktop/win32/source/guistdio/unopkgio.cxx
index af99179c5f..af99179c5f 100644..100755
--- a/desktop/win32/source/guistdio/unopkgio.cxx
+++ b/desktop/win32/source/guistdio/unopkgio.cxx
diff --git a/desktop/win32/source/lwrapa.cxx b/desktop/win32/source/lwrapa.cxx
index 11e4b9e400..11e4b9e400 100644..100755
--- a/desktop/win32/source/lwrapa.cxx
+++ b/desktop/win32/source/lwrapa.cxx
diff --git a/desktop/win32/source/lwrapw.cxx b/desktop/win32/source/lwrapw.cxx
index 6a9b72ca30..6a9b72ca30 100644..100755
--- a/desktop/win32/source/lwrapw.cxx
+++ b/desktop/win32/source/lwrapw.cxx
diff --git a/desktop/win32/source/main.h b/desktop/win32/source/main.h
index 9e72fb9c3e..9e72fb9c3e 100644..100755
--- a/desktop/win32/source/main.h
+++ b/desktop/win32/source/main.h
diff --git a/desktop/win32/source/makefile.mk b/desktop/win32/source/makefile.mk
index 564ba319eb..564ba319eb 100644..100755
--- a/desktop/win32/source/makefile.mk
+++ b/desktop/win32/source/makefile.mk
diff --git a/desktop/win32/source/officeloader/makefile.mk b/desktop/win32/source/officeloader/makefile.mk
index 5609dea250..5609dea250 100644..100755
--- a/desktop/win32/source/officeloader/makefile.mk
+++ b/desktop/win32/source/officeloader/makefile.mk
diff --git a/desktop/win32/source/officeloader/officeloader.cxx b/desktop/win32/source/officeloader/officeloader.cxx
index cce56b05a6..cce56b05a6 100644..100755
--- a/desktop/win32/source/officeloader/officeloader.cxx
+++ b/desktop/win32/source/officeloader/officeloader.cxx
diff --git a/desktop/win32/source/rebase/Resource.h b/desktop/win32/source/rebase/Resource.h
index 8c892111c9..8c892111c9 100644..100755
--- a/desktop/win32/source/rebase/Resource.h
+++ b/desktop/win32/source/rebase/Resource.h
diff --git a/desktop/win32/source/rebase/makefile.mk b/desktop/win32/source/rebase/makefile.mk
index 724ea0edf4..724ea0edf4 100644..100755
--- a/desktop/win32/source/rebase/makefile.mk
+++ b/desktop/win32/source/rebase/makefile.mk
diff --git a/desktop/win32/source/rebase/rcfooter.txt b/desktop/win32/source/rebase/rcfooter.txt
index 3237729437..3237729437 100644..100755
--- a/desktop/win32/source/rebase/rcfooter.txt
+++ b/desktop/win32/source/rebase/rcfooter.txt
diff --git a/desktop/win32/source/rebase/rcheader.txt b/desktop/win32/source/rebase/rcheader.txt
index 56afc53779..56afc53779 100644..100755
--- a/desktop/win32/source/rebase/rcheader.txt
+++ b/desktop/win32/source/rebase/rcheader.txt
diff --git a/desktop/win32/source/rebase/rctmpl.txt b/desktop/win32/source/rebase/rctmpl.txt
index 97a2775e9b..97a2775e9b 100644..100755
--- a/desktop/win32/source/rebase/rctmpl.txt
+++ b/desktop/win32/source/rebase/rctmpl.txt
diff --git a/desktop/win32/source/rebase/rebase.cxx b/desktop/win32/source/rebase/rebase.cxx
index e712c8d548..e712c8d548 100644..100755
--- a/desktop/win32/source/rebase/rebase.cxx
+++ b/desktop/win32/source/rebase/rebase.cxx
diff --git a/desktop/win32/source/rebase/rebasegui.cxx b/desktop/win32/source/rebase/rebasegui.cxx
index e1bb148c2b..e1bb148c2b 100644..100755
--- a/desktop/win32/source/rebase/rebasegui.cxx
+++ b/desktop/win32/source/rebase/rebasegui.cxx
diff --git a/desktop/win32/source/rebase/rebasegui.ulf b/desktop/win32/source/rebase/rebasegui.ulf
index ee6b6e828a..ee6b6e828a 100644..100755
--- a/desktop/win32/source/rebase/rebasegui.ulf
+++ b/desktop/win32/source/rebase/rebasegui.ulf
diff --git a/desktop/win32/source/rwrapa.cxx b/desktop/win32/source/rwrapa.cxx
index 4d1f599f01..4d1f599f01 100644..100755
--- a/desktop/win32/source/rwrapa.cxx
+++ b/desktop/win32/source/rwrapa.cxx
diff --git a/desktop/win32/source/rwrapw.cxx b/desktop/win32/source/rwrapw.cxx
index d4912990e4..d4912990e4 100644..100755
--- a/desktop/win32/source/rwrapw.cxx
+++ b/desktop/win32/source/rwrapw.cxx
diff --git a/desktop/win32/source/setup/Resource.h b/desktop/win32/source/setup/Resource.h
index 2f075004d6..2f075004d6 100644..100755
--- a/desktop/win32/source/setup/Resource.h
+++ b/desktop/win32/source/setup/Resource.h
diff --git a/desktop/win32/source/setup/makefile.mk b/desktop/win32/source/setup/makefile.mk
index f0c6e0e955..f0c6e0e955 100644..100755
--- a/desktop/win32/source/setup/makefile.mk
+++ b/desktop/win32/source/setup/makefile.mk
diff --git a/desktop/win32/source/setup/rcfooter.txt b/desktop/win32/source/setup/rcfooter.txt
index 3237729437..3237729437 100644..100755
--- a/desktop/win32/source/setup/rcfooter.txt
+++ b/desktop/win32/source/setup/rcfooter.txt
diff --git a/desktop/win32/source/setup/rcheader.txt b/desktop/win32/source/setup/rcheader.txt
index 9a59ad7f64..9a59ad7f64 100644..100755
--- a/desktop/win32/source/setup/rcheader.txt
+++ b/desktop/win32/source/setup/rcheader.txt
diff --git a/desktop/win32/source/setup/rctmpl.txt b/desktop/win32/source/setup/rctmpl.txt
index 59f454f70c..59f454f70c 100644..100755
--- a/desktop/win32/source/setup/rctmpl.txt
+++ b/desktop/win32/source/setup/rctmpl.txt
diff --git a/desktop/win32/source/setup/setup.cpp b/desktop/win32/source/setup/setup.cpp
index 69d09a47f6..69d09a47f6 100644..100755
--- a/desktop/win32/source/setup/setup.cpp
+++ b/desktop/win32/source/setup/setup.cpp
diff --git a/desktop/win32/source/setup/setup.hxx b/desktop/win32/source/setup/setup.hxx
index c3bb71cb3f..c3bb71cb3f 100644..100755
--- a/desktop/win32/source/setup/setup.hxx
+++ b/desktop/win32/source/setup/setup.hxx
diff --git a/desktop/win32/source/setup/setup.ico b/desktop/win32/source/setup/setup.ico
index 2a7ebda53a..2a7ebda53a 100644..100755
--- a/desktop/win32/source/setup/setup.ico
+++ b/desktop/win32/source/setup/setup.ico
Binary files differ
diff --git a/desktop/win32/source/setup/setup.ulf b/desktop/win32/source/setup/setup.ulf
index 85d43f43aa..85d43f43aa 100644..100755
--- a/desktop/win32/source/setup/setup.ulf
+++ b/desktop/win32/source/setup/setup.ulf
diff --git a/desktop/win32/source/setup/setup_a.cxx b/desktop/win32/source/setup/setup_a.cxx
index b3cb31bea4..b3cb31bea4 100644..100755
--- a/desktop/win32/source/setup/setup_a.cxx
+++ b/desktop/win32/source/setup/setup_a.cxx
diff --git a/desktop/win32/source/setup/setup_help.hxx b/desktop/win32/source/setup/setup_help.hxx
index f37daa5be3..f37daa5be3 100644..100755
--- a/desktop/win32/source/setup/setup_help.hxx
+++ b/desktop/win32/source/setup/setup_help.hxx
diff --git a/desktop/win32/source/setup/setup_main.cxx b/desktop/win32/source/setup/setup_main.cxx
index 4e4447352e..4e4447352e 100644..100755
--- a/desktop/win32/source/setup/setup_main.cxx
+++ b/desktop/win32/source/setup/setup_main.cxx
diff --git a/desktop/win32/source/setup/setup_main.hxx b/desktop/win32/source/setup/setup_main.hxx
index f966e6ae03..f966e6ae03 100644..100755
--- a/desktop/win32/source/setup/setup_main.hxx
+++ b/desktop/win32/source/setup/setup_main.hxx
diff --git a/desktop/win32/source/setup/setup_w.cxx b/desktop/win32/source/setup/setup_w.cxx
index d123eeb350..d123eeb350 100644..100755
--- a/desktop/win32/source/setup/setup_w.cxx
+++ b/desktop/win32/source/setup/setup_w.cxx
diff --git a/desktop/win32/source/sowrapper.cxx b/desktop/win32/source/sowrapper.cxx
index b7020f09c5..b7020f09c5 100644..100755
--- a/desktop/win32/source/sowrapper.cxx
+++ b/desktop/win32/source/sowrapper.cxx
diff --git a/desktop/win32/source/unoinfo.cxx b/desktop/win32/source/unoinfo.cxx
index 6ec5727a36..6ec5727a36 100644..100755
--- a/desktop/win32/source/unoinfo.cxx
+++ b/desktop/win32/source/unoinfo.cxx
diff --git a/desktop/win32/source/wrapper.h b/desktop/win32/source/wrapper.h
index 6ccf063b36..6ccf063b36 100644..100755
--- a/desktop/win32/source/wrapper.h
+++ b/desktop/win32/source/wrapper.h
diff --git a/desktop/win32/source/wrappera.cxx b/desktop/win32/source/wrappera.cxx
index c9a2129922..c9a2129922 100644..100755
--- a/desktop/win32/source/wrappera.cxx
+++ b/desktop/win32/source/wrappera.cxx
diff --git a/desktop/win32/source/wrapperw.cxx b/desktop/win32/source/wrapperw.cxx
index e6927ab820..e6927ab820 100644..100755
--- a/desktop/win32/source/wrapperw.cxx
+++ b/desktop/win32/source/wrapperw.cxx
diff --git a/desktop/zipintro/delzip b/desktop/zipintro/delzip
index 8b13789179..8b13789179 100644..100755
--- a/desktop/zipintro/delzip
+++ b/desktop/zipintro/delzip
diff --git a/desktop/zipintro/makefile.mk b/desktop/zipintro/makefile.mk
index cdc547fcc5..cdc547fcc5 100644..100755
--- a/desktop/zipintro/makefile.mk
+++ b/desktop/zipintro/makefile.mk