diff options
author | Jacobo Aragunde Pérez <jaragunde@igalia.com> | 2013-10-01 10:59:01 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2013-10-16 10:24:00 +0000 |
commit | 2eba5391d3fa3232ba2b0a187c4c51736ab2ec3d (patch) | |
tree | cf06fece8abd86dc586cf137ac450e817ff50842 | |
parent | b3362fc9cb410599ac54fc3badfad75354c98d84 (diff) |
unotools: add menu option to enable/disable Smart-Art lock
The point of this menu option is that locked Smart-Art shapes would
preserve the original XML files attached so they could be exported
back to docx with no loss.
The new menu option is located at Options -> Load/Save -> MS Office ->
SmartArt to LibreOffice shapes or reverse.
Change-Id: I6aafc2eb83404ee2c0b8538b2f6fbbbd4363e7d3
Reviewed-on: https://gerrit.libreoffice.org/6138
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
-rw-r--r-- | cui/source/inc/cuires.hrc | 2 | ||||
-rw-r--r-- | cui/source/options/optfltr.cxx | 6 | ||||
-rw-r--r-- | cui/source/options/optfltr.hxx | 3 | ||||
-rw-r--r-- | cui/source/options/optfltr.src | 4 | ||||
-rw-r--r-- | include/unotools/fltrcfg.hxx | 3 | ||||
-rw-r--r-- | officecfg/registry/schema/org/openoffice/Office/Common.xcs | 6 | ||||
-rw-r--r-- | unotools/source/config/fltrcfg.cxx | 23 |
7 files changed, 43 insertions, 4 deletions
diff --git a/cui/source/inc/cuires.hrc b/cui/source/inc/cuires.hrc index 0b8cf5a6df32..4a887c292435 100644 --- a/cui/source/inc/cuires.hrc +++ b/cui/source/inc/cuires.hrc @@ -454,6 +454,8 @@ #define RID_SVXSTR_YES (RID_SVX_START + 1249) #define RID_SVXSTR_NO (RID_SVX_START + 1250) +#define RID_SVXSTR_CHG_SMARTART (RID_SVX_START + 1251) + #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cui/source/options/optfltr.cxx b/cui/source/options/optfltr.cxx index d6ec2973974b..30409b4e8007 100644 --- a/cui/source/options/optfltr.cxx +++ b/cui/source/options/optfltr.cxx @@ -32,6 +32,7 @@ enum MSFltrPg2_CheckBoxEntries { Writer, Calc, Impress, + SmartArt, InvalidCBEntry }; @@ -136,6 +137,7 @@ OfaMSFilterTabPage2::OfaMSFilterTabPage2( Window* pParent, const SfxItemSet& rSe sChgToFromWriter(CUI_RES(RID_SVXSTR_CHG_WRITER)), sChgToFromCalc(CUI_RES(RID_SVXSTR_CHG_CALC)), sChgToFromImpress(CUI_RES(RID_SVXSTR_CHG_IMPRESS)), + sChgToFromSmartArt(CUI_RES(RID_SVXSTR_CHG_SMARTART)), pCheckButtonData(0) { get(m_pCheckLBContainer, "checklbcontainer"); @@ -193,6 +195,8 @@ sal_Bool OfaMSFilterTabPage2::FillItemSet( SfxItemSet& ) &SvtFilterOptions::SetPowerPoint2Impress }, { Impress, &SvtFilterOptions::IsImpress2PowerPoint, &SvtFilterOptions::SetImpress2PowerPoint }, + { SmartArt, &SvtFilterOptions::IsSmartArt2Shape, + &SvtFilterOptions::SetSmartArt2Shape }, { InvalidCBEntry, 0, 0 } }; @@ -238,6 +242,7 @@ void OfaMSFilterTabPage2::Reset( const SfxItemSet& ) InsertEntry( sChgToFromCalc, static_cast< sal_IntPtr >( Calc ) ); if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SIMPRESS ) ) InsertEntry( sChgToFromImpress, static_cast< sal_IntPtr >( Impress ) ); + InsertEntry( sChgToFromSmartArt, static_cast< sal_IntPtr >( SmartArt ), true, false ); static struct ChkCBoxEntries{ MSFltrPg2_CheckBoxEntries eType; @@ -251,6 +256,7 @@ void OfaMSFilterTabPage2::Reset( const SfxItemSet& ) { Calc, &SvtFilterOptions::IsCalc2Excel }, { Impress, &SvtFilterOptions::IsPowerPoint2Impress }, { Impress, &SvtFilterOptions::IsImpress2PowerPoint }, + { SmartArt, &SvtFilterOptions::IsSmartArt2Shape }, { InvalidCBEntry, NULL } }; diff --git a/cui/source/options/optfltr.hxx b/cui/source/options/optfltr.hxx index a81d5c698378..7ae67214cbc3 100644 --- a/cui/source/options/optfltr.hxx +++ b/cui/source/options/optfltr.hxx @@ -79,7 +79,8 @@ class OfaMSFilterTabPage2 : public SfxTabPage OUString sChgToFromMath, sChgToFromWriter, sChgToFromCalc, - sChgToFromImpress; + sChgToFromImpress, + sChgToFromSmartArt; SvLBoxButtonData* pCheckButtonData; OfaMSFilterTabPage2( Window* pParent, const SfxItemSet& rSet ); diff --git a/cui/source/options/optfltr.src b/cui/source/options/optfltr.src index 628b26df8b57..41b378c05342 100644 --- a/cui/source/options/optfltr.src +++ b/cui/source/options/optfltr.src @@ -43,5 +43,9 @@ String RID_SVXSTR_CHG_IMPRESS { Text [ en-US ] = "PowerPoint to %PRODUCTNAME Impress or reverse"; }; +String RID_SVXSTR_CHG_SMARTART +{ + Text [ en-US ] = "SmartArt to %PRODUCTNAME shapes or reverse"; +}; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/unotools/fltrcfg.hxx b/include/unotools/fltrcfg.hxx index 0356aeeb5d12..71425a3e62c3 100644 --- a/include/unotools/fltrcfg.hxx +++ b/include/unotools/fltrcfg.hxx @@ -79,6 +79,9 @@ public: sal_Bool IsImpress2PowerPoint() const; void SetImpress2PowerPoint( sal_Bool bFlag ); + sal_Bool IsSmartArt2Shape() const; + void SetSmartArt2Shape( sal_Bool bFlag ); + sal_Bool IsEnablePPTPreview() const; sal_Bool IsEnableCalcPreview() const; sal_Bool IsEnableWordPreview() const; diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs index ccc6d12316b2..9484a5f2a761 100644 --- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs @@ -3977,6 +3977,12 @@ </info> <value>true</value> </prop> + <prop oor:name="SmartArtToShapes" oor:type="xs:boolean" oor:nillable="false"> + <info> + <desc>Specifies if OOXML SmartArt objects are converted into LO shapes.</desc> + </info> + <value>false</value> + </prop> <prop oor:name="ImportWWFieldsAsEnhancedFields" oor:type="xs:boolean" oor:nillable="false"> <info> <desc>Flag to control use of enhanced fields.</desc> diff --git a/unotools/source/config/fltrcfg.cxx b/unotools/source/config/fltrcfg.cxx index 29678a1991b4..09829dbcb911 100644 --- a/unotools/source/config/fltrcfg.cxx +++ b/unotools/source/config/fltrcfg.cxx @@ -48,6 +48,7 @@ using namespace com::sun::star::uno; #define FILTERCFG_ENABLE_WORD_PREVIEW 0x80000 #define FILTERCFG_USE_ENHANCED_FIELDS 0x100000 #define FILTERCFG_WORD_WBCTBL 0x200000 +#define FILTERCFG_SMARTART_SHAPE_LOAD 0x400000 class SvtAppFilterOptions_Impl : public utl::ConfigItem { @@ -240,7 +241,8 @@ struct SvtFilterOptions_Impl FILTERCFG_CALC_SAVE | FILTERCFG_IMPRESS_LOAD | FILTERCFG_IMPRESS_SAVE | - FILTERCFG_USE_ENHANCED_FIELDS; + FILTERCFG_USE_ENHANCED_FIELDS | + FILTERCFG_SMARTART_SHAPE_LOAD; Load(); } @@ -314,7 +316,7 @@ const Sequence<OUString>& SvtFilterOptions::GetPropertyNames() static Sequence<OUString> aNames; if(!aNames.getLength()) { - int nCount = 12; + int nCount = 13; aNames.realloc(nCount); static const char* aPropNames[] = { @@ -329,7 +331,8 @@ const Sequence<OUString>& SvtFilterOptions::GetPropertyNames() "Export/EnablePowerPointPreview", // 8 "Export/EnableExcelPreview", // 9 "Export/EnableWordPreview", // 10 - "Import/ImportWWFieldsAsEnhancedFields" // 11 + "Import/ImportWWFieldsAsEnhancedFields", // 11 + "Import/SmartArtToShapes" // 12 }; OUString* pNames = aNames.getArray(); for(int i = 0; i < nCount; i++) @@ -355,6 +358,7 @@ static sal_uLong lcl_GetFlag(sal_Int32 nProp) case 9: nFlag = FILTERCFG_ENABLE_EXCEL_PREVIEW; break; case 10: nFlag = FILTERCFG_ENABLE_WORD_PREVIEW; break; case 11: nFlag = FILTERCFG_USE_ENHANCED_FIELDS; break; + case 12: nFlag = FILTERCFG_SMARTART_SHAPE_LOAD; break; default: OSL_FAIL("illegal value"); } @@ -597,6 +601,19 @@ void SvtFilterOptions::SetImpress2PowerPoint( sal_Bool bFlag ) SetModified(); } + +// ----------------------------------------------------------------------- +sal_Bool SvtFilterOptions::IsSmartArt2Shape() const +{ + return pImp->IsFlag( FILTERCFG_SMARTART_SHAPE_LOAD ); +} + +void SvtFilterOptions::SetSmartArt2Shape( sal_Bool bFlag ) +{ + pImp->SetFlag( FILTERCFG_SMARTART_SHAPE_LOAD, bFlag ); + SetModified(); +} + namespace { class theFilterOptions |