[ooo-build-commit] Branch 'ooo/master' - 4 commits - connectivity/inc connectivity/source framework/source svx/inc svx/source xmloff/source

Jan Holesovsky kendy at kemper.freedesktop.org
Wed Oct 14 18:27:37 PDT 2009


 connectivity/inc/connectivity/DriversConfig.hxx           |  179 +++++++-------
 connectivity/inc/connectivity/dbmetadata.hxx              |    6 
 connectivity/source/commontools/DriversConfig.cxx         |   62 ++--
 connectivity/source/commontools/dbmetadata.cxx            |   16 +
 connectivity/source/drivers/jdbc/jdbc.xcu                 |    2 
 framework/source/jobs/job.cxx                             |    2 
 svx/inc/svx/msdffimp.hxx                                  |    1 
 svx/inc/svx/sdr/contact/viewobjectcontactofunocontrol.hxx |   48 ---
 svx/inc/svx/sdr/primitive2d/sdrdecompositiontools.hxx     |    3 
 svx/inc/svx/sdr/primitive2d/sdrtextprimitive2d.hxx        |    5 
 svx/source/fmcomp/gridctrl.cxx                            |   15 -
 svx/source/form/fmtextcontrolshell.cxx                    |    2 
 svx/source/msfilter/msdffimp.cxx                          |   27 +-
 svx/source/outliner/outliner.cxx                          |   27 +-
 svx/source/outliner/outlvw.cxx                            |    8 
 svx/source/sdr/contact/viewcontactofgraphic.cxx           |    1 
 svx/source/sdr/contact/viewcontactofunocontrol.cxx        |   40 ---
 svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx  |  161 +++++++-----
 svx/source/sdr/primitive2d/sdrcaptionprimitive2d.cxx      |    1 
 svx/source/sdr/primitive2d/sdrconnectorprimitive2d.cxx    |    2 
 svx/source/sdr/primitive2d/sdrcustomshapeprimitive2d.cxx  |    5 
 svx/source/sdr/primitive2d/sdrdecompositiontools.cxx      |    6 
 svx/source/sdr/primitive2d/sdrellipseprimitive2d.cxx      |    4 
 svx/source/sdr/primitive2d/sdrgrafprimitive2d.cxx         |    2 
 svx/source/sdr/primitive2d/sdrmeasureprimitive2d.cxx      |    1 
 svx/source/sdr/primitive2d/sdrole2primitive2d.cxx         |    2 
 svx/source/sdr/primitive2d/sdrpathprimitive2d.cxx         |    2 
 svx/source/sdr/primitive2d/sdrrectangleprimitive2d.cxx    |    2 
 svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx         |   12 
 svx/source/svdraw/svdfppt.cxx                             |   12 
 svx/source/svdraw/svdotextdecomposition.cxx               |   41 +--
 svx/source/table/viewcontactoftableobj.cxx                |    2 
 xmloff/source/core/xmlimp.cxx                             |   20 +
 33 files changed, 398 insertions(+), 321 deletions(-)

New commits:
commit df2f55172b2fa6ec95f88127cfad92bcf1b41e7f
Author: Kurt Zenker <kz at openoffice.org>
Date:   Wed Oct 14 18:48:09 2009 +0000

    CWS-TOOLING: integrate CWS dba32h
    2009-10-12 12:21:44 +0200 msc  r276827 : remove warning for issue 102712 because the issue is fixed
    2009-10-05 07:14:20 +0200 oj  r276658 : #105585# add missing dependency for OOO_UI
    2009-10-02 12:50:19 +0200 fs  r276632 : #i105505#
    If a model is created, and is a revenant of a previous incarnation, then ensure it is properly initialized.
    In particular, in its ctor, set the state to "Initializing", not "Initialized", and then let the ModelImpl
    call attachResource. This ensures that the model is initialized completely, including firing the necessary
    events.
    2009-10-02 12:46:12 +0200 fs  r276631 : #i105505# always do an attachResource at the newly loaded model, even if it (internally) was not really loaded, but only a revenant of a previous incarnation of this document
    2009-10-01 13:09:07 +0200 fs  r276596 : do not rely on the name 'Standard' for the one and only form in a document
    2009-10-01 12:35:56 +0200 fs  r276589 : #i105509# don't rely on default form component names, use indexes
    2009-10-01 11:19:18 +0200 fs  r276584 : copying the fix for #i105082# into this CWS
    2009-10-01 11:13:22 +0200 fs  r276583 : improved logs
    2009-10-01 11:10:44 +0200 fs  r276581 : #i105505#
    2009-10-01 08:07:57 +0200 fs  r276575 : manual merge of trunk, to allow cwslocalize to run
    2009-09-30 22:48:30 +0200 fs  r276574 : removed that strange ONLOAD definition
    2009-09-30 12:58:18 +0200 fs  r276553 : copy fix for #i105387# into this CWS, as the issue prevents us from finalizing the CWS
    2009-09-30 12:56:45 +0200 fs  r276552 : copy fix for #i105387# into this CWS, as the issue prevents us from finalizing the CWS
    2009-09-30 11:47:45 +0200 fs  r276549 : #i105235#
    2009-09-29 12:27:40 +0200 fs  r276521 : #i105367#
    2009-09-28 12:08:17 +0200 oj  r276485 : #i105371# export version in manifest.xml as well
    2009-09-28 12:07:02 +0200 oj  r276484 : #i105371# export version in manifest.xml as well
    2009-09-28 09:48:01 +0200 oj  r276481 : #i105366# init drivers when not empty
    2009-09-25 14:31:27 +0200 fs  r276466 : CWS-TOOLING: rebase CWS dba32h to trunk at 276429 (milestone: DEV300:m60)
    2009-09-24 13:52:54 +0200 fs  r276422 : #i105234# do not zoom the control when they view information is still uninitialized (happens at least in Writer when opening a form document)
    2009-09-24 11:42:03 +0200 fs  r276413 : #i105234# proper zoom handling for the nav bar
    2009-09-24 11:41:40 +0200 fs  r276412 : #i105234# setZoom: care for precision errors caused by implicit conversion float->double
    2009-09-23 12:21:22 +0200 oj  r276377 : remove dos lineends
    2009-09-23 11:44:52 +0200 oj  r276376 : #i105216# load config on demand
    2009-09-23 11:44:19 +0200 oj  r276375 : #i105216# load config on demand
    2009-09-23 11:43:35 +0200 oj  r276374 : #i105216# load config on demand
    2009-09-21 09:13:03 +0200 oj  r276307 : #i105158# use Thread support
    2009-09-18 13:06:50 +0200 fs  r276277 : #i105147#
    2009-09-18 11:48:23 +0200 oj  r276271 : #i105158# new method for thread safety
    2009-09-18 10:42:56 +0200 fs  r276266 : CWS-TOOLING: rebase CWS dba32h to trunk at 276192 (milestone: DEV300:m59)
    2009-09-18 08:30:03 +0200 oj  r276263 : #i105016# load correct ldap so
    2009-09-17 13:42:31 +0200 oj  r276240 : change count of check boxes
    2009-09-17 13:32:59 +0200 oj  r276239 : revert false to true for currency
    2009-09-17 09:14:46 +0200 oj  r276220 : #i104901# add patch for every issue
    2009-09-17 09:10:29 +0200 oj  r276219 : #i104901# add patch for every issue
    2009-09-11 13:47:49 +0200 oj  r276060 : #i104901# fix for indentity
    2009-09-11 12:14:14 +0200 fs  r276056 : #i104594# allow to render controls without an SdrPageView
    2009-09-11 11:49:31 +0200 fs  r276055 : CWS-TOOLING: rebase CWS dba32h to trunk at 276043 (milestone: DEV300:m58)
    2009-09-10 08:41:40 +0200 oj  r276021 : #i104911# export variable-set not for repeating sections

diff --git a/connectivity/inc/connectivity/DriversConfig.hxx b/connectivity/inc/connectivity/DriversConfig.hxx
index bd86e9c..ceff42f 100755
--- a/connectivity/inc/connectivity/DriversConfig.hxx
+++ b/connectivity/inc/connectivity/DriversConfig.hxx
@@ -1,92 +1,95 @@
-/*************************************************************************
- *
- *  OpenOffice.org - a multi-platform office productivity suite
- *
- *  $RCSfile: makefile,v $
- *
- *  $Revision: 1.1 $
- *
- *  last change: $Author: st $ $Date: 2000/11/22 02:32:00 $
- *
- *  The Contents of this file are made available subject to
- *  the terms of GNU Lesser General Public License Version 2.1.
- *
- *
- *    GNU Lesser General Public License Version 2.1
- *    =============================================
- *    Copyright 2005 by Sun Microsystems, Inc.
- *    901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- *    This library is free software; you can redistribute it and/or
- *    modify it under the terms of the GNU Lesser General Public
- *    License version 2.1, as published by the Free Software Foundation.
- *
- *    This library is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *    Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public
- *    License along with this library; if not, write to the Free Software
- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- *    MA  02111-1307  USA
- *
- ************************************************************************/
-#ifndef CONNECTIVITY_DRIVERSCONFIG_HXX_INCLUDED
-#define CONNECTIVITY_DRIVERSCONFIG_HXX_INCLUDED
-
-#include <comphelper/stl_types.hxx>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/beans/NamedValue.hpp>
-#include <com/sun/star/uno/Sequence.h>
-#include "connectivity/dbtoolsdllapi.hxx"
-#include <salhelper/singletonref.hxx>
-#include <comphelper/namedvaluecollection.hxx>
-#include <unotools/confignode.hxx>
-
-namespace connectivity
-{
-    typedef struct
-    {
-        ::comphelper::NamedValueCollection aProperties;
-        ::comphelper::NamedValueCollection aFeatures;
-        ::comphelper::NamedValueCollection aMetaData;
-        ::rtl::OUString sDriverFactory;
-        ::rtl::OUString sDriverTypeDisplayName;
-    } TInstalledDriver;
-    DECLARE_STL_USTRINGACCESS_MAP( TInstalledDriver, TInstalledDrivers);
-
+/*************************************************************************
+ *
+ *  OpenOffice.org - a multi-platform office productivity suite
+ *
+ *  $RCSfile: makefile,v $
+ *
+ *  $Revision: 1.1 $
+ *
+ *  last change: $Author: st $ $Date: 2000/11/22 02:32:00 $
+ *
+ *  The Contents of this file are made available subject to
+ *  the terms of GNU Lesser General Public License Version 2.1.
+ *
+ *
+ *    GNU Lesser General Public License Version 2.1
+ *    =============================================
+ *    Copyright 2005 by Sun Microsystems, Inc.
+ *    901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ *    This library is free software; you can redistribute it and/or
+ *    modify it under the terms of the GNU Lesser General Public
+ *    License version 2.1, as published by the Free Software Foundation.
+ *
+ *    This library is distributed in the hope that it will be useful,
+ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *    Lesser General Public License for more details.
+ *
+ *    You should have received a copy of the GNU Lesser General Public
+ *    License along with this library; if not, write to the Free Software
+ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ *    MA  02111-1307  USA
+ *
+ ************************************************************************/
+#ifndef CONNECTIVITY_DRIVERSCONFIG_HXX_INCLUDED
+#define CONNECTIVITY_DRIVERSCONFIG_HXX_INCLUDED
+
+#include <comphelper/stl_types.hxx>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/beans/NamedValue.hpp>
+#include <com/sun/star/uno/Sequence.h>
+#include "connectivity/dbtoolsdllapi.hxx"
+#include <salhelper/singletonref.hxx>
+#include <comphelper/namedvaluecollection.hxx>
+#include <unotools/confignode.hxx>
+
+namespace connectivity
+{
+    typedef struct
+    {
+        ::comphelper::NamedValueCollection aProperties;
+        ::comphelper::NamedValueCollection aFeatures;
+        ::comphelper::NamedValueCollection aMetaData;
+        ::rtl::OUString sDriverFactory;
+        ::rtl::OUString sDriverTypeDisplayName;
+    } TInstalledDriver;
+    DECLARE_STL_USTRINGACCESS_MAP( TInstalledDriver, TInstalledDrivers);
+
     class DriversConfigImpl
     {
-        ::utl::OConfigurationTreeRoot m_aInstalled;
+        mutable ::utl::OConfigurationTreeRoot   m_aInstalled;
+        mutable TInstalledDrivers       m_aDrivers;
+        void Load(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB) const;
     public:
         DriversConfigImpl();
-        void Load(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB,TInstalledDrivers& _rDrivers);
-    };
-    //
-    // Allows to access all driver which are located in the configuration
-    //
-    class OOO_DLLPUBLIC_DBTOOLS DriversConfig
-    {
-        typedef salhelper::SingletonRef<DriversConfigImpl> OSharedConfigNode;
-        
-        const ::comphelper::NamedValueCollection& impl_get(const ::rtl::OUString& _sURL,sal_Int32 _nProps) const;
-    public:
-        DriversConfig(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB);
-        ~DriversConfig();
-
-        DriversConfig( const DriversConfig& );
-        DriversConfig& operator=( const DriversConfig& );
-
-        ::rtl::OUString getDriverFactoryName(const ::rtl::OUString& _sUrl) const;
-        ::rtl::OUString getDriverTypeDisplayName(const ::rtl::OUString& _sUrl) const;
-        const ::comphelper::NamedValueCollection& getProperties(const ::rtl::OUString& _sURL) const;
-        const ::comphelper::NamedValueCollection& getFeatures(const ::rtl::OUString& _sURL) const;
-        const ::comphelper::NamedValueCollection& getMetaData(const ::rtl::OUString& _sURL) const;
-        ::com::sun::star::uno::Sequence< ::rtl::OUString > getURLs() const;
-    private:
-        TInstalledDrivers   m_aDrivers;
-        OSharedConfigNode   m_aNode;
-    };
-}
-#endif // CONNECTIVITY_DRIVERSCONFIG_HXX_INCLUDED
+        
+        const TInstalledDrivers& getInstalledDrivers(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB) const { Load(_rxORB); return m_aDrivers; }
+    };
+    //
+    // Allows to access all driver which are located in the configuration
+    //
+    class OOO_DLLPUBLIC_DBTOOLS DriversConfig
+    {
+        typedef salhelper::SingletonRef<DriversConfigImpl> OSharedConfigNode;
+        
+        const ::comphelper::NamedValueCollection& impl_get(const ::rtl::OUString& _sURL,sal_Int32 _nProps) const;
+    public:
+        DriversConfig(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB);
+        ~DriversConfig();
+
+        DriversConfig( const DriversConfig& );
+        DriversConfig& operator=( const DriversConfig& );
+
+        ::rtl::OUString getDriverFactoryName(const ::rtl::OUString& _sUrl) const;
+        ::rtl::OUString getDriverTypeDisplayName(const ::rtl::OUString& _sUrl) const;
+        const ::comphelper::NamedValueCollection& getProperties(const ::rtl::OUString& _sURL) const;
+        const ::comphelper::NamedValueCollection& getFeatures(const ::rtl::OUString& _sURL) const;
+        const ::comphelper::NamedValueCollection& getMetaData(const ::rtl::OUString& _sURL) const;
+        ::com::sun::star::uno::Sequence< ::rtl::OUString > getURLs() const;
+    private:
+        OSharedConfigNode   m_aNode;
+        ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xORB;
+    };
+}
+#endif // CONNECTIVITY_DRIVERSCONFIG_HXX_INCLUDED
diff --git a/connectivity/inc/connectivity/dbmetadata.hxx b/connectivity/inc/connectivity/dbmetadata.hxx
index 17583b2..6a0757a 100644
--- a/connectivity/inc/connectivity/dbmetadata.hxx
+++ b/connectivity/inc/connectivity/dbmetadata.hxx
@@ -177,6 +177,12 @@ namespace dbtools
         /** determines whether in the application UI, empty table folders (aka catalogs/schemas) should be displayed
         */
         bool displayEmptyTableFolders() const;
+
+        /** determines that threads are supported.
+        *
+        * \return <TRUE/> when threads are supported, otherwise <FALSE/>
+        */
+        bool supportsThreads() const;
     };
 
 //........................................................................
diff --git a/connectivity/source/commontools/DriversConfig.cxx b/connectivity/source/commontools/DriversConfig.cxx
index b9b771a..b4cee32 100755
--- a/connectivity/source/commontools/DriversConfig.cxx
+++ b/connectivity/source/commontools/DriversConfig.cxx
@@ -108,36 +108,39 @@ namespace
     }
 }
 // -----------------------------------------------------------------------------
-DriversConfigImpl::DriversConfigImpl()
+DriversConfigImpl::DriversConfigImpl() 
 {
 }
 // -----------------------------------------------------------------------------
-void DriversConfigImpl::Load(const uno::Reference< lang::XMultiServiceFactory >& _rxORB,TInstalledDrivers& _rDrivers)
+void DriversConfigImpl::Load(const uno::Reference< lang::XMultiServiceFactory >& _rxORB) const
 {
-    if ( !m_aInstalled.isValid() )
+    if ( m_aDrivers.empty() )
     {
-        static const ::rtl::OUString s_sNodeName(RTL_CONSTASCII_USTRINGPARAM("org.openoffice.Office.DataAccess.Drivers/Installed")); ///Installed
-        m_aInstalled = ::utl::OConfigurationTreeRoot::createWithServiceFactory(_rxORB, s_sNodeName, -1, ::utl::OConfigurationTreeRoot::CM_READONLY);
-    }
-
-    if ( m_aInstalled.isValid() )
-    {
-        const uno::Sequence< ::rtl::OUString > aURLPatterns = m_aInstalled.getNodeNames();
-        const ::rtl::OUString* pPatternIter = aURLPatterns.getConstArray();
-        const ::rtl::OUString* pPatternEnd  = pPatternIter + aURLPatterns.getLength();
-        for (;pPatternIter != pPatternEnd ; ++pPatternIter)
+        if ( !m_aInstalled.isValid() )
         {
-            TInstalledDriver aInstalledDriver;
-            lcl_readURLPatternNode(m_aInstalled,*pPatternIter,aInstalledDriver);
-            if ( aInstalledDriver.sDriverFactory.getLength() )
-                _rDrivers.insert(TInstalledDrivers::value_type(*pPatternIter,aInstalledDriver));
+            static const ::rtl::OUString s_sNodeName(RTL_CONSTASCII_USTRINGPARAM("org.openoffice.Office.DataAccess.Drivers/Installed")); ///Installed
+            m_aInstalled = ::utl::OConfigurationTreeRoot::createWithServiceFactory(_rxORB, s_sNodeName, -1, ::utl::OConfigurationTreeRoot::CM_READONLY);
         }
+
+        if ( m_aInstalled.isValid() )
+        {
+            const uno::Sequence< ::rtl::OUString > aURLPatterns = m_aInstalled.getNodeNames();
+            const ::rtl::OUString* pPatternIter = aURLPatterns.getConstArray();
+            const ::rtl::OUString* pPatternEnd  = pPatternIter + aURLPatterns.getLength();
+            for (;pPatternIter != pPatternEnd ; ++pPatternIter)
+            {
+                TInstalledDriver aInstalledDriver;
+                lcl_readURLPatternNode(m_aInstalled,*pPatternIter,aInstalledDriver);
+                if ( aInstalledDriver.sDriverFactory.getLength() )
+                    m_aDrivers.insert(TInstalledDrivers::value_type(*pPatternIter,aInstalledDriver));
+            }
+        } // if ( m_aInstalled.isValid() )
     }
 }
 // -----------------------------------------------------------------------------
 DriversConfig::DriversConfig(const uno::Reference< lang::XMultiServiceFactory >& _rxORB)
+:m_xORB(_rxORB)
 {
-    m_aNode->Load(_rxORB,m_aDrivers);
 }
 
 // -----------------------------------------------------------------------------
@@ -156,7 +159,6 @@ DriversConfig& DriversConfig::operator=( const DriversConfig& _rhs )
 {
     if ( this != &_rhs )
     {
-        m_aDrivers = _rhs.m_aDrivers;
         m_aNode = _rhs.m_aNode;
     }
     return *this;
@@ -165,10 +167,11 @@ DriversConfig& DriversConfig::operator=( const DriversConfig& _rhs )
 // -----------------------------------------------------------------------------
 ::rtl::OUString DriversConfig::getDriverFactoryName(const ::rtl::OUString& _sURL) const
 {
+    const TInstalledDrivers& rDrivers = m_aNode->getInstalledDrivers(m_xORB);
     ::rtl::OUString sRet;
     ::rtl::OUString sOldPattern;
-    TInstalledDrivers::const_iterator aIter = m_aDrivers.begin();
-    TInstalledDrivers::const_iterator aEnd = m_aDrivers.end();
+    TInstalledDrivers::const_iterator aIter = rDrivers.begin();
+    TInstalledDrivers::const_iterator aEnd = rDrivers.end();
     for(;aIter != aEnd;++aIter)
     {
         WildCard aWildCard(aIter->first);
@@ -184,10 +187,11 @@ DriversConfig& DriversConfig::operator=( const DriversConfig& _rhs )
 // -----------------------------------------------------------------------------
 ::rtl::OUString DriversConfig::getDriverTypeDisplayName(const ::rtl::OUString& _sURL) const
 {
+    const TInstalledDrivers& rDrivers = m_aNode->getInstalledDrivers(m_xORB);
     ::rtl::OUString sRet;
     ::rtl::OUString sOldPattern;
-    TInstalledDrivers::const_iterator aIter = m_aDrivers.begin();
-    TInstalledDrivers::const_iterator aEnd = m_aDrivers.end();
+    TInstalledDrivers::const_iterator aIter = rDrivers.begin();
+    TInstalledDrivers::const_iterator aEnd = rDrivers.end();
     for(;aIter != aEnd;++aIter)
     {
         WildCard aWildCard(aIter->first);
@@ -218,10 +222,11 @@ const ::comphelper::NamedValueCollection& DriversConfig::getMetaData(const ::rtl
 // -----------------------------------------------------------------------------
 const ::comphelper::NamedValueCollection& DriversConfig::impl_get(const ::rtl::OUString& _sURL,sal_Int32 _nProps) const
 {
+    const TInstalledDrivers& rDrivers = m_aNode->getInstalledDrivers(m_xORB);    
     const ::comphelper::NamedValueCollection* pRet = NULL;
     ::rtl::OUString sOldPattern;
-    TInstalledDrivers::const_iterator aIter = m_aDrivers.begin();
-    TInstalledDrivers::const_iterator aEnd = m_aDrivers.end();
+    TInstalledDrivers::const_iterator aIter = rDrivers.begin();
+    TInstalledDrivers::const_iterator aEnd = rDrivers.end();
     for(;aIter != aEnd;++aIter)
     {
         WildCard aWildCard(aIter->first);
@@ -252,10 +257,11 @@ const ::comphelper::NamedValueCollection& DriversConfig::impl_get(const ::rtl::O
 // -----------------------------------------------------------------------------
 uno::Sequence< ::rtl::OUString > DriversConfig::getURLs() const
 {
-    uno::Sequence< ::rtl::OUString > aRet(m_aDrivers.size());
+    const TInstalledDrivers& rDrivers = m_aNode->getInstalledDrivers(m_xORB);
+    uno::Sequence< ::rtl::OUString > aRet(rDrivers.size());
     ::rtl::OUString* pIter = aRet.getArray();
-    TInstalledDrivers::const_iterator aIter = m_aDrivers.begin();
-    TInstalledDrivers::const_iterator aEnd = m_aDrivers.end();
+    TInstalledDrivers::const_iterator aIter = rDrivers.begin();
+    TInstalledDrivers::const_iterator aEnd = rDrivers.end();
     for(;aIter != aEnd;++aIter,++pIter)
     {
         *pIter = aIter->first;
diff --git a/connectivity/source/commontools/dbmetadata.cxx b/connectivity/source/commontools/dbmetadata.cxx
index 0463b51..5e07514 100644
--- a/connectivity/source/commontools/dbmetadata.cxx
+++ b/connectivity/source/commontools/dbmetadata.cxx
@@ -407,6 +407,22 @@ namespace dbtools
 #endif
         return doDisplay;
     }
+    //--------------------------------------------------------------------
+    bool DatabaseMetaData::supportsThreads() const
+    {
+        bool bSupported( true );
+        try
+        {
+            Reference< XDatabaseMetaData > xMeta( m_pImpl->xConnectionMetaData, UNO_SET_THROW );
+            ::rtl::OUString sConnectionURL( xMeta->getURL() );
+            bSupported = sConnectionURL.compareToAscii( RTL_CONSTASCII_STRINGPARAM( "sdbc:mysql:mysqlc" ) ) != 0;
+        }
+        catch( const Exception& )
+        {
+            DBG_UNHANDLED_EXCEPTION();
+        }
+        return bSupported;
+    }
 
 //........................................................................
 } // namespace dbtools
diff --git a/connectivity/source/drivers/jdbc/jdbc.xcu b/connectivity/source/drivers/jdbc/jdbc.xcu
index c758a79..7a64519 100755
--- a/connectivity/source/drivers/jdbc/jdbc.xcu
+++ b/connectivity/source/drivers/jdbc/jdbc.xcu
@@ -174,7 +174,7 @@
       <node oor:name="Properties">
         <node oor:name="IgnoreCurrency" oor:op="replace">
           <prop oor:name="Value" oor:type="xs:boolean">
-            <value>false</value>
+            <value>true</value>
           </prop>
         </node>
         <node oor:name="TypeInfoSettings" oor:op="replace">
diff --git a/svx/inc/svx/sdr/contact/viewobjectcontactofunocontrol.hxx b/svx/inc/svx/sdr/contact/viewobjectcontactofunocontrol.hxx
index b505756..5d8c47d 100644
--- a/svx/inc/svx/sdr/contact/viewobjectcontactofunocontrol.hxx
+++ b/svx/inc/svx/sdr/contact/viewobjectcontactofunocontrol.hxx
@@ -65,6 +65,8 @@ namespace sdr { namespace contact {
         ::rtl::Reference< ViewObjectContactOfUnoControl_Impl >    m_pImpl;
 
     public:
+        ViewObjectContactOfUnoControl( ObjectContact& _rObjectContact, ViewContactOfUnoControl& _rViewContact );
+
         /// determines whether an XControl already exists, and is currently visible
         bool    isControlVisible() const;
 
@@ -98,7 +100,6 @@ namespace sdr { namespace contact {
         virtual void ActionChanged();
 
     protected:
-        ViewObjectContactOfUnoControl( ObjectContact& _rObjectContact, ViewContactOfUnoControl& _rViewContact );
         ~ViewObjectContactOfUnoControl();
 
         // support for Primitive2D
@@ -111,36 +112,6 @@ namespace sdr { namespace contact {
     };
 
     //====================================================================
-    //= UnoControlDefaultContact
-    //====================================================================
-    class SVX_DLLPRIVATE UnoControlDefaultContact : public ViewObjectContactOfUnoControl
-    {
-    public:
-        UnoControlDefaultContact( ObjectContact& _rObjectContact, ViewContactOfUnoControl& _rViewContact );
-        ~UnoControlDefaultContact();
-
-    private:
-        UnoControlDefaultContact();                                             // never implemented
-        UnoControlDefaultContact( const UnoControlDefaultContact& );            // never implemented
-        UnoControlDefaultContact& operator=( const UnoControlDefaultContact& ); // never implemented
-    };
-
-    //====================================================================
-    //= UnoControlWindowContact
-    //====================================================================
-    class SVX_DLLPRIVATE UnoControlWindowContact : public ViewObjectContactOfUnoControl
-    {
-    public:
-        UnoControlWindowContact( ObjectContactOfPageView& _rObjectContact, ViewContactOfUnoControl& _rViewContact );
-        ~UnoControlWindowContact();
-
-    private:
-        UnoControlWindowContact();                                              // never implemented
-        UnoControlWindowContact( const UnoControlWindowContact& );              // never implemented
-        UnoControlWindowContact& operator=( const UnoControlWindowContact& );   // never implemented
-    };
-
-    //====================================================================
     //= UnoControlPrintOrPreviewContact
     //====================================================================
     class SVX_DLLPRIVATE UnoControlPrintOrPreviewContact : public ViewObjectContactOfUnoControl
@@ -157,21 +128,6 @@ namespace sdr { namespace contact {
         virtual drawinglayer::primitive2d::Primitive2DSequence createPrimitive2DSequence(const DisplayInfo& rDisplayInfo ) const;
     };
 
-    //====================================================================
-    //= UnoControlPDFExportContact
-    //====================================================================
-    class SVX_DLLPRIVATE UnoControlPDFExportContact : public ViewObjectContactOfUnoControl
-    {
-    public:
-        UnoControlPDFExportContact( ObjectContactOfPageView& _rObjectContact, ViewContactOfUnoControl& _rViewContact );
-        ~UnoControlPDFExportContact();
-
-    private:
-        UnoControlPDFExportContact();                                               // never implemented
-        UnoControlPDFExportContact( const UnoControlPDFExportContact& );            // never implemented
-        UnoControlPDFExportContact& operator=( const UnoControlPDFExportContact& ); // never implemented
-    };
-
 //........................................................................
 } } // namespace sdr::contact
 //........................................................................
diff --git a/svx/source/fmcomp/gridctrl.cxx b/svx/source/fmcomp/gridctrl.cxx
index e3ea3b2..bbd3358 100644
--- a/svx/source/fmcomp/gridctrl.cxx
+++ b/svx/source/fmcomp/gridctrl.cxx
@@ -763,12 +763,18 @@ void DbGridControl::NavigationBar::StateChanged( StateChangedType nType )
             Fraction aZoom = GetZoom();
 
             // not all of these controls need to know the new zoom, but to be sure ...
-            Font aFont( IsControlFont() ? GetControlFont() : GetPointFont());
+            Font aFont( GetSettings().GetStyleSettings().GetFieldFont() );
+            if ( IsControlFont() )
+                aFont.Merge( GetControlFont() );
+
             for (size_t i=0; i < sizeof(pWindows)/sizeof(pWindows[0]); ++i)
             {
                 pWindows[i]->SetZoom(aZoom);
                 pWindows[i]->SetZoomedPointFont(aFont);
             }
+
+            SetZoomedPointFont( aFont );
+
             // rearrange the controls
             m_nDefaultWidth = ArrangeControls();
         }
@@ -1075,18 +1081,13 @@ void DbGridControl::ImplInitWindow( const InitWindowFacet _eInitWhat )
     {
         if ( m_bNavigationBar )
         {
-            m_aBar.SetZoom( GetZoom() );
-
             Font aFont = m_aBar.GetSettings().GetStyleSettings().GetFieldFont();
             if ( IsControlFont() )
-            {
                 m_aBar.SetControlFont( GetControlFont() );
-                aFont.Merge( GetControlFont() );
-            }
             else
                 m_aBar.SetControlFont();
 
-            m_aBar.SetZoomedPointFont( aFont );
+            m_aBar.SetZoom( GetZoom() );
         }
     }
 
diff --git a/svx/source/form/fmtextcontrolshell.cxx b/svx/source/form/fmtextcontrolshell.cxx
index 7555b3d..0c7a416 100644
--- a/svx/source/form/fmtextcontrolshell.cxx
+++ b/svx/source/form/fmtextcontrolshell.cxx
@@ -101,6 +101,7 @@ namespace svx
     //====================================================================
     static SfxSlotId pTextControlSlots[] =
     {
+        SID_CLIPBOARD_FORMAT_ITEMS,
         SID_CUT,
         SID_COPY,
         SID_PASTE,
@@ -140,7 +141,6 @@ namespace svx
 //        SID_TEXTDIRECTION_TOP_TO_BOTTOM,
         SID_ATTR_CHAR_SCALEWIDTH,       /* 911 */
         SID_ATTR_CHAR_RELIEF,
-        SID_CLIPBOARD_FORMAT_ITEMS,     /* 922 */
         SID_ATTR_PARA_LEFT_TO_RIGHT,    /* 950 */
         SID_ATTR_PARA_RIGHT_TO_LEFT,
         0
diff --git a/svx/source/sdr/contact/viewcontactofunocontrol.cxx b/svx/source/sdr/contact/viewcontactofunocontrol.cxx
index 5c23e3e..1de8ffd 100644
--- a/svx/source/sdr/contact/viewcontactofunocontrol.cxx
+++ b/svx/source/sdr/contact/viewcontactofunocontrol.cxx
@@ -121,36 +121,18 @@ namespace sdr { namespace contact {
     //--------------------------------------------------------------------
     ViewObjectContact& ViewContactOfUnoControl::CreateObjectSpecificViewObjectContact( ObjectContact& _rObjectContact )
     {
+        // print or print preview requires special handling
+        const OutputDevice* pDevice = _rObjectContact.TryToGetOutputDevice();
+        bool bPrintOrPreview = ( pDevice != NULL ) && ( pDevice->GetOutDevType() == OUTDEV_PRINTER );
+
         ObjectContactOfPageView* pPageViewContact = dynamic_cast< ObjectContactOfPageView* >( &_rObjectContact  );
-        if ( pPageViewContact )
-        {
-            // special classes for special devices:
-            // - PDF export
-            ::vcl::PDFExtOutDevData* pPDFExport = PTR_CAST( ::vcl::PDFExtOutDevData, pPageViewContact->GetPageWindow().GetPaintWindow().GetOutputDevice().GetExtOutDevData() );
-            if ( pPDFExport != NULL )
-                return *new UnoControlPDFExportContact( *pPageViewContact, *this );
-
-            // - print preview
-            if ( pPageViewContact->GetPageWindow().GetPageView().GetView().IsPrintPreview() )
-                return *new UnoControlPrintOrPreviewContact( *pPageViewContact, *this );
-
-            OutDevType eDeviceType = pPageViewContact->GetPageWindow().GetPaintWindow().GetOutputDevice().GetOutDevType();
-            // - printing
-            if ( eDeviceType == OUTDEV_PRINTER )
-                return *new UnoControlPrintOrPreviewContact( *pPageViewContact, *this );
-
-            // - any other virtual device
-            if ( eDeviceType == OUTDEV_VIRDEV )
-                return *new UnoControlDefaultContact( *pPageViewContact, *this );
-
-            // - normal windows have special, design-mode dependent handling
-            if ( eDeviceType == OUTDEV_WINDOW )
-                return *new UnoControlWindowContact( *pPageViewContact, *this );
-        }
+        bPrintOrPreview |= ( pPageViewContact != NULL ) && pPageViewContact->GetPageWindow().GetPageView().GetView().IsPrintPreview();
+
+        if ( bPrintOrPreview )
+            return *new UnoControlPrintOrPreviewContact( *pPageViewContact, *this );
 
-        // if we're not working for a ObjectContactOfPageView, then we can't use a ViewObjectContactOfUnoControl, or any
-        // of its derivees. Fall back to a "normal" SdrObj's contact object.
-        return *new ViewObjectContactOfSdrObj( _rObjectContact, *this );
+        // all others are nowadays served by the same implementation
+        return *new ViewObjectContactOfUnoControl( _rObjectContact, *this );
     }
 
     //--------------------------------------------------------------------
@@ -173,7 +155,7 @@ namespace sdr { namespace contact {
             aTransform.set(0, 2, aRange.getMinX());
             aTransform.set(1, 2, aRange.getMinY());
 
-            // create control primitive WITHOUT evtl. existing XControl; this would be done in
+            // create control primitive WITHOUT possibly existing XControl; this would be done in
             // the VOC in createPrimitive2DSequence()
             const drawinglayer::primitive2d::Primitive2DReference xRetval(new drawinglayer::primitive2d::ControlPrimitive2D(
                 aTransform, xControlModel));
diff --git a/svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx b/svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx
index 90295f7..a629e79 100644
--- a/svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx
+++ b/svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx
@@ -402,7 +402,7 @@ namespace sdr { namespace contact {
     //= InvisibleControlViewAccess
     //====================================================================
     /** is a ->IPageViewAccess implementation which can be used to create an invisble control for
-        an arbitrary device
+        an arbitrary window
      */
     class InvisibleControlViewAccess : public IPageViewAccess
     {
@@ -446,6 +446,47 @@ namespace sdr { namespace contact {
     }
 
     //====================================================================
+    //= DummyPageViewAccess
+    //====================================================================
+    /** is a ->IPageViewAccess implementation which can be used to create a control for an arbitrary
+        non-Window device
+
+        The implementation will report the "PageView" as being in design mode, all layers to be visible,
+        and will not return any ControlContainer, so all control container related features (notifications etc)
+        are not available.
+     */
+    class DummyPageViewAccess : public IPageViewAccess
+    {
+    public:
+        DummyPageViewAccess()
+        {
+        }
+
+        virtual bool    isDesignMode() const;
+        virtual Reference< XControlContainer >
+                        getControlContainer( const OutputDevice& _rDevice ) const;
+        virtual bool    isLayerVisible( SdrLayerID _nLayerID ) const;
+    };
+
+    //--------------------------------------------------------------------
+    bool DummyPageViewAccess::isDesignMode() const
+    {
+        return true;
+    }
+    
+    //--------------------------------------------------------------------
+    Reference< XControlContainer > DummyPageViewAccess::getControlContainer( const OutputDevice& /*_rDevice*/ ) const
+    {
+        return NULL;
+    }
+    
+    //--------------------------------------------------------------------
+    bool DummyPageViewAccess::isLayerVisible( SdrLayerID /*_nLayerID*/ ) const
+    {
+        return true;
+    }
+
+    //====================================================================
     //= ViewObjectContactOfUnoControl_Impl
     //====================================================================
     typedef     ::cppu::WeakImplHelper4 <   XWindowListener
@@ -763,8 +804,9 @@ namespace sdr { namespace contact {
 
             This method cares for this, by retrieving the very original OutputDevice.
         */
-        static const OutputDevice& imp_getPageViewDevice_nothrow( const ObjectContactOfPageView& _rObjectContact );
-        const OutputDevice& imp_getPageViewDevice_nothrow() const;
+        static const OutputDevice& impl_getPageViewOutputDevice_nothrow( const ObjectContactOfPageView& _rObjectContact );
+
+        const OutputDevice& impl_getOutputDevice_throw() const;
 
     private:
         ViewObjectContactOfUnoControl_Impl();                                                       // never implemented
@@ -829,6 +871,13 @@ namespace sdr { namespace contact {
         static void getTransformation( const ViewContactOfUnoControl& _rVOC, ::basegfx::B2DHomMatrix& _out_Transformation );
 
     private:
+        void impl_positionAndZoomControl( const ::drawinglayer::geometry::ViewInformation2D& _rViewInformation ) const
+        {
+            if ( !_rViewInformation.getViewport().isEmpty() )
+                m_pVOCImpl->positionAndZoomControl( _rViewInformation.getObjectToViewTransformation() );
+        }
+
+    private:
         ::rtl::Reference< ViewObjectContactOfUnoControl_Impl >  m_pVOCImpl;
         /** The geometry is part of the identity of an primitive, so we cannot calculate it on demand
             (since the data the calculation is based on might have changed then), but need to calc
@@ -854,9 +903,15 @@ namespace sdr { namespace contact {
         DBG_CTOR( ViewObjectContactOfUnoControl_Impl, NULL );
         DBG_ASSERT( m_pAntiImpl, "ViewObjectContactOfUnoControl_Impl::ViewObjectContactOfUnoControl_Impl: invalid AntiImpl!" );
 
-        const OutputDevice& rPageViewDevice( imp_getPageViewDevice_nothrow() );
+        const OutputDevice& rPageViewDevice( impl_getOutputDevice_throw() );
         m_aZoomLevelNormalization = rPageViewDevice.GetInverseViewTransformation();
 
+    #if OSL_DEBUG_LEVEL > 1
+        ::basegfx::B2DVector aScale, aTranslate;
+        double fRotate, fShearX;
+        m_aZoomLevelNormalization.decompose( aScale, aTranslate, fRotate, fShearX );
+    #endif
+
         ::basegfx::B2DHomMatrix aScaleNormalization;
         MapMode aCurrentDeviceMapMode( rPageViewDevice.GetMapMode() );
         aScaleNormalization.set( 0, 0, (double)aCurrentDeviceMapMode.GetScaleX() );
@@ -953,27 +1008,40 @@ namespace sdr { namespace contact {
             return false;
 
         ObjectContactOfPageView* pPageViewContact = dynamic_cast< ObjectContactOfPageView* >( &m_pAntiImpl->GetObjectContact() );
-        DBG_ASSERT( pPageViewContact, "ViewObjectContactOfUnoControl_Impl::ensureControl: cannot create a control if I don't have a PageView!" );
-        if ( !pPageViewContact )
-            return false;
+        if ( pPageViewContact )
+        {
+            SdrPageViewAccess aPVAccess( pPageViewContact->GetPageWindow().GetPageView() );
+            return impl_ensureControl_nothrow(
+                aPVAccess,
+                impl_getPageViewOutputDevice_nothrow( *pPageViewContact )
+            );
+        }
 
-        SdrPageViewAccess aPVAccess( pPageViewContact->GetPageWindow().GetPageView() );
+        DummyPageViewAccess aNoPageView;
         return impl_ensureControl_nothrow(
-            aPVAccess,
-            imp_getPageViewDevice_nothrow( *pPageViewContact )
+            aNoPageView,
+            impl_getOutputDevice_throw()
         );
     }
 
     //--------------------------------------------------------------------
-    const OutputDevice& ViewObjectContactOfUnoControl_Impl::imp_getPageViewDevice_nothrow() const
+    const OutputDevice& ViewObjectContactOfUnoControl_Impl::impl_getOutputDevice_throw() const
     {
         ObjectContactOfPageView* pPageViewContact = dynamic_cast< ObjectContactOfPageView* >( &m_pAntiImpl->GetObjectContact() );
-        ENSURE_OR_THROW( pPageViewContact, "need a ObjectContactOfPageView." );
-        return imp_getPageViewDevice_nothrow( *pPageViewContact );
+        if ( pPageViewContact )
+        {
+            // do not use ObjectContact::TryToGetOutputDevice here, it would not care for the PageWindow's
+            // OriginalPaintWindow
+            return impl_getPageViewOutputDevice_nothrow( *pPageViewContact );
+        }
+
+        const OutputDevice* pDevice = m_pAntiImpl->GetObjectContact().TryToGetOutputDevice();
+        ENSURE_OR_THROW( pDevice, "no output device -> no control" );
+        return *pDevice;
     }
 
     //--------------------------------------------------------------------
-    const OutputDevice& ViewObjectContactOfUnoControl_Impl::imp_getPageViewDevice_nothrow( const ObjectContactOfPageView& _rObjectContact )
+    const OutputDevice& ViewObjectContactOfUnoControl_Impl::impl_getPageViewOutputDevice_nothrow( const ObjectContactOfPageView& _rObjectContact )
     {
         // if the PageWindow has a patched PaintWindow, use the original PaintWindow
         // this ensures that our control is _not_ re-created just because somebody
@@ -1522,18 +1590,28 @@ namespace sdr { namespace contact {
     //--------------------------------------------------------------------
     ::drawinglayer::primitive2d::Primitive2DSequence LazyControlCreationPrimitive2D::get2DDecomposition( const ::drawinglayer::geometry::ViewInformation2D& _rViewInformation ) const
     {
+    #if OSL_DEBUG_LEVEL > 1
+        ::basegfx::B2DVector aScale, aTranslate;
+        double fRotate, fShearX;
+        _rViewInformation.getObjectToViewTransformation().decompose( aScale, aTranslate, fRotate, fShearX );
+    #endif
         if ( m_pVOCImpl->hasControl() )
-            m_pVOCImpl->positionAndZoomControl( _rViewInformation.getObjectToViewTransformation() );
+            impl_positionAndZoomControl( _rViewInformation );
         return BasePrimitive2D::get2DDecomposition( _rViewInformation );
     }
 
     //--------------------------------------------------------------------
     ::drawinglayer::primitive2d::Primitive2DSequence LazyControlCreationPrimitive2D::createLocalDecomposition( const ::drawinglayer::geometry::ViewInformation2D& _rViewInformation ) const
     {
+    #if OSL_DEBUG_LEVEL > 1
+        ::basegfx::B2DVector aScale, aTranslate;
+        double fRotate, fShearX;
+        _rViewInformation.getObjectToViewTransformation().decompose( aScale, aTranslate, fRotate, fShearX );
+    #endif
         // force control here to make it a VCL ChildWindow. Will be fetched
         // and used below by getExistentControl()
         m_pVOCImpl->ensureControl();
-        m_pVOCImpl->positionAndZoomControl( _rViewInformation.getObjectToViewTransformation() );
+        impl_positionAndZoomControl( _rViewInformation );
 
         // get needed data
         const ViewContactOfUnoControl& rViewContactOfUnoControl( m_pVOCImpl->getViewContact() );
@@ -1704,40 +1782,6 @@ namespace sdr { namespace contact {
     }
 
     //====================================================================
-    //= UnoControlDefaultContact
-    //====================================================================
-    DBG_NAME( UnoControlDefaultContact )
-    //--------------------------------------------------------------------
-    UnoControlDefaultContact::UnoControlDefaultContact( ObjectContact& _rObjectContact, ViewContactOfUnoControl& _rViewContact )
-        :ViewObjectContactOfUnoControl( _rObjectContact, _rViewContact )
-    {
-        DBG_CTOR( UnoControlDefaultContact, NULL );
-    }
-
-    //--------------------------------------------------------------------
-    UnoControlDefaultContact::~UnoControlDefaultContact()
-    {
-        DBG_DTOR( UnoControlDefaultContact, NULL );
-    }
-
-    //====================================================================
-    //= UnoControlWindowContact
-    //====================================================================
-    DBG_NAME( UnoControlWindowContact )
-    //--------------------------------------------------------------------
-    UnoControlWindowContact::UnoControlWindowContact( ObjectContactOfPageView& _rObjectContact, ViewContactOfUnoControl& _rViewContact )
-        :ViewObjectContactOfUnoControl( _rObjectContact, _rViewContact )
-    {
-        DBG_CTOR( UnoControlWindowContact, NULL );
-    }
-
-    //--------------------------------------------------------------------
-    UnoControlWindowContact::~UnoControlWindowContact()
-    {
-        DBG_DTOR( UnoControlWindowContact, NULL );
-    }
-
-    //====================================================================
     //= UnoControlPrintOrPreviewContact
     //====================================================================
     DBG_NAME( UnoControlPrintOrPreviewContact )
@@ -1762,23 +1806,6 @@ namespace sdr { namespace contact {
         return ViewObjectContactOfUnoControl::createPrimitive2DSequence( rDisplayInfo );
     }
 
-    //====================================================================
-    //= UnoControlPDFExportContact
-    //====================================================================
-    DBG_NAME( UnoControlPDFExportContact )
-    //--------------------------------------------------------------------
-    UnoControlPDFExportContact::UnoControlPDFExportContact( ObjectContactOfPageView& _rObjectContact, ViewContactOfUnoControl& _rViewContact )
-        :ViewObjectContactOfUnoControl( _rObjectContact, _rViewContact )
-    {
-        DBG_CTOR( UnoControlPDFExportContact, NULL );
-    }
-
-    //--------------------------------------------------------------------
-    UnoControlPDFExportContact::~UnoControlPDFExportContact()
-    {
-        DBG_DTOR( UnoControlPDFExportContact, NULL );
-    }
-
 //........................................................................
 } } // namespace sdr::contact
 //........................................................................
commit 54b8de64945fd01cf1ebe8dc3cfe65da333cbe72
Author: Kurt Zenker <kz at openoffice.org>
Date:   Wed Oct 14 18:01:12 2009 +0000

    CWS-TOOLING: integrate CWS fwk124_DEV300
    2009-10-12 10:48:43 +0200 cd  r276822 : #i105764# Remove wrong if-clause which disables the main function of the job service implementation

diff --git a/framework/source/jobs/job.cxx b/framework/source/jobs/job.cxx
index 2609a57..3a0ead1 100644
--- a/framework/source/jobs/job.cxx
+++ b/framework/source/jobs/job.cxx
@@ -51,7 +51,6 @@
 //	includes of other projects
 #include <rtl/ustrbuf.hxx>
 #include <vcl/svapp.hxx>
-#include <comphelper/uieventslogger.hxx>
 
 //________________________________
 //	namespace
@@ -238,7 +237,6 @@ void Job::execute( /*IN*/ const css::uno::Sequence< css::beans::NamedValue >& lD
     // Otherwhise we might die by ref count ...
     css::uno::Reference< css::task::XJobListener > xThis(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY);
 
-    if ( ::comphelper::UiEventsLogger::isEnabled() )
     try
     {
         // create the job
commit 395cb927618678d852e9dec21d449a7a718fe9d5
Author: Kurt Zenker <kz at openoffice.org>
Date:   Wed Oct 14 16:58:08 2009 +0000

    CWS-TOOLING: integrate CWS fwk121
    2009-09-30 11:20:33 +0200 mav  r276548 : #i105387# allow manifest.xml have no ODF version attribute even for ODF1.2
    2009-09-30 10:54:46 +0200 mav  r276545 : #i105387# allow manifest.xml have no ODF version attribute even for ODF1.2
    2009-09-30 10:02:12 +0200 mav  r276543 : #i105082# integrating the fix from fwk117, since it is necessary for some scenarios fixed in this cws
    2009-09-30 07:33:48 +0200 jsc  r276537 : #i105360# explicitly flush OStorageStream after write operations and OStoreFile when registry file is closed
    2009-09-29 14:15:09 +0200 jsc  r276528 : #i105360# explicitly flush OStorageStream after write operations and OStoreFile when registry file is closed
    2009-09-29 09:45:28 +0200 dr  r276507 : #i105325# set correct format while opening zip package
    2009-09-28 18:46:45 +0200 mav  r276500 : CWS-TOOLING: rebase CWS fwk121 to trunk at 276429 (milestone: DEV300:m60)

diff --git a/xmloff/source/core/xmlimp.cxx b/xmloff/source/core/xmlimp.cxx
index df5c7d2..9807e79 100644
--- a/xmloff/source/core/xmlimp.cxx
+++ b/xmloff/source/core/xmlimp.cxx
@@ -1629,6 +1629,7 @@ sal_Bool SvXMLImport::IsODFVersionConsistent( const ::rtl::OUString& aODFVersion
     if ( aODFVersion.getLength() && aODFVersion.compareTo( ODFVER_012_TEXT ) >= 0 )
     {
         // check the consistency only for the ODF1.2 and later ( according to content.xml )
+        // manifest.xml might have no version, it should be checked here and the correct version should be set
         try
         {
             uno::Reference< document::XStorageBasedDocument > xDoc( mxModel, uno::UNO_QUERY_THROW );
@@ -1654,7 +1655,24 @@ sal_Bool SvXMLImport::IsODFVersionConsistent( const ::rtl::OUString& aODFVersion
                     ::rtl::OUString aStorVersion;
                     xStorProps->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Version" ) ) )
                         >>= aStorVersion;
-                    bResult = aODFVersion.equals( aStorVersion );
+
+                    // if the storage version is set in manifest.xml, it must be the same as in content.xml
+                    // if not, set it explicitly to be used further ( it will work even for readonly storage )
+                    // This workaround is not nice, but I see no other way to handle it, since there are
+                    // ODF1.2 documents without version in manifest.xml
+                    if ( aStorVersion.getLength() )
+                        bResult = aODFVersion.equals( aStorVersion );
+                    else
+                        xStorProps->setPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Version" ) ),
+                                                      uno::makeAny( aODFVersion ) );
+                    
+                    if ( bResult )
+                    {
+                        sal_Bool bInconsistent = sal_False;
+                        xStorProps->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsInconsistent" ) ) )
+                            >>= bInconsistent;
+                        bResult = !bInconsistent; 
+                    }
                 }
             }
         }
commit 65a8ecd60714c6ff2917a22a2390ecaf52e076d2
Author: Kurt Zenker <kz at openoffice.org>
Date:   Wed Oct 14 15:14:05 2009 +0000

    CWS-TOOLING: integrate CWS impress177
    2009-10-07 13:02:12 +0200 sj  r276751 : #i104579# fixed horz and vert adjustment for master styles (excluding notes master)
    2009-10-06 18:09:14 +0200 sj  r276724 : #i104579# fixed horz and vert adjustment for master styles
    2009-10-05 15:02:38 +0200 sj  r276679 : #i104685# fixed text color problem
    2009-10-02 14:01:22 +0200 aw  r276641 : #i105508# added own flag for ClipOnBounds to SdrBlockTextPrimitive2D and the helper createTextPrimitive; adapted usages; corrected VerticalText stuff; corrected ClipOnBounds for CustomShapes
    2009-09-30 11:55:44 +0200 cl  r276550 : CWS-TOOLING: rebase CWS impress177 to trunk at 276429 (milestone: DEV300:m60)
    2009-09-28 17:57:37 +0200 cl  r276498 : #i94900# after a paste special make sure the stylesheets for outline shapes are correct
    2009-09-24 17:36:29 +0200 af  r276425 : #i103464# Restore device more reliably.
    2009-09-24 12:29:31 +0200 sj  r276417 : #i104685# fixed text color propblem
    2009-09-22 16:48:06 +0200 sj  r276360 : #i104682# fixed table border line thickness
    2009-09-22 16:46:29 +0200 sj  r276359 : #i104682# fixed table border line thickness
    2009-09-22 10:29:30 +0200 sj  r276346 : #104579# fixed horz and vert adjustment for master styles
    2009-09-21 14:18:29 +0200 af  r276330 : #i100905# Fixed crash when region is split into bands.
    2009-09-15 15:44:30 +0200 cl  r276181 : #i103179# always hide presentation shapes from master page if rendered as slide background
    2009-09-15 10:44:52 +0200 cl  r276155 : #i104579# return correct IsEmptyPresObj state
    2009-09-14 16:51:41 +0200 cl  r276132 : #i96538# restored OOo 3.0 numbering behaviour

diff --git a/svx/inc/svx/msdffimp.hxx b/svx/inc/svx/msdffimp.hxx
index bc40b39..4c7c991 100644
--- a/svx/inc/svx/msdffimp.hxx
+++ b/svx/inc/svx/msdffimp.hxx
@@ -481,6 +481,7 @@ public:
     MSFilterTracer*		mpTracer;
     sal_Bool			mbTracing;
 
+    Color MSO_TEXT_CLR_ToColor( sal_uInt32 nColorCode ) const;
     Color MSO_CLR_ToColor( sal_uInt32 nColorCode, sal_uInt16 nContextProperty = DFF_Prop_lineColor ) const;
     virtual BOOL SeekToShape( SvStream& rSt, void* pClientData, UINT32 nId ) const;
     FASTBOOL SeekToRec( SvStream& rSt, USHORT nRecId, ULONG nMaxFilePos, DffRecordHeader* pRecHd = NULL, ULONG nSkipCount = 0 ) const;
diff --git a/svx/inc/svx/sdr/primitive2d/sdrdecompositiontools.hxx b/svx/inc/svx/sdr/primitive2d/sdrdecompositiontools.hxx
index d37adb2..d3bf028 100644
--- a/svx/inc/svx/sdr/primitive2d/sdrdecompositiontools.hxx
+++ b/svx/inc/svx/sdr/primitive2d/sdrdecompositiontools.hxx
@@ -75,7 +75,8 @@ namespace drawinglayer
             const attribute::SdrTextAttribute& rText,
             const attribute::SdrLineAttribute* pStroke,
             bool bCellText,
-            bool bWordWrap);
+            bool bWordWrap,
+            bool bClipOnBounds);
 
         Primitive2DSequence createEmbeddedShadowPrimitive(
             const Primitive2DSequence& rContent, 
diff --git a/svx/inc/svx/sdr/primitive2d/sdrtextprimitive2d.hxx b/svx/inc/svx/sdr/primitive2d/sdrtextprimitive2d.hxx
index d5f841d..b9f2751 100644
--- a/svx/inc/svx/sdr/primitive2d/sdrtextprimitive2d.hxx
+++ b/svx/inc/svx/sdr/primitive2d/sdrtextprimitive2d.hxx
@@ -219,6 +219,7 @@ namespace drawinglayer
             unsigned								mbUnlimitedPage : 1;	// force layout with no text break
             unsigned								mbCellText : 1;			// this is a cell text as block text
             unsigned                                mbWordWrap : 1;         // for CustomShapes text layout
+            unsigned								mbClipOnBounds : 1;		// for CustomShapes text layout
 
         protected:
             // local decomposition.
@@ -234,7 +235,8 @@ namespace drawinglayer
                 bool bFixedCellHeight,
                 bool bUnlimitedPage,
                 bool bCellText,
-                bool bWordWrap);
+                bool bWordWrap,
+                bool bClipOnBounds);
 
             // get data
             const basegfx::B2DHomMatrix& getTextRangeTransform() const { return maTextRangeTransform; }
@@ -244,6 +246,7 @@ namespace drawinglayer
             bool getUnlimitedPage() const { return mbUnlimitedPage; }
             bool getCellText() const { return mbCellText; }
             bool getWordWrap() const { return mbWordWrap; }
+            bool getClipOnBounds() const { return mbClipOnBounds; }
 
             // compare operator
             virtual bool operator==(const BasePrimitive2D& rPrimitive) const;
diff --git a/svx/source/msfilter/msdffimp.cxx b/svx/source/msfilter/msdffimp.cxx
index 30251b6..68c916d 100644
--- a/svx/source/msfilter/msdffimp.cxx
+++ b/svx/source/msfilter/msdffimp.cxx
@@ -3770,14 +3770,37 @@ FASTBOOL SvxMSDffManager::GetColorFromPalette( USHORT /* nNum */, Color& rColor
     return TRUE;
 }
 
+// sj: the documentation is not complete, especially in ppt the normal rgb for text
+// color is written as 0xfeRRGGBB, this can't be explained by the documentation, nearly
+// every bit in the upper code is set -> so there seems to be a special handling for 
+// ppt text colors, i decided not to fix this in MSO_CLR_ToColor because of possible
+// side effects, instead MSO_TEXT_CLR_ToColor is called for PPT text colors, to map 
+// the color code to something that behaves like the other standard color codes used by 
+// fill and line color
+Color SvxMSDffManager::MSO_TEXT_CLR_ToColor( sal_uInt32 nColorCode ) const
+{
+    // Fuer Textfarben: Header ist 0xfeRRGGBB
+    if ( ( nColorCode & 0xfe000000 ) == 0xfe000000 )
+        nColorCode &= 0x00ffffff;
+    else
+    {
+        // for colorscheme colors the color index are the lower three bits of the upper byte
+        if ( ( nColorCode & 0xf8000000 ) == 0 ) // this must be a colorscheme index
+        {
+            nColorCode >>= 24;
+            nColorCode |= 0x8000000;
+        }
+    }
+    return MSO_CLR_ToColor( nColorCode );
+}
 
 Color SvxMSDffManager::MSO_CLR_ToColor( sal_uInt32 nColorCode, sal_uInt16 nContentProperty ) const
 {
     Color aColor( mnDefaultColor );
 
     // Fuer Textfarben: Header ist 0xfeRRGGBB
-    if ( ( nColorCode & 0xfe000000 ) == 0xfe000000 )
-        nColorCode &= 0x00ffffff;
+    if ( ( nColorCode & 0xfe000000 ) == 0xfe000000 )	// sj: it needs to be checked if 0xfe is used in 
+        nColorCode &= 0x00ffffff;						// other cases than ppt text -> if not this code can be removed
 
     sal_uInt8 nUpper = (sal_uInt8)( nColorCode >> 24 );
     
diff --git a/svx/source/outliner/outliner.cxx b/svx/source/outliner/outliner.cxx
index f290864..193a5f2 100644
--- a/svx/source/outliner/outliner.cxx
+++ b/svx/source/outliner/outliner.cxx
@@ -1867,6 +1867,20 @@ IMPL_LINK( Outliner, EndMovingParagraphsHdl, MoveParagraphsInfo*, pInfos )
     return 0;
 }
 
+static bool isSameNumbering( const SvxNumberFormat& rN1, const SvxNumberFormat& rN2 )
+{
+    if( rN1.GetNumberingType() != rN2.GetNumberingType() )
+        return false;
+        
+    if( rN1.GetNumStr(1) != rN2.GetNumStr(1) )
+        return false;
+        
+    if( (rN1.GetPrefix() != rN2.GetPrefix()) || (rN1.GetSuffix() != rN2.GetSuffix()) )
+        return false;
+        
+    return true;
+}
+
 sal_uInt16 Outliner::ImplGetNumbering( USHORT nPara, const SvxNumberFormat* pParaFmt )
 {
     sal_uInt16 nNumber = pParaFmt->GetStart() - 1;
@@ -1879,8 +1893,8 @@ sal_uInt16 Outliner::ImplGetNumbering( USHORT nPara, const SvxNumberFormat* pPar
         pPara = pParaList->GetParagraph( nPara );
         const sal_Int16 nDepth = pPara->GetDepth();
 
-        // ignore paragraphs that are below our paragraph
-        if( nDepth > nParaDepth )
+        // ignore paragraphs that are below our paragraph or have no numbering
+        if( (nDepth > nParaDepth) || (nDepth == -1) )
             continue;
 
         // stop on paragraphs that are above our paragraph
@@ -1888,8 +1902,13 @@ sal_uInt16 Outliner::ImplGetNumbering( USHORT nPara, const SvxNumberFormat* pPar
             break;
 
         const SvxNumberFormat* pFmt = GetNumberFormat( nPara );
-        if( pFmt == 0 || (*pFmt != *pParaFmt) )
-            break; // change in number format, stop here
+        
+        if( pFmt == 0 )
+            continue; // ignore paragraphs without bullets
+            
+        // check if numbering is the same
+        if( !isSameNumbering( *pFmt, *pParaFmt ) )
+            break;
 
         const SfxBoolItem& rBulletState = (const SfxBoolItem&) pEditEngine->GetParaAttrib( nPara, EE_PARA_BULLETSTATE );
 
diff --git a/svx/source/outliner/outlvw.cxx b/svx/source/outliner/outlvw.cxx
index 71387e4..2fdc007 100644
--- a/svx/source/outliner/outlvw.cxx
+++ b/svx/source/outliner/outlvw.cxx
@@ -1010,6 +1010,14 @@ void OutlinerView::PasteSpecial()
         pOwner->bPasting = TRUE;
         pEditView->PasteSpecial();
 
+        if ( pOwner->ImplGetOutlinerMode() == OUTLINERMODE_OUTLINEOBJECT )
+        {
+            const USHORT nParaCount = pOwner->pEditEngine->GetParagraphCount();
+
+            for( USHORT nPara = 0; nPara < nParaCount; nPara++ )
+                pOwner->ImplSetLevelDependendStyleSheet( nPara );
+        }
+
         pEditView->SetEditEngineUpdateMode( TRUE );
         pOwner->UndoActionEnd( OLUNDO_INSERT );
         pEditView->ShowCursor( TRUE, TRUE );
diff --git a/svx/source/sdr/contact/viewcontactofgraphic.cxx b/svx/source/sdr/contact/viewcontactofgraphic.cxx
index 5781e7b..80e6129 100644
--- a/svx/source/sdr/contact/viewcontactofgraphic.cxx
+++ b/svx/source/sdr/contact/viewcontactofgraphic.cxx
@@ -310,6 +310,7 @@ namespace sdr
                         false,
                         false,
                         false,
+                        false,
                         false);
 
                     // decompose immediately with neutral ViewInformation. This will
diff --git a/svx/source/sdr/primitive2d/sdrcaptionprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrcaptionprimitive2d.cxx
index bde6bb4..233aed8 100644
--- a/svx/source/sdr/primitive2d/sdrcaptionprimitive2d.cxx
+++ b/svx/source/sdr/primitive2d/sdrcaptionprimitive2d.cxx
@@ -123,6 +123,7 @@ namespace drawinglayer
                         *getSdrLFSTAttribute().getText(), 
                         getSdrLFSTAttribute().getLine(), 
                         false, 
+                        false,
                         false));
             }
 
diff --git a/svx/source/sdr/primitive2d/sdrconnectorprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrconnectorprimitive2d.cxx
index 58745f8..a008202 100644
--- a/svx/source/sdr/primitive2d/sdrconnectorprimitive2d.cxx
+++ b/svx/source/sdr/primitive2d/sdrconnectorprimitive2d.cxx
@@ -72,7 +72,7 @@ namespace drawinglayer
             // add text
             if(getSdrLSTAttribute().getText())
             {
-                appendPrimitive2DReferenceToPrimitive2DSequence(aRetval, createTextPrimitive(::basegfx::B2DPolyPolygon(getUnitPolygon()), aEmptyMatrix, *getSdrLSTAttribute().getText(), getSdrLSTAttribute().getLine(), false, false));
+                appendPrimitive2DReferenceToPrimitive2DSequence(aRetval, createTextPrimitive(::basegfx::B2DPolyPolygon(getUnitPolygon()), aEmptyMatrix, *getSdrLSTAttribute().getText(), getSdrLSTAttribute().getLine(), false, false, false));
             }
 
             // add shadow
diff --git a/svx/source/sdr/primitive2d/sdrcustomshapeprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrcustomshapeprimitive2d.cxx
index 2a433ec..e38cb57 100644
--- a/svx/source/sdr/primitive2d/sdrcustomshapeprimitive2d.cxx
+++ b/svx/source/sdr/primitive2d/sdrcustomshapeprimitive2d.cxx
@@ -60,8 +60,9 @@ namespace drawinglayer
                     getTextBox(),
                     *getSdrSTAttribute().getText(),
                     0,
-                    isForceTextClipToTextRange(), // #SJ# use CellText mode; text upper-left
-                    getWordWrap()));
+                    false,
+                    getWordWrap(),
+                    isForceTextClipToTextRange()));
             }
 
             // add shadow
diff --git a/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx b/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx
index e6f5a77..6204eba 100644
--- a/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx
+++ b/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx
@@ -173,7 +173,8 @@ namespace drawinglayer
             const attribute::SdrTextAttribute& rText,
             const attribute::SdrLineAttribute* pStroke,
             bool bCellText,
-            bool bWordWrap)
+            bool bWordWrap,
+            bool bClipOnBounds)
         {
             basegfx::B2DHomMatrix aAnchorTransform(rObjectTransform);
             SdrTextPrimitive2D* pNew = 0;
@@ -297,7 +298,8 @@ namespace drawinglayer
                         rText.isFixedCellHeight(),
                         rText.isScroll(), 
                         bCellText, 
-                        bWordWrap);
+                        bWordWrap,
+                        bClipOnBounds);
                 }
             }
 
diff --git a/svx/source/sdr/primitive2d/sdrellipseprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrellipseprimitive2d.cxx
index c30b036..dee271c 100644
--- a/svx/source/sdr/primitive2d/sdrellipseprimitive2d.cxx
+++ b/svx/source/sdr/primitive2d/sdrellipseprimitive2d.cxx
@@ -94,7 +94,7 @@ namespace drawinglayer
             // add text
             if(getSdrLFSTAttribute().getText())
             {
-                appendPrimitive2DReferenceToPrimitive2DSequence(aRetval, createTextPrimitive(::basegfx::B2DPolyPolygon(aUnitOutline), getTransform(), *getSdrLFSTAttribute().getText(), getSdrLFSTAttribute().getLine(), false, false));
+                appendPrimitive2DReferenceToPrimitive2DSequence(aRetval, createTextPrimitive(::basegfx::B2DPolyPolygon(aUnitOutline), getTransform(), *getSdrLFSTAttribute().getText(), getSdrLFSTAttribute().getLine(), false, false, false));
             }
 
             // add shadow
@@ -191,7 +191,7 @@ namespace drawinglayer
             // add text
             if(getSdrLFSTAttribute().getText())
             {
-                appendPrimitive2DReferenceToPrimitive2DSequence(aRetval, createTextPrimitive(::basegfx::B2DPolyPolygon(aUnitOutline), getTransform(), *getSdrLFSTAttribute().getText(), getSdrLFSTAttribute().getLine(), false, false));
+                appendPrimitive2DReferenceToPrimitive2DSequence(aRetval, createTextPrimitive(::basegfx::B2DPolyPolygon(aUnitOutline), getTransform(), *getSdrLFSTAttribute().getText(), getSdrLFSTAttribute().getLine(), false, false, false));
             }
 
             // add shadow
diff --git a/svx/source/sdr/primitive2d/sdrgrafprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrgrafprimitive2d.cxx
index e4183f3..d57540c 100644
--- a/svx/source/sdr/primitive2d/sdrgrafprimitive2d.cxx
+++ b/svx/source/sdr/primitive2d/sdrgrafprimitive2d.cxx
@@ -104,7 +104,7 @@ namespace drawinglayer
             // add text
             if(getSdrLFSTAttribute().getText())
             {
-                appendPrimitive2DReferenceToPrimitive2DSequence(aRetval, createTextPrimitive(basegfx::B2DPolyPolygon(aUnitOutline), getTransform(), *getSdrLFSTAttribute().getText(), getSdrLFSTAttribute().getLine(), false, false));
+                appendPrimitive2DReferenceToPrimitive2DSequence(aRetval, createTextPrimitive(basegfx::B2DPolyPolygon(aUnitOutline), getTransform(), *getSdrLFSTAttribute().getText(), getSdrLFSTAttribute().getLine(), false, false, false));
             }
 
             // add shadow
diff --git a/svx/source/sdr/primitive2d/sdrmeasureprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrmeasureprimitive2d.cxx
index 1db2b4a..9d58a01 100644
--- a/svx/source/sdr/primitive2d/sdrmeasureprimitive2d.cxx
+++ b/svx/source/sdr/primitive2d/sdrmeasureprimitive2d.cxx
@@ -134,6 +134,7 @@ namespace drawinglayer
                     pTextAttribute->isScroll(), 
                     false, 
                     false,
+                    false,
                     false);
                 aTextRange = pBlockText->getB2DRange(aViewInformation);
             }
diff --git a/svx/source/sdr/primitive2d/sdrole2primitive2d.cxx b/svx/source/sdr/primitive2d/sdrole2primitive2d.cxx
index a7d647d..1f4d48e 100644
--- a/svx/source/sdr/primitive2d/sdrole2primitive2d.cxx
+++ b/svx/source/sdr/primitive2d/sdrole2primitive2d.cxx
@@ -110,7 +110,7 @@ namespace drawinglayer
             // always supported by the old paints, too
             if(getSdrLFSTAttribute().getText())
             {
-                appendPrimitive2DReferenceToPrimitive2DSequence(aRetval, createTextPrimitive(basegfx::B2DPolyPolygon(aUnitOutline), getTransform(), *getSdrLFSTAttribute().getText(), getSdrLFSTAttribute().getLine(), false, false));
+                appendPrimitive2DReferenceToPrimitive2DSequence(aRetval, createTextPrimitive(basegfx::B2DPolyPolygon(aUnitOutline), getTransform(), *getSdrLFSTAttribute().getText(), getSdrLFSTAttribute().getLine(), false, false, false));
             }
 
             // add shadow
diff --git a/svx/source/sdr/primitive2d/sdrpathprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrpathprimitive2d.cxx
index f09e9c1..128a450 100644
--- a/svx/source/sdr/primitive2d/sdrpathprimitive2d.cxx
+++ b/svx/source/sdr/primitive2d/sdrpathprimitive2d.cxx
@@ -89,7 +89,7 @@ namespace drawinglayer
             // add text
             if(getSdrLFSTAttribute().getText())
             {
-                appendPrimitive2DReferenceToPrimitive2DSequence(aRetval, createTextPrimitive(getUnitPolyPolygon(), getTransform(), *getSdrLFSTAttribute().getText(), getSdrLFSTAttribute().getLine(), false, false));
+                appendPrimitive2DReferenceToPrimitive2DSequence(aRetval, createTextPrimitive(getUnitPolyPolygon(), getTransform(), *getSdrLFSTAttribute().getText(), getSdrLFSTAttribute().getLine(), false, false, false));
             }
 
             // add shadow
diff --git a/svx/source/sdr/primitive2d/sdrrectangleprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrrectangleprimitive2d.cxx
index e4b9d3f..2096846 100644
--- a/svx/source/sdr/primitive2d/sdrrectangleprimitive2d.cxx
+++ b/svx/source/sdr/primitive2d/sdrrectangleprimitive2d.cxx
@@ -110,7 +110,7 @@ namespace drawinglayer
             // add text
             if(getSdrLFSTAttribute().getText())
             {
-                appendPrimitive2DReferenceToPrimitive2DSequence(aRetval, createTextPrimitive(basegfx::B2DPolyPolygon(aUnitOutline), getTransform(), *getSdrLFSTAttribute().getText(), getSdrLFSTAttribute().getLine(), false, false));
+                appendPrimitive2DReferenceToPrimitive2DSequence(aRetval, createTextPrimitive(basegfx::B2DPolyPolygon(aUnitOutline), getTransform(), *getSdrLFSTAttribute().getText(), getSdrLFSTAttribute().getLine(), false, false, false));
             }
 
             // add shadow
diff --git a/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx
index b6c5065..bd8547c 100644
--- a/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx
+++ b/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx
@@ -382,7 +382,8 @@ namespace drawinglayer
             bool bFixedCellHeight,
             bool bUnlimitedPage,
             bool bCellText,
-            bool bWordWrap)
+            bool bWordWrap,
+            bool bClipOnBounds)
         :	SdrTextPrimitive2D(pSdrText, rOutlinerParaObject),
             maTextRangeTransform(rTextRangeTransform),
             maSdrTextHorzAdjust(aSdrTextHorzAdjust),
@@ -390,7 +391,8 @@ namespace drawinglayer
             mbFixedCellHeight(bFixedCellHeight),
             mbUnlimitedPage(bUnlimitedPage),
             mbCellText(bCellText),
-            mbWordWrap(bWordWrap)
+            mbWordWrap(bWordWrap),
+            mbClipOnBounds(bClipOnBounds)
         {
         }
 
@@ -406,7 +408,8 @@ namespace drawinglayer
                     && isFixedCellHeight() == rCompare.isFixedCellHeight()
                     && getUnlimitedPage() == rCompare.getUnlimitedPage()
                     && getCellText() == rCompare.getCellText()
-                    && getWordWrap() == rCompare.getWordWrap());
+                    && getWordWrap() == rCompare.getWordWrap()
+                    && getClipOnBounds() == rCompare.getClipOnBounds());
             }
 
             return false;
@@ -423,7 +426,8 @@ namespace drawinglayer
                 isFixedCellHeight(),
                 getUnlimitedPage(), 
                 getCellText(), 
-                getWordWrap());
+                getWordWrap(),
+                getClipOnBounds());
         }
 
         // provide unique ID
diff --git a/svx/source/svdraw/svdfppt.cxx b/svx/source/svdraw/svdfppt.cxx
index 89488eb..dbf535b 100644
--- a/svx/source/svdraw/svdfppt.cxx
+++ b/svx/source/svdraw/svdfppt.cxx
@@ -3972,7 +3972,7 @@ void PPTNumberFormatCreator::ImplGetNumberFormat( SdrPowerPointImport& rManager,
         aFont.SetFamily( pAtom->eFamily );
         aFont.SetPitch( pAtom->ePitch );
     }
-    Color aCol( rManager.MSO_CLR_ToColor( nBulletColor ) );
+    Color aCol( rManager.MSO_TEXT_CLR_ToColor( nBulletColor ) );
     aFont.SetColor( aCol );
 
     sal_uInt16 nBuChar = (sal_uInt16)nBulletChar;
@@ -5886,14 +5886,14 @@ void PPTPortionObj::ApplyTo(  SfxItemSet& rSet, SdrPowerPointImport& rManager, U
     {
         if ( GetAttrib( PPT_CharAttr_FontColor, nVal, nDestinationInstance ) )	// Textfarbe (4Byte-Arg)
         {
-            Color aCol( rManager.MSO_CLR_ToColor( nVal ) );
+            Color aCol( rManager.MSO_TEXT_CLR_ToColor( nVal ) );
             rSet.Put( SvxColorItem( aCol, EE_CHAR_COLOR ) );
             if ( nDestinationInstance == 0xffffffff )
                 mrStyleSheet.mpCharSheet[ mnInstance ]->maCharLevel[ mnDepth ].mnFontColorInStyleSheet = aCol;
         }
         else if ( nVal & 0x0f000000 )	// this is not a hard attribute, but maybe the page has a different colerscheme,
         {								// so that in this case we must use a hard color attribute
-            Color	aCol( rManager.MSO_CLR_ToColor( nVal ) );
+            Color	aCol( rManager.MSO_TEXT_CLR_ToColor( nVal ) );
             Color&	aColorInSheet = mrStyleSheet.mpCharSheet[ mnInstance ]->maCharLevel[ mnDepth ].mnFontColorInStyleSheet;
             if ( aColorInSheet != aCol )
                 rSet.Put( SvxColorItem( aCol, EE_CHAR_COLOR ) );
@@ -6315,7 +6315,7 @@ void PPTParagraphObj::ApplyTo( SfxItemSet& rSet,  boost::optional< sal_Int16 >&
                                 nColor = rParaLevel.mnBulletColor;
                             else
                                 nColor = rCharLevel.mnFontColor;
-                            aNumberFormat2.SetBulletColor( rManager.MSO_CLR_ToColor( nColor ) );
+                            aNumberFormat2.SetBulletColor( rManager.MSO_TEXT_CLR_ToColor( nColor ) );
                             pRule->SetLevel( i, aNumberFormat2 );
                         }
                     }
@@ -7611,8 +7611,8 @@ void ApplyCellLineAttributes( const SdrObject* pLine, Reference< XTable >& xTabl
                 {
                     Color aLineColor( ((XLineColorItem&)pLine->GetMergedItem( XATTR_LINECOLOR )).GetColorValue() );
                     aBorderLine.Color = aLineColor.GetColor();
-                    aBorderLine.OuterLineWidth = static_cast< sal_Int16 >( ((const XLineWidthItem&)(pLine->GetMergedItem(XATTR_LINEWIDTH))).GetValue() );
-                    aBorderLine.InnerLineWidth = 0;
+                    aBorderLine.OuterLineWidth = static_cast< sal_Int16 >( ((const XLineWidthItem&)(pLine->GetMergedItem(XATTR_LINEWIDTH))).GetValue() / 4 );
+                    aBorderLine.InnerLineWidth = static_cast< sal_Int16 >( ((const XLineWidthItem&)(pLine->GetMergedItem(XATTR_LINEWIDTH))).GetValue() / 4 );
                     aBorderLine.LineDistance = 0;
                 }
                 break;
diff --git a/svx/source/svdraw/svdotextdecomposition.cxx b/svx/source/svdraw/svdotextdecomposition.cxx
index 5768def..de1f8dd 100644
--- a/svx/source/svdraw/svdotextdecomposition.cxx
+++ b/svx/source/svdraw/svdotextdecomposition.cxx
@@ -800,24 +800,32 @@ void SdrTextObj::impDecomposeBlockTextPrimitive(
     const bool bVerticalWritintg(rSdrBlockTextPrimitive.getOutlinerParaObject().IsVertical());
     const Size aAnchorTextSize(Size(nAnchorTextWidth, nAnchorTextHeight));
 
+    // check if block text is used (only one of them can be true)
+    const bool bHorizontalIsBlock(SDRTEXTHORZADJUST_BLOCK == eHAdj && !bVerticalWritintg);
+    const bool bVerticalIsBlock(SDRTEXTVERTADJUST_BLOCK == eVAdj && bVerticalWritintg);
+
+    // set minimal paper size hor/ver if needed
+    if(bHorizontalIsBlock)
+    {
+        rOutliner.SetMinAutoPaperSize(Size(nAnchorTextWidth, 0));
+    }
+    else if(bVerticalIsBlock)
+    {
+        rOutliner.SetMinAutoPaperSize(Size(0, nAnchorTextHeight));
+    }
+
     if(bIsCell)
     {
         // cell text is formated neither like a text object nor like a object
         // text, so use a special setup here
-        rOutliner.SetMinAutoPaperSize(aNullSize);
         rOutliner.SetMaxAutoPaperSize(aAnchorTextSize);
         rOutliner.SetPaperSize(aAnchorTextSize);
-        rOutliner.SetMinAutoPaperSize(Size(nAnchorTextWidth, 0));
-        rOutliner.SetUpdateMode(TRUE);
+        rOutliner.SetUpdateMode(true);
         rOutliner.SetText(rSdrBlockTextPrimitive.getOutlinerParaObject());
-        rOutliner.SetUpdateMode(TRUE);
         rOutliner.SetControlWord(nOriginalControlWord);
     }
     else
     {
-        // check if block text is used (only one of them can be true)
-        const bool bHorizontalIsBlock(SDRTEXTHORZADJUST_BLOCK == eHAdj && !bVerticalWritintg);
-        const bool bVerticalIsBlock(SDRTEXTVERTADJUST_BLOCK == eVAdj && bVerticalWritintg);
 
         if((rSdrBlockTextPrimitive.getWordWrap() || IsTextFrame()) && !rSdrBlockTextPrimitive.getUnlimitedPage())
         {
@@ -843,16 +851,6 @@ void SdrTextObj::impDecomposeBlockTextPrimitive(
             rOutliner.SetMaxAutoPaperSize(aMaxAutoPaperSize);
         }
 
-        // set minimal paper size hor/ver if needed
-        if(bHorizontalIsBlock)
-        {
-            rOutliner.SetMinAutoPaperSize(Size(nAnchorTextWidth, 0));
-        }
-        else if(bVerticalIsBlock)
-        {
-            rOutliner.SetMinAutoPaperSize(Size(0, nAnchorTextHeight));
-        }
-
         rOutliner.SetPaperSize(aNullSize);
         rOutliner.SetUpdateMode(true);
         rOutliner.SetText(rSdrBlockTextPrimitive.getOutlinerParaObject());
@@ -931,7 +929,8 @@ void SdrTextObj::impDecomposeBlockTextPrimitive(
     // as the master shape we are working on. For vertical, use the top-right
     // corner
     const double fStartInX(bVerticalWritintg ? aAdjustTranslate.getX() + aOutlinerScale.getX() : aAdjustTranslate.getX());
-    aNewTransformA.translate(fStartInX, aAdjustTranslate.getY());
+    const basegfx::B2DTuple aAdjOffset(fStartInX, aAdjustTranslate.getY());
+    aNewTransformA.translate(aAdjOffset.getX(), aAdjOffset.getY());
 
     // mirroring. We are now in aAnchorTextRange sizes. When mirroring in X and Y,
     // move the null point which was top left to bottom right.
@@ -948,10 +947,10 @@ void SdrTextObj::impDecomposeBlockTextPrimitive(
     // #SJ# create ClipRange (if needed)
     basegfx::B2DRange aClipRange;
 
-    if(bIsCell)
+    if(rSdrBlockTextPrimitive.getClipOnBounds())
     {
-        aClipRange.expand(basegfx::B2DTuple(0.0, 0.0));
-        aClipRange.expand(basegfx::B2DTuple(aAnchorTextSize.Width(), aAnchorTextSize.Height()));
+        aClipRange.expand(-aAdjOffset);
+        aClipRange.expand(basegfx::B2DTuple(aAnchorTextSize.Width(), aAnchorTextSize.Height()) - aAdjOffset);
     }
 
     // now break up text primitives.
diff --git a/svx/source/table/viewcontactoftableobj.cxx b/svx/source/table/viewcontactoftableobj.cxx
index ffc2307..03ffdc3 100644
--- a/svx/source/table/viewcontactoftableobj.cxx
+++ b/svx/source/table/viewcontactoftableobj.cxx
@@ -123,7 +123,7 @@ namespace drawinglayer
                         getTransform(), 
                         *getSdrFTAttribute().getText(),
                         0,
-                        true, false));
+                        true, false, false));
                 }
             }
 


More information about the ooo-build-commit mailing list