[Libreoffice-commits] .: 6 commits - cui/source desktop/source framework/source officecfg/registry officecfg/util sc/CppunitTest_sc_cellrangesbase.mk sc/CppunitTest_sc_macros_test.mk sc/CppunitTest_sc_tableautoformatfield.mk sc/qa sc/source svl/inc svl/source sw/CppunitTest_sw_macros_test.mk test/prj test/source test/user-template vcl/inc vcl/source vcl/unx

Stephan Bergmann sbergmann at kemper.freedesktop.org
Tue Dec 6 11:29:16 PST 2011


 cui/source/options/optasian.cxx                            |    6 
 desktop/source/app/appinit.cxx                             |    2 
 framework/source/services/frame.cxx                        |    9 
 officecfg/registry/schema/org/openoffice/Office/Common.xcs |13240 ++++++-------
 officecfg/util/schema_trim.xsl                             |    4 
 sc/CppunitTest_sc_cellrangesbase.mk                        |    2 
 sc/CppunitTest_sc_macros_test.mk                           |    2 
 sc/CppunitTest_sc_tableautoformatfield.mk                  |    2 
 sc/qa/unit/data/registry/modifications.xcd                 |   39 
 sc/source/ui/docshell/docsh2.cxx                           |    2 
 svl/inc/svl/asiancfg.hxx                                   |   68 
 svl/source/config/asiancfg.cxx                             |  392 
 sw/CppunitTest_sw_macros_test.mk                           |    2 
 test/prj/d.lst                                             |    2 
 test/source/bootstrapfixture.cxx                           |    5 
 test/user-template/registry/modifications.xcd              |   39 
 vcl/inc/svdata.hxx                                         |    3 
 vcl/inc/vcl/svapp.hxx                                      |   29 
 vcl/source/app/svapp.cxx                                   |   33 
 vcl/source/window/dialog.cxx                               |   26 
 vcl/unx/generic/desktopdetect/desktopdetector.cxx          |   16 
 21 files changed, 7368 insertions(+), 6555 deletions(-)

New commits:
commit f141ea7d74eaef051a40ab366c2bd287d234539b
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue Dec 6 20:28:26 2011 +0100

    Use configmgr directly in SvxAsianConfig.

diff --git a/cui/source/options/optasian.cxx b/cui/source/options/optasian.cxx
index d345cf8..5cafe5d 100644
--- a/cui/source/options/optasian.cxx
+++ b/cui/source/options/optasian.cxx
@@ -77,8 +77,7 @@ public:
 struct SvxAsianLayoutPage_Impl
 {
     SvxAsianConfig  aConfig;
-        SvxAsianLayoutPage_Impl() :
-            aConfig(sal_False){}
+        SvxAsianLayoutPage_Impl() {}
 
     Reference< XForbiddenCharacters >   xForbidden;
     Reference< XPropertySet >           xPrSet;
@@ -205,8 +204,7 @@ sal_Bool SvxAsianLayoutPage::FillItemSet( SfxItemSet& )
             pImpl->xPrSet->setPropertyValue(sCompress, aVal);
         }
     }
-    if(pImpl->aConfig.IsModified())
-        pImpl->aConfig.Commit();
+    pImpl->aConfig.Commit();
     if(pImpl->xForbidden.is())
     {
         try
diff --git a/sc/source/ui/docshell/docsh2.cxx b/sc/source/ui/docshell/docsh2.cxx
index 48f3096..c041b11 100644
--- a/sc/source/ui/docshell/docsh2.cxx
+++ b/sc/source/ui/docshell/docsh2.cxx
@@ -149,7 +149,7 @@ void ScDocShell::InitItems()
             !aDocument.IsValidAsianCompression() || !aDocument.IsValidAsianKerning() )
     {
         //  get settings from SvxAsianConfig
-        SvxAsianConfig aAsian( false );
+        SvxAsianConfig aAsian;
 
         if ( !aDocument.GetForbiddenCharacters().is() )
         {
diff --git a/svl/inc/svl/asiancfg.hxx b/svl/inc/svl/asiancfg.hxx
index a646b26..733aea6 100644
--- a/svl/inc/svl/asiancfg.hxx
+++ b/svl/inc/svl/asiancfg.hxx
@@ -25,46 +25,54 @@
  * for a copy of the LGPLv3 License.
  *
  ************************************************************************/
-#ifndef _SVX_ASIANCFG_HXX
-#define _SVX_ASIANCFG_HXX
 
-#include <unotools/configitem.hxx>
-#include <com/sun/star/uno/Sequence.h>
-#include <svl/svldllapi.h>
+#ifndef INCLUDED_SVL_ASIANCFG_HXX
+#define INCLUDED_SVL_ASIANCFG_HXX
 
-namespace com{namespace sun{namespace star{
-namespace lang{
+#include "sal/config.h"
+
+#include "boost/noncopyable.hpp"
+#include "boost/scoped_ptr.hpp"
+#include "com/sun/star/uno/Sequence.hxx"
+#include "sal/types.h"
+#include "svl/svldllapi.h"
+
+namespace com { namespace sun { namespace star { namespace lang {
     struct Locale;
-}}}}
-//-----------------------------------------------------------------------------
-struct SvxAsianConfig_Impl;
-class SVL_DLLPUBLIC SvxAsianConfig : public utl::ConfigItem
-{
-    SvxAsianConfig_Impl* pImpl;
+} } } }
+namespace rtl { class OUString; }
 
+class SVL_DLLPUBLIC SvxAsianConfig: private boost::noncopyable {
 public:
-    SvxAsianConfig(sal_Bool bEnableNotify = sal_True);
-    virtual ~SvxAsianConfig();
+    SvxAsianConfig();
+
+    ~SvxAsianConfig();
+
+    void Commit();
+
+    bool IsKerningWesternTextOnly() const;
+
+    void SetKerningWesternTextOnly(bool value);
+
+    sal_Int16 GetCharDistanceCompression() const;
+
+    void SetCharDistanceCompression(sal_Int16 value);
 
-    void            Load();
-    virtual void    Commit();
-    virtual void    Notify( const com::sun::star::uno::Sequence<rtl::OUString>& aPropertyNames);
+    com::sun::star::uno::Sequence< com::sun::star::lang::Locale >
+    GetStartEndCharLocales() const;
 
-    sal_Bool    IsKerningWesternTextOnly() const;
-    void        SetKerningWesternTextOnly(sal_Bool bSet);
+    bool GetStartEndChars(
+        com::sun::star::lang::Locale const & locale, rtl::OUString & startChars,
+        rtl::OUString & endChars) const;
 
-    sal_Int16   GetCharDistanceCompression() const;
-    void        SetCharDistanceCompression(sal_Int16 nSet);
+    void SetStartEndChars(
+        com::sun::star::lang::Locale const & locale,
+        rtl::OUString const * startChars, rtl::OUString const * endChars);
 
-    com::sun::star::uno::Sequence<com::sun::star::lang::Locale>
-                GetStartEndCharLocales();
+private:
+    class Impl;
 
-    sal_Bool    GetStartEndChars( const com::sun::star::lang::Locale& rLocale,
-                                    rtl::OUString& rStartChars,
-                                    rtl::OUString& rEndChars );
-    void        SetStartEndChars( const com::sun::star::lang::Locale& rLocale,
-                                    const rtl::OUString* pStartChars,
-                                    const rtl::OUString* pEndChars );
+    boost::scoped_ptr< Impl > impl_;
 };
 
 #endif
diff --git a/svl/source/config/asiancfg.cxx b/svl/source/config/asiancfg.cxx
index c041b50..697e74d 100644
--- a/svl/source/config/asiancfg.cxx
+++ b/svl/source/config/asiancfg.cxx
@@ -26,241 +26,243 @@
  *
  ************************************************************************/
 
+#include "sal/config.h"
 
-#include <svl/asiancfg.hxx>
-#include <svl/svarray.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <com/sun/star/lang/Locale.hpp>
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <tools/debug.hxx>
+#include <cassert>
 
-//-----------------------------------------------------------------------------
-using namespace utl;
-using namespace com::sun::star;
-using namespace com::sun::star::uno;
-using namespace com::sun::star::beans;
-using namespace com::sun::star::lang;
+#include "boost/noncopyable.hpp"
+#include "com/sun/star/beans/NamedValue.hpp"
+#include "com/sun/star/beans/XPropertySet.hpp"
+#include "com/sun/star/container/ElementExistException.hpp"
+#include "com/sun/star/container/NoSuchElementException.hpp"
+#include "com/sun/star/container/XNameContainer.hpp"
+#include "com/sun/star/lang/Locale.hpp"
+#include "com/sun/star/lang/XMultiServiceFactory.hpp"
+#include "com/sun/star/lang/XSingleServiceFactory.hpp"
+#include "com/sun/star/uno/Any.hxx"
+#include "com/sun/star/uno/Reference.hxx"
+#include "com/sun/star/uno/Sequence.hxx"
+#include "com/sun/star/util/XChangesBatch.hpp"
+#include "comphelper/processfactory.hxx"
+#include "rtl/oustringostreaminserter.hxx"
+#include "rtl/ustrbuf.hxx"
+#include "rtl/ustring.h"
+#include "rtl/ustring.hxx"
+#include "sal/log.hxx"
+#include "sal/types.h"
+#include "svl/asiancfg.hxx"
 
-using ::rtl::OUString;
+namespace {
 
-#define C2U(cChar) OUString(RTL_CONSTASCII_USTRINGPARAM(cChar))
+namespace css = com::sun::star;
 
-//-----------------------------------------------------------------------------
-struct SvxForbiddenStruct_Impl
-{
-    Locale      aLocale;
-    OUString    sStartChars;
-    OUString    sEndChars;
-};
-//-----------------------------------------------------------------------------
-typedef SvxForbiddenStruct_Impl* SvxForbiddenStruct_ImplPtr;
-SV_DECL_PTRARR_DEL(SvxForbiddenStructArr, SvxForbiddenStruct_ImplPtr, 2, 2)
-SV_IMPL_PTRARR(SvxForbiddenStructArr, SvxForbiddenStruct_ImplPtr);
-//-----------------------------------------------------------------------------
-struct SvxAsianConfig_Impl
-{
-    sal_Bool    bKerningWesternTextOnly;
-    sal_Int16   nCharDistanceCompression;
-
-    SvxForbiddenStructArr   aForbiddenArr;
-
-    SvxAsianConfig_Impl() :
-        bKerningWesternTextOnly(sal_True),
-        nCharDistanceCompression(0) {}
-};
-
-Sequence<OUString> lcl_GetPropertyNames()
-{
-    Sequence<OUString> aNames(2);
-    OUString* pNames = aNames.getArray();
-    pNames[0] = C2U("IsKerningWesternTextOnly");
-    pNames[1] = C2U("CompressCharacterDistance");
-    return aNames;;
+css::uno::Reference< css::beans::XPropertySet >
+obtainPropertySet() {
+    css::uno::Sequence< css::uno::Any > args(1);
+    args[0] <<= css::beans::NamedValue(
+        rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("nodepath")),
+        css::uno::makeAny(
+            rtl::OUString(
+                RTL_CONSTASCII_USTRINGPARAM(
+                    "/org.openoffice.Office.Common/AsianLayout"))));
+    return css::uno::Reference< css::beans::XPropertySet >(
+        (css::uno::Reference< css::lang::XMultiServiceFactory >(
+            (css::uno::Reference< css::lang::XMultiServiceFactory >(
+                comphelper::getProcessServiceFactory(),
+                css::uno::UNO_SET_THROW)->
+             createInstance(
+                 rtl::OUString(
+                     RTL_CONSTASCII_USTRINGPARAM(
+                         "com.sun.star.configuration.ConfigurationProvider")))),
+            css::uno::UNO_QUERY_THROW)->
+         createInstanceWithArguments(
+             rtl::OUString(
+                 RTL_CONSTASCII_USTRINGPARAM(
+                     "com.sun.star.configuration.ConfigurationUpdateAccess")),
+             args)),
+        css::uno::UNO_QUERY_THROW);
 }
-// ---------------------------------------------------------------------------
-SvxAsianConfig::SvxAsianConfig(sal_Bool bEnableNotify) :
-    utl::ConfigItem(C2U("Office.Common/AsianLayout")),
-    pImpl(new SvxAsianConfig_Impl)
-{
-    if(bEnableNotify)
-        EnableNotification(lcl_GetPropertyNames());
-    Load();
+
+rtl::OUString toString(css::lang::Locale const & locale) {
+    SAL_WARN_IF(
+        locale.Language.indexOf('-') != -1, "svl",
+        "Locale language \"" << locale.Language << "\" contains \"-\"");
+    rtl::OUStringBuffer buf(locale.Language);
+    SAL_WARN_IF(
+        locale.Country.isEmpty() && !locale.Variant.isEmpty(), "svl",
+        "Locale has empty country but non-empty variant \"" << locale.Variant
+            << '"');
+    if (!locale.Country.isEmpty()) {
+        buf.append('-');
+        SAL_WARN_IF(
+            locale.Country.indexOf('-') != -1, "svl",
+            "Locale country \"" << locale.Country << "\" contains \"-\"");
+        buf.append(locale.Country);
+        if (!locale.Variant.isEmpty()) {
+            buf.append('-');
+            buf.append(locale.Variant);
+        }
+    }
+    return buf.makeStringAndClear();
 }
 
-SvxAsianConfig::~SvxAsianConfig()
-{
-    delete pImpl;
 }
 
-void SvxAsianConfig::Load()
-{
-    Sequence<Any> aValues = GetProperties(lcl_GetPropertyNames());
-    const Any* pValues = aValues.getConstArray();
-    if(pValues[0].hasValue())
-        pImpl->bKerningWesternTextOnly = *(sal_Bool*) pValues[0].getValue();
-    pValues[1] >>= pImpl->nCharDistanceCompression;
+class SvxAsianConfig::Impl: private boost::noncopyable {
+public:
+    Impl(): propertySet_(obtainPropertySet()) {}
 
-    pImpl->aForbiddenArr.DeleteAndDestroy(0, pImpl->aForbiddenArr.Count());
-    OUString sPropPrefix(C2U("StartEndCharacters"));
-    Sequence<OUString> aNodes = GetNodeNames(sPropPrefix);
+    css::uno::Reference< css::beans::XPropertySet > getPropertySet() const
+    { return propertySet_; }
 
-    Sequence<OUString> aPropNames(aNodes.getLength() * 2);
-    OUString* pNames = aPropNames.getArray();
-    sal_Int32 nName = 0;
-    sPropPrefix += C2U("/");
-    sal_Int32 nNode;
-    const OUString* pNodes = aNodes.getConstArray();
-    for(nNode = 0; nNode < aNodes.getLength(); nNode++)
-    {
-        OUString sStart(sPropPrefix);
-        sStart += pNodes[nNode];
-        sStart += C2U("/");
-        pNames[nName] = sStart;     pNames[nName++] += C2U("StartCharacters");
-        pNames[nName] = sStart;     pNames[nName++] += C2U("EndCharacters");
-    }
-    Sequence<Any> aNodeValues = GetProperties(aPropNames);
-    const Any* pNodeValues = aNodeValues.getConstArray();
-    nName = 0;
-    for(nNode = 0; nNode < aNodes.getLength(); nNode++)
-    {
-        SvxForbiddenStruct_ImplPtr pInsert = new SvxForbiddenStruct_Impl;
-        pInsert->aLocale.Language = pNodes[nNode].copy(0, 2);
-        DBG_ASSERT(pInsert->aLocale.Language.getLength(), "illegal language");
-        pInsert->aLocale.Country = pNodes[nNode].copy(3, 2);
+    css::uno::Reference< css::container::XNameContainer >
+    getStartEndCharacters() const;
 
-        pNodeValues[nName++] >>= pInsert->sStartChars;
-        pNodeValues[nName++] >>= pInsert->sEndChars;
-        pImpl->aForbiddenArr.Insert(pInsert, pImpl->aForbiddenArr.Count());
-    }
-}
+private:
+    css::uno::Reference< css::beans::XPropertySet > propertySet_;
+};
 
-void    SvxAsianConfig::Notify( const Sequence<OUString>& )
-{
-    Load();
+css::uno::Reference< css::container::XNameContainer >
+SvxAsianConfig::Impl::getStartEndCharacters() const {
+    return
+        css::uno::Reference< css::container::XNameContainer >(
+            (propertySet_->getPropertyValue(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM("StartEndCharacters"))).
+             get< css::uno::Reference< css::container::XNameContainer > >()),
+            css::uno::UNO_SET_THROW);
 }
 
-void SvxAsianConfig::Commit()
-{
-    Sequence<Any> aValues(2);
-    Any* pValues = aValues.getArray();
-    pValues[0].setValue(&pImpl->bKerningWesternTextOnly, ::getBooleanCppuType());
-    pValues[1] <<= pImpl->nCharDistanceCompression;
-    PutProperties(lcl_GetPropertyNames(), aValues);
+SvxAsianConfig::SvxAsianConfig(): impl_(new Impl) {}
 
+SvxAsianConfig::~SvxAsianConfig() {}
 
-    OUString sNode(C2U("StartEndCharacters"));
-    if(!pImpl->aForbiddenArr.Count())
-        ClearNodeSet(sNode);
-    else
-    {
-        Sequence<PropertyValue> aSetValues(2 * pImpl->aForbiddenArr.Count());
-        PropertyValue* pSetValues = aSetValues.getArray();
-        sal_Int32 nSetValue = 0;
-        const OUString sStartChars(C2U("StartCharacters"));
-        const OUString sEndChars(C2U("EndCharacters"));
-        for(sal_uInt16 i = 0; i < pImpl->aForbiddenArr.Count(); i++)
-        {
-            OUString sPrefix(sNode);
-            sPrefix += C2U("/");
-            sPrefix += pImpl->aForbiddenArr[i]->aLocale.Language;
-            DBG_ASSERT(pImpl->aForbiddenArr[i]->aLocale.Language.getLength(), "illegal language");
-            sPrefix += C2U("-");
-            sPrefix += pImpl->aForbiddenArr[i]->aLocale.Country;
-            sPrefix += C2U("/");
-            pSetValues[nSetValue].Name = sPrefix; pSetValues[nSetValue].Name += sStartChars;
-            pSetValues[nSetValue++].Value <<= pImpl->aForbiddenArr[i]->sStartChars;
-            pSetValues[nSetValue].Name = sPrefix; pSetValues[nSetValue].Name += sEndChars;
-            pSetValues[nSetValue++].Value <<= pImpl->aForbiddenArr[i]->sEndChars;
-        }
-        ReplaceSetProperties(sNode, aSetValues);
-    }
+void SvxAsianConfig::Commit() {
+    css::uno::Reference< css::util::XChangesBatch >(
+        impl_->getPropertySet(), css::uno::UNO_QUERY_THROW)->commitChanges();
 }
 
-sal_Bool    SvxAsianConfig::IsKerningWesternTextOnly() const
-{
-    return pImpl->bKerningWesternTextOnly;
+bool SvxAsianConfig::IsKerningWesternTextOnly() const {
+    return
+        impl_->getPropertySet()->getPropertyValue(
+            rtl::OUString(
+                RTL_CONSTASCII_USTRINGPARAM("IsKerningWesternTextOnly"))).
+        get< bool >();
 }
 
-void        SvxAsianConfig::SetKerningWesternTextOnly(sal_Bool bSet)
-{
-    pImpl->bKerningWesternTextOnly = bSet;
-    SetModified();
+void SvxAsianConfig::SetKerningWesternTextOnly(bool value) {
+    impl_->getPropertySet()->setPropertyValue(
+        rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("IsKerningWesternTextOnly")),
+        css::uno::makeAny(value));
 }
 
-sal_Int16   SvxAsianConfig::GetCharDistanceCompression() const
-{
-    return pImpl->nCharDistanceCompression;
+sal_Int16 SvxAsianConfig::GetCharDistanceCompression() const {
+    return
+        impl_->getPropertySet()->getPropertyValue(
+            rtl::OUString(
+                RTL_CONSTASCII_USTRINGPARAM("CompressCharacterDistance"))).
+        get< sal_Int16 >();
 }
 
-void        SvxAsianConfig::SetCharDistanceCompression(sal_Int16 nSet)
-{
-    DBG_ASSERT(nSet >= 0 && nSet < 3, "compression value illegal");
-    SetModified();
-    pImpl->nCharDistanceCompression = nSet;
+void SvxAsianConfig::SetCharDistanceCompression(sal_Int16 value) {
+    assert(value >= 0 && value <= 2);
+    impl_->getPropertySet()->setPropertyValue(
+        rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CompressCharacterDistance")),
+        css::uno::makeAny(value));
 }
 
-uno::Sequence<lang::Locale> SvxAsianConfig::GetStartEndCharLocales()
+css::uno::Sequence< css::lang::Locale > SvxAsianConfig::GetStartEndCharLocales()
+    const
 {
-    Sequence<Locale> aRet(pImpl->aForbiddenArr.Count());
-    Locale* pRet = aRet.getArray();
-    for(sal_uInt16 i = 0; i < pImpl->aForbiddenArr.Count(); i++)
-    {
-        pRet[i] = pImpl->aForbiddenArr[i]->aLocale;
+    css::uno::Sequence< rtl::OUString > ns(
+        impl_->getStartEndCharacters()->getElementNames());
+    css::uno::Sequence< css::lang::Locale > ls(ns.getLength());
+    for (sal_Int32 i = 0; i < ns.getLength(); ++i) {
+        sal_Int32 n = 0;
+        ls[i].Language = ns[i].getToken(0, '-', n);
+        ls[i].Country = ns[i].getToken(0, '-', n);
+        ls[i].Variant = ns[i].getToken(0, '-', n);
     }
-    return aRet;
+    return ls;
 }
 
-sal_Bool    SvxAsianConfig::GetStartEndChars( const Locale& rLocale,
-                                    OUString& rStartChars,
-                                    OUString& rEndChars )
+bool SvxAsianConfig::GetStartEndChars(
+    css::lang::Locale const & locale, rtl::OUString & startChars,
+    rtl::OUString & endChars) const
 {
-    for(sal_uInt16 i = 0; i < pImpl->aForbiddenArr.Count(); i++)
-    {
-        if(rLocale.Language == pImpl->aForbiddenArr[i]->aLocale.Language &&
-            rLocale.Country == pImpl->aForbiddenArr[i]->aLocale.Country)
-        {
-            rStartChars = pImpl->aForbiddenArr[i]->sStartChars;
-            rEndChars = pImpl->aForbiddenArr[i]->sEndChars;
-            return sal_True;
-        }
+    css::uno::Reference< css::container::XNameContainer > set(
+        impl_->getStartEndCharacters());
+    css::uno::Any v;
+    try {
+        v = set->getByName(toString(locale));
+    } catch (css::container::NoSuchElementException &) {
+        return false;
     }
-    return sal_False;
+    css::uno::Reference< css::beans::XPropertySet > el(
+        v.get< css::uno::Reference< css::beans::XPropertySet > >(),
+        css::uno::UNO_SET_THROW);
+    startChars =
+        el->getPropertyValue(
+            rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("StartCharacters"))).
+        get< rtl::OUString >();
+    endChars =
+        el->getPropertyValue(
+            rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("EndCharacters"))).
+        get< rtl::OUString >();
+    return true;
 }
 
-void SvxAsianConfig::SetStartEndChars( const Locale& rLocale,
-                                    const OUString* pStartChars,
-                                    const OUString* pEndChars )
+void SvxAsianConfig::SetStartEndChars(
+    css::lang::Locale const & locale, rtl::OUString const * startChars,
+    rtl::OUString const * endChars)
 {
-    sal_Bool bFound = sal_False;
-    for(sal_uInt16 i = 0; i < pImpl->aForbiddenArr.Count(); i++)
-    {
-        if(rLocale.Language == pImpl->aForbiddenArr[i]->aLocale.Language &&
-            rLocale.Country == pImpl->aForbiddenArr[i]->aLocale.Country)
-        {
-            if(pStartChars && pEndChars)
-            {
-                pImpl->aForbiddenArr[i]->sStartChars = *pStartChars;
-                pImpl->aForbiddenArr[i]->sEndChars = *pEndChars;
+    assert((startChars == 0) == (endChars == 0));
+    css::uno::Reference< css::container::XNameContainer > set(
+        impl_->getStartEndCharacters());
+    rtl::OUString name(toString(locale));
+    if (startChars == 0) {
+        try {
+            set->removeByName(name);
+        } catch (css::container::NoSuchElementException &) {}
+    } else {
+        bool found;
+        css::uno::Any v;
+        try {
+            v = set->getByName(name);
+            found = true;
+        } catch (css::container::NoSuchElementException &) {
+            found = false;
+        }
+        if (found) {
+            css::uno::Reference< css::beans::XPropertySet > el(
+                v.get< css::uno::Reference< css::beans::XPropertySet > >(),
+                css::uno::UNO_SET_THROW);
+            el->setPropertyValue(
+                rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("StartCharacters")),
+                css::uno::makeAny(*startChars));
+            el->setPropertyValue(
+                rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("EndCharacters")),
+                css::uno::makeAny(*endChars));
+        } else {
+            css::uno::Reference< css::beans::XPropertySet > el(
+                (css::uno::Reference< css::lang::XSingleServiceFactory >(
+                    set, css::uno::UNO_QUERY_THROW)->
+                 createInstance()),
+                css::uno::UNO_QUERY_THROW);
+            el->setPropertyValue(
+                rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("StartCharacters")),
+                css::uno::makeAny(*startChars));
+            el->setPropertyValue(
+                rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("EndCharacters")),
+                css::uno::makeAny(*endChars));
+            css::uno::Any v2(css::uno::makeAny(el));
+            try {
+                set->insertByName(name, v2);
+            } catch (css::container::ElementExistException &) {
+                SAL_INFO("svl", "Concurrent update race for \"" << name << '"');
             }
-            else
-                pImpl->aForbiddenArr.DeleteAndDestroy(i, 1);
-            bFound = sal_True;
         }
     }
-    if(!bFound && pStartChars && pEndChars)
-    {
-        SvxForbiddenStruct_ImplPtr pInsert = new SvxForbiddenStruct_Impl;
-        pInsert->aLocale = rLocale;
-        pInsert->sStartChars = *pStartChars;
-        pInsert->sEndChars = *pEndChars;
-        pImpl->aForbiddenArr.Insert(pInsert, pImpl->aForbiddenArr.Count());
-    }
-#ifdef DBG_UTIL
-    else if(!bFound)
-        OSL_FAIL("attempt to clear unavailable data");
-#endif
-    SetModified();
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 2a9c1d1a75b7d4e79dfbc6be3dada1a1e959e58e
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue Dec 6 20:27:29 2011 +0100

    Make dialogs fail with an exception in headless tests.

diff --git a/desktop/source/app/appinit.cxx b/desktop/source/app/appinit.cxx
index 31c0cf9..8964185 100644
--- a/desktop/source/app/appinit.cxx
+++ b/desktop/source/app/appinit.cxx
@@ -237,7 +237,7 @@ void Desktop::RegisterServices( Reference< XMultiServiceFactory >& xSMgr )
         // Headless mode for FAT Office
         bHeadlessMode   = rCmdLine.IsHeadless();
         if ( bHeadlessMode )
-            Application::EnableHeadlessMode();
+            Application::EnableHeadlessMode(false);
 
         if ( conDcp.getLength() > 0 )
         {
diff --git a/framework/source/services/frame.cxx b/framework/source/services/frame.cxx
index a24404f..90d47d4 100644
--- a/framework/source/services/frame.cxx
+++ b/framework/source/services/frame.cxx
@@ -1887,10 +1887,9 @@ void SAL_CALL Frame::dispose() throw( css::uno::RuntimeException )
     //      (a) Do it after stopWindowListening(). May that force some active/deactive
     //          notifications which we doesn't need here realy.
     //      (b) Don't forget to save the old value of IsDialogCancelEnabled() to
-    //          restore it afterwards. We cannot call EnableDialogCancel( sal_False )
-    //          as we would kill the headless mode!
-    sal_Bool bCancelDialogs( Application::IsDialogCancelEnabled() );
-    Application::EnableDialogCancel( sal_True );
+    //          restore it afterwards (to not kill headless mode).
+    Application::DialogCancelMode old = Application::GetDialogCancelMode();
+    Application::SetDialogCancelMode( Application::DIALOG_CANCEL_SILENT );
 
     // We should be alone for ever and further dispose calls are rejected by lines before ...
     // I hope it :-)
@@ -1969,7 +1968,7 @@ void SAL_CALL Frame::dispose() throw( css::uno::RuntimeException )
 
     // Don't forget it restore old value -
     // otherwhise no dialogs can be shown anymore in other frames.
-    Application::EnableDialogCancel( bCancelDialogs );
+    Application::SetDialogCancelMode( old );
 }
 
 /*-****************************************************************************************************//**
diff --git a/test/source/bootstrapfixture.cxx b/test/source/bootstrapfixture.cxx
index c059d3a..284dbf7 100644
--- a/test/source/bootstrapfixture.cxx
+++ b/test/source/bootstrapfixture.cxx
@@ -96,6 +96,9 @@ void test::BootstrapFixture::setUp()
     aLocalOptions.SetUILocaleConfigString( aLangISO );
 
     InitVCL(m_xSFactory);
+    if (Application::IsHeadlessModeRequested()) {
+        Application::EnableHeadlessMode(true);
+    }
 
     if( m_bAssertOnDialog )
         ErrorHandler::RegisterDisplay( aBasicErrorFunc );
diff --git a/vcl/inc/svdata.hxx b/vcl/inc/svdata.hxx
index 6cb4890..82a5aae 100644
--- a/vcl/inc/svdata.hxx
+++ b/vcl/inc/svdata.hxx
@@ -42,6 +42,7 @@
 
 #include "vcl/vclevent.hxx"
 #include "vcl/sv.h"
+#include "vcl/svapp.hxx"
 #include "vcl/dllapi.h"
 
 #include "unotools/options.hxx"
@@ -167,9 +168,9 @@ struct ImplSVAppData
     sal_Bool                    mbInAppExecute;                 // is Application::Execute() on stack
     sal_Bool                    mbAppQuit;                      // is Application::Quit() called
     sal_Bool                    mbSettingsInit;                 // sal_True: Settings are initialized
-    sal_Bool                    mbDialogCancel;                 // sal_True: Alle Dialog::Execute()-Aufrufe werden mit return sal_False sofort beendet
     sal_Bool                    mbNoYield;                      // Application::Yield will not wait for events if the queue is empty
                                                             // essentially that makes it the same as Application::Reschedule
+    Application::DialogCancelMode meDialogCancel;               // sal_True: Alle Dialog::Execute()-Aufrufe werden mit return sal_False sofort beendet
     long                    mnDefaultLayoutBorder;          // default value in pixel for layout distances used
                                                             // in window arrangers
 
diff --git a/vcl/inc/vcl/svapp.hxx b/vcl/inc/vcl/svapp.hxx
index 0350ee5..cfd46ed 100644
--- a/vcl/inc/vcl/svapp.hxx
+++ b/vcl/inc/vcl/svapp.hxx
@@ -29,6 +29,10 @@
 #ifndef _SV_SVAPP_HXX
 #define _SV_SVAPP_HXX
 
+#include <sal/config.h>
+
+#include <stdexcept>
+
 #include <osl/thread.hxx>
 #include <osl/mutex.hxx>
 #include <tools/string.hxx>
@@ -140,6 +144,23 @@ public:
 class VCL_DLLPUBLIC Application
 {
 public:
+    enum DialogCancelMode {
+        DIALOG_CANCEL_OFF, ///< do not automatically cancel dialogs
+        DIALOG_CANCEL_SILENT, ///< silently cancel any dialogs
+        DIALOG_CANCEL_FATAL
+            ///< cancel any dialogs by throwing a DialogCancelledException
+    };
+
+    class VCL_DLLPUBLIC DialogCancelledException:
+        virtual public std::runtime_error
+    {
+    public:
+        explicit DialogCancelledException(char const * what_arg):
+            runtime_error(what_arg) {}
+
+        virtual ~DialogCancelledException() throw ();
+    };
+
                                 Application();
     virtual                     ~Application();
 
@@ -302,7 +323,8 @@ public:
     static void                 SetDefDialogParent( Window* pWindow );
     static Window*              GetDefDialogParent();
 
-    static void                 EnableDialogCancel( sal_Bool bDialogCancel = sal_True );
+    static DialogCancelMode GetDialogCancelMode();
+    static void SetDialogCancelMode( DialogCancelMode mode );
     static sal_Bool                 IsDialogCancelEnabled();
 
     static void                 SetSystemWindowMode( sal_uInt16 nMode );
@@ -320,9 +342,12 @@ public:
     static void                 SetFilterHdl( const Link& rLink );
     static const Link&          GetFilterHdl();
 
-    static void                 EnableHeadlessMode( sal_Bool bEnable = sal_True );
+    static void                 EnableHeadlessMode( bool dialogsAreFatal );
     static sal_Bool                 IsHeadlessModeEnabled();
 
+    static bool IsHeadlessModeRequested();
+        ///< check command line arguments for --headless
+
     static void                 ShowNativeErrorBox(const String& sTitle  ,
                                                    const String& sMessage);
 
diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx
index 6c70e10..44a0844 100644
--- a/vcl/source/app/svapp.cxx
+++ b/vcl/source/app/svapp.cxx
@@ -37,7 +37,7 @@
 
 #include "rtl/tencinfo.h"
 #include "rtl/instance.hxx"
-
+#include "rtl/process.h"
 
 #include "tools/tools.h"
 #include "tools/debug.hxx"
@@ -1539,16 +1539,21 @@ Window* Application::GetDefDialogParent()
 
 // -----------------------------------------------------------------------
 
-void Application::EnableDialogCancel( sal_Bool bDialogCancel )
+Application::DialogCancelMode Application::GetDialogCancelMode()
+{
+    return ImplGetSVData()->maAppData.meDialogCancel;
+}
+
+void Application::SetDialogCancelMode( DialogCancelMode mode )
 {
-    ImplGetSVData()->maAppData.mbDialogCancel = bDialogCancel;
+    ImplGetSVData()->maAppData.meDialogCancel = mode;
 }
 
 // -----------------------------------------------------------------------
 
 sal_Bool Application::IsDialogCancelEnabled()
 {
-    return ImplGetSVData()->maAppData.mbDialogCancel;
+    return ImplGetSVData()->maAppData.meDialogCancel != DIALOG_CANCEL_OFF;
 }
 
 // -----------------------------------------------------------------------
@@ -1765,9 +1770,10 @@ const LocaleDataWrapper& Application::GetAppLocaleDataWrapper()
 
 // -----------------------------------------------------------------------
 
-void Application::EnableHeadlessMode( sal_Bool bEnable )
+void Application::EnableHeadlessMode( bool dialogsAreFatal )
 {
-    EnableDialogCancel( bEnable );
+    SetDialogCancelMode(
+        dialogsAreFatal ? DIALOG_CANCEL_FATAL : DIALOG_CANCEL_SILENT );
 }
 
 // -----------------------------------------------------------------------
@@ -1777,6 +1783,19 @@ sal_Bool Application::IsHeadlessModeEnabled()
     return IsDialogCancelEnabled();
 }
 
+bool Application::IsHeadlessModeRequested()
+{
+    sal_uInt32 n = rtl_getAppCommandArgCount();
+    for (sal_uInt32 i = 0; i < n; ++i) {
+        rtl::OUString arg;
+        rtl_getAppCommandArg(i, &arg.pData);
+        if (arg.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("--headless"))) {
+            return true;
+        }
+    }
+    return false;
+}
+
 // -----------------------------------------------------------------------
 
 void Application::ShowNativeErrorBox(const String& sTitle  ,
@@ -1902,4 +1921,6 @@ Application::createFolderPicker( const Reference< uno::XComponentContext >& xSM
     return pSVData->mpDefInst->createFolderPicker( xSM );
 }
 
+Application::DialogCancelledException::~DialogCancelledException() throw () {}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/source/window/dialog.cxx b/vcl/source/window/dialog.cxx
index 751ef29..7fed9bb 100644
--- a/vcl/source/window/dialog.cxx
+++ b/vcl/source/window/dialog.cxx
@@ -34,6 +34,7 @@
 #include <brdwin.hxx>
 
 #include <rtl/strbuf.hxx>
+#include <sal/log.hxx>
 
 #include <vcl/svapp.hxx>
 #include <vcl/event.hxx>
@@ -53,8 +54,6 @@
 
 // =======================================================================
 
-#ifdef DBG_UTIL
-
 static rtl::OString ImplGetDialogText( Dialog* pDialog )
 {
     rtl::OStringBuffer aErrorStr(rtl::OUStringToOString(
@@ -72,8 +71,6 @@ static rtl::OString ImplGetDialogText( Dialog* pDialog )
     return aErrorStr.makeStringAndClear();
 }
 
-#endif
-
 // =======================================================================
 
 static sal_Bool ImplIsMnemonicCtrl( Window* pWindow )
@@ -610,15 +607,22 @@ sal_Bool Dialog::ImplStartExecuteModal()
         return sal_False;
     }
 
-    if ( Application::IsDialogCancelEnabled() )
+    switch ( Application::GetDialogCancelMode() )
     {
-#ifdef DBG_UTIL
-        rtl::OStringBuffer aErrorStr;
-        aErrorStr.append(RTL_CONSTASCII_STRINGPARAM("Dialog::StartExecuteModal() is called in a none UI application: "));
-        aErrorStr.append(ImplGetDialogText(this));
-        OSL_FAIL(aErrorStr.getStr());
-#endif
+    case Application::DIALOG_CANCEL_OFF:
+        break;
+    case Application::DIALOG_CANCEL_SILENT:
+        SAL_INFO(
+            "vcl",
+            "Dialog \"" << ImplGetDialogText(this).getStr()
+                << "\"cancelled in silent mode");
         return sal_False;
+    default:
+        assert(false); // this cannot happen
+        // fall through
+    case Application::DIALOG_CANCEL_FATAL:
+        throw Application::DialogCancelledException(
+            ImplGetDialogText(this).getStr());
     }
 
 #ifdef DBG_UTIL
diff --git a/vcl/unx/generic/desktopdetect/desktopdetector.cxx b/vcl/unx/generic/desktopdetect/desktopdetector.cxx
index 601ccaf..1e4636e 100644
--- a/vcl/unx/generic/desktopdetect/desktopdetector.cxx
+++ b/vcl/unx/generic/desktopdetect/desktopdetector.cxx
@@ -33,10 +33,11 @@
 #include <X11/Xatom.h>
 #include <tools/postx.h>
 
+#include "rtl/process.h"
 #include "rtl/ustrbuf.hxx"
 #include "osl/module.h"
-#include "osl/process.h"
 #include "osl/thread.h"
+#include "vcl/svapp.hxx"
 
 #include "vclpluginapi.h"
 
@@ -251,22 +252,17 @@ DESKTOP_DETECTOR_PUBLIC DesktopType get_desktop_environment()
 
     const char* pUsePlugin = getenv( "SAL_USE_VCLPLUGIN" );
 
-    if (pUsePlugin && (strcmp(pUsePlugin, "svp") == 0))
+    if ((pUsePlugin && (strcmp(pUsePlugin, "svp") == 0))
+        || Application::IsHeadlessModeRequested())
         pDisplayStr = NULL;
     else
     {
-        int nParams = osl_getCommandArgCount();
+        int nParams = rtl_getAppCommandArgCount();
         OUString aParam;
         OString aBParm;
         for( int i = 0; i < nParams; i++ )
         {
-            osl_getCommandArg( i, &aParam.pData );
-            if( aParam.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-headless" ) ) ||
-                aParam.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "--headless" ) ) )
-            {
-                pDisplayStr = NULL;
-                break;
-            }
+            rtl_getAppCommandArg( i, &aParam.pData );
             if( i < nParams-1 && (aParam.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-display" ) ) || aParam.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "--display" ) )) )
             {
                 osl_getCommandArg( i+1, &aParam.pData );
commit f547b2c4788439380c3202407c251153be0c5b8e
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue Dec 6 20:21:30 2011 +0100

    Moved modifications.xcu to test, used from multiple modules.

diff --git a/sc/CppunitTest_sc_cellrangesbase.mk b/sc/CppunitTest_sc_cellrangesbase.mk
index 98d1683..dd1028f 100644
--- a/sc/CppunitTest_sc_cellrangesbase.mk
+++ b/sc/CppunitTest_sc_cellrangesbase.mk
@@ -129,7 +129,7 @@ $(eval $(call gb_CppunitTest_add_old_components,sc_cellrangesbase,\
 $(eval $(call gb_CppunitTest_set_args,sc_cellrangesbase,\
     --headless \
     --protector unoexceptionprotector$(gb_Library_DLLEXT) unoexceptionprotector \
-    "-env:CONFIGURATION_LAYERS=xcsxcu:$(call gb_CppunitTarget__make_url,$(OUTDIR)/xml/registry) module:$(call gb_CppunitTarget__make_url,$(OUTDIR)/xml/registry/spool) xcsxcu:$(call gb_CppunitTarget__make_url,$(SRCDIR)/sc/qa/unit/data/registry)" \
+    "-env:CONFIGURATION_LAYERS=xcsxcu:$(call gb_CppunitTarget__make_url,$(OUTDIR)/xml/registry) module:$(call gb_CppunitTarget__make_url,$(OUTDIR)/xml/registry/spool) xcsxcu:$(call gb_CppunitTarget__make_url,$(OUTDIR)/unittest/registry)" \
 ))
     # .../spool is required for the (somewhat strange) filter configuration
 
diff --git a/sc/CppunitTest_sc_macros_test.mk b/sc/CppunitTest_sc_macros_test.mk
index 080939d..de530e2 100644
--- a/sc/CppunitTest_sc_macros_test.mk
+++ b/sc/CppunitTest_sc_macros_test.mk
@@ -130,7 +130,7 @@ $(eval $(call gb_CppunitTest_add_old_components,sc_macros_test,\
 $(eval $(call gb_CppunitTest_set_args,sc_macros_test,\
     --headless \
     --protector unoexceptionprotector$(gb_Library_DLLEXT) unoexceptionprotector \
-    "-env:CONFIGURATION_LAYERS=xcsxcu:$(call gb_CppunitTarget__make_url,$(OUTDIR)/xml/registry) module:$(call gb_CppunitTarget__make_url,$(OUTDIR)/xml/registry/spool) xcsxcu:$(call gb_CppunitTarget__make_url,$(SRCDIR)/sc/qa/unit/data/registry)" \
+    "-env:CONFIGURATION_LAYERS=xcsxcu:$(call gb_CppunitTarget__make_url,$(OUTDIR)/xml/registry) module:$(call gb_CppunitTarget__make_url,$(OUTDIR)/xml/registry/spool) xcsxcu:$(call gb_CppunitTarget__make_url,$(OUTDIR)/unittest/registry)" \
 ))
     # .../spool is required for the (somewhat strange) filter configuration
 
diff --git a/sc/CppunitTest_sc_tableautoformatfield.mk b/sc/CppunitTest_sc_tableautoformatfield.mk
index 7178929..c07955e 100644
--- a/sc/CppunitTest_sc_tableautoformatfield.mk
+++ b/sc/CppunitTest_sc_tableautoformatfield.mk
@@ -128,7 +128,7 @@ $(eval $(call gb_CppunitTest_add_old_components,sc_tableautoformatfield,\
 $(eval $(call gb_CppunitTest_set_args,sc_tableautoformatfield,\
     --headless \
     --protector unoexceptionprotector$(gb_Library_DLLEXT) unoexceptionprotector \
-    "-env:CONFIGURATION_LAYERS=xcsxcu:$(call gb_CppunitTarget__make_url,$(OUTDIR)/xml/registry) module:$(call gb_CppunitTarget__make_url,$(OUTDIR)/xml/registry/spool) xcsxcu:$(call gb_CppunitTarget__make_url,$(SRCDIR)/sc/qa/unit/data/registry)" \
+    "-env:CONFIGURATION_LAYERS=xcsxcu:$(call gb_CppunitTarget__make_url,$(OUTDIR)/xml/registry) module:$(call gb_CppunitTarget__make_url,$(OUTDIR)/xml/registry/spool) xcsxcu:$(call gb_CppunitTarget__make_url,$(OUTDIR)/unittest/registry)" \
 ))
     # .../spool is required for the (somewhat strange) filter configuration
 
diff --git a/sc/qa/unit/data/registry/modifications.xcd b/sc/qa/unit/data/registry/modifications.xcd
deleted file mode 100644
index 80ab50a..0000000
--- a/sc/qa/unit/data/registry/modifications.xcd
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Version: MPL 1.1 / GPLv3+ / LGPLv3+
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License or as specified alternatively below. You may obtain a copy of
- * the License at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * Major Contributor(s):
- * [ Copyright (C) 2011 Stephan Bergmann <sbergman at redhat.com> (initial
- *   developer) ]
- *
- * All Rights Reserved.
- *
- * For minor contributions see the git repository.
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 3 or later (the "GPLv3+"), or
- * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
- * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
- * instead of those above.
--->
-<oor:data xmlns:oor="http://openoffice.org/2001/registry">
- <oor:component-data oor:name="Paths" oor:package="org.openoffice.Office">
-  <node oor:name="Paths">
-   <node oor:name="UIConfig" oor:op="replace">
-    <node oor:name="InternalPaths">
-     <node oor:name="$(userurl)/config" oor:op="fuse"/>
-    </node>
-   </node>
-  </node>
- </oor:component-data>
-</oor:data>
diff --git a/sw/CppunitTest_sw_macros_test.mk b/sw/CppunitTest_sw_macros_test.mk
index 403c7e6..25b8357 100644
--- a/sw/CppunitTest_sw_macros_test.mk
+++ b/sw/CppunitTest_sw_macros_test.mk
@@ -130,7 +130,7 @@ $(eval $(call gb_CppunitTest_add_old_components,sw_macros_test,\
 $(eval $(call gb_CppunitTest_set_args,sw_macros_test,\
     --headless \
     --protector unoexceptionprotector$(gb_Library_DLLEXT) unoexceptionprotector \
-    "-env:CONFIGURATION_LAYERS=xcsxcu:$(call gb_CppunitTarget__make_url,$(OUTDIR)/xml/registry) module:$(call gb_CppunitTarget__make_url,$(OUTDIR)/xml/registry/spool) xcsxcu:$(call gb_CppunitTarget__make_url,$(SRCDIR)/sc/qa/unit/data/registry)" \
+    "-env:CONFIGURATION_LAYERS=xcsxcu:$(call gb_CppunitTarget__make_url,$(OUTDIR)/xml/registry) module:$(call gb_CppunitTarget__make_url,$(OUTDIR)/xml/registry/spool) xcsxcu:$(call gb_CppunitTarget__make_url,$(OUTDIR)/unittest/registry)" \
 ))
     # .../spool is required for the (somewhat strange) filter configuration
 
diff --git a/test/prj/d.lst b/test/prj/d.lst
index a021852..92ced03 100644
--- a/test/prj/d.lst
+++ b/test/prj/d.lst
@@ -8,6 +8,7 @@ mkdir: %_DEST%\inc\test
 ..\inc\test\bootstrapfixture.hxx %_DEST%\inc\test\bootstrapfixture.hxx
 ..\inc\test\unoapi_test.hxx %_DEST%\inc\test\unoapi_test.hxx
 mkdir: %_DEST%\unittest
+mkdir: %_DEST%\unittest\registry
 mkdir: %_DEST%\unittest\user\
 mkdir: %_DEST%\unittest\user\autocorr
 mkdir: %_DEST%\unittest\user\autotext
@@ -201,6 +202,7 @@ mkdir: %_DEST%\unittest\user\xslt\import\common
 mkdir: %_DEST%\unittest\user\xslt\import\spreadsheetml
 mkdir: %_DEST%\unittest\user\xslt\import\uof
 mkdir: %_DEST%\unittest\user\xslt\import\wordml
+..\user-template\registry\modifications.xcd %_DEST%\unittest\registry\modifications.xcd
 ..\user-template\user\*  %_DEST%\unittest\user\*
 ..\user-template\user\autocorr\*  %_DEST%\unittest\user\autocorr\*
 ..\user-template\user\autotext\*  %_DEST%\unittest\user\autotext\*
diff --git a/test/user-template/registry/modifications.xcd b/test/user-template/registry/modifications.xcd
new file mode 100644
index 0000000..80ab50a
--- /dev/null
+++ b/test/user-template/registry/modifications.xcd
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Version: MPL 1.1 / GPLv3+ / LGPLv3+
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License or as specified alternatively below. You may obtain a copy of
+ * the License at http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * Major Contributor(s):
+ * [ Copyright (C) 2011 Stephan Bergmann <sbergman at redhat.com> (initial
+ *   developer) ]
+ *
+ * All Rights Reserved.
+ *
+ * For minor contributions see the git repository.
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+ * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+ * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+ * instead of those above.
+-->
+<oor:data xmlns:oor="http://openoffice.org/2001/registry">
+ <oor:component-data oor:name="Paths" oor:package="org.openoffice.Office">
+  <node oor:name="Paths">
+   <node oor:name="UIConfig" oor:op="replace">
+    <node oor:name="InternalPaths">
+     <node oor:name="$(userurl)/config" oor:op="fuse"/>
+    </node>
+   </node>
+  </node>
+ </oor:component-data>
+</oor:data>
commit 465c34f6e9be7390c00fd03bdb964fc63e5edd05
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue Dec 6 20:19:44 2011 +0100

    ucbhelper::ContentBroker::deinitialize is static.

diff --git a/test/source/bootstrapfixture.cxx b/test/source/bootstrapfixture.cxx
index dccd3a4..c059d3a 100644
--- a/test/source/bootstrapfixture.cxx
+++ b/test/source/bootstrapfixture.cxx
@@ -103,7 +103,7 @@ void test::BootstrapFixture::setUp()
 
 void test::BootstrapFixture::tearDown()
 {
-    ucbhelper::ContentBroker::get()->deinitialize();
+    ucbhelper::ContentBroker::deinitialize();
     test::BootstrapFixtureBase::tearDown();
 }
 
commit 6f5fa503793e1e6d97be62ee6a3ae84065b98fb0
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue Dec 6 20:17:40 2011 +0100

    Cleaned up indentation.

diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
index df838f7..2cee667 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
@@ -2,7 +2,7 @@
 <!--***********************************************************************
  *
  * 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
@@ -26,954 +26,1024 @@
  *
  ************************************************************************ -->
 <!DOCTYPE oor:component-schema SYSTEM "../../../../component-schema.dtd">
-<oor:component-schema xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" oor:name="Common" oor:package="org.openoffice.Office" xml:lang="en-US">
-    <info>
-		<desc>Contains common settings which are potentially shared by other components.</desc>
-	</info>
-	<templates>
-		<group oor:name="Passwordstorage">
-			<info>
-				<author>MAV</author>
-				<desc>Contains a container for passwords.</desc>
-			</info>
-			<prop oor:name="Password" oor:type="xs:string" oor:localized="false">
-				<info>
-					<desc>Contains a password encoded with the master password.</desc>
-				</info>
-			</prop>
-		</group>
-		<group oor:name="HistoryType">
-			<info>
-				<author>AS</author>
-				<desc>Contains settings for a history entry in the history list.</desc>
-			</info>
-			<prop oor:name="URL" oor:type="xs:string">
-				<info>
-					<desc>Specifies the document URL.</desc>
-				</info>
-			</prop>
-			<prop oor:name="Filter" oor:type="xs:string">
-				<info>
-					<desc>Specifies the filter name that was chosen to load the document.</desc>
-				</info>
-			</prop>
-			<prop oor:name="Title" oor:type="xs:string">
-				<info>
-					<desc>Indicates the title of the URL that is displayed on the user-interface.</desc>
-				</info>
-			</prop>
-			<prop oor:name="Password" oor:type="xs:string">
-				<info>
-					<desc>Contains an encoded password used to open the document.</desc>
-				</info>
-			</prop>
-		</group>
-		<group oor:name="MenuType">
-			<info>
-				<author>AS</author>
-				<desc>Describes a menu entry for configurable office menus (e.g. file new).</desc>
-			</info>
-			<prop oor:name="URL" oor:type="xs:string">
-				<info>
-					<desc>Specifies the URL for dispatch.</desc>
-				</info>
-			</prop>
-			<prop oor:name="Title" oor:type="xs:string" oor:localized="true">
-				<info>
-					<desc>Specifies the label of a menu entry.</desc>
-				</info>
-			</prop>
-			<prop oor:name="ImageIdentifier" oor:type="xs:string">
-				<info>
-					<desc>Specifies the identifier of an assigned icon.</desc>
-				</info>
-			</prop>
-			<prop oor:name="TargetName" oor:type="xs:string">
-				<info>
-					<desc>Specifies the dispatch target (for example, _blank to open URL in new frame).</desc>
-				</info>
-			</prop>
-		</group>
-		<group oor:name="DialogSize">
-			<info>
-				<author>PB</author>
-				<desc>Contains the width and height of the dialog size.</desc>
-			</info>
-			<prop oor:name="Height" oor:type="xs:int">
-				<info>
-					<desc>Contains the height of the dialog [UNIT=pixel].</desc>
-				</info>
-			</prop>
-			<prop oor:name="Width" oor:type="xs:int">
-				<info>
-					<desc>Contains the width of the dialog [UNIT=pixel].</desc>
-				</info>
-			</prop>
-		</group>
-		<group oor:name="Font">
-			<info>
-				<author>OJ</author>
-				<desc>Describes the characteristics of a font.</desc>
-			</info>
-			<prop oor:name="Name" oor:type="xs:string">
-				<info>
-					<desc>Specifies the exact name of the font (&quot;Arial&quot;,&quot;Courier&quot;, &quot;Frutiger&quot;).</desc>
-				</info>
-			</prop>
-			<prop oor:name="Height" oor:type="xs:short">
-				<info>
-					<desc>Specifies the height of the font in the measure of the destination.</desc>
-				</info>
-			</prop>
-			<prop oor:name="Width" oor:type="xs:short">
-				<info>
-					<desc>Specifies the width of the font in the measure of the destination.</desc>
-				</info>
-			</prop>
-			<prop oor:name="StyleName" oor:type="xs:string">
-				<info>
-					<desc>Specifies the style name of the font (&quot;Bold&quot;, &quot;Italic&quot;, &quot;Italic Bold&quot;).</desc>
-				</info>
-			</prop>
-			<prop oor:name="Family" oor:type="xs:short">
-				<info>
-					<desc>Specifies the general style of the font.</desc>
-				</info>
-				<constraints>
-					<enumeration oor:value="0">
-						<info>
-							<desc>DONTKNOW</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="1">
-						<info>
-							<desc>DECORATIVE</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="2">
-						<info>
-							<desc>MODERN</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="3">
-						<info>
-							<desc>ROMAN</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="4">
-						<info>
-							<desc>SCRIPT</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="5">
-						<info>
-							<desc>SWISS</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="6">
-						<info>
-							<desc>SYSTEM</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="7">
-						<info>
-							<desc>DONTKNOW</desc>
-						</info>
-					</enumeration>
-				</constraints>
-			</prop>
-			<prop oor:name="CharSet" oor:type="xs:short">
-				<info>
-					<desc>Specifies the character set which is supported by the font.</desc>
-				</info>
-				<constraints>
-					<enumeration oor:value="0">
-						<info>
-							<desc>DONTKNOW</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="1">
-						<info>
-							<desc>ANSI</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="2">
-						<info>
-							<desc>MAC</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="3">
-						<info>
-							<desc>IBMPC_437</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="4">
-						<info>
-							<desc>IBMPC_850</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="5">
-						<info>
-							<desc>IBMPC_860</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="6">
-						<info>
-							<desc>IBMPC_861</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="7">
-						<info>
-							<desc>IBMPC_863</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="8">
-						<info>
-							<desc>IBMPC_865</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="9">
-						<info>
-							<desc>SYSTEM</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="10">
-						<info>
-							<desc>SYMBOL</desc>
-						</info>
-					</enumeration>
-				</constraints>
-			</prop>
-			<prop oor:name="Pitch" oor:type="xs:short">
-				<info>
-					<desc>Specifies the pitch of the font.</desc>
-				</info>
-				<constraints>
-					<enumeration oor:value="0">
-						<info>
-							<desc>DONTKNOW</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="1">
-						<info>
-							<desc>FIXED</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="2">
-						<info>
-							<desc>VARIABLE</desc>
-						</info>
-					</enumeration>
-				</constraints>
-			</prop>
-			<prop oor:name="CharacterWidth" oor:type="xs:double">
-				<info>
-					<desc>Specifies the character width. Depending on the specified width, a font that supports this width may be selected. [UNIT=%].</desc>
-				</info>
-			</prop>
-			<prop oor:name="Weight" oor:type="xs:double">
-				<info>
-					<desc>Specifies the thickness of the line.</desc>
-				</info>
-			</prop>
-			<prop oor:name="Slant" oor:type="xs:short">
-				<info>
-					<desc>Specifies if there is a character slant (italic).</desc>
-				</info>
-				<constraints>
-					<enumeration oor:value="0">
-						<info>
-							<desc>NONE</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="1">
-						<info>
-							<desc>OBLIQUE</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="2">
-						<info>
-							<desc> ITALIC</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="3">
-						<info>
-							<desc>DONTKNOW</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="4">
-						<info>
-							<desc>REVERSE_OBLIQUE</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="5">
-						<info>
-							<desc>REVERSE_ITALIC</desc>
-						</info>
-					</enumeration>
-				</constraints>
-			</prop>
-			<prop oor:name="UnderLine" oor:type="xs:short">
-				<info>
-					<desc>Specifies the type of underline.</desc>
-				</info>
-				<constraints>
-					<enumeration oor:value="0">
-						<info>
-							<desc>NONE</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="1">
-						<info>
-							<desc>SINGLE</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="2">
-						<info>
-							<desc>DOUBLE</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="3">
-						<info>
-							<desc>DOTTED</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="4">
-						<info>
-							<desc>DONTKNOW</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="5">
-						<info>
-							<desc>DASH</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="6">
-						<info>
-							<desc>LONGDASH</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="7">
-						<info>
-							<desc>DASHDOT</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="8">
-						<info>
-							<desc>DASHDOTDOT</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="9">
-						<info>
-							<desc>SMALLWAVE</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="10">
-						<info>
-							<desc>WAVE</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="11">
-						<info>
-							<desc>DOUBLEWAVE</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="12">
-						<info>
-							<desc>BOLD</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="13">
-						<info>
-							<desc>BOLDDOTTED</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="14">
-						<info>
-							<desc>BOLDDASH</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="15">
-						<info>
-							<desc>BOLDLONGDASH</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="16">
-						<info>
-							<desc>BOLDDASHDOT</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="17">
-						<info>
-							<desc>BOLDDASHDOTDOT</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="18">
-						<info>
-							<desc>BOLDWAVE</desc>
-						</info>
-					</enumeration>
-				</constraints>
-			</prop>
-			<prop oor:name="Strikeout" oor:type="xs:short">
-				<info>
-					<desc>Specifies the type of strikeout.</desc>
-				</info>
-				<constraints>
-					<enumeration oor:value="0">
-						<info>
-							<desc>NONE</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="1">
-						<info>
-							<desc>SINGLE</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="2">
-						<info>
-							<desc>DOUBLE</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="3">
-						<info>
-							<desc>DONTKNOW</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="4">
-						<info>
-							<desc>BOLD</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="5">
-						<info>
-							<desc>SLASH</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="6">
-						<info>
-							<desc>X</desc>
-						</info>
-					</enumeration>
-				</constraints>
-			</prop>
-			<prop oor:name="Orientation" oor:type="xs:double">
-				<info>
-					<desc>Specifies the rotation of the font. [UNIT=degree].</desc>
-				</info>
-			</prop>
-			<prop oor:name="Kerning" oor:type="xs:boolean">
-				<info>
-					<desc>Specifies if a kerning table is available (for requesting). For selecting, specifies if the kerning table is to be used.</desc>
-				</info>
-			</prop>
-			<prop oor:name="WordLineMode" oor:type="xs:boolean">
-				<info>
-					<desc>Specifies if only words get underlined.</desc>
-				</info>
-			</prop>
-			<prop oor:name="Type" oor:type="xs:short">
-				<info>
-					<desc>Specifies the technology of the font representation.</desc>
-				</info>
-				<constraints>
-					<enumeration oor:value="0">
-						<info>
-							<desc>DONTKNOW</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="1">
-						<info>
-							<desc>RASTER</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="2">
-						<info>
-							<desc>DEVICE</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="3">
-						<info>
-							<desc>SCALABLE</desc>
-						</info>
-					</enumeration>
-				</constraints>
-			</prop>
-		</group>
-		<group oor:name="FontReplacement">
-			<info>
-				<author>OS</author>
-				<desc>Contains settings for the font replacement.</desc>
-			</info>
-			<prop oor:name="ReplaceFont" oor:type="xs:string">
-				<info>
-					<desc>Contains the name of font that is to be replaced.</desc>
-				</info>
-			</prop>
-			<prop oor:name="SubstituteFont" oor:type="xs:string">
-				<info>
-					<desc>Contains the name of the replacing font.</desc>
-				</info>
-			</prop>
-			<prop oor:name="OnScreenOnly" oor:type="xs:boolean">
-				<info>
-					<desc>Determines if the font pair replacement is applied on the screen.</desc>
-				</info>
-				<value>false</value>
-			</prop>
-			<prop oor:name="Always" oor:type="xs:boolean">
-				<info>
-					<desc>Determines if the font pair replacement is applied on the printer.</desc>
-				</info>
-				<value>false</value>
-			</prop>
-		</group>
-		<group oor:name="GraphicSize">
-			<info>
-				<deprecated>Use LogicalGraphicSize instead of this.</deprecated>
-				<author>SJ</author>
-				<desc>Specifies the size of a graphic. [UNIT=1/100 mm].</desc>
-			</info>
-			<prop oor:name="Width" oor:type="xs:int">
-				<info>
-					<desc>Specifies the width of graphic. [UNIT=1/100 mm].</desc>
-				</info>
-				<constraints>
-					<minInclusive oor:value="100">
-						<info>
-							<desc>Represents the highest value that can be entered in the dialog.</desc>
-						</info>
-					</minInclusive>
-					<maxInclusive oor:value="99999">
-						<info>
-							<desc>Represents the lowest value that can be entered in the dialog.</desc>
-						</info>
-					</maxInclusive>
-				</constraints>
-				<value>10000</value>
-			</prop>
-			<prop oor:name="Height" oor:type="xs:int">
-				<info>
-					<desc>Specifies the height of graphic. [UNIT=1/100 mm].</desc>
-				</info>
-				<constraints>
-					<minInclusive oor:value="100">
-						<info>
-							<desc>Represents the lowest value that can be entered in the dialog.</desc>
-						</info>
-					</minInclusive>
-					<maxInclusive oor:value="99999">
-						<info>
-							<desc>Represents the highest value that can be entered in the dialog.</desc>
-						</info>
-					</maxInclusive>
-				</constraints>
-				<value>10000</value>
-			</prop>
-		</group>
-		<group oor:name="LogicalGraphicSize">
-			<info>
-				<author>SJ</author>
-				<desc>Specifies the logical size of a graphic. [UNIT=1/100 mm].</desc>
-			</info>
-			<prop oor:name="LogicalWidth" oor:type="xs:int">
-				<info>
-					<desc>Specifies the logical width of a graphic. [UNIT=1/100 mm].</desc>
-				</info>
-				<constraints>
-					<minInclusive oor:value="100">
-						<info>
-							<desc>Represents the lowest value that can be entered in the dialog.</desc>
-						</info>
-					</minInclusive>
-					<maxInclusive oor:value="99999">
-						<info>
-							<desc>Represents the highest value that can be entered in the dialog.</desc>
-						</info>
-					</maxInclusive>
-				</constraints>
-				<value>10000</value>
-			</prop>
-			<prop oor:name="LogicalHeight" oor:type="xs:int">
-				<info>
-					<desc>Specifies the logical height of graphic. [UNIT=1/100 mm].</desc>
-				</info>
-				<constraints>
-					<minInclusive oor:value="100">
-						<info>
-							<desc>Represents the lowest value that can be entered in the dialog.</desc>
-						</info>
-					</minInclusive>
-					<maxInclusive oor:value="99999">
-						<info>
-							<desc>Represents the highest value that can be entered in the dialog.</desc>
-						</info>
-					</maxInclusive>
-				</constraints>
-				<value>10000</value>
-			</prop>
-		</group>
- 		<group oor:name="ObjectNames">
- 			<info>
-				<deprecated>Replaced by org.openoffice.Office.Embedding/ObjectName.</deprecated>
- 				<author>MAV</author>
- 				<desc>Deprecated</desc>
- 			</info>
- 			<prop oor:name="Name" oor:type="xs:string" oor:localized="true">
- 				<info>
-					<deprecated/>
- 					<author>MAV</author>
- 					<desc>Deprecated</desc>
- 				</info>
- 			</prop>
- 			<prop oor:name="Key" oor:type="xs:string">
- 				<info>
-					<deprecated/>
- 					<author>MAV</author>
- 					<desc>Deprecated</desc>
- 				</info>
- 			</prop>
- 		</group>
-		<group oor:name="RecoveryEntry">
-			<info>
-				<author>AS</author>
-				<desc>Specifies an entry of the recovery list which is then used by CrashGuard to save information about the last opened files.</desc>
-			</info>
-			<prop oor:name="URL" oor:type="xs:string">
-				<info>
-					<desc>Specifies an URL that should be recovered after the next Office start.</desc>
-				</info>
-			</prop>
-			<prop oor:name="Filter" oor:type="xs:string">
-				<info>
-					<desc>Specifies a filter that should be used to open the document referenced by the URL property.</desc>
-				</info>
-			</prop>
-			<prop oor:name="TempName" oor:type="xs:string">
-				<info>
-					<desc>Contains the name of the temporary file which represents the document.</desc>
-				</info>
-			</prop>
-		</group>
-		<group oor:name="StartEndCharacters">
-			<info>
-				<author>OS</author>
-				<desc>Contains the characters (so called forbidden characters) that are not allowed at the beginning or end of a line.</desc>
-			</info>
-			<prop oor:name="StartCharacters" oor:type="xs:string">
-				<info>
-					<desc>Contains the characters that are not allowed at the beginning of a line.</desc>
-				</info>
-			</prop>
-			<prop oor:name="EndCharacters" oor:type="xs:string">
-				<info>
-					<desc>Contains the characters that are not allowed at the end of a line.</desc>
-				</info>
-			</prop>
-		</group>
-		<group oor:name="NameCounter">
-			<info>
-				<author>MBA</author>
-				<desc>Stores an association between a numeric value and a name.</desc>
-			</info>
-			<prop oor:name="Name" oor:type="xs:string">
-				<info>
-					<desc>Specifies a name that is associated with a counter.</desc>
-				</info>
-			</prop>
-			<prop oor:name="Counter" oor:type="xs:int">
-				<info>
-					<desc>Specifies a number that is associated with a name.</desc>
-				</info>
-			</prop>
-		</group>
-		<group oor:name="MailCommandLineProfile">
-			<info>
-				<deprecated>Without replacement.</deprecated>
-				<author>OBR</author>
-				<desc>Contains the command line profile for external mail applications.</desc>
-			</info>
-			<group oor:name="FormatStrings">
-				<info>
-					<desc>Contains the different string tokens for &quot;to&quot; and &quot;cc&quot; etc. Addresses will be concatenated to create the command line.</desc>
-				</info>
-				<prop oor:name="base" oor:type="xs:string">
-					<info>
-						<desc>Contains the fixed text (optional) preceding the mail arguments.</desc>
-					</info>
-				</prop>
-				<prop oor:name="from" oor:type="xs:string">
-					<info>
-						<desc>Contains the string token describing the &quot;from&quot; address field.</desc>
-					</info>
-				</prop>
-				<prop oor:name="to" oor:type="xs:string">
-					<info>
-						<desc>Contains the string token describing the &quot;to&quot; address field.</desc>
-					</info>
-				</prop>
-				<prop oor:name="cc" oor:type="xs:string">
-					<info>
-						<desc>Contains the string token describing the &quot;cc&quot; address field.</desc>
-					</info>
-				</prop>
-				<prop oor:name="bcc" oor:type="xs:string">
-					<info>
-						<desc>Contains the string token describing the &quot;bcc&quot; address field.</desc>
-					</info>
-				</prop>
-				<prop oor:name="subject" oor:type="xs:string">
-					<info>
-						<desc>Contains the string token describing the subject.</desc>
-					</info>
-				</prop>
-				<prop oor:name="attachment" oor:type="xs:string">
-					<info>
-						<desc>Contains the string token describing the attachments of the message.</desc>
-					</info>
-				</prop>
-				<prop oor:name="body" oor:type="xs:string">
-					<info>
-						<desc>Contains the string token describing the body of the message.</desc>
-					</info>
-				</prop>
-			</group>
-			<group oor:name="EnumDelimiters">
-				<info>
-					<desc>Contains the delimiters used to separate values for various command line parameters of the external mailer.</desc>
-				</info>
-				<prop oor:name="base" oor:type="xs:string">
-					<info>
-						<desc>Contains the delimiter used between the external mailer name and the &quot;to&quot; field.</desc>
-					</info>
-				</prop>
-				<prop oor:name="cc" oor:type="xs:string">
-					<info>
-						<desc>Contains the delimiters between different cc addressees.</desc>
-					</info>
-				</prop>
-				<prop oor:name="bcc" oor:type="xs:string">
-					<info>
-						<desc>Contains the delimiters between different bcc addressees.</desc>
-					</info>
-				</prop>
-				<prop oor:name="attachment" oor:type="xs:string">
-					<info>
-						<desc>Contains the delimiters between different attachments.</desc>
-					</info>
-				</prop>
-			</group>
-		</group>
-		<group oor:name="JobDescription">
-			<info>
-				<deprecated>Use cfg package Jobs instead of this.</deprecated>
-				<author>AS</author>
-				<desc>Use cfg package Jobs instead of this.</desc>
-			</info>
-			<prop oor:name="ServiceName" oor:type="xs:string">
-				<info>
-					<desc>Use cfg package Jobs instead of this.</desc>
-				</info>
-			</prop>
-			<prop oor:name="UserInteraction" oor:type="xs:boolean">
-				<info>
-					<desc>Use cfg package Jobs instead of this.</desc>
-				</info>
-			</prop>
-			<prop oor:name="AllowAsync" oor:type="xs:boolean">
-				<info>
-					<desc>Use cfg package Jobs instead of this.</desc>
-				</info>
-			</prop>
-			<group oor:name="ExecutionArguments" oor:extensible="true">
-				<info>
-					<desc>Use cfg package Jobs instead of this.</desc>
-				</info>
-			</group>
-		</group>
-		<group oor:name="TrustedAuthor">
-			<info>
-				<author>GT</author>
-				<desc>All Certificate informations needed to handle and identify the signature.</desc>
-			</info>
-			<prop oor:name="SubjectName" oor:type="xs:string">
-				<info>
-					<desc>Subject name of Certificate.</desc>
-				</info>
-			</prop>
-			<prop oor:name="SerialNumber" oor:type="xs:string">
-				<info>
-					<desc>Serial Number of Certificate.</desc>
-				</info>
-			</prop>
-			<prop oor:name="RawData" oor:type="xs:string">
-				<info>
-					<desc>Raw of Certificate.</desc>
-				</info>
-			</prop>
-		</group>
-		<group oor:name="ApplicationControlLayout">
-			<info>
-				<author>FS</author>
-				<desc>specifies, on a per-application-type basis, certain defaults for layouting form controls</desc>
-			</info>
-			<prop oor:name="VisualEffect" oor:type="xs:string" oor:nillable="true">
-				<info>
-					<desc>specifies the default visual effect for form controls</desc>
-				</info>
-				<constraints>
-					<enumeration oor:value="none">
-						<info>
-							<desc>specifies no special visual effect</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="flat">
-						<info>
-							<desc>specifies a flat appearance</desc>
-						</info>
-					</enumeration>
-					<enumeration oor:value="3D">
-						<info>
-							<desc>specifies a 3D appearance</desc>
-						</info>
-					</enumeration>
-				</constraints>
-			</prop>
-			<prop oor:name="DynamicBorderColors" oor:type="xs:boolean">
-				<info>
-          <desc>
-            specifies whether the controls should use dynamic border coloring, if possible.
-            Dymamic border coloring means that when the mouse is hovered over a control, and when a control receives the focus, this is indicated with special border colors.
-          </desc>
-				</info>
-				<value>false</value>
-			</prop>
+<oor:component-schema
+    oor:package="org.openoffice.Office" oor:name="Common" xml:lang="en-US"
+    xmlns:oor="http://openoffice.org/2001/registry"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <info>
+    <desc>Contains common settings which are potentially shared by other
+    components.</desc>
+  </info>
+  <templates>
+    <group oor:name="Passwordstorage">
+      <info>
+        <author>MAV</author>
+        <desc>Contains a container for passwords.</desc>
+      </info>
+      <prop oor:name="Password" oor:type="xs:string" oor:localized="false">
+        <info>
+          <desc>Contains a password encoded with the master password.</desc>
+        </info>
+      </prop>
+    </group>
+    <group oor:name="HistoryType">
+      <info>
+        <author>AS</author>
+        <desc>Contains settings for a history entry in the history list.</desc>
+      </info>
+      <prop oor:name="URL" oor:type="xs:string">
+        <info>
+          <desc>Specifies the document URL.</desc>
+        </info>
+      </prop>
+      <prop oor:name="Filter" oor:type="xs:string">
+        <info>
+          <desc>Specifies the filter name that was chosen to load the
+          document.</desc>
+        </info>
+      </prop>
+      <prop oor:name="Title" oor:type="xs:string">
+        <info>
+          <desc>Indicates the title of the URL that is displayed on the
+          user-interface.</desc>
+        </info>
+      </prop>
+      <prop oor:name="Password" oor:type="xs:string">
+        <info>
+          <desc>Contains an encoded password used to open the document.</desc>
+        </info>
+      </prop>
+    </group>
+    <group oor:name="MenuType">
+      <info>
+        <author>AS</author>
+        <desc>Describes a menu entry for configurable office menus (e.g. file
+        new).</desc>
+      </info>
+      <prop oor:name="URL" oor:type="xs:string">
+        <info>
+          <desc>Specifies the URL for dispatch.</desc>
+        </info>
+      </prop>
+      <prop oor:name="Title" oor:type="xs:string" oor:localized="true">
+        <info>
+          <desc>Specifies the label of a menu entry.</desc>
+        </info>
+      </prop>
+      <prop oor:name="ImageIdentifier" oor:type="xs:string">
+        <info>
+          <desc>Specifies the identifier of an assigned icon.</desc>
+        </info>
+      </prop>
+      <prop oor:name="TargetName" oor:type="xs:string">
+        <info>
+          <desc>Specifies the dispatch target (for example, _blank to open URL
+          in new frame).</desc>
+        </info>
+      </prop>
+    </group>
+    <group oor:name="DialogSize">
+      <info>
+        <author>PB</author>
+        <desc>Contains the width and height of the dialog size.</desc>
+      </info>
+      <prop oor:name="Height" oor:type="xs:int">
+        <info>
+          <desc>Contains the height of the dialog [UNIT=pixel].</desc>
+        </info>
+      </prop>
+      <prop oor:name="Width" oor:type="xs:int">
+        <info>
+          <desc>Contains the width of the dialog [UNIT=pixel].</desc>
+        </info>
+      </prop>
+    </group>
+    <group oor:name="Font">
+      <info>
+        <author>OJ</author>
+        <desc>Describes the characteristics of a font.</desc>
+      </info>
+      <prop oor:name="Name" oor:type="xs:string">
+        <info>
+          <desc>Specifies the exact name of the font ("Arial", "Courier",
+          "Frutiger").</desc>
+        </info>
+      </prop>
+      <prop oor:name="Height" oor:type="xs:short">
+        <info>
+          <desc>Specifies the height of the font in the measure of the
+          destination.</desc>
+        </info>
+      </prop>
+      <prop oor:name="Width" oor:type="xs:short">
+        <info>
+          <desc>Specifies the width of the font in the measure of the
+          destination.</desc>
+        </info>
+      </prop>
+      <prop oor:name="StyleName" oor:type="xs:string">
+        <info>
+          <desc>Specifies the style name of the font ("Bold", "Italic", "Italic
+          Bold").</desc>
+        </info>
+      </prop>
+      <prop oor:name="Family" oor:type="xs:short">
+        <info>
+          <desc>Specifies the general style of the font.</desc>
+        </info>
+        <constraints>
+          <enumeration oor:value="0">
+            <info>
+              <desc>DONTKNOW</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="1">
+            <info>
+              <desc>DECORATIVE</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="2">
+            <info>
+              <desc>MODERN</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="3">
+            <info>
+              <desc>ROMAN</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="4">
+            <info>
+              <desc>SCRIPT</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="5">
+            <info>
+              <desc>SWISS</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="6">
+            <info>
+              <desc>SYSTEM</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="7">
+            <info>
+              <desc>DONTKNOW</desc>
+            </info>
+          </enumeration>
+        </constraints>
+      </prop>
+      <prop oor:name="CharSet" oor:type="xs:short">
+        <info>
+          <desc>Specifies the character set which is supported by the
+          font.</desc>
+        </info>
+        <constraints>
+          <enumeration oor:value="0">
+            <info>
+              <desc>DONTKNOW</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="1">
+            <info>
+              <desc>ANSI</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="2">
+            <info>
+              <desc>MAC</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="3">
+            <info>
+              <desc>IBMPC_437</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="4">
+            <info>
+              <desc>IBMPC_850</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="5">
+            <info>
+              <desc>IBMPC_860</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="6">
+            <info>
+              <desc>IBMPC_861</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="7">
+            <info>
+              <desc>IBMPC_863</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="8">
+            <info>
+              <desc>IBMPC_865</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="9">
+            <info>
+              <desc>SYSTEM</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="10">
+            <info>
+              <desc>SYMBOL</desc>
+            </info>
+          </enumeration>
+        </constraints>
+      </prop>
+      <prop oor:name="Pitch" oor:type="xs:short">
+        <info>
+          <desc>Specifies the pitch of the font.</desc>
+        </info>
+        <constraints>
+          <enumeration oor:value="0">
+            <info>
+              <desc>DONTKNOW</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="1">
+            <info>
+              <desc>FIXED</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="2">
+            <info>
+              <desc>VARIABLE</desc>
+            </info>
+          </enumeration>
+        </constraints>
+      </prop>
+      <prop oor:name="CharacterWidth" oor:type="xs:double">
+        <info>
+          <desc>Specifies the character width. Depending on the specified width,
+          a font that supports this width may be selected. [UNIT=%].</desc>
+        </info>
+      </prop>
+      <prop oor:name="Weight" oor:type="xs:double">
+        <info>
+          <desc>Specifies the thickness of the line.</desc>
+        </info>
+      </prop>
+      <prop oor:name="Slant" oor:type="xs:short">
+        <info>
+          <desc>Specifies if there is a character slant (italic).</desc>
+        </info>
+        <constraints>
+          <enumeration oor:value="0">
+            <info>
+              <desc>NONE</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="1">
+            <info>
+              <desc>OBLIQUE</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="2">
+            <info>
+              <desc>ITALIC</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="3">
+            <info>
+              <desc>DONTKNOW</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="4">
+            <info>
+              <desc>REVERSE_OBLIQUE</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="5">
+            <info>
+              <desc>REVERSE_ITALIC</desc>
+            </info>
+          </enumeration>
+        </constraints>
+      </prop>
+      <prop oor:name="UnderLine" oor:type="xs:short">
+        <info>
+          <desc>Specifies the type of underline.</desc>
+        </info>
+        <constraints>
+          <enumeration oor:value="0">
+            <info>
+              <desc>NONE</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="1">
+            <info>
+              <desc>SINGLE</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="2">
+            <info>
+              <desc>DOUBLE</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="3">
+            <info>
+              <desc>DOTTED</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="4">
+            <info>
+              <desc>DONTKNOW</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="5">
+            <info>
+              <desc>DASH</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="6">
+            <info>
+              <desc>LONGDASH</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="7">
+            <info>
+              <desc>DASHDOT</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="8">
+            <info>
+              <desc>DASHDOTDOT</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="9">
+            <info>
+              <desc>SMALLWAVE</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="10">
+            <info>
+              <desc>WAVE</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="11">
+            <info>
+              <desc>DOUBLEWAVE</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="12">
+            <info>
+              <desc>BOLD</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="13">
+            <info>
+              <desc>BOLDDOTTED</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="14">
+            <info>
+              <desc>BOLDDASH</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="15">
+            <info>
+              <desc>BOLDLONGDASH</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="16">
+            <info>
+              <desc>BOLDDASHDOT</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="17">
+            <info>
+              <desc>BOLDDASHDOTDOT</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="18">
+            <info>
+              <desc>BOLDWAVE</desc>
+            </info>
+          </enumeration>
+        </constraints>
+      </prop>
+      <prop oor:name="Strikeout" oor:type="xs:short">
+        <info>
+          <desc>Specifies the type of strikeout.</desc>
+        </info>
+        <constraints>
+          <enumeration oor:value="0">
+            <info>
+              <desc>NONE</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="1">
+            <info>
+              <desc>SINGLE</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="2">
+            <info>
+              <desc>DOUBLE</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="3">
+            <info>
+              <desc>DONTKNOW</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="4">
+            <info>
+              <desc>BOLD</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="5">
+            <info>
+              <desc>SLASH</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="6">
+            <info>
+              <desc>X</desc>
+            </info>
+          </enumeration>
+        </constraints>
+      </prop>
+      <prop oor:name="Orientation" oor:type="xs:double">
+        <info>
+          <desc>Specifies the rotation of the font. [UNIT=degree].</desc>
+        </info>
+      </prop>
+      <prop oor:name="Kerning" oor:type="xs:boolean">
+        <info>
+          <desc>Specifies if a kerning table is available (for requesting). For
+          selecting, specifies if the kerning table is to be used.</desc>
+        </info>
+      </prop>
+      <prop oor:name="WordLineMode" oor:type="xs:boolean">
+        <info>
+          <desc>Specifies if only words get underlined.</desc>
+        </info>
+      </prop>
+      <prop oor:name="Type" oor:type="xs:short">
+        <info>
+          <desc>Specifies the technology of the font representation.</desc>
+        </info>
+        <constraints>
+          <enumeration oor:value="0">
+            <info>
+              <desc>DONTKNOW</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="1">
+            <info>
+              <desc>RASTER</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="2">
+            <info>
+              <desc>DEVICE</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="3">
+            <info>
+              <desc>SCALABLE</desc>
+            </info>
+          </enumeration>
+        </constraints>
+      </prop>
+    </group>
+    <group oor:name="FontReplacement">
+      <info>
+        <author>OS</author>
+        <desc>Contains settings for the font replacement.</desc>
+      </info>
+      <prop oor:name="ReplaceFont" oor:type="xs:string">
+        <info>
+          <desc>Contains the name of font that is to be replaced.</desc>
+        </info>
+      </prop>
+      <prop oor:name="SubstituteFont" oor:type="xs:string">
+        <info>
+          <desc>Contains the name of the replacing font.</desc>
+        </info>
+      </prop>
+      <prop oor:name="OnScreenOnly" oor:type="xs:boolean">
+        <info>
+          <desc>Determines if the font pair replacement is applied on the
+          screen.</desc>
+        </info>
+        <value>false</value>
+      </prop>
+      <prop oor:name="Always" oor:type="xs:boolean">
+        <info>
+          <desc>Determines if the font pair replacement is applied on the
+          printer.</desc>
+        </info>
+        <value>false</value>
+      </prop>
+    </group>
+    <group oor:name="GraphicSize">
+      <info>
+        <deprecated>Use LogicalGraphicSize instead of this.</deprecated>
+        <author>SJ</author>
+        <desc>Specifies the size of a graphic. [UNIT=1/100 mm].</desc>
+      </info>
+      <prop oor:name="Width" oor:type="xs:int">
+        <info>
+          <desc>Specifies the width of graphic. [UNIT=1/100 mm].</desc>
+        </info>
+        <constraints>
+          <minInclusive oor:value="100">
+            <info>
+              <desc>Represents the highest value that can be entered in the
+              dialog.</desc>
+            </info>
+          </minInclusive>
+          <maxInclusive oor:value="99999">
+            <info>
+              <desc>Represents the lowest value that can be entered in the
+              dialog.</desc>
+            </info>
+          </maxInclusive>
+        </constraints>
+        <value>10000</value>
+      </prop>
+      <prop oor:name="Height" oor:type="xs:int">
+        <info>
+          <desc>Specifies the height of graphic. [UNIT=1/100 mm].</desc>
+        </info>
+        <constraints>
+          <minInclusive oor:value="100">
+            <info>
+              <desc>Represents the lowest value that can be entered in the
+              dialog.</desc>
+            </info>
+          </minInclusive>
+          <maxInclusive oor:value="99999">
+            <info>
+              <desc>Represents the highest value that can be entered in the
+              dialog.</desc>
+            </info>
+          </maxInclusive>
+        </constraints>
+        <value>10000</value>
+      </prop>
+    </group>
+    <group oor:name="LogicalGraphicSize">
+      <info>
+        <author>SJ</author>
+        <desc>Specifies the logical size of a graphic. [UNIT=1/100 mm].</desc>
+      </info>
+      <prop oor:name="LogicalWidth" oor:type="xs:int">
+        <info>
+          <desc>Specifies the logical width of a graphic.
+          [UNIT=1/100 mm].</desc>
+        </info>
+        <constraints>
+          <minInclusive oor:value="100">
+            <info>
+              <desc>Represents the lowest value that can be entered in the
+              dialog.</desc>
+            </info>
+          </minInclusive>
+          <maxInclusive oor:value="99999">
+            <info>
+              <desc>Represents the highest value that can be entered in the
+              dialog.</desc>
+            </info>
+          </maxInclusive>
+        </constraints>
+        <value>10000</value>
+      </prop>
+      <prop oor:name="LogicalHeight" oor:type="xs:int">
+        <info>
+          <desc>Specifies the logical height of graphic. [UNIT=1/100 mm].</desc>
+        </info>
+        <constraints>
+          <minInclusive oor:value="100">
+            <info>
+              <desc>Represents the lowest value that can be entered in the
+              dialog.</desc>
+            </info>
+          </minInclusive>
+          <maxInclusive oor:value="99999">
+            <info>
+              <desc>Represents the highest value that can be entered in the
+              dialog.</desc>
+            </info>
+          </maxInclusive>
+        </constraints>
+        <value>10000</value>
+      </prop>
+    </group>
+    <group oor:name="ObjectNames">
+      <info>
+        <deprecated>Replaced by
+        org.openoffice.Office.Embedding/ObjectName.</deprecated>
+        <author>MAV</author>
+        <desc>Deprecated</desc>
+      </info>
+      <prop oor:name="Name" oor:type="xs:string" oor:localized="true">
+        <info>
+          <deprecated/>
+          <author>MAV</author>
+          <desc>Deprecated</desc>
+        </info>
+      </prop>
+      <prop oor:name="Key" oor:type="xs:string">
+        <info>
+          <deprecated/>
+          <author>MAV</author>
+          <desc>Deprecated</desc>
+        </info>
+      </prop>
+    </group>
+    <group oor:name="RecoveryEntry">
+      <info>
+        <author>AS</author>
+        <desc>Specifies an entry of the recovery list which is then used by
+        CrashGuard to save information about the last opened files.</desc>
+      </info>
+      <prop oor:name="URL" oor:type="xs:string">
+        <info>
+          <desc>Specifies an URL that should be recovered after the next Office
+          start.</desc>
+        </info>
+      </prop>
+      <prop oor:name="Filter" oor:type="xs:string">
+        <info>
+          <desc>Specifies a filter that should be used to open the document
+          referenced by the URL property.</desc>
+        </info>
+      </prop>
+      <prop oor:name="TempName" oor:type="xs:string">
+        <info>
+          <desc>Contains the name of the temporary file which represents the
+          document.</desc>
+        </info>
+      </prop>
+    </group>
+    <group oor:name="StartEndCharacters">
+      <info>
+        <author>OS</author>
+        <desc>Contains the characters (so called forbidden characters) that are
+        not allowed at the beginning or end of a line.</desc>
+      </info>
+      <prop oor:name="StartCharacters" oor:type="xs:string">
+        <info>
+          <desc>Contains the characters that are not allowed at the beginning of
+          a line.</desc>
+        </info>
+      </prop>
+      <prop oor:name="EndCharacters" oor:type="xs:string">
+        <info>
+          <desc>Contains the characters that are not allowed at the end of a
+          line.</desc>
+        </info>
+      </prop>
+    </group>
+    <group oor:name="NameCounter">
+      <info>
+        <author>MBA</author>
+        <desc>Stores an association between a numeric value and a name.</desc>
+      </info>
+      <prop oor:name="Name" oor:type="xs:string">
+        <info>
+          <desc>Specifies a name that is associated with a counter.</desc>
+        </info>
+      </prop>
+      <prop oor:name="Counter" oor:type="xs:int">
+        <info>
+          <desc>Specifies a number that is associated with a name.</desc>
+        </info>
+      </prop>
+    </group>
+    <group oor:name="MailCommandLineProfile">
+      <info>
+        <deprecated>Without replacement.</deprecated>
+        <author>OBR</author>
+        <desc>Contains the command line profile for external mail
+        applications.</desc>
+      </info>
+      <group oor:name="FormatStrings">
+        <info>
+          <desc>Contains the different string tokens for "to" and "cc" etc.
+          Addresses will be concatenated to create the command line.</desc>
+        </info>
+        <prop oor:name="base" oor:type="xs:string">
+          <info>
+            <desc>Contains the fixed text (optional) preceding the mail
+            arguments.</desc>
+          </info>
+        </prop>
+        <prop oor:name="from" oor:type="xs:string">
+          <info>
+            <desc>Contains the string token describing the "from" address
+            field.</desc>
+          </info>
+        </prop>
+        <prop oor:name="to" oor:type="xs:string">
+          <info>
+            <desc>Contains the string token describing the "to" address
+            field.</desc>
+          </info>
+        </prop>
+        <prop oor:name="cc" oor:type="xs:string">
+          <info>
+            <desc>Contains the string token describing the "cc" address
+            field.</desc>
+          </info>
+        </prop>
+        <prop oor:name="bcc" oor:type="xs:string">
+          <info>
+            <desc>Contains the string token describing the "bcc" address
+            field.</desc>
+          </info>
+        </prop>
+        <prop oor:name="subject" oor:type="xs:string">
+          <info>
+            <desc>Contains the string token describing the subject.</desc>
+          </info>
+        </prop>
+        <prop oor:name="attachment" oor:type="xs:string">
+          <info>
+            <desc>Contains the string token describing the attachments of the
+            message.</desc>
+          </info>
+        </prop>
+        <prop oor:name="body" oor:type="xs:string">
+          <info>
+            <desc>Contains the string token describing the body of the
+            message.</desc>
+          </info>
+        </prop>
+      </group>
+      <group oor:name="EnumDelimiters">
+        <info>
+          <desc>Contains the delimiters used to separate values for various
+          command line parameters of the external mailer.</desc>
+        </info>
+        <prop oor:name="base" oor:type="xs:string">
+          <info>
+            <desc>Contains the delimiter used between the external mailer name
+            and the "to" field.</desc>
+          </info>
+        </prop>
+        <prop oor:name="cc" oor:type="xs:string">
+          <info>
+            <desc>Contains the delimiters between different cc
+            addressees.</desc>
+          </info>
+        </prop>
+        <prop oor:name="bcc" oor:type="xs:string">
+          <info>
+            <desc>Contains the delimiters between different bcc
+            addressees.</desc>
+          </info>
+        </prop>
+        <prop oor:name="attachment" oor:type="xs:string">
+          <info>
+            <desc>Contains the delimiters between different attachments.</desc>
+          </info>
+        </prop>
+      </group>
+    </group>
+    <group oor:name="JobDescription">
+      <info>
+        <deprecated>Use cfg package Jobs instead of this.</deprecated>
+        <author>AS</author>
+        <desc>Use cfg package Jobs instead of this.</desc>
+      </info>
+      <prop oor:name="ServiceName" oor:type="xs:string">
+        <info>
+          <desc>Use cfg package Jobs instead of this.</desc>
+        </info>
+      </prop>
+      <prop oor:name="UserInteraction" oor:type="xs:boolean">
+        <info>
+          <desc>Use cfg package Jobs instead of this.</desc>
+        </info>
+      </prop>
+      <prop oor:name="AllowAsync" oor:type="xs:boolean">
+        <info>
+          <desc>Use cfg package Jobs instead of this.</desc>
+        </info>
+      </prop>
+      <group oor:name="ExecutionArguments" oor:extensible="true">
+        <info>
+          <desc>Use cfg package Jobs instead of this.</desc>
+        </info>
+      </group>
+    </group>
+    <group oor:name="TrustedAuthor">
+      <info>
+        <author>GT</author>
+        <desc>All Certificate informations needed to handle and identify the
+        signature.</desc>
+      </info>
+      <prop oor:name="SubjectName" oor:type="xs:string">
+        <info>
+          <desc>Subject name of Certificate.</desc>
+        </info>
+      </prop>
+      <prop oor:name="SerialNumber" oor:type="xs:string">
+        <info>
+          <desc>Serial Number of Certificate.</desc>
+        </info>
+      </prop>
+      <prop oor:name="RawData" oor:type="xs:string">
+        <info>
+          <desc>Raw of Certificate.</desc>
+        </info>
+      </prop>
+    </group>
+    <group oor:name="ApplicationControlLayout">
+      <info>
+        <author>FS</author>
+        <desc>specifies, on a per-application-type basis, certain defaults for
+        layouting form controls</desc>
+      </info>
+      <prop oor:name="VisualEffect" oor:type="xs:string" oor:nillable="true">
+        <info>
+          <desc>specifies the default visual effect for form controls</desc>
+        </info>
+        <constraints>
+          <enumeration oor:value="none">
+            <info>
+              <desc>specifies no special visual effect</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="flat">
+            <info>
+              <desc>specifies a flat appearance</desc>
+            </info>
+          </enumeration>
+          <enumeration oor:value="3D">
+            <info>
+              <desc>specifies a 3D appearance</desc>
+            </info>
+          </enumeration>
+        </constraints>
+      </prop>
+      <prop oor:name="DynamicBorderColors" oor:type="xs:boolean">
+        <info>
+          <desc>specifies whether the controls should use dynamic border
+          coloring, if possible. Dymamic border coloring means that when the
+          mouse is hovered over a control, and when a control receives the
+          focus, this is indicated with special border colors.</desc>
+        </info>
+        <value>false</value>
+      </prop>
       <prop oor:name="UseDocumentTextMetrics" oor:type="xs:boolean">
         <info>
-          <desc>
-            controls whether form controls, when they render their text, use the same metrics as the document
-            does. If this is set to &lt;true&gt;, then the control text's appearance better matches the text
-            in the surrounding document.&lt;/p&gt;
-            &lt;p&gt;Technically, documents use a reference device for formatting, which usually has a higher
-            resolution than the actual output device. The option decides whether form controls should use
-            the same reference device as the surrounding document. However, some of OOo's document implementations
-            do not properly use their reference device in all situations, in which case the option might better
-            be disabled.&lt;p&gt;
-          </desc>
+          <desc>controls whether form controls, when they render their text, use
+          the same metrics as the document does. If this is set to &lt;true&gt;,
+          then the control text's appearance better matches the text in the
+          surrounding document.&lt;/p&gt; &lt;p&gt;Technically, documents use a
+          reference device for formatting, which usually has a higher resolution
+          than the actual output device. The option decides whether form
+          controls should use the same reference device as the surrounding
+          document. However, some of OOo's document implementations do not
+          properly use their reference device in all situations, in which case
+          the option might better be disabled.&lt;p&gt;</desc>
+        </info>
+        <value>true</value>
+      </prop>
+    </group>
+    <group oor:name="ProductVersionID">
+      <info>
+        <desc>Stores registration data which is related to a specific product
+        version.</desc>
+      </info>
+      <prop oor:name="InstanceUUID" oor:type="xs:string">
+        <info>
+          <desc>An instance UUID associated with the product version ID.</desc>
+        </info>
+        <value/>
+      </prop>
+    </group>
+  </templates>
+  <component>
+    <group oor:name="InternalMSExport">
+      <info>
+        <author>MAV</author>
+        <desc>Contains internal MSExport settings that are common for all
+        apps.</desc>
+      </info>
+      <prop oor:name="UseOldExport" oor:type="xs:boolean">
+        <info>
+          <desc>Specifies if an old (5.0 format) way instead of a new one (6.0
+          OLE embedded document) should be used for export of inplace objects in
+          case MS-filters are not used for them.</desc>
+        </info>
+        <value>false</value>
+      </prop>
+    </group>
+    <group oor:name="Passwords">
+      <info>
+        <author>MAV</author>
+        <desc>Contains a description of the persistent password
+        container.</desc>
+      </info>
+      <prop oor:name="UseStorage" oor:type="xs:boolean">

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list