Commits

Anonymous committed 0df9899 Merge

vcl120: rebase to DEV300m102

Comments (0)

Files changed (936)

 055aad264da0cf9598fd1b7aafbd3e144c9b8ce2 DEV300_m99
 20c5c9384888da33596d864251881e6e46bdd339 DEV300_m100
 564e24baaaae5e18c8bfa76811993fbefa571b5c DEV300_m101
+7dbaa615ad894cfd4f9611e82783250bd0a3016d DEV300_m102
 	sw \
 	toolkit \
 	tools \
+	unoxml \
 	xmloff \
     vbahelper \
 ))
 	tk \
 	tl \
 	utl \
+	unordf \
+	unoxml \
 	vbahelper \
 	vcl \
 	xcr \
 ))
 
 $(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \
+	cppunit \
 	icuuc \
-	cppunit \
+	rdf \
+	xslt \
 ))
 
 

RepositoryFixes.mk

 gb_Library_FILENAMES := $(patsubst vbahelper:ivbahelper%,vbahelper:vbahelper%,$(gb_Library_FILENAMES))
 gb_Library_FILENAMES := $(patsubst vos3:ivos3%,vos3:ivos%,$(gb_Library_FILENAMES))
 gb_Library_FILENAMES := $(patsubst xml2:ixml2%,xml2:libxml2$(gb_Library_IARCEXT),$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst xslt:ixslt%,xslt:libxslt$(gb_Library_IARCEXT),$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst rdf:irdf%,rdf:librdf.dll$(gb_Library_IARCEXT),$(gb_Library_FILENAMES))
 gb_Library_FILENAMES := $(patsubst z:iz%,z:zlib%,$(gb_Library_FILENAMES))
 ifeq ($(gb_PRODUCT),$(true))
 gb_Library_FILENAMES := $(patsubst stl:istl%,stl:stlport_vc71%,$(gb_Library_FILENAMES))
 gb_Library_FILENAMES := $(patsubst vbahelper:ivbahelper%,vbahelper:vbahelper%,$(gb_Library_FILENAMES))
 gb_Library_FILENAMES := $(patsubst vos3:ivos3%,vos3:ivos%,$(gb_Library_FILENAMES))
 gb_Library_FILENAMES := $(patsubst xml2:ixml2%,xml2:libxml2%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst xslt:ixslt%,xslt:libxslt%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst rdf:irdf%,rdf:librdf%,$(gb_Library_FILENAMES))
 gb_Library_FILENAMES := $(patsubst z:iz%,z:zlib%,$(gb_Library_FILENAMES))
 ifeq ($(gb_PRODUCT),$(true))
 gb_Library_FILENAMES := $(patsubst stl:istl%,stl:stlport_vc71%,$(gb_Library_FILENAMES))
 gb_Library_TARGETS := $(filter-out xml2,$(gb_Library_TARGETS))
 endif
 
+ifeq ($(SYSTEM_LIBXSLT),YES)
+gb_Library_TARGETS := $(filter-out xslt,$(gb_Library_TARGETS))
+endif
+
+ifeq ($(SYSTEM_REDLAND),YES)
+gb_Library_TARGETS := $(filter-out rdf,$(gb_Library_TARGETS))
+endif
+
 ifeq ($(SYSTEM_ICU),YES)
 gb_Library_TARGETS := $(filter-out icuuc,$(gb_Library_TARGETS))
 endif

autodoc/source/parser_i/idoc/docu_pe2.cxx

 /*************************************************************************
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- * 
+ *
  * Copyright 2000, 2010 Oracle and/or its affiliates.
  *
  * OpenOffice.org - a multi-platform office productivity suite
 
 
 // NOT FULLY DEFINED SERVICES
+#include <cctype>
 #include <ary/doc/d_oldidldocu.hxx>
 #include <ary_i/d_token.hxx>
 #include <parser/parserinfo.hxx>
 	else if (i_rToken.Id() == Tok_AtTag::since)
 	{
 		pCurAtTag = new DT_SinceAtTag;
-		fCurTokenAddFunction = &SapiDocu_PE::SetCurSinceAtTagVersion;
+		fCurTokenAddFunction = &SapiDocu_PE::SetCurSinceAtTagVersion_OOo;
 	}
 	else
 	{
 	fCurTokenAddFunction = &SapiDocu_PE::AddDocuToken2CurAtTag;
 }
 
-
+const String
+    C_sSinceFormat("Correct version format: \"OOo <major>.<minor>[.<micro> if micro is not 0]\".");
 
 void
-SapiDocu_PE::SetCurSinceAtTagVersion( DYN ary::inf::DocuToken & let_drNewToken )
+SapiDocu_PE::SetCurSinceAtTagVersion_OOo( DYN ary::inf::DocuToken & let_drNewToken )
 {
 	csv_assert(pCurAtTag);
 
 
     const String
         sVersion(pToken->GetText());
-    const char
-        cFirst = *sVersion.begin();
-    const char
-        cCiphersend = '9' + 1;
+    if (NOT CheckVersionSyntax_OOo(sVersion))
+    {
+        Cerr() << "Version information in @since tag has incorrect format.\n"
+               << "Found: \"" << sVersion << "\"\n"
+               << C_sSinceFormat
+               << Endl();
+        exit(1);
+    }
+
     const autodoc::CommandLine &
         rCommandLine = autodoc::CommandLine::Get_();
+    if (NOT rCommandLine.DoesTransform_SinceTag())
+        pCurAtTag->AddToken(let_drNewToken);
 
+    fCurTokenAddFunction = &SapiDocu_PE::SetCurSinceAtTagVersion_Number;
+}
 
+void
+SapiDocu_PE::SetCurSinceAtTagVersion_Number( DYN ary::inf::DocuToken & let_drNewToken )
+{
+	csv_assert(pCurAtTag);
+
+    DT_TextToken * pToken = dynamic_cast< DT_TextToken* >(&let_drNewToken);
+    if (pToken == 0)
+    {
+        if (dynamic_cast< DT_White* >(&let_drNewToken) != 0)
+        {
+            String &
+                sValue = pCurAtTag->Access_Text().Access_TextOfFirstToken();
+            StreamLock
+                sHelp(1000);
+            sValue = sHelp() << sValue << " " << c_str;
+        }
+
+    	delete &let_drNewToken;
+        return;
+    }
+
+    const String
+        sVersion(pToken->GetText());
+    if (NOT CheckVersionSyntax_Number(sVersion))
+    {
+        Cerr() << "Version information in @since tag has incorrect format.\n"
+               << "Found: \"" << sVersion << "\"\n"
+               << C_sSinceFormat
+               << Endl();
+        exit(1);
+    }
+
+    const autodoc::CommandLine &
+        rCommandLine = autodoc::CommandLine::Get_();
     if ( rCommandLine.DoesTransform_SinceTag())
     {
-        // The @since version number shall be interpreted,
+        pCurAtTag->AddToken(let_drNewToken);
 
-        if ( NOT csv::in_range('0', cFirst, cCiphersend) )
-        {
-            // But this is a non-number-part, so we wait for
-            // the next one.
-        	delete &let_drNewToken;
-            return;
-        }
-        else if (rCommandLine.DisplayOf_SinceTagValue(sVersion).empty())
+        if (rCommandLine.DisplayOf_SinceTagValue(sVersion).empty())
         {
             // This is the numbered part, but we don't know it.
         	delete &let_drNewToken;
             throw X_Docu("since", sl().c_str());
         }
     }
-
-    // Either since tags are not specially interpreted, or
-    // we got a known one.
-    pCurAtTag->AddToken(let_drNewToken);
+    else
+    {
+        AddDocuToken2SinceAtTag(let_drNewToken);
+    }
     fCurTokenAddFunction = &SapiDocu_PE::AddDocuToken2SinceAtTag;
 }
 
   	delete &let_drNewToken;
 }
 
+bool
+SapiDocu_PE::CheckVersionSyntax_OOo(const String & i_versionPart1)
+{
+    return      i_versionPart1 == "OOo"
+            OR  i_versionPart1 == "OpenOffice.org";
+}
+
+bool
+SapiDocu_PE::CheckVersionSyntax_Number(const String & i_versionPart2)
+{
+    if (i_versionPart2.length () == 0)
+        return false;
+
+    const char
+        pt = '.';
+    unsigned int countDigit = 0;
+    unsigned int countPoint = 0;
+    const char *
+        pFirstPoint = 0;
+    const char *
+        pLastPoint = 0;
+
+    for ( const char * p = i_versionPart2.begin();
+          *p != 0;
+          ++p )
+    {
+        if ( std::isdigit(*p) )
+            ++countDigit;
+        else if (*p == pt)
+        {
+            if (countPoint == 0)
+                pFirstPoint = p;
+            pLastPoint = p;
+            ++countPoint;
+        }
+    }
+
+    if (    countDigit + countPoint == i_versionPart2.length()         // only digits and points
+        AND pFirstPoint != 0 AND countPoint < 3                         // 1 or 2 points
+        AND pFirstPoint + 1 != pLastPoint                               // there are digits between two points
+        AND *i_versionPart2.begin() != pt AND *(pLastPoint + 1) != 0    // points are surrounded by digits
+        AND (*(pLastPoint + 1) != '0' OR pLastPoint == pFirstPoint) )   // the first micro-digit is not 0
+    {
+        return true;
+    }
+    return false;
+}
+
 const char *
 AtTagTitle( const Tok_AtTag & i_rToken )
 {

autodoc/source/parser_i/inc/s2_dsapi/docu_pe2.hxx

 /*************************************************************************
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- * 
+ *
  * Copyright 2000, 2010 Oracle and/or its affiliates.
  *
  * OpenOffice.org - a multi-platform office productivity suite
 	void				SetCurSeeAlsoAtTagLinkText_3(
 							DYN ary::inf::DocuToken &
 												let_drNewToken );
-	void				SetCurSinceAtTagVersion(
+	void				SetCurSinceAtTagVersion_OOo(
+							DYN ary::inf::DocuToken &
+												let_drNewToken );
+	void				SetCurSinceAtTagVersion_Number(
 							DYN ary::inf::DocuToken &
 												let_drNewToken );
 	void				AddDocuToken2SinceAtTag(
 							DYN ary::inf::DocuToken &
 												let_drNewToken );
 
+	bool				CheckVersionSyntax_OOo(
+                            const String &      i_versionPart1 );
+	bool				CheckVersionSyntax_Number(
+                            const String &      i_versionPart2 );
 	// DATA
 	Dyn<ary::doc::OldIdlDocu>
 						pDocu;

basctl/source/basicide/baside2b.cxx

             {
                 pBindings->Invalidate( SID_SAVEDOC );
                 pBindings->Invalidate( SID_DOC_MODIFIED );
+                pBindings->Invalidate( SID_UNDO );
             }
             if ( rKEvt.GetKeyCode().GetCode() == KEY_INSERT )
                 pBindings->Invalidate( SID_ATTR_INSERT );

basctl/source/basicide/basidesh.cxx

 
 void BasicIDEShell::onDocumentSaveDone( const ScriptDocument& /*_rDocument*/ )
 {
-    // not interested in
+    // #i115671: Update SID_SAVEDOC after saving is completed
+    SfxBindings* pBindings = BasicIDE::GetBindingsPtr();
+    if ( pBindings )
+        pBindings->Invalidate( SID_SAVEDOC );
 }
 
 void BasicIDEShell::onDocumentSaveAs( const ScriptDocument& /*_rDocument*/ )

basctl/source/basicide/bastype2.cxx

 	// dialogs
     if ( nMode & BROWSEMODE_DIALOGS )
     {
-         Reference< script::XLibraryContainer > xDlgLibContainer( rDocument.getLibraryContainer( E_SCRIPTS ) );
+         Reference< script::XLibraryContainer > xDlgLibContainer( rDocument.getLibraryContainer( E_DIALOGS ) );
 
          if ( xDlgLibContainer.is() && xDlgLibContainer->hasByName( aOULibName ) && xDlgLibContainer->isLibraryLoaded( aOULibName ) )
          {

basic/source/runtime/dllmgr.cxx

 
 #include "basic/sbx.hxx"
 #include "basic/sbxvar.hxx"
+#include "runtime.hxx"
 #include "osl/thread.h"
 #include "rtl/ref.hxx"
 #include "rtl/string.hxx"
     std::vector< char > & blob, std::size_t offset, MarshalData & data)
 {
     OSL_ASSERT(variable != 0);
-    if ((variable->GetFlags() & SBX_REFERENCE) == 0) {
-        if ((variable->GetType() & SbxARRAY) == 0) {
-            switch (variable->GetType()) {
+
+    SbxDataType eVarType = variable->GetType();
+    bool bByVal = (variable->GetFlags() & SBX_REFERENCE) == 0;
+    if( !bByVal && !SbiRuntime::isVBAEnabled() && eVarType == SbxSTRING )
+        bByVal = true;
+
+    if (bByVal) {
+        if ((eVarType & SbxARRAY) == 0) {
+            switch (eVarType) {
             case SbxINTEGER:
                 add(blob, variable->GetInteger(), outer ? 4 : 2, offset);
                 break;
             }
         }
     } else {
-        if ((variable->GetType() & SbxARRAY) == 0) {
-            switch (variable->GetType()) {
+        if ((eVarType & SbxARRAY) == 0) {
+            switch (eVarType) {
             case SbxINTEGER:
             case SbxLONG:
             case SbxSINGLE:

basic/source/runtime/step2.cxx

 			pPar->Put( NULL, 0 );
 	}
 	// Index-Access bei UnoObjekten beruecksichtigen
-	else if( pElem->GetType() == SbxOBJECT && (!pElem->ISA(SbxMethod) || !pElem->IsBroadcaster()) )
+	else if( pElem->GetType() == SbxOBJECT && (!pElem->ISA(SbxMethod) || (bVBAEnabled && !pElem->IsBroadcaster()) ) )
     {
         pPar = pElem->GetParameters();
         if ( pPar )

binfilter/bf_xmloff/source/forms/formcellbinding.hxx

 #ifndef _COM_SUN_STAR_TABLE_CELLRANGEADDRESS_HPP_
 #include <com/sun/star/table/CellRangeAddress.hpp>
 #endif
-#ifndef _DRAFTS_COM_SUN_STAR_FORM_XVALUEBINDING_HPP_
-#include <drafts/com/sun/star/form/XValueBinding.hpp>
+#ifndef _COM_SUN_STAR_FORM_BINDING_XVALUEBINDING_HPP_
+//#include <drafts/com/sun/star/form/XValueBinding.hpp>
+#include <com/sun/star/form/binding/XValueBinding.hpp>
 #endif
-#ifndef _DRAFTS_COM_SUN_STAR_FORM_XLISTENTRYSOURCE_HPP_
-#include <drafts/com/sun/star/form/XListEntrySource.hpp>
+#ifndef _COM_SUN_STAR_FORM_XLISTENTRYSOURCE_HPP_
+#include <com/sun/star/form/binding/XListEntrySource.hpp>
+//#include <drafts/com/sun/star/form/XListEntrySource.hpp>
 #endif
 #ifndef _COM_SUN_STAR_FRAME_XMODEL_HPP_
 #include <com/sun/star/frame/XModel.hpp>
             @precond
                 isCellBindingAllowed returns <TRUE/>
         */
-        ::com::sun::star::uno::Reference< ::drafts::com::sun::star::form::XValueBinding >
-                        createCellBindingFromStringAddress(
+//        ::com::sun::star::uno::Reference< ::drafts::com::sun::star::form::XValueBinding >
+        ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XValueBinding >
+        createCellBindingFromStringAddress(
+
                             const ::rtl::OUString& _rAddress,
                             bool _bUseIntegerBinding
                         ) const;
 
         /** gets a cell range list source binding for the given address
         */
-        ::com::sun::star::uno::Reference< ::drafts::com::sun::star::form::XListEntrySource >
+        ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XListEntrySource >
+
+        //        ::com::sun::star::uno::Reference< ::drafts::com::sun::star::form::XListEntrySource >
                         createCellListSourceFromStringAddress( const ::rtl::OUString& _rAddress ) const;
 
         /** creates a string representation for the given value binding's address
             @see isCellBinding
         */
         ::rtl::OUString getStringAddressFromCellBinding(
-                            const ::com::sun::star::uno::Reference< ::drafts::com::sun::star::form::XValueBinding >& _rxBinding
-                        ) const;
+//                            const ::com::sun::star::uno::Reference< ::drafts::com::sun::star::form::XValueBinding >& _rxBinding
+                            const ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XValueBinding >& _rxBinding
+
+                ) const;
 
         /** creates a string representation for the given list source's range address
 
             @see isCellRangeListSource
         */
         ::rtl::OUString getStringAddressFromCellListSource(
-                            const ::com::sun::star::uno::Reference< ::drafts::com::sun::star::form::XListEntrySource >& _rxSource
-                        ) const;
+        //                    const ::com::sun::star::uno::Reference< ::drafts::com::sun::star::form::XListEntrySource >& _rxSource
+                            const ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XListEntrySource >& _rxSource
+
+                ) const;
 
         /** returns the current binding of our control model, if any.
         */
-        ::com::sun::star::uno::Reference< ::drafts::com::sun::star::form::XValueBinding >
-                        getCurrentBinding( ) const;
+        ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XValueBinding >
+        //::com::sun::star::uno::Reference< ::drafts::com::sun::star::form::XValueBinding >
+
+            getCurrentBinding( ) const;
 
         /** returns the current external list source of the control model, if any
         */
-        ::com::sun::star::uno::Reference< ::drafts::com::sun::star::form::XListEntrySource >
-                        getCurrentListSource( ) const;
+        //::com::sun::star::uno::Reference< ::drafts::com::sun::star::form::XListEntrySource >
+        ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XListEntrySource >
+
+        getCurrentListSource( ) const;
 
         /** sets a new binding for our control model
             @precond
                 returning <TRUE/>)
         */
         void            setBinding(
-                            const ::com::sun::star::uno::Reference< ::drafts::com::sun::star::form::XValueBinding >& _rxBinding
-                        );
+//                            const ::com::sun::star::uno::Reference< ::drafts::com::sun::star::form::XValueBinding >& _rxBinding
+                            const ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XValueBinding >& _rxBinding
+
+                );
 
         /** sets a list source for our control model
             @precond
                 returning <TRUE/>)
         */
         void            setListSource(
-                            const ::com::sun::star::uno::Reference< ::drafts::com::sun::star::form::XListEntrySource >& _rxSource
-                        );
+//                            const ::com::sun::star::uno::Reference< ::drafts::com::sun::star::form::XListEntrySource >& _rxSource
+                            const ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XListEntrySource >& _rxSource
+
+                );
 
         /** checks whether it's possible to bind the control model to a spreadsheet cell
         */
         /** checks whether a given binding is a spreadsheet cell binding
         */
         bool            isCellBinding(
-                            const ::com::sun::star::uno::Reference< ::drafts::com::sun::star::form::XValueBinding >& _rxBinding
+                //const ::com::sun::star::uno::Reference< ::drafts::com::sun::star::form::XValueBinding >& _rxBinding
+
+                const ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XValueBinding >& _rxBinding
                         ) const;
 
         /** checks whether a given binding is a spreadsheet cell binding, exchanging
             integer values
         */
         bool            isCellIntegerBinding(
-                            const ::com::sun::star::uno::Reference< ::drafts::com::sun::star::form::XValueBinding >& _rxBinding
-                        ) const;
+                            const ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XValueBinding >& _rxBinding
+                            //const ::com::sun::star::uno::Reference< ::drafts::com::sun::star::form::XValueBinding >& _rxBinding
+
+                            ) const;
 
         /** checks whether a given list source is a spreadsheet cell list source
         */
         bool            isCellRangeListSource(
-                            const ::com::sun::star::uno::Reference< ::drafts::com::sun::star::form::XListEntrySource >& _rxSource
-                        ) const;
+//                            const ::com::sun::star::uno::Reference< ::drafts::com::sun::star::form::XListEntrySource >& _rxSource
+                            const ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XListEntrySource >& _rxSource
+
+                ) const;
 
     protected:
         /** creates an address object from a string representation of a cell address

binfilter/bf_xmloff/source/forms/xmloff_elementexport.cxx

 #include "formcellbinding.hxx"
 #endif
 
+#include <com/sun/star/form/binding/XValueBinding.hpp>
+
 #ifndef _DRAFTS_COM_SUN_STAR_FORM_XLISTENTRYSINK_HPP_
-#include <drafts/com/sun/star/form/XListEntrySink.hpp>
+//#include <drafts/com/sun/star/form/XListEntrySink.hpp>
+#include <com/sun/star/form/binding/XListEntrySink.hpp>
 #endif
 
 #include <algorithm>
 	using namespace ::com::sun::star::script;
 	using namespace ::com::sun::star::io;
 	using namespace ::com::sun::star::table;
-    using namespace ::drafts::com::sun::star::form;
+    using namespace ::com::sun::star::form::binding;
 
 	//=====================================================================
 	//= OElementExport

binfilter/bf_xmloff/source/forms/xmloff_formcellbinding.cxx

 #include "formcellbinding.hxx"
 #endif
 
-#ifndef _DRAFTS_COM_SUN_STAR_FORM_XBINDABLEVALUE_HPP_
-#include <drafts/com/sun/star/form/XBindableValue.hpp>
+#ifndef _COM_SUN_STAR_FORM_BINDING_XBINDABLEVALUE_HPP_
+//#include <drafts/com/sun/star/form/XBindableValue.hpp>
+#include <com/sun/star/form/binding/XBindableValue.hpp>
 #endif
-#ifndef _DRAFTS_COM_SUN_STAR_FORM_XLISTENTRYSINK_HPP_
-#include <drafts/com/sun/star/form/XListEntrySink.hpp>
+#ifndef _COM_SUN_STAR_FORM_BINDING_XLISTENTRYSINK_HPP_
+//#include <drafts/com/sun/star/form/XListEntrySink.hpp>
+#include <com/sun/star/form/binding/XListEntrySink.hpp>
 #endif
 #ifndef _COM_SUN_STAR_DRAWING_XDRAWPAGESUPPLIER_HPP_
 #include <com/sun/star/drawing/XDrawPageSupplier.hpp>
     using namespace ::com::sun::star::table;
     using namespace ::com::sun::star::form;
     using namespace ::com::sun::star::lang;
-    using namespace ::drafts::com::sun::star::form;
+    using namespace ::com::sun::star::form::binding;
 
     namespace
     {

canvas/source/cairo/cairo_canvasfont.cxx

 
 #include <canvas/debug.hxx>
 
+#include <com/sun/star/rendering/PanoseProportion.hpp>
+
 #include <rtl/math.hxx>
 #include <basegfx/numeric/ftools.hxx>
 
         // TODO(F2): improve panose->vclenum conversion
         maFont->SetWeight( static_cast<FontWeight>(rFontRequest.FontDescription.FontDescription.Weight) );
         maFont->SetItalic( (rFontRequest.FontDescription.FontDescription.Letterform<=8) ? ITALIC_NONE : ITALIC_NORMAL );
+        maFont->SetPitch(
+                rFontRequest.FontDescription.FontDescription.Proportion == rendering::PanoseProportion::MONO_SPACED
+                    ? PITCH_FIXED : PITCH_VARIABLE);
 
         maFont->SetLanguage(MsLangId::convertLocaleToLanguage(rFontRequest.Locale));
 

canvas/source/directx/dx_textlayout_drawhelper.cxx

 #include <boost/scoped_array.hpp>
 #include <boost/bind.hpp>
 #include <com/sun/star/rendering/FontRequest.hpp>
+#include <com/sun/star/rendering/PanoseProportion.hpp>
 #include <com/sun/star/rendering/XCanvasFont.hpp>
 #include <comphelper/sequence.hxx>
 #include <comphelper/scopeguard.hxx>
             aFont.SetVertical( (rFontRequest.FontDescription.IsVertical==com::sun::star::util::TriState_YES) ? sal_True : sal_False );
             aFont.SetWeight( static_cast<FontWeight>(rFontRequest.FontDescription.FontDescription.Weight) );
             aFont.SetItalic( (rFontRequest.FontDescription.FontDescription.Letterform<=8) ? ITALIC_NONE : ITALIC_NORMAL );
+            aFont.SetPitch(
+                    rFontRequest.FontDescription.FontDescription.Proportion == rendering::PanoseProportion::MONO_SPACED
+                    ? PITCH_FIXED : PITCH_VARIABLE);
 
             aFont.SetLanguage(MsLangId::convertLocaleToLanguage(rFontRequest.Locale));
 
         aFont.SetVertical( (rFontRequest.FontDescription.IsVertical==com::sun::star::util::TriState_YES) ? sal_True : sal_False );
         aFont.SetWeight( static_cast<FontWeight>(rFontRequest.FontDescription.FontDescription.Weight) );
         aFont.SetItalic( (rFontRequest.FontDescription.FontDescription.Letterform<=8) ? ITALIC_NONE : ITALIC_NORMAL );
+        aFont.SetPitch(
+                rFontRequest.FontDescription.FontDescription.Proportion == rendering::PanoseProportion::MONO_SPACED
+                ? PITCH_FIXED : PITCH_VARIABLE);
 
         // adjust to stretched font
         if(!::rtl::math::approxEqual(rFontMatrix.m00, rFontMatrix.m11))

canvas/source/vcl/canvasfont.cxx

 #include <i18npool/mslangid.hxx>
 #include <vcl/metric.hxx>
 
+#include <com/sun/star/rendering/PanoseProportion.hpp>
+
 #include "canvasfont.hxx"
 #include "textlayout.hxx"
 
         // TODO(F2): improve panose->vclenum conversion
         maFont->SetWeight( static_cast<FontWeight>(rFontRequest.FontDescription.FontDescription.Weight) );
         maFont->SetItalic( (rFontRequest.FontDescription.FontDescription.Letterform<=8) ? ITALIC_NONE : ITALIC_NORMAL );
+        maFont->SetPitch(
+                rFontRequest.FontDescription.FontDescription.Proportion == rendering::PanoseProportion::MONO_SPACED
+                    ? PITCH_FIXED : PITCH_VARIABLE);
 
 		maFont->SetLanguage(MsLangId::convertLocaleToLanguage(rFontRequest.Locale));
 

cli_ure/version/version.txt

 #
 #*************************************************************************
 
-CLI_URETYPES_NEW_VERSION=1.0.7.0
-CLI_URETYPES_OLD_VERSION=1.0.0.0-1.0.6.0
-CLI_URETYPES_POLICY_VERSION=7.0.0.0	
+CLI_URETYPES_NEW_VERSION=1.0.8.0
+CLI_URETYPES_OLD_VERSION=1.0.0.0-1.0.7.0
+CLI_URETYPES_POLICY_VERSION=8.0.0.0	
 CLI_URETYPES_POLICY_ASSEMBLY=policy.1.0.cli_uretypes
 
-CLI_BASETYPES_NEW_VERSION=1.0.18.0
-CLI_BASETYPES_OLD_VERSION=1.0.0.0-1.0.17.0
-CLI_BASETYPES_POLICY_VERSION=18.0.0.0
+CLI_BASETYPES_NEW_VERSION=1.0.19.0
+CLI_BASETYPES_OLD_VERSION=1.0.0.0-1.0.18.0
+CLI_BASETYPES_POLICY_VERSION=19.0.0.0
 CLI_BASETYPES_POLICY_ASSEMBLY=policy.1.0.cli_basetypes
 
-CLI_URE_NEW_VERSION=1.0.21.0
-CLI_URE_OLD_VERSION=1.0.0.0-1.0.20.0    
-CLI_URE_POLICY_VERSION=21.0.0.0