diff options
-rw-r--r-- | sw/inc/IDocumentSettingAccess.hxx | 2 | ||||
-rw-r--r-- | sw/inc/doc.hxx | 1 | ||||
-rw-r--r-- | sw/source/core/doc/doc.cxx | 5 | ||||
-rw-r--r-- | sw/source/core/doc/docnew.cxx | 1 | ||||
-rw-r--r-- | sw/source/core/text/txtfly.cxx | 10 | ||||
-rw-r--r-- | sw/source/filter/ww8/ww8par.cxx | 1 | ||||
-rw-r--r-- | sw/source/ui/uno/SwXDocumentSettings.cxx | 14 | ||||
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper.cxx | 3 | ||||
-rw-r--r-- | writerfilter/source/dmapper/PropertyIds.cxx | 1 | ||||
-rw-r--r-- | writerfilter/source/dmapper/PropertyIds.hxx | 1 |
10 files changed, 37 insertions, 2 deletions
diff --git a/sw/inc/IDocumentSettingAccess.hxx b/sw/inc/IDocumentSettingAccess.hxx index 12039152a9af..73c14f9abb27 100644 --- a/sw/inc/IDocumentSettingAccess.hxx +++ b/sw/inc/IDocumentSettingAccess.hxx @@ -77,6 +77,8 @@ namespace com { namespace sun { namespace star { namespace i18n { struct Forbidd CLIPPED_PICTURES, BACKGROUND_PARA_OVER_DRAWINGS, TAB_OVER_MARGIN, + // MS Word still wraps text around objects with less space than LO would. + SURROUND_TEXT_WRAP_SMALL, // COMPATIBILITY FLAGS END BROWSE_MODE, diff --git a/sw/inc/doc.hxx b/sw/inc/doc.hxx index b032324d8fc8..0c99352c29c5 100644 --- a/sw/inc/doc.hxx +++ b/sw/inc/doc.hxx @@ -582,6 +582,7 @@ private: bool mbClippedPictures; bool mbBackgroundParaOverDrawings; bool mbTabOverMargin; + bool mbSurroundTextWrapSmall; bool mbLastBrowseMode : 1; diff --git a/sw/source/core/doc/doc.cxx b/sw/source/core/doc/doc.cxx index b68698648ee1..7b0ff63dc21f 100644 --- a/sw/source/core/doc/doc.cxx +++ b/sw/source/core/doc/doc.cxx @@ -192,6 +192,7 @@ bool SwDoc::get(/*[in]*/ DocumentSettingId id) const case CLIPPED_PICTURES: return mbClippedPictures; case BACKGROUND_PARA_OVER_DRAWINGS: return mbBackgroundParaOverDrawings; case TAB_OVER_MARGIN: return mbTabOverMargin; + case SURROUND_TEXT_WRAP_SMALL: return mbSurroundTextWrapSmall; case BROWSE_MODE: return mbLastBrowseMode; // Attention: normally the ViewShell has to be asked! case HTML_MODE: return mbHTMLMode; @@ -348,6 +349,10 @@ void SwDoc::set(/*[in]*/ DocumentSettingId id, /*[in]*/ bool value) mbTabOverMargin = value; break; + case SURROUND_TEXT_WRAP_SMALL: + mbSurroundTextWrapSmall = value; + break; + // COMPATIBILITY FLAGS END case BROWSE_MODE: //can be used temporary (load/save) when no ViewShell is avaiable diff --git a/sw/source/core/doc/docnew.cxx b/sw/source/core/doc/docnew.cxx index 03aaf1c1a18f..ea75fd00e698 100644 --- a/sw/source/core/doc/docnew.cxx +++ b/sw/source/core/doc/docnew.cxx @@ -312,6 +312,7 @@ SwDoc::SwDoc() mbClippedPictures(false), mbBackgroundParaOverDrawings(false), mbTabOverMargin(false), + mbSurroundTextWrapSmall(false), mbLastBrowseMode( false ), mn32DummyCompatabilityOptions1(0), mn32DummyCompatabilityOptions2(0), diff --git a/sw/source/core/text/txtfly.cxx b/sw/source/core/text/txtfly.cxx index 54635d759442..65bf05e509b5 100644 --- a/sw/source/core/text/txtfly.cxx +++ b/sw/source/core/text/txtfly.cxx @@ -1342,6 +1342,9 @@ SwRect SwTxtFly::AnchoredObjToRect( const SwAnchoredObject* pAnchoredObj, // Wrap only on sides with at least 2cm space for the text #define TEXT_MIN 1134 +// MS Word wraps on sides with even less space (value guessed). +#define TEXT_MIN_SMALL 300 + // Wrap on both sides up to a frame width of 1.5cm #define FRAME_MAX 850 @@ -1398,9 +1401,12 @@ SwSurround SwTxtFly::_GetSurroundForTextWrap( const SwAnchoredObject* pAnchoredO else nRight = 0; } - if( nLeft < TEXT_MIN ) + const int textMin = GetMaster()->GetNode() + ->getIDocumentSettingAccess()->get(IDocumentSettingAccess::SURROUND_TEXT_WRAP_SMALL ) + ? TEXT_MIN_SMALL : TEXT_MIN; + if( nLeft < textMin ) nLeft = 0; - if( nRight < TEXT_MIN ) + if( nRight < textMin ) nRight = 0; if( nLeft ) eSurroundForTextWrap = nRight ? SURROUND_PARALLEL : SURROUND_LEFT; diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx index f50eae58918f..5382435e4d3a 100644 --- a/sw/source/filter/ww8/ww8par.cxx +++ b/sw/source/filter/ww8/ww8par.cxx @@ -1585,6 +1585,7 @@ void SwWW8ImplReader::ImportDop() rDoc.set(IDocumentSettingAccess::UNBREAKABLE_NUMBERINGS, true); rDoc.set(IDocumentSettingAccess::CLIPPED_PICTURES, true); rDoc.set(IDocumentSettingAccess::TAB_OVER_MARGIN, true); + rDoc.set(IDocumentSettingAccess::SURROUND_TEXT_WRAP_SMALL, true); // // COMPATIBILITY FLAGS END diff --git a/sw/source/ui/uno/SwXDocumentSettings.cxx b/sw/source/ui/uno/SwXDocumentSettings.cxx index 88af1dd55388..11d18599c46a 100644 --- a/sw/source/ui/uno/SwXDocumentSettings.cxx +++ b/sw/source/ui/uno/SwXDocumentSettings.cxx @@ -123,6 +123,7 @@ enum SwDocumentSettingsPropertyHandles HANDLE_EMBED_FONTS, HANDLE_EMBED_SYSTEM_FONTS, HANDLE_TAB_OVER_MARGIN, + HANDLE_SURROUND_TEXT_WRAP_SMALL }; static MasterPropertySetInfo * lcl_createSettingsInfo() @@ -192,6 +193,7 @@ static MasterPropertySetInfo * lcl_createSettingsInfo() { RTL_CONSTASCII_STRINGPARAM("EmbedFonts"), HANDLE_EMBED_FONTS, CPPUTYPE_BOOLEAN, 0, 0}, { RTL_CONSTASCII_STRINGPARAM("EmbedSystemFonts"), HANDLE_EMBED_SYSTEM_FONTS, CPPUTYPE_BOOLEAN, 0, 0}, { RTL_CONSTASCII_STRINGPARAM("TabOverMargin"), HANDLE_TAB_OVER_MARGIN, CPPUTYPE_BOOLEAN, 0, 0}, + { RTL_CONSTASCII_STRINGPARAM("SurroundTextWrapSmall"), HANDLE_SURROUND_TEXT_WRAP_SMALL, CPPUTYPE_BOOLEAN, 0, 0}, /* * As OS said, we don't have a view when we need to set this, so I have to * find another solution before adding them to this property set - MTG @@ -789,6 +791,12 @@ void SwXDocumentSettings::_setSingleValue( const comphelper::PropertyInfo & rInf mpDoc->set(IDocumentSettingAccess::TAB_OVER_MARGIN, bTmp); } break; + case HANDLE_SURROUND_TEXT_WRAP_SMALL: + { + sal_Bool bTmp = *(sal_Bool*)rValue.getValue(); + mpDoc->set(IDocumentSettingAccess::SURROUND_TEXT_WRAP_SMALL, bTmp); + } + break; default: throw UnknownPropertyException(); } @@ -1203,6 +1211,12 @@ void SwXDocumentSettings::_getSingleValue( const comphelper::PropertyInfo & rInf rValue.setValue( &bTmp, ::getBooleanCppuType() ); } break; + case HANDLE_SURROUND_TEXT_WRAP_SMALL: + { + sal_Bool bTmp = mpDoc->get( IDocumentSettingAccess::SURROUND_TEXT_WRAP_SMALL ); + rValue.setValue( &bTmp, ::getBooleanCppuType() ); + } + break; default: throw UnknownPropertyException(); } diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx index cab21d823242..ee863fab347d 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -100,6 +100,9 @@ LoggedStream(dmapper_logger, "DomainMapper"), m_pImpl->SetDocumentSettingsProperty( PropertyNameSupplier::GetPropertyNameSupplier().GetName( PROP_TABS_RELATIVE_TO_INDENT ), uno::makeAny( false ) ); + m_pImpl->SetDocumentSettingsProperty( + PropertyNameSupplier::GetPropertyNameSupplier().GetName( PROP_SURROUND_TEXT_WRAP_SMALL ), + uno::makeAny( true ) ); //import document properties try diff --git a/writerfilter/source/dmapper/PropertyIds.cxx b/writerfilter/source/dmapper/PropertyIds.cxx index 1d62f00f5d2f..cee68ea5e7e1 100644 --- a/writerfilter/source/dmapper/PropertyIds.cxx +++ b/writerfilter/source/dmapper/PropertyIds.cxx @@ -329,6 +329,7 @@ const OUString& PropertyNameSupplier::GetName( PropertyIds eId ) const case PROP_LABEL_CATEGORY: sName = "LabelCategory"; break; case PROP_FIRST_IS_SHARED : sName = "FirstIsShared"; break; case PROP_MIRROR_INDENTS : sName = "MirrorIndents"; break; + case PROP_SURROUND_TEXT_WRAP_SMALL: sName = "SurroundTextWrapSmall"; break; } ::std::pair<PropertyNameMap_t::iterator,bool> aInsertIt = m_pImpl->aNameMap.insert( PropertyNameMap_t::value_type( eId, sName )); diff --git a/writerfilter/source/dmapper/PropertyIds.hxx b/writerfilter/source/dmapper/PropertyIds.hxx index 19ee4ff0fdb0..2a6b76480e6b 100644 --- a/writerfilter/source/dmapper/PropertyIds.hxx +++ b/writerfilter/source/dmapper/PropertyIds.hxx @@ -300,6 +300,7 @@ enum PropertyIds ,PROP_CHAR_SHADING_VALUE ,PROP_FIRST_IS_SHARED ,PROP_MIRROR_INDENTS + ,PROP_SURROUND_TEXT_WRAP_SMALL }; struct PropertyNameSupplier_Impl; class PropertyNameSupplier |