summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/unotools/compatibility.hxx8
-rw-r--r--sw/inc/viewsh.hxx2
-rw-r--r--sw/source/core/view/viewsh.cxx7
-rw-r--r--sw/source/ui/config/optcomp.cxx30
-rw-r--r--sw/uiconfig/swriter/ui/optcompatpage.ui1
-rw-r--r--unotools/source/config/compatibility.cxx31
6 files changed, 63 insertions, 16 deletions
diff --git a/include/unotools/compatibility.hxx b/include/unotools/compatibility.hxx
index 554f51ed6e78..0cf64faa7e2c 100644
--- a/include/unotools/compatibility.hxx
+++ b/include/unotools/compatibility.hxx
@@ -40,7 +40,8 @@ enum CompatibilityOptions
COPT_USE_OBJECTPOSITIONING,
COPT_USE_OUR_TEXTWRAPPING,
COPT_CONSIDER_WRAPPINGSTYLE,
- COPT_EXPAND_WORDSPACE
+ COPT_EXPAND_WORDSPACE,
+ COPT_PROTECT_FORM
};
/*-************************************************************************************************************
@@ -60,6 +61,7 @@ enum CompatibilityOptions
#define COMPATIBILITY_PROPERTYNAME_USEOURTEXTWRAPPING "UseOurTextWrapping"
#define COMPATIBILITY_PROPERTYNAME_CONSIDERWRAPPINGSTYLE "ConsiderWrappingStyle"
#define COMPATIBILITY_PROPERTYNAME_EXPANDWORDSPACE "ExpandWordSpace"
+#define COMPATIBILITY_PROPERTYNAME_PROTECTFORM "ProtectForm"
#define COMPATIBILITY_DEFAULT_NAME "_default"
@@ -147,7 +149,8 @@ class UNOTOOLS_DLLPUBLIC SvtCompatibilityOptions: public utl::detail::Options
bool bUseObjectPositioning,
bool bUseOurTextWrapping,
bool bConsiderWrappingStyle,
- bool bExpandWordSpace );
+ bool bExpandWordSpace,
+ bool bProtectForm );
bool IsUsePrtDevice() const;
bool IsAddSpacing() const;
@@ -160,6 +163,7 @@ class UNOTOOLS_DLLPUBLIC SvtCompatibilityOptions: public utl::detail::Options
bool IsUseOurTextWrapping() const;
bool IsConsiderWrappingStyle() const;
bool IsExpandWordSpace() const;
+ bool IsProtectForm() const;
// private methods
diff --git a/sw/inc/viewsh.hxx b/sw/inc/viewsh.hxx
index 498e9633e5a6..c014cbb56237 100644
--- a/sw/inc/viewsh.hxx
+++ b/sw/inc/viewsh.hxx
@@ -417,6 +417,8 @@ public:
void SetDoNotJustifyLinesWithManualBreak( bool _bDoNotJustifyLinesWithManualBreak );
+ void SetProtectForm( bool _bProtectForm );
+
// DOCUMENT COMPATIBILITY FLAGS END
// Calls Idle-formatter of Layout.
diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx
index db4128d98943..79fc84e1582c 100644
--- a/sw/source/core/view/viewsh.cxx
+++ b/sw/source/core/view/viewsh.cxx
@@ -907,6 +907,13 @@ void SwViewShell::SetDoNotJustifyLinesWithManualBreak( bool _bDoNotJustifyLinesW
}
}
+void SwViewShell::SetProtectForm( bool _bProtectForm )
+{
+ IDocumentSettingAccess& rIDSA = getIDocumentSettingAccess();
+ rIDSA.set(DocumentSettingId::PROTECT_FORM, _bProtectForm );
+}
+
+
void SwViewShell::Reformat()
{
SwWait aWait( *GetDoc()->GetDocShell(), true );
diff --git a/sw/source/ui/config/optcomp.cxx b/sw/source/ui/config/optcomp.cxx
index e475c619745b..c54be94b0835 100644
--- a/sw/source/ui/config/optcomp.cxx
+++ b/sw/source/ui/config/optcomp.cxx
@@ -55,13 +55,14 @@ struct CompatibilityItem
bool m_bUseOurTextWrapping;
bool m_bConsiderWrappingStyle;
bool m_bExpandWordSpace;
+ bool m_bProtectForm;
bool m_bIsDefault;
CompatibilityItem( const OUString& _rName, const OUString& _rModule,
bool _bUsePrtMetrics, bool _bAddSpacing, bool _bAddSpacingAtPages,
bool _bUseOurTabStops, bool _bNoExtLeading, bool _bUseLineSpacing,
bool _bAddTableSpacing, bool _bUseObjPos, bool _bUseOurTextWrapping,
- bool _bConsiderWrappingStyle, bool _bExpandWordSpace,
+ bool _bConsiderWrappingStyle, bool _bExpandWordSpace, bool _bProtectForm,
bool _bIsDefault ) :
m_sName ( _rName ),
@@ -77,6 +78,7 @@ struct CompatibilityItem
m_bUseOurTextWrapping ( _bUseOurTextWrapping ),
m_bConsiderWrappingStyle( _bConsiderWrappingStyle ),
m_bExpandWordSpace ( _bExpandWordSpace ),
+ m_bProtectForm ( _bProtectForm),
m_bIsDefault ( _bIsDefault ) {}
};
@@ -101,7 +103,7 @@ SwCompatibilityOptPage::SwCompatibilityOptPage(vcl::Window* pParent, const SfxIt
get(m_pOptionsLB, "options");
get(m_pDefaultPB, "default");
- for (sal_Int32 nId = COPT_USE_PRINTERDEVICE; nId <= COPT_EXPAND_WORDSPACE; ++nId)
+ for (sal_Int32 nId = COPT_USE_PRINTERDEVICE; nId <= COPT_PROTECT_FORM; ++nId)
{
const OUString sEntry = m_pFormattingLB->GetEntry(nId);
SvTreeListEntry* pEntry = m_pOptionsLB->SvTreeListBox::InsertEntry( sEntry );
@@ -151,7 +153,8 @@ sal_uLong convertBools2Ulong_Impl
bool _bUseObjPos,
bool _bUseOurTextWrapping,
bool _bConsiderWrappingStyle,
- bool _bExpandWordSpace
+ bool _bExpandWordSpace,
+ bool _bProtectForm
)
{
sal_uLong nRet = 0;
@@ -189,6 +192,9 @@ sal_uLong convertBools2Ulong_Impl
nSetBit = nSetBit << 1;
if ( _bExpandWordSpace )
nRet |= nSetBit;
+ nSetBit = nSetBit << 1;
+ if ( _bProtectForm )
+ nRet |= nSetBit;
return nRet;
}
@@ -229,6 +235,7 @@ void SwCompatibilityOptPage::InitControls( const SfxItemSet& rSet )
bool bUseOurTextWrapping = false;
bool bConsiderWrappingStyle = false;
bool bExpandWordSpace = false;
+ bool bProtectForm = false;
const sal_Int32 nCount = aList.getLength();
for ( sal_Int32 i = 0; i < nCount; ++i )
{
@@ -263,6 +270,8 @@ void SwCompatibilityOptPage::InitControls( const SfxItemSet& rSet )
aValue.Value >>= bConsiderWrappingStyle;
else if ( aValue.Name == COMPATIBILITY_PROPERTYNAME_EXPANDWORDSPACE )
aValue.Value >>= bExpandWordSpace;
+ else if ( aValue.Name == COMPATIBILITY_PROPERTYNAME_PROTECTFORM )
+ aValue.Value >>= bProtectForm;
}
const bool bIsUserEntry = sName == "_user";
@@ -272,7 +281,7 @@ void SwCompatibilityOptPage::InitControls( const SfxItemSet& rSet )
sName, sModule, bUsePrtMetrics, bAddSpacing,
bAddSpacingAtPages, bUseOurTabStops, bNoExtLeading,
bUseLineSpacing, bAddTableSpacing, bUseObjPos,
- bUseOurTextWrapping, bConsiderWrappingStyle, bExpandWordSpace,
+ bUseOurTextWrapping, bConsiderWrappingStyle, bExpandWordSpace, bProtectForm,
bIsDefaultEntry );
m_pImpl->m_aList.push_back( aItem );
@@ -298,7 +307,7 @@ void SwCompatibilityOptPage::InitControls( const SfxItemSet& rSet )
bUsePrtMetrics, bAddSpacing, bAddSpacingAtPages,
bUseOurTabStops, bNoExtLeading, bUseLineSpacing,
bAddTableSpacing, bUseObjPos, bUseOurTextWrapping,
- bConsiderWrappingStyle, bExpandWordSpace );
+ bConsiderWrappingStyle, bExpandWordSpace, bProtectForm );
m_pFormattingLB->SetEntryData( nPos, reinterpret_cast<void*>((sal_IntPtr)nOptions) );
}
@@ -341,6 +350,7 @@ IMPL_LINK_NOARG_TYPED(SwCompatibilityOptPage, UseAsDefaultHdl, Button*, void)
case COPT_USE_OUR_TEXTWRAPPING: pItem->m_bUseOurTextWrapping = bChecked; break;
case COPT_CONSIDER_WRAPPINGSTYLE: pItem->m_bConsiderWrappingStyle = bChecked; break;
case COPT_EXPAND_WORDSPACE: pItem->m_bExpandWordSpace = bChecked; break;
+ case COPT_PROTECT_FORM: pItem->m_bProtectForm = bChecked; break;
default:
{
OSL_FAIL("SwCompatibilityOptPage::UseAsDefaultHdl(): wrong option" );
@@ -384,7 +394,8 @@ sal_uLong SwCompatibilityOptPage::GetDocumentOptions() const
rIDocumentSettingAccess.get(DocumentSettingId::USE_FORMER_OBJECT_POS),
rIDocumentSettingAccess.get(DocumentSettingId::USE_FORMER_TEXT_WRAPPING),
rIDocumentSettingAccess.get(DocumentSettingId::CONSIDER_WRAP_ON_OBJECT_POSITION),
- !rIDocumentSettingAccess.get(DocumentSettingId::DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK) );
+ !rIDocumentSettingAccess.get(DocumentSettingId::DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK),
+ rIDocumentSettingAccess.get(DocumentSettingId::PROTECT_FORM));
}
return nRet;
}
@@ -400,7 +411,7 @@ void SwCompatibilityOptPage::WriteOptions()
pItem->m_bNoExtLeading, pItem->m_bUseLineSpacing,
pItem->m_bAddTableSpacing, pItem->m_bUseObjPos,
pItem->m_bUseOurTextWrapping, pItem->m_bConsiderWrappingStyle,
- pItem->m_bExpandWordSpace );
+ pItem->m_bExpandWordSpace, pItem->m_bProtectForm );
}
VclPtr<SfxTabPage> SwCompatibilityOptPage::Create( vcl::Window* pParent, const SfxItemSet* rAttrSet )
@@ -473,6 +484,11 @@ bool SwCompatibilityOptPage::FillItemSet( SfxItemSet* )
m_pWrtShell->SetDoNotJustifyLinesWithManualBreak( !bChecked );
bModified = true;
}
+ else if ( COPT_PROTECT_FORM == nOption )
+ {
+ m_pWrtShell->SetProtectForm( bChecked );
+ bModified = true;
+ }
}
nSavedOptions = nSavedOptions >> 1;
diff --git a/sw/uiconfig/swriter/ui/optcompatpage.ui b/sw/uiconfig/swriter/ui/optcompatpage.ui
index 77fc5467040f..4ba4e48f1b72 100644
--- a/sw/uiconfig/swriter/ui/optcompatpage.ui
+++ b/sw/uiconfig/swriter/ui/optcompatpage.ui
@@ -64,6 +64,7 @@
<item translatable="yes">Use OpenOffice.org 1.1 text wrapping around objects</item>
<item translatable="yes">Consider wrapping style when positioning objects</item>
<item translatable="yes">Expand word space on lines with manual line breaks in justified paragraphs</item>
+ <item translatable="yes">Protect form</item>
<item translatable="yes">&lt;User settings&gt;</item>
</items>
</object>
diff --git a/unotools/source/config/compatibility.cxx b/unotools/source/config/compatibility.cxx
index 096a7f00663e..b7b34fa56e00 100644
--- a/unotools/source/config/compatibility.cxx
+++ b/unotools/source/config/compatibility.cxx
@@ -56,8 +56,9 @@ using namespace ::com::sun::star::beans;
#define PROPERTYNAME_USEOURTEXTWRAP COMPATIBILITY_PROPERTYNAME_USEOURTEXTWRAPPING
#define PROPERTYNAME_CONSIDERWRAPSTYLE COMPATIBILITY_PROPERTYNAME_CONSIDERWRAPPINGSTYLE
#define PROPERTYNAME_EXPANDWORDSPACE COMPATIBILITY_PROPERTYNAME_EXPANDWORDSPACE
+#define PROPERTYNAME_PROTECTFORM COMPATIBILITY_PROPERTYNAME_PROTECTFORM
-#define PROPERTYCOUNT 13
+#define PROPERTYCOUNT 14
#define OFFSET_NAME 0
#define OFFSET_MODULE 1
@@ -72,6 +73,7 @@ using namespace ::com::sun::star::beans;
#define OFFSET_USEOURTEXTWRAPPING 10
#define OFFSET_CONSIDERWRAPPINGSTYLE 11
#define OFFSET_EXPANDWORDSPACE 12
+#define OFFSET_PROTECTFORM 13
// private declarations!
@@ -87,7 +89,7 @@ struct SvtCompatibilityEntry
bNoExtLeading( false ), bUseLineSpacing( false ),
bAddTableSpacing( false ), bUseObjPos( false ),
bUseOurTextWrapping( false ), bConsiderWrappingStyle( false ),
- bExpandWordSpace( true ) {}
+ bExpandWordSpace( true ), bProtectForm( false ) {}
SvtCompatibilityEntry(
const OUString& _rName, const OUString& _rNewModule ) :
sName( _rName ), sModule( _rNewModule ),
@@ -96,7 +98,7 @@ struct SvtCompatibilityEntry
bNoExtLeading( false ), bUseLineSpacing( false ),
bAddTableSpacing( false ), bUseObjPos( false ),
bUseOurTextWrapping( false ), bConsiderWrappingStyle( false ),
- bExpandWordSpace( true ) {}
+ bExpandWordSpace( true ), bProtectForm( false ) {}
inline void SetUsePrtMetrics( bool _bSet ) { bUsePrtMetrics = _bSet; }
inline void SetAddSpacing( bool _bSet ) { bAddSpacing = _bSet; }
@@ -109,6 +111,7 @@ struct SvtCompatibilityEntry
inline void SetUseOurTextWrapping( bool _bSet ) { bUseOurTextWrapping = _bSet; }
inline void SetConsiderWrappingStyle( bool _bSet ) { bConsiderWrappingStyle = _bSet; }
inline void SetExpandWordSpace( bool _bSet ) { bExpandWordSpace = _bSet; }
+ inline void SetProtectForm( bool _bSet ) { bProtectForm = _bSet; }
public:
OUString sName;
@@ -124,6 +127,7 @@ struct SvtCompatibilityEntry
bool bUseOurTextWrapping;
bool bConsiderWrappingStyle;
bool bExpandWordSpace;
+ bool bProtectForm;
};
/*-****************************************************************************************************************
@@ -256,7 +260,8 @@ class SvtCompatibilityOptions_Impl : public ConfigItem
bool _bUseObjPos,
bool _bUseOurTextWrapping,
bool _bConsiderWrappingStyle,
- bool _bExpandWordSpace );
+ bool _bExpandWordSpace,
+ bool _bProtectForm );
inline bool IsUsePrtDevice() const { return m_aDefOptions.bUsePrtMetrics; }
inline bool IsAddSpacing() const { return m_aDefOptions.bAddSpacing; }
@@ -269,6 +274,7 @@ class SvtCompatibilityOptions_Impl : public ConfigItem
inline bool IsUseOurTextWrapping() const { return m_aDefOptions.bUseOurTextWrapping; }
inline bool IsConsiderWrappingStyle() const { return m_aDefOptions.bConsiderWrappingStyle; }
inline bool IsExpandWordSpace() const { return m_aDefOptions.bExpandWordSpace; }
+ inline bool IsProtectForm() const { return m_aDefOptions.bProtectForm; }
// private methods
@@ -431,6 +437,7 @@ void SvtCompatibilityOptions_Impl::ImplCommit()
lPropertyValues[ OFFSET_USEOURTEXTWRAPPING - 1 ].Name = sNode + PROPERTYNAME_USEOURTEXTWRAP;
lPropertyValues[ OFFSET_CONSIDERWRAPPINGSTYLE - 1 ].Name = sNode + PROPERTYNAME_CONSIDERWRAPSTYLE;
lPropertyValues[ OFFSET_EXPANDWORDSPACE - 1 ].Name = sNode + PROPERTYNAME_EXPANDWORDSPACE;
+ lPropertyValues[ OFFSET_PROTECTFORM - 1 ].Name = sNode + PROPERTYNAME_PROTECTFORM;
lPropertyValues[ OFFSET_MODULE - 1 ].Value <<= aItem.sModule;
lPropertyValues[ OFFSET_USEPRTMETRICS - 1 ].Value <<= aItem.bUsePrtMetrics;
@@ -444,6 +451,7 @@ void SvtCompatibilityOptions_Impl::ImplCommit()
lPropertyValues[ OFFSET_USEOURTEXTWRAPPING - 1 ].Value <<= aItem.bUseOurTextWrapping;
lPropertyValues[ OFFSET_CONSIDERWRAPPINGSTYLE - 1 ].Value <<= aItem.bConsiderWrappingStyle;
lPropertyValues[ OFFSET_EXPANDWORDSPACE - 1 ].Value <<= aItem.bExpandWordSpace;
+ lPropertyValues[ OFFSET_PROTECTFORM - 1 ].Value <<= aItem.bProtectForm;
SetSetProperties( SETNODE_ALLFILEFORMATS, lPropertyValues );
}
@@ -480,7 +488,8 @@ void SvtCompatibilityOptions_Impl::AppendItem( const OUString& _sName,
bool _bUseObjPos,
bool _bUseOurTextWrapping,
bool _bConsiderWrappingStyle,
- bool _bExpandWordSpace )
+ bool _bExpandWordSpace,
+ bool _bProtectForm )
{
SvtCompatibilityEntry aItem( _sName, _sModule );
aItem.SetUsePrtMetrics( _bUsePrtMetrics );
@@ -494,6 +503,7 @@ void SvtCompatibilityOptions_Impl::AppendItem( const OUString& _sName,
aItem.SetUseOurTextWrapping( _bUseOurTextWrapping );
aItem.SetConsiderWrappingStyle( _bConsiderWrappingStyle );
aItem.SetExpandWordSpace( _bExpandWordSpace );
+ aItem.SetProtectForm( _bProtectForm );
m_aOptions.AppendEntry( aItem );
// default item reset?
@@ -638,14 +648,15 @@ void SvtCompatibilityOptions::AppendItem( const OUString& sName,
bool bUseObjPos,
bool bUseOurTextWrapping,
bool bConsiderWrappingStyle,
- bool bExpandWordSpace )
+ bool bExpandWordSpace,
+ bool bProtectForm )
{
MutexGuard aGuard( GetOwnStaticMutex() );
m_pDataContainer->AppendItem(
sName, sModule, bUsePrtMetrics, bAddSpacing,
bAddSpacingAtPages, bUseOurTabStops, bNoExtLeading,
bUseLineSpacing, bAddTableSpacing, bUseObjPos,
- bUseOurTextWrapping, bConsiderWrappingStyle, bExpandWordSpace );
+ bUseOurTextWrapping, bConsiderWrappingStyle, bExpandWordSpace, bProtectForm );
}
bool SvtCompatibilityOptions::IsUsePrtDevice() const
@@ -714,6 +725,12 @@ bool SvtCompatibilityOptions::IsExpandWordSpace() const
return m_pDataContainer->IsExpandWordSpace();
}
+bool SvtCompatibilityOptions::IsProtectForm() const
+{
+ MutexGuard aGuard( GetOwnStaticMutex() );
+ return m_pDataContainer->IsProtectForm();
+}
+
Sequence< Sequence< PropertyValue > > SvtCompatibilityOptions::GetList() const
{
MutexGuard aGuard( GetOwnStaticMutex() );