[Libreoffice-commits] core.git: 4 commits - codemaker/source framework/inc framework/source framework/util include/osl

Matúš Kukan matus.kukan at collabora.com
Thu Jan 23 02:42:33 PST 2014


 codemaker/source/cppumaker/cpputype.cxx           |    4 
 framework/inc/helper/mischelper.hxx               |    1 
 framework/inc/services/logindialog.hxx            |  750 ----------------------
 framework/inc/services/pathsettings.hxx           |  430 ------------
 framework/source/register/registerlogindialog.cxx |   41 -
 framework/source/register/registerservices.cxx    |    2 
 framework/source/services/pathsettings.cxx        |  461 ++++++++++++-
 framework/util/fwk.component                      |    3 
 include/osl/detail/component-defines.h            |   18 
 9 files changed, 453 insertions(+), 1257 deletions(-)

New commits:
commit 89b0017b22889af6a8afe28b94c06e7095dc8c6f
Author: Matúš Kukan <matus.kukan at collabora.com>
Date:   Thu Jan 9 19:40:02 2014 +0100

    fwk: Use constructor feature for one instance PathSettings.
    
    Change-Id: Iaa01abc9f604d8f9e6f762e3340f9468e19f4848

diff --git a/framework/inc/helper/mischelper.hxx b/framework/inc/helper/mischelper.hxx
index 6689b33..f8fa26f 100644
--- a/framework/inc/helper/mischelper.hxx
+++ b/framework/inc/helper/mischelper.hxx
@@ -27,6 +27,7 @@
 #include <com/sun/star/util/XChangesListener.hpp>
 #include <com/sun/star/container/XContainerListener.hpp>
 #include <com/sun/star/frame/XFrame.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
 
 #include <cppuhelper/implbase1.hxx>
 
diff --git a/framework/inc/services/pathsettings.hxx b/framework/inc/services/pathsettings.hxx
deleted file mode 100644
index fb816c1..0000000
--- a/framework/inc/services/pathsettings.hxx
+++ /dev/null
@@ -1,430 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef INCLUDED_FRAMEWORK_INC_SERVICES_PATHSETTINGS_HXX
-#define INCLUDED_FRAMEWORK_INC_SERVICES_PATHSETTINGS_HXX
-
-#include <threadhelp/threadhelpbase.hxx>
-#include <macros/generic.hxx>
-#include <macros/xinterface.hxx>
-#include <macros/xtypeprovider.hxx>
-#include <macros/xserviceinfo.hxx>
-#include <stdtypes.h>
-#include <properties.h>
-
-#include <com/sun/star/container/XNameAccess.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/lang/XTypeProvider.hpp>
-#include <com/sun/star/util/XStringSubstitution.hpp>
-#include <com/sun/star/util/XChangesListener.hpp>
-#include <com/sun/star/util/XPathSettings.hpp>
-
-#include <cppuhelper/propshlp.hxx>
-#include <cppuhelper/implbase3.hxx>
-#include <unotools/configitem.hxx>
-#include <comphelper/sequenceasvector.hxx>
-
-/* enable it if you wish to migrate old user settings (using the old cfg schema) on demand ....
-   disable it in case only the new schema must be used.
- */
-
-namespace framework
-{
-
-typedef ::cppu::WeakImplHelper3<
-                         css::lang::XServiceInfo,
-                         css::util::XChangesListener,               // => XEventListener
-                         css::util::XPathSettings>                  // => XPropertySet
-        PathSettings_BASE;
-
-class PathSettings : // base classes
-                     // Order is necessary for right initialization!
-                     private ThreadHelpBase                       ,
-                     public  ::cppu::OBroadcastHelper             ,
-                     public  ::cppu::OPropertySetHelper           , // => XPropertySet / XFastPropertySet / XMultiPropertySet
-                     public  PathSettings_BASE
-{
-    struct PathInfo
-    {
-        public:
-
-            PathInfo()
-                : sPathName     ()
-                , lInternalPaths()
-                , lUserPaths    ()
-                , sWritePath    ()
-                , bIsSinglePath (sal_False)
-                , bIsReadonly   (sal_False)
-            {}
-
-            PathInfo(const PathInfo& rCopy)
-            {
-                takeOver(rCopy);
-            }
-
-            void takeOver(const PathInfo& rCopy)
-            {
-                sPathName      = rCopy.sPathName;
-                lInternalPaths = rCopy.lInternalPaths;
-                lUserPaths     = rCopy.lUserPaths;
-                sWritePath     = rCopy.sWritePath;
-                bIsSinglePath  = rCopy.bIsSinglePath;
-                bIsReadonly    = rCopy.bIsReadonly;
-            }
-
-            /// an internal name describing this path
-            OUString sPathName;
-
-            /// contains all paths, which are used internaly - but are not visible for the user.
-            OUStringList lInternalPaths;
-
-            /// contains all paths configured by the user
-            OUStringList lUserPaths;
-
-            /// this special path is used to generate feature depending content there
-            OUString sWritePath;
-
-            /// indicates real single paths, which uses WritePath property only
-            sal_Bool bIsSinglePath;
-
-            /// simple handling of finalized/mandatory states ... => we know one state READONLY only .-)
-            sal_Bool bIsReadonly;
-    };
-
-    typedef BaseHash< PathSettings::PathInfo > PathHash;
-
-    enum EChangeOp
-    {
-        E_UNDEFINED,
-        E_ADDED,
-        E_CHANGED,
-        E_REMOVED
-    };
-
-    // ______________________________________
-    // member
-
-    private:
-
-        /** reference to factory, which has create this instance. */
-        css::uno::Reference< css::uno::XComponentContext > m_xContext;
-
-        /** list of all path variables and her corresponding values. */
-        PathSettings::PathHash m_lPaths;
-
-        /** describes all properties available on our interface.
-            Will be generated on demand based on our path list m_lPaths. */
-        css::uno::Sequence< css::beans::Property > m_lPropDesc;
-
-        /** helper needed to (re-)substitute all internal save path values. */
-        css::uno::Reference< css::util::XStringSubstitution > m_xSubstitution;
-
-        /** provides access to the old configuration schema (which will be migrated on demand). */
-        css::uno::Reference< css::container::XNameAccess > m_xCfgOld;
-
-        /** provides access to the new configuration schema. */
-        css::uno::Reference< css::container::XNameAccess > m_xCfgNew;
-
-        /** helper to listen for configuration changes without ownership cycle problems */
-        css::uno::Reference< css::util::XChangesListener > m_xCfgNewListener;
-
-        ::cppu::OPropertyArrayHelper* m_pPropHelp;
-
-        ::sal_Bool m_bIgnoreEvents;
-
-    // ___________________________________________
-    // interface
-
-    public:
-
-        /** initialize a new instance of this class.
-            Attention: It's necessary for right function of this class, that the order of base
-            classes is the right one. Because we transfer information from one base to another
-            during this ctor runs! */
-        PathSettings(const css::uno::Reference< css::uno::XComponentContext >& xContext);
-
-        /** free all used resources ... if it was not already done. */
-        virtual ~PathSettings();
-
-        /** declaration of XInterface, XTypeProvider, XServiceInfo */
-        DECLARE_XSERVICEINFO
-
-        // XInterface
-        virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& type) throw ( ::com::sun::star::uno::RuntimeException );
-        virtual void SAL_CALL acquire() throw ()
-            { OWeakObject::acquire(); }
-        virtual void SAL_CALL release() throw ()
-            { OWeakObject::release(); }
-
-        // XTypeProvider
-        virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes(  ) throw(::com::sun::star::uno::RuntimeException);
-
-        // css::util::XChangesListener
-        virtual void SAL_CALL changesOccurred(const css::util::ChangesEvent& aEvent) throw (css::uno::RuntimeException);
-
-        // css::lang::XEventListener
-        virtual void SAL_CALL disposing(const css::lang::EventObject& aSource)
-            throw(css::uno::RuntimeException);
-
-        using ::cppu::OPropertySetHelper::disposing;
-
-
-        /**
-         * XPathSettings attribute methods
-         */
-        virtual OUString SAL_CALL getAddin() throw (css::uno::RuntimeException)
-            { return getStringProperty("Addin"); }
-        virtual void SAL_CALL setAddin(const OUString& p1) throw (css::uno::RuntimeException)
-            { setStringProperty("Addin", p1); }
-        virtual OUString SAL_CALL getAutoCorrect() throw (css::uno::RuntimeException)
-            { return getStringProperty("AutoCorrect"); }
-        virtual void SAL_CALL setAutoCorrect(const OUString& p1) throw (css::uno::RuntimeException)
-            { setStringProperty("AutoCorrect", p1); }
-        virtual OUString SAL_CALL getAutoText() throw (css::uno::RuntimeException)
-            { return getStringProperty("AutoText"); }
-        virtual void SAL_CALL setAutoText(const OUString& p1) throw (css::uno::RuntimeException)
-            { setStringProperty("AutoText", p1); }
-        virtual OUString SAL_CALL getBackup() throw (css::uno::RuntimeException)
-            { return getStringProperty("Backup"); }
-        virtual void SAL_CALL setBackup(const OUString& p1) throw (css::uno::RuntimeException)
-            { setStringProperty("Backup", p1); }
-        virtual OUString SAL_CALL getBasic() throw (css::uno::RuntimeException)
-            { return getStringProperty("Basic"); }
-        virtual void SAL_CALL setBasic(const OUString& p1) throw (css::uno::RuntimeException)
-            { setStringProperty("Basic", p1); }
-        virtual OUString SAL_CALL getBitmap() throw (css::uno::RuntimeException)
-            { return getStringProperty("Bitmap"); }
-        virtual void SAL_CALL setBitmap(const OUString& p1) throw (css::uno::RuntimeException)
-            { setStringProperty("Bitmap", p1); }
-        virtual OUString SAL_CALL getConfig() throw (css::uno::RuntimeException)
-            { return getStringProperty("Config"); }
-        virtual void SAL_CALL setConfig(const OUString& p1) throw (css::uno::RuntimeException)
-            { setStringProperty("Config", p1); }
-        virtual OUString SAL_CALL getDictionary() throw (css::uno::RuntimeException)
-            { return getStringProperty("Dictionary"); }
-        virtual void SAL_CALL setDictionary(const OUString& p1) throw (css::uno::RuntimeException)
-            { setStringProperty("Dictionary", p1); }
-        virtual OUString SAL_CALL getFavorite() throw (css::uno::RuntimeException)
-            { return getStringProperty("Favorite"); }
-        virtual void SAL_CALL setFavorite(const OUString& p1) throw (css::uno::RuntimeException)
-            { setStringProperty("Favorite", p1); }
-        virtual OUString SAL_CALL getFilter() throw (css::uno::RuntimeException)
-            { return getStringProperty("Filter"); }
-        virtual void SAL_CALL setFilter(const OUString& p1) throw (css::uno::RuntimeException)
-            { setStringProperty("Filter", p1); }
-        virtual OUString SAL_CALL getGallery() throw (css::uno::RuntimeException)
-            { return getStringProperty("Gallery"); }
-        virtual void SAL_CALL setGallery(const OUString& p1) throw (css::uno::RuntimeException)
-            { setStringProperty("Gallery", p1); }
-        virtual OUString SAL_CALL getGraphic() throw (css::uno::RuntimeException)
-            { return getStringProperty("Graphic"); }
-        virtual void SAL_CALL setGraphic(const OUString& p1) throw (css::uno::RuntimeException)
-            { setStringProperty("Graphic", p1); }
-        virtual OUString SAL_CALL getHelp() throw (css::uno::RuntimeException)
-            { return getStringProperty("Help"); }
-        virtual void SAL_CALL setHelp(const OUString& p1) throw (css::uno::RuntimeException)
-            { setStringProperty("Help", p1); }
-        virtual OUString SAL_CALL getLinguistic() throw (css::uno::RuntimeException)
-            { return getStringProperty("Linguistic"); }
-        virtual void SAL_CALL setLinguistic(const OUString& p1) throw (css::uno::RuntimeException)
-            { setStringProperty("Linguistic", p1); }
-        virtual OUString SAL_CALL getModule() throw (css::uno::RuntimeException)
-            { return getStringProperty("Module"); }
-        virtual void SAL_CALL setModule(const OUString& p1) throw (css::uno::RuntimeException)
-            { setStringProperty("Module", p1); }
-        virtual OUString SAL_CALL getPalette() throw (css::uno::RuntimeException)
-            { return getStringProperty("Palette"); }
-        virtual void SAL_CALL setPalette(const OUString& p1) throw (css::uno::RuntimeException)
-            { setStringProperty("Palette", p1); }
-        virtual OUString SAL_CALL getPlugin() throw (css::uno::RuntimeException)
-            { return getStringProperty("Plugin"); }
-        virtual void SAL_CALL setPlugin(const OUString& p1) throw (css::uno::RuntimeException)
-            { setStringProperty("Plugin", p1); }
-        virtual OUString SAL_CALL getStorage() throw (css::uno::RuntimeException)
-            { return getStringProperty("Storage"); }
-        virtual void SAL_CALL setStorage(const OUString& p1) throw (css::uno::RuntimeException)
-            { setStringProperty("Storage", p1); }
-        virtual OUString SAL_CALL getTemp() throw (css::uno::RuntimeException)
-            { return getStringProperty("Temp"); }
-        virtual void SAL_CALL setTemp(const OUString& p1) throw (css::uno::RuntimeException)
-            { setStringProperty("Temp", p1); }
-        virtual OUString SAL_CALL getTemplate() throw (css::uno::RuntimeException)
-            { return getStringProperty("Template"); }
-        virtual void SAL_CALL setTemplate(const OUString& p1) throw (css::uno::RuntimeException)
-            { setStringProperty("Template", p1); }
-        virtual OUString SAL_CALL getUIConfig() throw (css::uno::RuntimeException)
-            { return getStringProperty("UIConfig"); }
-        virtual void SAL_CALL setUIConfig(const OUString& p1) throw (css::uno::RuntimeException)
-            { setStringProperty("UIConfig", p1); }
-        virtual OUString SAL_CALL getUserConfig() throw (css::uno::RuntimeException)
-            { return getStringProperty("UserConfig"); }
-        virtual void SAL_CALL setUserConfig(const OUString& p1) throw (css::uno::RuntimeException)
-            { setStringProperty("UserConfig", p1); }
-        virtual OUString SAL_CALL getUserDictionary() throw (css::uno::RuntimeException)
-            { return getStringProperty("UserDictionary"); }
-        virtual void SAL_CALL setUserDictionary(const OUString& p1) throw (css::uno::RuntimeException)
-            { setStringProperty("UserDictionary", p1); }
-        virtual OUString SAL_CALL getWork() throw (css::uno::RuntimeException)
-            { return getStringProperty("Work"); }
-        virtual void SAL_CALL setWork(const OUString& p1) throw (css::uno::RuntimeException)
-            { setStringProperty("Work", p1); }
-        virtual OUString SAL_CALL getBasePathShareLayer() throw (css::uno::RuntimeException)
-            { return getStringProperty("UIConfig"); }
-        virtual void SAL_CALL setBasePathShareLayer(const OUString& p1) throw (css::uno::RuntimeException)
-            { setStringProperty("UIConfig", p1); }
-        virtual OUString SAL_CALL getBasePathUserLayer() throw (css::uno::RuntimeException)
-            { return getStringProperty("UserConfig"); }
-        virtual void SAL_CALL setBasePathUserLayer(const OUString& p1) throw (css::uno::RuntimeException)
-            { setStringProperty("UserConfig", p1); }
-
-
-
-        /**
-         * overrides to resolve inheritance ambiguity
-         */
-        virtual void SAL_CALL setPropertyValue(const OUString& p1, const css::uno::Any& p2)
-            throw (css::beans::UnknownPropertyException, css::beans::PropertyVetoException, css::lang::IllegalArgumentException, css::lang::WrappedTargetException, css::uno::RuntimeException)
-            { ::cppu::OPropertySetHelper::setPropertyValue(p1, p2); }
-        virtual css::uno::Any SAL_CALL getPropertyValue(const OUString& p1)
-            throw (com::sun::star::beans::UnknownPropertyException, com::sun::star::lang::WrappedTargetException, com::sun::star::uno::RuntimeException)
-            { return ::cppu::OPropertySetHelper::getPropertyValue(p1); }
-        virtual void SAL_CALL addPropertyChangeListener(const OUString& p1, const css::uno::Reference<css::beans::XPropertyChangeListener>& p2)
-            throw (com::sun::star::beans::UnknownPropertyException, com::sun::star::lang::WrappedTargetException, com::sun::star::uno::RuntimeException)
-            { ::cppu::OPropertySetHelper::addPropertyChangeListener(p1, p2); }
-        virtual void SAL_CALL removePropertyChangeListener(const OUString& p1, const css::uno::Reference<css::beans::XPropertyChangeListener>& p2)
-            throw (com::sun::star::beans::UnknownPropertyException, com::sun::star::lang::WrappedTargetException, com::sun::star::uno::RuntimeException)
-            { ::cppu::OPropertySetHelper::removePropertyChangeListener(p1, p2); }
-        virtual void SAL_CALL addVetoableChangeListener(const OUString& p1, const css::uno::Reference<css::beans::XVetoableChangeListener>& p2)
-            throw (com::sun::star::beans::UnknownPropertyException, com::sun::star::lang::WrappedTargetException, com::sun::star::uno::RuntimeException)
-            { ::cppu::OPropertySetHelper::addVetoableChangeListener(p1, p2); }
-        virtual void SAL_CALL removeVetoableChangeListener(const OUString& p1, const css::uno::Reference<css::beans::XVetoableChangeListener>& p2)
-            throw (com::sun::star::beans::UnknownPropertyException, com::sun::star::lang::WrappedTargetException, com::sun::star::uno::RuntimeException)
-            { ::cppu::OPropertySetHelper::removeVetoableChangeListener(p1, p2); }
-
-
-    // ___________________________________________
-    // helper
-
-    private:
-
-        OUString getStringProperty(const OUString& p1)
-            throw(css::uno::RuntimeException);
-
-        void setStringProperty(const OUString& p1, const OUString& p2)
-            throw(css::uno::RuntimeException);
-
-        /** read all configured paths and create all needed internal structures. */
-        void impl_readAll();
-
-        /** read a path info using the old cfg schema.
-            This is needed for "migration on demand" reasons only.
-            Can be removed for next major release .-) */
-        OUStringList impl_readOldFormat(const OUString& sPath);
-
-        /** read a path info using the new cfg schema. */
-        PathSettings::PathInfo impl_readNewFormat(const OUString& sPath);
-
-        /** filter "real user defined paths" from the old configuration schema
-            and set it as UserPaths on the new schema.
-            Can be removed with new major release ... */
-
-        void impl_mergeOldUserPaths(      PathSettings::PathInfo& rPath,
-                                     const OUStringList&           lOld );
-
-        /** reload one path directly from the new configuration schema (because
-            it was updated by any external code) */
-        PathSettings::EChangeOp impl_updatePath(const OUString& sPath          ,
-                                                      sal_Bool         bNotifyListener);
-
-        /** replace all might existing placeholder variables inside the given path ...
-            or check if the given path value uses paths, which can be replaced with predefined
-            placeholder variables ...
-         */
-        void impl_subst(      OUStringList&                                          lVals   ,
-                        const css::uno::Reference< css::util::XStringSubstitution >& xSubst  ,
-                              sal_Bool                                               bReSubst);
-
-        void impl_subst(PathSettings::PathInfo& aPath   ,
-                        sal_Bool                bReSubst);
-
-
-        /** converts our new string list schema to the old ";" separated schema ... */
-        OUString impl_convertPath2OldStyle(const PathSettings::PathInfo& rPath        ) const;
-        OUStringList    impl_convertOldStyle2Path(const OUString&        sOldStylePath) const;
-
-        /** remove still known paths from the given lList argument.
-            So real user defined paths can be extracted from the list of
-            fix internal paths !
-         */
-        void impl_purgeKnownPaths(const PathSettings::PathInfo& rPath,
-                                         OUStringList&           lList);
-
-        /** rebuild the member m_lPropDesc using the path list m_lPaths. */
-        void impl_rebuildPropertyDescriptor();
-
-        /** provides direct access to the list of path values
-            using it's internal property id.
-         */
-        css::uno::Any impl_getPathValue(      sal_Int32      nID ) const;
-        void          impl_setPathValue(      sal_Int32      nID ,
-                                        const css::uno::Any& aVal);
-
-        /** check the given handle and return the corresponding PathInfo reference.
-            These reference can be used then directly to manipulate these path. */
-              PathSettings::PathInfo* impl_getPathAccess     (sal_Int32 nHandle);
-        const PathSettings::PathInfo* impl_getPathAccessConst(sal_Int32 nHandle) const;
-
-        /** it checks, if the given path value seams to be a valid URL or system path. */
-        sal_Bool impl_isValidPath(const OUString& sPath) const;
-        sal_Bool impl_isValidPath(const OUStringList&    lPath) const;
-
-        void impl_storePath(const PathSettings::PathInfo& aPath);
-
-        css::uno::Sequence< sal_Int32 > impl_mapPathName2IDList(const OUString& sPath);
-
-        void impl_notifyPropListener(      PathSettings::EChangeOp eOp     ,
-                                           const OUString&        sPath   ,
-                                           const PathSettings::PathInfo* pPathOld,
-                                           const PathSettings::PathInfo* pPathNew);
-
-
-        //  OPropertySetHelper
-        virtual sal_Bool                                            SAL_CALL convertFastPropertyValue        (       css::uno::Any&  aConvertedValue ,
-                                                                                                                     css::uno::Any&  aOldValue       ,
-                                                                                                                     sal_Int32       nHandle         ,
-                                                                                                               const css::uno::Any&  aValue          ) throw(css::lang::IllegalArgumentException);
-        virtual void                                                SAL_CALL setFastPropertyValue_NoBroadcast(       sal_Int32       nHandle         ,
-                                                                                                               const css::uno::Any&  aValue          ) throw(css::uno::Exception);
-        using cppu::OPropertySetHelper::getFastPropertyValue;
-        virtual void                                                SAL_CALL getFastPropertyValue            (       css::uno::Any&  aValue          ,
-                                                                                                                     sal_Int32       nHandle         ) const;
-        virtual ::cppu::IPropertyArrayHelper&                       SAL_CALL getInfoHelper                   (                                       );
-        virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo              (                                       ) throw(::css::uno::RuntimeException);
-
-        /** factory methods to guarantee right (but on demand) initialized members ... */
-        css::uno::Reference< css::util::XStringSubstitution > fa_getSubstitution();
-        css::uno::Reference< css::container::XNameAccess >    fa_getCfgOld();
-        css::uno::Reference< css::container::XNameAccess >    fa_getCfgNew();
-};
-
-} // namespace framework
-
-#endif // INCLUDED_FRAMEWORK_INC_SERVICES_PATHSETTINGS_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/framework/source/register/registerservices.cxx b/framework/source/register/registerservices.cxx
index 9b85bf0..a6e0fee 100644
--- a/framework/source/register/registerservices.cxx
+++ b/framework/source/register/registerservices.cxx
@@ -48,7 +48,6 @@
 
 #include <uifactory/windowcontentfactorymanager.hxx>
 #include <services/substitutepathvars.hxx>
-#include <services/pathsettings.hxx>
 #include <services/ContextChangeEventMultiplexer.hxx>
 
 COMPONENTGETFACTORY ( fwk,
@@ -69,7 +68,6 @@ COMPONENTGETFACTORY ( fwk,
                         IFFACTORY( ::framework::TaskCreatorService                      )   else
                         IFFACTORY( ::framework::WindowContentFactoryManager             )   else
                         IFFACTORY( ::framework::SubstitutePathVariables                 )   else
-                        IFFACTORY( ::framework::PathSettings                            )   else
                         IFFACTORY( ::framework::ContextChangeEventMultiplexer           )
             )
 
diff --git a/framework/source/services/pathsettings.cxx b/framework/source/services/pathsettings.cxx
index 904f3bd..472fac3 100644
--- a/framework/source/services/pathsettings.cxx
+++ b/framework/source/services/pathsettings.cxx
@@ -17,14 +17,11 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-/** Attention: stl headers must(!) be included at first. Otherwhise it can make trouble
-               with solaris headers ...
-*/
-#include <vector>
-#include <services/pathsettings.hxx>
 #include <threadhelp/readguard.hxx>
 #include <threadhelp/writeguard.hxx>
-#include <services.h>
+#include <threadhelp/threadhelpbase.hxx>
+#include <properties.h>
+#include <stdtypes.h>
 
 #include "helper/mischelper.hxx"
 
@@ -35,16 +32,26 @@
 #include <com/sun/star/beans/XPropertySet.hpp>
 #include <com/sun/star/util/XChangesNotifier.hpp>
 #include <com/sun/star/util/PathSubstitution.hpp>
+#include <com/sun/star/container/XNameAccess.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/util/XStringSubstitution.hpp>
+#include <com/sun/star/util/XChangesListener.hpp>
+#include <com/sun/star/util/XPathSettings.hpp>
 
 #include <tools/urlobj.hxx>
 #include <rtl/ustrbuf.hxx>
 
+#include <cppuhelper/propshlp.hxx>
+#include <cppuhelper/implbase3.hxx>
+#include <cppuhelper/supportsservice.hxx>
+#include <comphelper/sequence.hxx>
+#include <comphelper/sequenceasvector.hxx>
 #include <comphelper/configurationhelper.hxx>
 #include <comphelper/processfactory.hxx>
+#include <unotools/configitem.hxx>
 #include <unotools/configpaths.hxx>
 
-#include <fwkdllapi.h>
-
+using namespace framework;
 
 #define CFGPROP_USERPATHS "UserPaths"
 #define CFGPROP_WRITEPATH "WritePath"
@@ -60,6 +67,8 @@
 #define POSTFIX_USER_PATHS "_user"
 #define POSTFIX_WRITE_PATH "_writable"
 
+namespace {
+
 const sal_Int32 IDGROUP_OLDSTYLE        = 0;
 const sal_Int32 IDGROUP_INTERNAL_PATHS = 1;
 const sal_Int32 IDGROUP_USER_PATHS     = 2;
@@ -72,31 +81,392 @@ sal_Int32 impl_getPropGroup(sal_Int32 nID)
     return (nID % IDGROUP_COUNT);
 }
 
+/* enable it if you wish to migrate old user settings (using the old cfg schema) on demand ....
+   disable it in case only the new schema must be used.
+ */
 
-namespace framework
+typedef ::cppu::WeakImplHelper3<
+                         css::lang::XServiceInfo,
+                         css::util::XChangesListener,               // => XEventListener
+                         css::util::XPathSettings>                  // => XPropertySet
+        PathSettings_BASE;
+
+class PathSettings : // base classes
+                     // Order is necessary for right initialization!
+                     private ThreadHelpBase                       ,
+                     public  ::cppu::OBroadcastHelper             ,
+                     public  ::cppu::OPropertySetHelper           , // => XPropertySet / XFastPropertySet / XMultiPropertySet
+                     public  PathSettings_BASE
 {
+    struct PathInfo
+    {
+        public:
+
+            PathInfo()
+                : sPathName     ()
+                , lInternalPaths()
+                , lUserPaths    ()
+                , sWritePath    ()
+                , bIsSinglePath (sal_False)
+                , bIsReadonly   (sal_False)
+            {}
+
+            PathInfo(const PathInfo& rCopy)
+            {
+                takeOver(rCopy);
+            }
+
+            void takeOver(const PathInfo& rCopy)
+            {
+                sPathName      = rCopy.sPathName;
+                lInternalPaths = rCopy.lInternalPaths;
+                lUserPaths     = rCopy.lUserPaths;
+                sWritePath     = rCopy.sWritePath;
+                bIsSinglePath  = rCopy.bIsSinglePath;
+                bIsReadonly    = rCopy.bIsReadonly;
+            }
+
+            /// an internal name describing this path
+            OUString sPathName;
+
+            /// contains all paths, which are used internaly - but are not visible for the user.
+            OUStringList lInternalPaths;
+
+            /// contains all paths configured by the user
+            OUStringList lUserPaths;
+
+            /// this special path is used to generate feature depending content there
+            OUString sWritePath;
+
+            /// indicates real single paths, which uses WritePath property only
+            sal_Bool bIsSinglePath;
+
+            /// simple handling of finalized/mandatory states ... => we know one state READONLY only .-)
+            sal_Bool bIsReadonly;
+    };
+
+    typedef BaseHash< PathSettings::PathInfo > PathHash;
+
+    enum EChangeOp
+    {
+        E_UNDEFINED,
+        E_ADDED,
+        E_CHANGED,
+        E_REMOVED
+    };
 
-//-----------------------------------------------------------------------------
-// XInterface, XTypeProvider, XServiceInfo
-
-DEFINE_XSERVICEINFO_ONEINSTANCESERVICE_2(   PathSettings                                            ,
-                                            ::cppu::OWeakObject                                     ,
-                                            "com.sun.star.util.PathSettings"                        ,
-                                            OUString("com.sun.star.comp.framework.PathSettings")
-                                        )
-
-DEFINE_INIT_SERVICE                     (   PathSettings,
-                                            {
-                                                /*Attention
-                                                    I think we don't need any mutex or lock here ... because we are called by our own static method impl_createInstance()
-                                                    to create a new instance of this class by our own supported service factory.
-                                                    see macro DEFINE_XSERVICEINFO_MULTISERVICE and "impl_initService()" for further information!
-                                                */
-
-                                                // fill cache
-                                                impl_readAll();
-                                            }
-                                        )
+private:
+
+    /** reference to factory, which has create this instance. */
+    css::uno::Reference< css::uno::XComponentContext > m_xContext;
+
+    /** list of all path variables and her corresponding values. */
+    PathSettings::PathHash m_lPaths;
+
+    /** describes all properties available on our interface.
+        Will be generated on demand based on our path list m_lPaths. */
+    css::uno::Sequence< css::beans::Property > m_lPropDesc;
+
+    /** helper needed to (re-)substitute all internal save path values. */
+    css::uno::Reference< css::util::XStringSubstitution > m_xSubstitution;
+
+    /** provides access to the old configuration schema (which will be migrated on demand). */
+    css::uno::Reference< css::container::XNameAccess > m_xCfgOld;
+
+    /** provides access to the new configuration schema. */
+    css::uno::Reference< css::container::XNameAccess > m_xCfgNew;
+
+    /** helper to listen for configuration changes without ownership cycle problems */
+    css::uno::Reference< css::util::XChangesListener > m_xCfgNewListener;
+
+    ::cppu::OPropertyArrayHelper* m_pPropHelp;
+
+    ::sal_Bool m_bIgnoreEvents;
+
+public:
+
+    /** initialize a new instance of this class.
+        Attention: It's necessary for right function of this class, that the order of base
+        classes is the right one. Because we transfer information from one base to another
+        during this ctor runs! */
+    PathSettings(const css::uno::Reference< css::uno::XComponentContext >& xContext);
+
+    /** free all used resources ... if it was not already done. */
+    virtual ~PathSettings();
+
+    virtual OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException)
+    {
+        return OUString("com.sun.star.comp.framework.PathSettings");
+    }
+
+    virtual sal_Bool SAL_CALL supportsService(OUString const & ServiceName)
+        throw (css::uno::RuntimeException)
+    {
+        return cppu::supportsService(this, ServiceName);
+    }
+
+    virtual css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames()
+        throw (css::uno::RuntimeException)
+    {
+        css::uno::Sequence< OUString > aSeq(1);
+        aSeq[0] = OUString("com.sun.star.util.PathSettings");
+        return aSeq;
+    }
+
+    // XInterface
+    virtual ::css::uno::Any SAL_CALL queryInterface( const ::css::uno::Type& type) throw ( ::css::uno::RuntimeException );
+    virtual void SAL_CALL acquire() throw ()
+        { OWeakObject::acquire(); }
+    virtual void SAL_CALL release() throw ()
+        { OWeakObject::release(); }
+
+    // XTypeProvider
+    virtual ::css::uno::Sequence< ::css::uno::Type > SAL_CALL getTypes(  ) throw(::css::uno::RuntimeException);
+
+    // css::util::XChangesListener
+    virtual void SAL_CALL changesOccurred(const css::util::ChangesEvent& aEvent) throw (css::uno::RuntimeException);
+
+    // css::lang::XEventListener
+    virtual void SAL_CALL disposing(const css::lang::EventObject& aSource)
+        throw(css::uno::RuntimeException);
+
+    using ::cppu::OPropertySetHelper::disposing;
+
+
+    /**
+     * XPathSettings attribute methods
+     */
+    virtual OUString SAL_CALL getAddin() throw (css::uno::RuntimeException)
+        { return getStringProperty("Addin"); }
+    virtual void SAL_CALL setAddin(const OUString& p1) throw (css::uno::RuntimeException)
+        { setStringProperty("Addin", p1); }
+    virtual OUString SAL_CALL getAutoCorrect() throw (css::uno::RuntimeException)
+        { return getStringProperty("AutoCorrect"); }
+    virtual void SAL_CALL setAutoCorrect(const OUString& p1) throw (css::uno::RuntimeException)
+        { setStringProperty("AutoCorrect", p1); }
+    virtual OUString SAL_CALL getAutoText() throw (css::uno::RuntimeException)
+        { return getStringProperty("AutoText"); }
+    virtual void SAL_CALL setAutoText(const OUString& p1) throw (css::uno::RuntimeException)
+        { setStringProperty("AutoText", p1); }
+    virtual OUString SAL_CALL getBackup() throw (css::uno::RuntimeException)
+        { return getStringProperty("Backup"); }
+    virtual void SAL_CALL setBackup(const OUString& p1) throw (css::uno::RuntimeException)
+        { setStringProperty("Backup", p1); }
+    virtual OUString SAL_CALL getBasic() throw (css::uno::RuntimeException)
+        { return getStringProperty("Basic"); }
+    virtual void SAL_CALL setBasic(const OUString& p1) throw (css::uno::RuntimeException)
+        { setStringProperty("Basic", p1); }
+    virtual OUString SAL_CALL getBitmap() throw (css::uno::RuntimeException)
+        { return getStringProperty("Bitmap"); }
+    virtual void SAL_CALL setBitmap(const OUString& p1) throw (css::uno::RuntimeException)
+        { setStringProperty("Bitmap", p1); }
+    virtual OUString SAL_CALL getConfig() throw (css::uno::RuntimeException)
+        { return getStringProperty("Config"); }
+    virtual void SAL_CALL setConfig(const OUString& p1) throw (css::uno::RuntimeException)
+        { setStringProperty("Config", p1); }
+    virtual OUString SAL_CALL getDictionary() throw (css::uno::RuntimeException)
+        { return getStringProperty("Dictionary"); }
+    virtual void SAL_CALL setDictionary(const OUString& p1) throw (css::uno::RuntimeException)
+        { setStringProperty("Dictionary", p1); }
+    virtual OUString SAL_CALL getFavorite() throw (css::uno::RuntimeException)
+        { return getStringProperty("Favorite"); }
+    virtual void SAL_CALL setFavorite(const OUString& p1) throw (css::uno::RuntimeException)
+        { setStringProperty("Favorite", p1); }
+    virtual OUString SAL_CALL getFilter() throw (css::uno::RuntimeException)
+        { return getStringProperty("Filter"); }
+    virtual void SAL_CALL setFilter(const OUString& p1) throw (css::uno::RuntimeException)
+        { setStringProperty("Filter", p1); }
+    virtual OUString SAL_CALL getGallery() throw (css::uno::RuntimeException)
+        { return getStringProperty("Gallery"); }
+    virtual void SAL_CALL setGallery(const OUString& p1) throw (css::uno::RuntimeException)
+        { setStringProperty("Gallery", p1); }
+    virtual OUString SAL_CALL getGraphic() throw (css::uno::RuntimeException)
+        { return getStringProperty("Graphic"); }
+    virtual void SAL_CALL setGraphic(const OUString& p1) throw (css::uno::RuntimeException)
+        { setStringProperty("Graphic", p1); }
+    virtual OUString SAL_CALL getHelp() throw (css::uno::RuntimeException)
+        { return getStringProperty("Help"); }
+    virtual void SAL_CALL setHelp(const OUString& p1) throw (css::uno::RuntimeException)
+        { setStringProperty("Help", p1); }
+    virtual OUString SAL_CALL getLinguistic() throw (css::uno::RuntimeException)
+        { return getStringProperty("Linguistic"); }
+    virtual void SAL_CALL setLinguistic(const OUString& p1) throw (css::uno::RuntimeException)
+        { setStringProperty("Linguistic", p1); }
+    virtual OUString SAL_CALL getModule() throw (css::uno::RuntimeException)
+        { return getStringProperty("Module"); }
+    virtual void SAL_CALL setModule(const OUString& p1) throw (css::uno::RuntimeException)
+        { setStringProperty("Module", p1); }
+    virtual OUString SAL_CALL getPalette() throw (css::uno::RuntimeException)
+        { return getStringProperty("Palette"); }
+    virtual void SAL_CALL setPalette(const OUString& p1) throw (css::uno::RuntimeException)
+        { setStringProperty("Palette", p1); }
+    virtual OUString SAL_CALL getPlugin() throw (css::uno::RuntimeException)
+        { return getStringProperty("Plugin"); }
+    virtual void SAL_CALL setPlugin(const OUString& p1) throw (css::uno::RuntimeException)
+        { setStringProperty("Plugin", p1); }
+    virtual OUString SAL_CALL getStorage() throw (css::uno::RuntimeException)
+        { return getStringProperty("Storage"); }
+    virtual void SAL_CALL setStorage(const OUString& p1) throw (css::uno::RuntimeException)
+        { setStringProperty("Storage", p1); }
+    virtual OUString SAL_CALL getTemp() throw (css::uno::RuntimeException)
+        { return getStringProperty("Temp"); }
+    virtual void SAL_CALL setTemp(const OUString& p1) throw (css::uno::RuntimeException)
+        { setStringProperty("Temp", p1); }
+    virtual OUString SAL_CALL getTemplate() throw (css::uno::RuntimeException)
+        { return getStringProperty("Template"); }
+    virtual void SAL_CALL setTemplate(const OUString& p1) throw (css::uno::RuntimeException)
+        { setStringProperty("Template", p1); }
+    virtual OUString SAL_CALL getUIConfig() throw (css::uno::RuntimeException)
+        { return getStringProperty("UIConfig"); }
+    virtual void SAL_CALL setUIConfig(const OUString& p1) throw (css::uno::RuntimeException)
+        { setStringProperty("UIConfig", p1); }
+    virtual OUString SAL_CALL getUserConfig() throw (css::uno::RuntimeException)
+        { return getStringProperty("UserConfig"); }
+    virtual void SAL_CALL setUserConfig(const OUString& p1) throw (css::uno::RuntimeException)
+        { setStringProperty("UserConfig", p1); }
+    virtual OUString SAL_CALL getUserDictionary() throw (css::uno::RuntimeException)
+        { return getStringProperty("UserDictionary"); }
+    virtual void SAL_CALL setUserDictionary(const OUString& p1) throw (css::uno::RuntimeException)
+        { setStringProperty("UserDictionary", p1); }
+    virtual OUString SAL_CALL getWork() throw (css::uno::RuntimeException)
+        { return getStringProperty("Work"); }
+    virtual void SAL_CALL setWork(const OUString& p1) throw (css::uno::RuntimeException)
+        { setStringProperty("Work", p1); }
+    virtual OUString SAL_CALL getBasePathShareLayer() throw (css::uno::RuntimeException)
+        { return getStringProperty("UIConfig"); }
+    virtual void SAL_CALL setBasePathShareLayer(const OUString& p1) throw (css::uno::RuntimeException)
+        { setStringProperty("UIConfig", p1); }
+    virtual OUString SAL_CALL getBasePathUserLayer() throw (css::uno::RuntimeException)
+        { return getStringProperty("UserConfig"); }
+    virtual void SAL_CALL setBasePathUserLayer(const OUString& p1) throw (css::uno::RuntimeException)
+        { setStringProperty("UserConfig", p1); }
+
+
+
+    /**
+     * overrides to resolve inheritance ambiguity
+     */
+    virtual void SAL_CALL setPropertyValue(const OUString& p1, const css::uno::Any& p2)
+        throw (css::beans::UnknownPropertyException, css::beans::PropertyVetoException, css::lang::IllegalArgumentException, css::lang::WrappedTargetException, css::uno::RuntimeException)
+        { ::cppu::OPropertySetHelper::setPropertyValue(p1, p2); }
+    virtual css::uno::Any SAL_CALL getPropertyValue(const OUString& p1)
+        throw (css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException)
+        { return ::cppu::OPropertySetHelper::getPropertyValue(p1); }
+    virtual void SAL_CALL addPropertyChangeListener(const OUString& p1, const css::uno::Reference<css::beans::XPropertyChangeListener>& p2)
+        throw (css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException)
+        { ::cppu::OPropertySetHelper::addPropertyChangeListener(p1, p2); }
+    virtual void SAL_CALL removePropertyChangeListener(const OUString& p1, const css::uno::Reference<css::beans::XPropertyChangeListener>& p2)
+        throw (css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException)
+        { ::cppu::OPropertySetHelper::removePropertyChangeListener(p1, p2); }
+    virtual void SAL_CALL addVetoableChangeListener(const OUString& p1, const css::uno::Reference<css::beans::XVetoableChangeListener>& p2)
+        throw (css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException)
+        { ::cppu::OPropertySetHelper::addVetoableChangeListener(p1, p2); }
+    virtual void SAL_CALL removeVetoableChangeListener(const OUString& p1, const css::uno::Reference<css::beans::XVetoableChangeListener>& p2)
+        throw (css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException)
+        { ::cppu::OPropertySetHelper::removeVetoableChangeListener(p1, p2); }
+
+    /** read all configured paths and create all needed internal structures. */
+    void impl_readAll();
+
+private:
+
+    OUString getStringProperty(const OUString& p1)
+        throw(css::uno::RuntimeException);
+
+    void setStringProperty(const OUString& p1, const OUString& p2)
+        throw(css::uno::RuntimeException);
+
+    /** read a path info using the old cfg schema.
+        This is needed for "migration on demand" reasons only.
+        Can be removed for next major release .-) */
+    OUStringList impl_readOldFormat(const OUString& sPath);
+
+    /** read a path info using the new cfg schema. */
+    PathSettings::PathInfo impl_readNewFormat(const OUString& sPath);
+
+    /** filter "real user defined paths" from the old configuration schema
+        and set it as UserPaths on the new schema.
+        Can be removed with new major release ... */
+
+    void impl_mergeOldUserPaths(      PathSettings::PathInfo& rPath,
+                                 const OUStringList&           lOld );
+
+    /** reload one path directly from the new configuration schema (because
+        it was updated by any external code) */
+    PathSettings::EChangeOp impl_updatePath(const OUString& sPath          ,
+                                                  sal_Bool         bNotifyListener);
+
+    /** replace all might existing placeholder variables inside the given path ...
+        or check if the given path value uses paths, which can be replaced with predefined
+        placeholder variables ...
+     */
+    void impl_subst(      OUStringList&                                          lVals   ,
+                    const css::uno::Reference< css::util::XStringSubstitution >& xSubst  ,
+                          sal_Bool                                               bReSubst);
+
+    void impl_subst(PathSettings::PathInfo& aPath   ,
+                    sal_Bool                bReSubst);
+
+
+    /** converts our new string list schema to the old ";" separated schema ... */
+    OUString impl_convertPath2OldStyle(const PathSettings::PathInfo& rPath        ) const;
+    OUStringList    impl_convertOldStyle2Path(const OUString&        sOldStylePath) const;
+
+    /** remove still known paths from the given lList argument.
+        So real user defined paths can be extracted from the list of
+        fix internal paths !
+     */
+    void impl_purgeKnownPaths(const PathSettings::PathInfo& rPath,
+                                     OUStringList&           lList);
+
+    /** rebuild the member m_lPropDesc using the path list m_lPaths. */
+    void impl_rebuildPropertyDescriptor();
+
+    /** provides direct access to the list of path values
+        using it's internal property id.
+     */
+    css::uno::Any impl_getPathValue(      sal_Int32      nID ) const;
+    void          impl_setPathValue(      sal_Int32      nID ,
+                                    const css::uno::Any& aVal);
+
+    /** check the given handle and return the corresponding PathInfo reference.
+        These reference can be used then directly to manipulate these path. */
+          PathSettings::PathInfo* impl_getPathAccess     (sal_Int32 nHandle);
+    const PathSettings::PathInfo* impl_getPathAccessConst(sal_Int32 nHandle) const;
+
+    /** it checks, if the given path value seams to be a valid URL or system path. */
+    sal_Bool impl_isValidPath(const OUString& sPath) const;
+    sal_Bool impl_isValidPath(const OUStringList&    lPath) const;
+
+    void impl_storePath(const PathSettings::PathInfo& aPath);
+
+    css::uno::Sequence< sal_Int32 > impl_mapPathName2IDList(const OUString& sPath);
+
+    void impl_notifyPropListener(      PathSettings::EChangeOp eOp     ,
+                                       const OUString&        sPath   ,
+                                       const PathSettings::PathInfo* pPathOld,
+                                       const PathSettings::PathInfo* pPathNew);
+
+
+    //  OPropertySetHelper
+    virtual sal_Bool                                            SAL_CALL convertFastPropertyValue        (       css::uno::Any&  aConvertedValue ,
+                                                                                                                 css::uno::Any&  aOldValue       ,
+                                                                                                                 sal_Int32       nHandle         ,
+                                                                                                           const css::uno::Any&  aValue          ) throw(css::lang::IllegalArgumentException);
+    virtual void                                                SAL_CALL setFastPropertyValue_NoBroadcast(       sal_Int32       nHandle         ,
+                                                                                                           const css::uno::Any&  aValue          ) throw(css::uno::Exception);
+    using cppu::OPropertySetHelper::getFastPropertyValue;
+    virtual void                                                SAL_CALL getFastPropertyValue            (       css::uno::Any&  aValue          ,
+                                                                                                                 sal_Int32       nHandle         ) const;
+    virtual ::cppu::IPropertyArrayHelper&                       SAL_CALL getInfoHelper                   (                                       );
+    virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo              (                                       ) throw(::css::uno::RuntimeException);
+
+    /** factory methods to guarantee right (but on demand) initialized members ... */
+    css::uno::Reference< css::util::XStringSubstitution > fa_getSubstitution();
+    css::uno::Reference< css::container::XNameAccess >    fa_getCfgOld();
+    css::uno::Reference< css::container::XNameAccess >    fa_getCfgNew();
+};
 
 //-----------------------------------------------------------------------------
 PathSettings::PathSettings( const css::uno::Reference< css::uno::XComponentContext >& xContext )
@@ -1154,6 +1524,35 @@ css::uno::Reference< css::container::XNameAccess > PathSettings::fa_getCfgNew()
     return xCfg;
 }
 
-} // namespace framework
+struct Instance {
+    explicit Instance(
+        css::uno::Reference<css::uno::XComponentContext> const & context):
+        instance(
+            static_cast<cppu::OWeakObject *>(new PathSettings(context)))
+    {
+        // fill cache
+        static_cast<PathSettings *>(static_cast<cppu::OWeakObject *>
+                (instance.get()))->impl_readAll();
+    }
+
+    css::uno::Reference<css::uno::XInterface> instance;
+};
+
+struct Singleton:
+    public rtl::StaticWithArg<
+        Instance, css::uno::Reference<css::uno::XComponentContext>, Singleton>
+{};
+
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+com_sun_star_comp_framework_PathSettings_get_implementation(
+    css::uno::XComponentContext *context,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    css::uno::XInterface *inst = Singleton::get(context).instance.get();
+    inst->acquire();
+    return inst;
+}
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/framework/util/fwk.component b/framework/util/fwk.component
index 336052e..e08b966 100644
--- a/framework/util/fwk.component
+++ b/framework/util/fwk.component
@@ -90,7 +90,8 @@
       constructor="com_sun_star_comp_framework_ObjectMenuController_get_implementation">
     <service name="com.sun.star.frame.PopupMenuController"/>
   </implementation>
-  <implementation name="com.sun.star.comp.framework.PathSettings">
+  <implementation name="com.sun.star.comp.framework.PathSettings"
+      constructor="com_sun_star_comp_framework_PathSettings_get_implementation">
     <service name="com.sun.star.util.PathSettings"/>
   </implementation>
   <implementation name="com.sun.star.comp.framework.PathSubstitution">
commit 22832569e1436171b8707be36365d9bdb7857c62
Author: Matúš Kukan <matus.kukan at collabora.com>
Date:   Wed Jan 22 19:57:09 2014 +0100

    Do not acquire again in direct constructor function calls.
    
    Missing in c2c530da69152ff9192b9726aa95961803ce9b29 "Introduce static
    inline cppu::acquire(), and make use of that."
    
    Change-Id: I4a856eeaff1fce3f429c62c1897fe3898371d1ec

diff --git a/codemaker/source/cppumaker/cpputype.cxx b/codemaker/source/cppumaker/cpputype.cxx
index 4dbfd3a..d3898d9 100644
--- a/codemaker/source/cppumaker/cpputype.cxx
+++ b/codemaker/source/cppumaker/cpputype.cxx
@@ -3463,7 +3463,7 @@ void ServiceType::dumpHxxFile(
                       "LO_URE_CTOR_FUN_")
                   << name_.replaceAll(".", "_dot_")
                   << (")(the_context.get(), ::css::uno::Sequence<"
-                      " ::css::uno::Any >()))),"
+                      " ::css::uno::Any >())), ::SAL_NO_ACQUIRE),"
                       " ::css::uno::UNO_QUERY);\n#else\n")
                   << indent() << "the_instance = ::css::uno::Reference< "
                   << scopedBaseName
@@ -3606,7 +3606,7 @@ void ServiceType::dumpHxxFile(
                 } else {
                     o << "the_arguments";
                 }
-                o << "))), ::css::uno::UNO_QUERY);\n" << indent()
+                o << ")), ::SAL_NO_ACQUIRE), ::css::uno::UNO_QUERY);\n" << indent()
                   << ("::css::uno::Reference< ::css::lang::XInitialization > "
                       "init(the_instance, ::css::uno::UNO_QUERY);\n")
                   << indent() << "if (init.is()) {\n"
commit 747ef9b682679272237698ad882729ec185126ce
Author: Matúš Kukan <matus.kukan at collabora.com>
Date:   Wed Jan 22 18:45:12 2014 +0100

    framework: Bin unused source files.
    
    Change-Id: Ifd9d9b7237d148c4bc0d3abd787983f27e2104f8

diff --git a/framework/inc/services/logindialog.hxx b/framework/inc/services/logindialog.hxx
deleted file mode 100644
index ccdb33d..0000000
--- a/framework/inc/services/logindialog.hxx
+++ /dev/null
@@ -1,750 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef INCLUDED_FRAMEWORK_INC_SERVICES_LOGINDIALOG_HXX
-#define INCLUDED_FRAMEWORK_INC_SERVICES_LOGINDIALOG_HXX
-
-#include <threadhelp/threadhelpbase.hxx>
-#include <macros/generic.hxx>
-#include <macros/xinterface.hxx>
-#include <macros/xtypeprovider.hxx>
-#include <macros/xserviceinfo.hxx>
-
-#include <services/logindialog.hrc>
-
-#include <com/sun/star/awt/XDialog.hpp>
-#include <com/sun/star/lang/IllegalArgumentException.hpp>
-#include <com/sun/star/beans/XPropertySetInfo.hpp>
-#include <com/sun/star/beans/Property.hpp>
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <com/sun/star/lang/Locale.hpp>
-#include <com/sun/star/util/XFlushable.hpp>
-
-#include <tools/config.hxx>
-#include <cppuhelper/weak.hxx>
-#include <cppuhelper/propshlp.hxx>
-#include <vcl/dialog.hxx>
-#include <vcl/fixed.hxx>
-#include <vcl/edit.hxx>
-#include <vcl/combobox.hxx>
-#include <vcl/button.hxx>
-#include <vcl/morebtn.hxx>
-
-namespace framework{
-
-#ifdef WNT
-    #define ININAME                             DECLARE_ASCII("login.ini")
-#elif defined UNIX
-    #define ININAME                             DECLARE_ASCII("loginrc")
-#else
-    #error "name of login profile unknown!"
-#endif
-
-#define UNCPATHSEPARATOR                        sal_Unicode(0x002F)
-
-//  Use follow keys in follow order.
-//  [Global]
-//  UserName=as
-//  ActiveServer=2
-//  ConnectionType=https
-//  Language=en-US
-//  UseProxy=[browser|custom|none]
-//  SecurityProxy=so-webcache:3128
-//  dialog=[big|small]
-//  [DefaultPorts]
-//  https=8445
-//  http=8090
-//  [ServerHistory]
-//  Server_1=localhost
-//  Server_2=munch:7202
-//  Server_3=www.xxx.com:8000
-
-#define SECTION_GLOBAL                          "Global"
-#define SECTION_DEFAULTPORTS                    "DefaultPorts"
-#define SECTION_SERVERHISTORY                   "ServerHistory"
-
-struct tIMPL_DialogData
-{
-    OUString         sUserName               ;
-    OUString         sPassword               ;
-    css::uno::Sequence< OUString > seqServerList;
-    sal_Int32               nActiveServer           ;
-    OUString         sConnectionType         ;
-    css::lang::Locale       aLanguage               ;
-    sal_Int32               nPortHttp               ;
-    sal_Int32               nPortHttps              ;
-    css::uno::Any           aParentWindow           ;
-    OUString         sSecurityProxy          ;
-    OUString         sUseProxy               ;
-    OUString         sDialog                 ;
-    sal_Bool                bProxyChanged           ;
-
-    // default ctor to initialize empty structure.
-    tIMPL_DialogData()
-        :   sUserName               ( OUString()                     )
-        ,   sPassword               ( OUString()                     )
-        ,   seqServerList           ( css::uno::Sequence< OUString >() )
-        ,   nActiveServer           ( 1                                     )
-        ,   sConnectionType         ( OUString()                     )
-        ,   aLanguage               ( OUString(), OUString(), OUString() )
-        ,   nPortHttp               ( 0                                     )
-        ,   nPortHttps              ( 0                                     )
-        ,   aParentWindow           (                                       )
-        ,   sSecurityProxy          ( OUString()                     )
-        ,   sUseProxy               ( OUString()                     )
-        ,   sDialog                 ( OUString()                     )
-        ,   bProxyChanged           ( sal_False                             )
-    {
-    }
-
-    // copy ctor to initialize structure with values from another one.
-    tIMPL_DialogData( const tIMPL_DialogData& aCopyDataSet )
-        :   sUserName               ( aCopyDataSet.sUserName                )
-        ,   sPassword               ( aCopyDataSet.sPassword                )
-        ,   seqServerList           ( aCopyDataSet.seqServerList            )
-        ,   nActiveServer           ( aCopyDataSet.nActiveServer            )
-        ,   sConnectionType         ( aCopyDataSet.sConnectionType          )
-        ,   aLanguage               ( aCopyDataSet.aLanguage                )
-        ,   nPortHttp               ( aCopyDataSet.nPortHttp                )
-        ,   nPortHttps              ( aCopyDataSet.nPortHttps               )
-        ,   aParentWindow           ( aCopyDataSet.aParentWindow            )
-        ,   sSecurityProxy          ( aCopyDataSet.sSecurityProxy           )
-        ,   sUseProxy               ( aCopyDataSet.sUseProxy                )
-        ,   sDialog                 ( aCopyDataSet.sDialog                  )
-        ,   bProxyChanged           ( aCopyDataSet.bProxyChanged            )
-    {
-    }
-
-    // assignment operator to cop values from another struct to this one.
-    tIMPL_DialogData& operator=( const tIMPL_DialogData& aCopyDataSet )
-    {
-        sUserName               = aCopyDataSet.sUserName                ;
-        sPassword               = aCopyDataSet.sPassword                ;
-        seqServerList           = aCopyDataSet.seqServerList            ;
-        nActiveServer           = aCopyDataSet.nActiveServer            ;
-        sConnectionType         = aCopyDataSet.sConnectionType          ;
-        aLanguage               = aCopyDataSet.aLanguage                ;
-        nPortHttp               = aCopyDataSet.nPortHttp                ;
-        nPortHttps              = aCopyDataSet.nPortHttps               ;
-        aParentWindow           = aCopyDataSet.aParentWindow            ;
-        sSecurityProxy          = aCopyDataSet.sSecurityProxy           ;
-        sUseProxy               = aCopyDataSet.sUseProxy                ;
-        sDialog                 = aCopyDataSet.sDialog                  ;
-        bProxyChanged           = aCopyDataSet.bProxyChanged            ;
-        return *this;
-    }
-};
-
-/*-************************************************************************************************************//**
-    @short      implements an "private inline" dialog class used by follow class LoginDialog to show the dialog
-    @descr      This is a VCL- modal dialog and not threadsafe! We use it as private definition in the context of login dialog only!
-
-    @implements -
-
-    @base       ModalDialog
-*//*-*************************************************************************************************************/
-
-class cIMPL_Dialog  :   public ModalDialog
-{
-    //-------------------------------------------------------------------------------------------------------------
-    //  public methods
-    //-------------------------------------------------------------------------------------------------------------
-
-    public:
-
-        /*-****************************************************************************************************//**
-            @short      default ctor
-            @descr      This ctor initialize the dialog, load resources but not set values on edits or check boxes!
-                        These is implemented by setValues() on the same class.
-                        You must give us a language identifier to describe which resource should be used!
-
-            @seealso    method setValues()
-
-            @param      "aLanguage" , identifier to describe resource language
-            @param      "pParent"   , parent window handle for dialog! If is it NULL -> no parent exist ...
-            @return     -
-
-            @onerror    -
-        *//*-*****************************************************************************************************/
-
-        cIMPL_Dialog( css::lang::Locale aLocale, Window* pParent );
-
-        /*-****************************************************************************************************//**
-            @short      default dtor
-            @descr      This dtor deinitialize the dialog and free all used resources.
-                        But you can't get the values of the dialog. Use getValues() to do this.
-
-            @seealso    method getValues()
-
-            @param      -
-            @return     -
-
-            @onerror    -
-        *//*-*****************************************************************************************************/
-
-        ~cIMPL_Dialog();
-
-        /*-****************************************************************************************************//**
-            @short      set new values on dialog to show
-            @descr      Use this to initialize the dialg with new values for showing before execute.
-
-            @seealso    method getValues()
-
-            @param      "aDataSet"; struct of variables to set it on dialog controls
-            @return     -
-
-            @onerror    -
-        *//*-*****************************************************************************************************/
-
-        void setValues( const tIMPL_DialogData& aDataSet );
-
-        /*-****************************************************************************************************//**
-            @short      get current values from dialog controls
-            @descr      Use this if you will get all values of dialog after execute.
-
-            @seealso    method setValues()
-
-            @param      "aDataSet"; struct of variables filled by dialog
-            @return     -
-
-            @onerror    -
-        *//*-*****************************************************************************************************/
-
-        tIMPL_DialogData getValues();
-
-        /*-****************************************************************************************************/
-        /* handler
-        */
-
-        DECL_LINK( ClickHdl, void* );
-
-    //-------------------------------------------------------------------------------------------------------------
-    //  private methods
-    //-------------------------------------------------------------------------------------------------------------
-
-    private:
-        void            setCustomSettings();
-
-        void            showDialogExpanded();
-        void            showDialogCollapsed();
-
-        /*-****************************************************************************************************//**
-            @short      get a host and port from a concated string form <host>:<port>
-
-            @param      "aProxyHostPort" ; a string with the following format <host>:<port>
-            @param      "aHost"          ; a host string
-            @param      "aPort"          ; a port string
-            @return     -
-
-            @onerror    -
-        *//*-*****************************************************************************************************/
-
-        void            getProxyHostPort( const OUString& aProxyHostPort, OUString& aHost, OUString& aPort );
-
-        /*-****************************************************************************************************//**
-            @short      get a resource for given id from right resource file
-            @descr      This dialog need his own resource. We can't use the global resource manager!
-                        We must use our own.
-                        You must give us the resource language. If no right resource could be found -
-                        any  existing one is used automaticly!
-
-            @seealso    method setValues()
-
-            @param      "nId"       ; id to convert it in right resource id
-            @param      "aLanguage" ; type of resource language
-            @return     -
-
-            @onerror    -
-        *//*-*****************************************************************************************************/
-
-        static ResId impl_getResId( sal_uInt16      nId         ,
-                                    css::lang::Locale  aLocale );
-
-    //-------------------------------------------------------------------------------------------------------------
-    //  private member
-    //-------------------------------------------------------------------------------------------------------------
-
-    private:
-
-        FixedImage          m_imageHeader               ;
-        FixedText           m_textLoginText             ;
-        FixedText           m_textUserName              ;
-        Edit                m_editUserName              ;
-        FixedText           m_textPassword              ;
-        Edit                m_editPassword              ;
-        FixedLine           m_fixedLineServer           ;
-        FixedText           m_textServer                ;
-        ComboBox            m_comboServer               ;
-        FixedLine           m_fixedLineProxySettings    ;
-        RadioButton         m_radioNoProxy              ;
-        RadioButton         m_radioBrowserProxy         ;
-        RadioButton         m_radioCustomProxy          ;
-        FixedText           m_textSecurityProxy         ;
-        FixedText           m_textSecurityProxyHost     ;
-        Edit                m_editSecurityProxyHost     ;
-        FixedText           m_textSecurityProxyPort     ;
-        Edit                m_editSecurityProxyPort     ;
-        FixedLine           m_fixedLineButtons          ;
-        OKButton            m_buttonOK                  ;
-        CancelButton        m_buttonCancel              ;
-        PushButton          m_buttonAdditionalSettings  ;
-        Size                m_expandedDialogSize        ;
-        Size                m_collapsedDialogSize       ;
-        Point               m_expOKButtonPos            ;
-        Point               m_expCancelButtonPos        ;
-        Point               m_expAdditionalButtonPos    ;
-        Point               m_colOKButtonPos            ;
-        Point               m_colCancelButtonPos        ;
-        Point               m_colAdditionalButtonPos    ;
-        OUString     m_colButtonAddText          ;
-        OUString     m_expButtonAddText          ;
-        tIMPL_DialogData    m_aDataSet                  ;
-};
-
-/*-************************************************************************************************************//**
-    @short
-
-    @descr      -
-
-    @implements XInterface
-                XTypeProvider
-                XServiceInfo
-                XDialog
-
-    @base       ThreadHelpBase
-                OWeakObject
-*//*-*************************************************************************************************************/
-
-class LoginDialog   :   public css::lang::XTypeProvider     ,
-                        public css::lang::XServiceInfo      ,
-                        public css::awt::XDialog            ,
-                        public css::util::XFlushable        ,
-                        private ThreadHelpBase              ,   // Order of baseclasses is necessary for right initialization!
-                        public ::cppu::OBroadcastHelper     ,
-                        public ::cppu::OPropertySetHelper   ,
-                        public ::cppu::OWeakObject
-{
-    //-------------------------------------------------------------------------------------------------------------
-    //  public methods
-    //-------------------------------------------------------------------------------------------------------------
-
-    public:
-
-        //---------------------------------------------------------------------------------------------------------
-        //  constructor / destructor
-        //---------------------------------------------------------------------------------------------------------
-
-        /*-****************************************************************************************************//**
-            @short      -
-            @descr      -
-
-            @seealso    -
-
-            @param      -
-            @return     -
-
-            @onerror    -
-        *//*-*****************************************************************************************************/
-
-         LoginDialog( const css::uno::Reference< css::lang::XMultiServiceFactory >& sFactory );
-
-        /*-****************************************************************************************************//**
-            @short      -
-            @descr      -
-
-            @seealso    -
-
-            @param      -
-            @return     -
-
-            @onerror    -
-        *//*-*****************************************************************************************************/
-
-        virtual ~LoginDialog();
-
-        //---------------------------------------------------------------------------------------------------------
-        //  XInterface, XTypeProvider, XServiceInfo
-        //---------------------------------------------------------------------------------------------------------
-
-        DECLARE_XINTERFACE
-        DECLARE_XTYPEPROVIDER
-        DECLARE_XSERVICEINFO
-
-        //---------------------------------------------------------------------------------------------------------
-        //  XFlushable
-        //---------------------------------------------------------------------------------------------------------
-
-        /*-****************************************************************************************************//**
-            @short      write changed values to configuration
-            @descr      Normaly the dialog returns with an OK or ERROR value. If OK occurs - we flush data
-                        automaticly. But otherwise we do nothing. If user of this service wishes to use property set
-                        only without any UI(!) - he must call "flush()" explicitly to write data!
-
-            @seealso    -
-
-            @param      -
-            @return     -
-
-            @onerror    -
-        *//*-*****************************************************************************************************/
-
-        virtual void SAL_CALL flush() throw( css::uno::RuntimeException );
-        virtual void SAL_CALL addFlushListener( const css::uno::Reference< css::util::XFlushListener >& xListener ) throw( css::uno::RuntimeException );
-        virtual void SAL_CALL removeFlushListener( const css::uno::Reference< css::util::XFlushListener >& xListener ) throw( css::uno::RuntimeException );
-
-        //---------------------------------------------------------------------------------------------------------
-        //  XDialog
-        //---------------------------------------------------------------------------------------------------------
-
-        /*-****************************************************************************************************//**
-            @short      set new title of dialog
-            @descr      -
-
-            @seealso    -
-
-            @param      -
-            @return     -
-
-            @onerror    -
-        *//*-*****************************************************************************************************/
-
-        virtual void SAL_CALL setTitle( const OUString& sTitle ) throw( css::uno::RuntimeException );
-
-        /*-****************************************************************************************************//**
-            @short      return the current title of this dialog
-            @descr      -
-
-            @seealso    -
-
-            @param      -
-            @return     -
-
-            @onerror    -
-        *//*-*****************************************************************************************************/
-
-        virtual OUString SAL_CALL getTitle() throw( css::uno::RuntimeException );
-
-        /*-****************************************************************************************************//**
-            @short      show the dialog and return user reaction
-            @descr      If user close dialog with OK we return 1 else
-                        user has cancelled this dialog and we return 0.
-                        You can use this return value directly as boolean.
-
-            @seealso    -
-
-            @param      -
-            @return     1; if closed with OK
-            @return     0; if cancelled
-
-            @onerror    We return 0(sal_False).
-        *//*-*****************************************************************************************************/
-
-        virtual sal_Int16 SAL_CALL execute() throw( css::uno::RuntimeException );
-
-        /*-****************************************************************************************************//**
-            @short      not implemented yet!
-            @descr      -
-
-            @seealso    -
-
-            @param      -
-            @return     -
-
-            @onerror    -
-        *//*-*****************************************************************************************************/
-
-        virtual void SAL_CALL endExecute() throw( css::uno::RuntimeException );
-
-    //-------------------------------------------------------------------------------------------------------------
-    //  protected methods
-    //-------------------------------------------------------------------------------------------------------------
-
-    protected:
-
-        //---------------------------------------------------------------------------
-        //  OPropertySetHelper
-        //---------------------------------------------------------------------------
-
-        /*-****************************************************************************************************//**
-            @short      try to convert a property value
-            @descr      This method is calling from helperclass "OPropertySetHelper".
-                        Don't use this directly!
-                        You must try to convert the value of given propertyhandle and
-                        return results of this operation. This will be use to ask vetoable
-                        listener. If no listener have a veto, we will change value really!
-                        ( in method setFastPropertyValue_NoBroadcast(...) )
-
-            @seealso    class OPropertySetHelper
-            @seealso    method setFastPropertyValue_NoBroadcast()
-            @seealso    method impl_tryToChangeProperty()
-
-            @param      "aConvertedValue"   new converted value of property
-            @param      "aOldValue"         old value of property
-            @param      "nHandle"           handle of property
-            @param      "aValue"            new value of property
-            @return     sal_True if value will be changed, sal_FALSE otherway
-
-            @onerror    IllegalArgumentException, if you call this with an invalid argument
-        *//*-*****************************************************************************************************/
-
-        virtual sal_Bool SAL_CALL convertFastPropertyValue( css::uno::Any&          aConvertedValue ,
-                                                            css::uno::Any&          aOldValue       ,
-                                                            sal_Int32               nHandle         ,
-                                                            const css::uno::Any&    aValue          ) throw( css::lang::IllegalArgumentException );
-
-        /*-****************************************************************************************************//**
-            @short      set value of a transient property
-            @descr      This method is calling from helperclass "OPropertySetHelper".
-                        Don't use this directly!
-                        Handle and value are valid everyway! You must set the new value only.
-                        After this, baseclass send messages to all listener automaticly.
-
-            @seealso    OPropertySetHelper
-
-            @param      "nHandle"   handle of property to change
-            @param      "aValue"    new value of property
-            @return     -
-
-            @onerror    An exception is thrown.
-        *//*-*****************************************************************************************************/
-
-        virtual void SAL_CALL setFastPropertyValue_NoBroadcast( sal_Int32                   nHandle ,
-                                                                const css::uno::Any&        aValue  ) throw( css::uno::Exception );
-
-        /*-****************************************************************************************************//**
-            @short      get value of a transient property
-            @descr      This method is calling from helperclass "OPropertySetHelper".
-                        Don't use this directly!
-
-            @seealso    OPropertySetHelper
-
-            @param      "nHandle"   handle of property to change
-            @param      "aValue"    current value of property
-            @return     -
-
-            @onerror    -
-        *//*-*****************************************************************************************************/
-
-        virtual void SAL_CALL getFastPropertyValue( css::uno::Any&      aValue  ,
-                                                    sal_Int32           nHandle ) const;
-
-        /*-****************************************************************************************************//**
-            @short      return structure and information about transient properties
-            @descr      This method is calling from helperclass "OPropertySetHelper".
-                        Don't use this directly!
-
-            @seealso    OPropertySetHelper
-
-            @param      -
-            @return     structure with property-information
-
-            @onerror    -
-        *//*-*****************************************************************************************************/
-
-        virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper();
-
-        /*-****************************************************************************************************//**
-            @short      return propertysetinfo
-            @descr      You can call this method to get information about transient properties
-                        of this object.
-
-            @seealso    OPropertySetHelper
-            @seealso    XPropertySet
-            @seealso    XMultiPropertySet
-
-            @param      -
-            @return     reference to object with information [XPropertySetInfo]
-
-            @onerror    -
-        *//*-*****************************************************************************************************/
-
-        virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() throw (css::uno::RuntimeException);
-
-    //-------------------------------------------------------------------------------------------------------------
-    //  private methods
-    //-------------------------------------------------------------------------------------------------------------
-
-    private:
-
-        /*-****************************************************************************************************//**
-            @short      return table of all supported properties
-            @descr      We need this table to initialize our helper baseclass OPropertySetHelper
-
-            @seealso    -
-
-            @param      -
-            @return     -
-
-            @onerror    -
-        *//*-*****************************************************************************************************/
-
-        const css::uno::Sequence< css::beans::Property > impl_getStaticPropertyDescriptor();
-
-        /*-****************************************************************************************************//**
-            @short      helper method to check if a property will change his value
-            @descr      Is necessary for vetoable listener mechanism of OPropertySethelper.
-
-            @seealso    -
-
-            @param      -
-            @return     -
-
-            @onerror    -
-        *//*-*****************************************************************************************************/
-
-        sal_Bool impl_tryToChangeProperty(  const   OUString&                  sProperty       ,
-                                            const   css::uno::Any&                    aValue          ,
-                                                    css::uno::Any&                    aOldValue       ,
-                                                    css::uno::Any&                    aConvertedValue ) throw( css::lang::IllegalArgumentException );
-
-        sal_Bool impl_tryToChangeProperty(  const   css::uno::Sequence< OUString >& seqProperty,
-                                            const   css::uno::Any&                    aValue          ,
-                                                    css::uno::Any&                    aOldValue       ,
-                                                    css::uno::Any&                    aConvertedValue ) throw( css::lang::IllegalArgumentException );
-
-        sal_Bool impl_tryToChangeProperty(  const   sal_Int32&                        nProperty       ,
-                                            const   css::uno::Any&                    aValue          ,
-                                                    css::uno::Any&                    aOldValue       ,
-                                                    css::uno::Any&                    aConvertedValue ) throw( css::lang::IllegalArgumentException );
-
-        sal_Bool impl_tryToChangeProperty(  const   css::lang::Locale&                aProperty       ,
-                                            const   css::uno::Any&                    aValue          ,
-                                                    css::uno::Any&                    aOldValue       ,
-                                                    css::uno::Any&                    aConvertedValue ) throw( css::lang::IllegalArgumentException );
-
-        sal_Bool impl_tryToChangeProperty(  const   css::uno::Any&                    aProperty       ,
-                                            const   css::uno::Any&                    aValue          ,
-                                                    css::uno::Any&                    aOldValue       ,
-                                                    css::uno::Any&                    aConvertedValue ) throw( css::lang::IllegalArgumentException );
-
-        /*-****************************************************************************************************//**
-            @short      search and open profile
-            @descr      This method search and open the ini file. It initialize some member too.
-
-            @seealso    -
-
-            @param      -
-            @return     -
-
-            @onerror    -
-        *//*-*****************************************************************************************************/
-
-        void impl_openProfile();
-
-        /*-****************************************************************************************************//**
-            @short      close profile and free some member
-            @descr      This method close current opened ini file and deinitialize some member too.
-
-            @seealso    -
-
-            @param      -
-            @return     -
-
-            @onerror    -
-        *//*-*****************************************************************************************************/
-
-        void impl_closeProfile();
-
-        /*-****************************************************************************************************//**
-            @short      write profile and free some member
-            @descr      This method writes current settings and deinitialize some member too.
-
-            @seealso    -
-
-            @param      -
-            @return     -
-
-            @onerror    -
-        *//*-*****************************************************************************************************/
-        void impl_writeProfile();
-
-        /*-****************************************************************************************************//**
-            @short      check current server history
-            @descr      Our current server history implementation can handle 10 elements as maximum.
-                        If more then 10 elements exist; old ones will be deleted.
-
-            @seealso    -
-
-            @param      "seqHistory"; current history
-            @return     Sequence< OUString >; checked and repaired history
-
-            @onerror    -
-        *//*-*****************************************************************************************************/
-
-        void impl_addServerToHistory( css::uno::Sequence< OUString >&    seqHistory,
-                                      sal_Int32&                                nActiveServer   ,
-                                      const OUString&                    sServer         );
-
-        /*-****************************************************************************************************//**
-            @short      helper methods to read/write  properties from/to ini file
-            @descr      Using of Config-Class isn't easy everytime :-(
-                        Thats the reason for these helper. State of operation isn't really important ..
-                        but we assert impossible cases or occurred errors!
-
-            @seealso    -
-
-            @param      -
-            @return     -
-
-            @onerror    Assertions are shown.
-        *//*-*****************************************************************************************************/
-
-        void                    impl_writeUserName              (   const   OUString&        sUserName       );
-        void                    impl_writeActiveServer          (           sal_Int32               nActiveServer   );
-        void                    impl_writeServerHistory         (   const   css::uno::Sequence< OUString >& lHistory   );
-        void                    impl_writeConnectionType        (   const   OUString&        sConnectionType );
-        void                    impl_writeLanguage              (   const   css::lang::Locale&      aLanguage       );
-        void                    impl_writePortHttp              (           sal_Int32               nPort           );
-        void                    impl_writePortHttps             (           sal_Int32               nPort           );
-        void                    impl_writeSecurityProxy         (   const   OUString&        sSecurityProxy  );
-        void                    impl_writeUseProxy              (   const   OUString&        sUseProxy       );
-        void                    impl_writeDialog                (   const   OUString&        sDialog         );
-
-        OUString         impl_readUserName               (                                                   );
-        sal_Int32               impl_readActiveServer           (                                                   );
-        css::uno::Sequence< OUString > impl_readServerHistory (                                              );
-        OUString         impl_readConnectionType         (                                                   );
-        css::lang::Locale       impl_readLanguage               (                                                   );
-        sal_Int32               impl_readPortHttp               (                                                   );
-        sal_Int32               impl_readPortHttps              (                                                   );
-        OUString         impl_readSecurityProxy          (                                                   );
-        OUString         impl_readUseProxy               (                                                   );
-        OUString         impl_readDialog                 (                                                   );
-
-    //-------------------------------------------------------------------------------------------------------------
-    //  variables
-    //  (should be private everyway!)
-    //-------------------------------------------------------------------------------------------------------------
-
-    private:
-
-        css::uno::Reference< css::lang::XMultiServiceFactory >       m_xFactory          ;   /// reference to factory, which has created this instance
-        OUString                         m_sININame          ;   /// full qualified path to profile UNC-notation
-        Config*                                 m_pINIManager       ;   /// manager for full access to ini file
-        sal_Bool                                m_bInExecuteMode    ;   /// protection against setting of properties during showing of dialog
-        cIMPL_Dialog*                           m_pDialog           ;   /// VCL dialog
-        tIMPL_DialogData                        m_aPropertySet      ;
-
-};      //  class LoginDialog
-
-}       //  namespace framework
-
-#endif // INCLUDED_FRAMEWORK_INC_SERVICES_LOGINDIALOG_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/framework/source/register/registerlogindialog.cxx b/framework/source/register/registerlogindialog.cxx
deleted file mode 100644
index 4f3a435..0000000
--- a/framework/source/register/registerlogindialog.cxx
+++ /dev/null
@@ -1,41 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#include <macros/registration.hxx>
-
-/*=================================================================================================================
-    Add new include and new register info to for new services.
-
-    Example:
-
-        #include <service1.hxx>
-        #include <service2.hxx>
-
-        COMPONENTGETFACTORY (   IFFACTORIE( Service1 )
-                                 else
-                                IFFACTORIE( Service2 )
-                             )
-=================================================================================================================*/
-
-#include <services/logindialog.hxx>
-
-COMPONENTGETFACTORY (   IFFACTORY( ::framework::LoginDialog     )
-                    )
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit a69875fbfcab0c4f0069aeb72079155789c35256
Author: Matúš Kukan <matus.kukan at collabora.com>
Date:   Wed Jan 22 17:34:14 2014 +0100

    Experimental direct constructor calls for more services.
    
    Change-Id: I18f56b674088d750cf06a409e547a7f59be22d61

diff --git a/include/osl/detail/component-defines.h b/include/osl/detail/component-defines.h
index 791ff8a..eb58f24 100644
--- a/include/osl/detail/component-defines.h
+++ b/include/osl/detail/component-defines.h
@@ -17,10 +17,28 @@
 
 #define LO_URE_CURRENT_ENV 1 /*TODO*/
 
+// sax/source/expatwrap/expwrap.component
 #define LO_URE_CTOR_ENV_com_dot_sun_dot_star_dot_xml_dot_sax_dot_FastParser 1 /*TODO*/
 #define LO_URE_CTOR_FUN_com_dot_sun_dot_star_dot_xml_dot_sax_dot_FastParser com_sun_star_comp_extensions_xml_sax_FastParser_get_implementation
 #define LO_URE_CTOR_ENV_com_dot_sun_dot_star_dot_xml_dot_sax_dot_Parser 1 /*TODO*/
 #define LO_URE_CTOR_FUN_com_dot_sun_dot_star_dot_xml_dot_sax_dot_Parser com_sun_star_comp_extensions_xml_sax_ParserExpat_get_implementation
+// sfx2/util/sfx.component
+#define LO_URE_CTOR_ENV_com_dot_sun_dot_star_dot_document_dot_DocumentProperties 1
+#define LO_URE_CTOR_FUN_com_dot_sun_dot_star_dot_document_dot_DocumentProperties SfxDocumentMetaData_get_implementation
+#define LO_URE_CTOR_ENV_com_dot_sun_dot_star_dot_frame_dot_OfficeFrameLoader 1
+#define LO_URE_CTOR_FUN_com_dot_sun_dot_star_dot_frame_dot_OfficeFrameLoader com_sun_star_comp_office_FrameLoader_get_implementation
+#define LO_URE_CTOR_ENV_com_dot_sun_dot_star_dot_frame_dot_SynchronousFrameLoader 1
+#define LO_URE_CTOR_FUN_com_dot_sun_dot_star_dot_frame_dot_SynchronousFrameLoader  com_sun_star_comp_office_FrameLoader_get_implementation
+#define LO_URE_CTOR_ENV_com_dot_sun_dot_star_dot_frame_dot_DocumentTemplates 1
+#define LO_URE_CTOR_FUN_com_dot_sun_dot_star_dot_frame_dot_DocumentTemplates com_sun_star_comp_sfx2_DocumentTemplates_get_implementation
+#define LO_URE_CTOR_ENV_com_dot_sun_dot_star_dot_frame_dot_GlobalEventBroadcaster 1
+#define LO_URE_CTOR_FUN_com_dot_sun_dot_star_dot_frame_dot_GlobalEventBroadcaster com_sun_star_comp_sfx2_GlobalEventBroadcaster_get_implementation
+// svtools/util/svt_dot_component
+#define LO_URE_CTOR_ENV_com_dot_sun_dot_star_dot_graphic_dot_GraphicProvider 1
+#define LO_URE_CTOR_FUN_com_dot_sun_dot_star_dot_graphic_dot_GraphicProvider com_sun_star_comp_graphic_GraphicProvider_get_implementation
+// svx/util/svx_dot_component
+#define LO_URE_CTOR_ENV_com_dot_sun_dot_star_dot_drawing_dot_CustomShapeEngine 1
+#define LO_URE_CTOR_FUN_com_dot_sun_dot_star_dot_drawing_dot_CustomShapeEngine com_sun_star_drawing_EnhancedCustomShapeEngine_get_implementation
 
 #endif
 


More information about the Libreoffice-commits mailing list