24#include <osl/diagnose.h>
26#include <com/sun/star/uno/Sequence.hxx>
33enum class ConfigFlags {
36 WordStorage = 0x0000002,
37 ExcelCode = 0x0000004,
38 ExcelStorage = 0x0000008,
39 PowerPointCode = 0x0000010,
40 PowerPointStorage = 0x0000020,
43 WriterLoad = 0x0000400,
44 WriterSave = 0x0000800,
47 ImpressLoad = 0x0004000,
48 ImpressSave = 0x0008000,
49 ExcelExecTbl = 0x0010000,
50 EnablePowerPointPreview = 0x0020000,
51 EnableExcelPreview = 0x0040000,
52 EnableWordPreview = 0x0080000,
53 UseEnhancedFields = 0x0100000,
54 WordWbctbl = 0x0200000,
55 SmartArtShapeLoad = 0x0400000,
56 CharBackgroundToHighlighting = 0x8000000,
57 CreateMSOLockFiles = 0x2000000,
58 VisioLoad = 0x4000000,
79 explicit SvtAppFilterOptions_Impl(
const OUString& rRoot) :
83 virtual ~SvtAppFilterOptions_Impl()
override;
84 virtual void Notify(
const css::uno::Sequence<OUString>& aPropertyNames)
override;
87 bool IsLoad()
const {
return bLoadVBA;}
88 void SetLoad(
bool bSet)
94 bool IsSave()
const {
return bSaveVBA;}
95 void SetSave(
bool bSet)
105SvtAppFilterOptions_Impl::~SvtAppFilterOptions_Impl()
107 assert(!IsModified());
110void SvtAppFilterOptions_Impl::ImplCommit()
113 {
"Load",
"Save"}, {css::uno::Any(bLoadVBA), css::uno::Any(bSaveVBA)});
121void SvtAppFilterOptions_Impl::Load()
126 if(pValues[0].hasValue())
127 bLoadVBA = *o3tl::doAccess<bool>(pValues[0]);
128 if(pValues[1].hasValue())
129 bSaveVBA = *o3tl::doAccess<bool>(pValues[1]);
134class SvtWriterFilterOptions_Impl :
public SvtAppFilterOptions_Impl
137 bool bLoadExecutable;
139 virtual void ImplCommit()
override;
142 explicit SvtWriterFilterOptions_Impl(
const OUString& rRoot) :
143 SvtAppFilterOptions_Impl(rRoot),
144 bLoadExecutable(false)
148 bool IsLoadExecutable()
const {
return bLoadExecutable;}
149 void SetLoadExecutable(
bool bSet)
151 if(bSet != bLoadExecutable)
153 bLoadExecutable = bSet;
159void SvtWriterFilterOptions_Impl::ImplCommit()
161 SvtAppFilterOptions_Impl::ImplCommit();
163 PutProperties({
"Executable" }, {
Any(bLoadExecutable) });
166void SvtWriterFilterOptions_Impl::Load()
168 SvtAppFilterOptions_Impl::Load();
174 if(pValues[0].hasValue())
175 bLoadExecutable = *o3tl::doAccess<bool>(pValues[0]);
180class SvtCalcFilterOptions_Impl :
public SvtAppFilterOptions_Impl
183 bool bLoadExecutable;
185 virtual void ImplCommit()
override;
188 explicit SvtCalcFilterOptions_Impl(
const OUString& rRoot) :
189 SvtAppFilterOptions_Impl(rRoot),
190 bLoadExecutable(false)
194 bool IsLoadExecutable()
const {
return bLoadExecutable;}
195 void SetLoadExecutable(
bool bSet)
197 if(bSet != bLoadExecutable)
199 bLoadExecutable = bSet;
205void SvtCalcFilterOptions_Impl::ImplCommit()
207 SvtAppFilterOptions_Impl::ImplCommit();
209 PutProperties({
"Executable" }, {
Any(bLoadExecutable) });
212void SvtCalcFilterOptions_Impl::Load()
214 SvtAppFilterOptions_Impl::Load();
220 if(pValues[0].hasValue())
221 bLoadExecutable = *o3tl::doAccess<bool>(pValues[0]);
232 aWriterCfg(
"Office.Writer/Filter/Import/VBA"),
233 aCalcCfg(
"Office.Calc/Filter/Import/VBA"),
236 nFlags = ConfigFlags::WordCode |
237 ConfigFlags::WordStorage |
238 ConfigFlags::ExcelCode |
239 ConfigFlags::ExcelStorage |
240 ConfigFlags::PowerPointCode |
241 ConfigFlags::PowerPointStorage |
242 ConfigFlags::MathLoad |
243 ConfigFlags::MathSave |
244 ConfigFlags::WriterLoad |
245 ConfigFlags::WriterSave |
246 ConfigFlags::CalcLoad |
247 ConfigFlags::CalcSave |
248 ConfigFlags::ImpressLoad |
249 ConfigFlags::ImpressSave |
250 ConfigFlags::UseEnhancedFields |
251 ConfigFlags::SmartArtShapeLoad |
252 ConfigFlags::CharBackgroundToHighlighting|
253 ConfigFlags::CreateMSOLockFiles;
257 void SetFlag( ConfigFlags nFlag,
bool bSet );
258 bool IsFlag( ConfigFlags nFlag )
const;
271 case ConfigFlags::WordCode:
aWriterCfg.SetLoad(bSet);
break;
272 case ConfigFlags::WordStorage:
aWriterCfg.SetSave(bSet);
break;
273 case ConfigFlags::WordWbctbl:
aWriterCfg.SetLoadExecutable(bSet);
break;
274 case ConfigFlags::ExcelCode:
aCalcCfg.SetLoad(bSet);
break;
275 case ConfigFlags::ExcelStorage:
aCalcCfg.SetSave(bSet);
break;
276 case ConfigFlags::ExcelExecTbl:
aCalcCfg.SetLoadExecutable(bSet);
break;
277 case ConfigFlags::PowerPointCode:
aImpressCfg.SetLoad(bSet);
break;
278 case ConfigFlags::PowerPointStorage:
aImpressCfg.SetSave(bSet);
break;
292 case ConfigFlags::WordCode : bRet =
aWriterCfg.IsLoad();
break;
293 case ConfigFlags::WordStorage : bRet =
aWriterCfg.IsSave();
break;
294 case ConfigFlags::WordWbctbl : bRet =
aWriterCfg.IsLoadExecutable();
break;
295 case ConfigFlags::ExcelCode : bRet =
aCalcCfg.IsLoad();
break;
296 case ConfigFlags::ExcelStorage : bRet =
aCalcCfg.IsSave();
break;
297 case ConfigFlags::ExcelExecTbl : bRet =
aCalcCfg.IsLoadExecutable();
break;
298 case ConfigFlags::PowerPointCode : bRet =
aImpressCfg.IsLoad();
break;
299 case ConfigFlags::PowerPointStorage : bRet =
aImpressCfg.IsSave();
break;
301 bRet = bool(
nFlags & nFlag );
312 "Import/MathTypeToMath",
313 "Import/WinWordToWriter",
314 "Import/PowerPointToImpress",
315 "Import/ExcelToCalc",
316 "Export/MathToMathType",
317 "Export/WriterToWinWord",
318 "Export/ImpressToPowerPoint",
319 "Export/CalcToExcel",
320 "Export/EnablePowerPointPreview",
321 "Export/EnableExcelPreview",
322 "Export/EnableWordPreview",
323 "Import/ImportWWFieldsAsEnhancedFields",
324 "Import/SmartArtToShapes",
325 "Export/CharBackgroundToHighlighting",
326 "Import/CreateMSOLockFiles",
335 ConfigItem(
"Office.Common/Filter/Microsoft" ),
348 ConfigFlags nFlag = ConfigFlags::NONE;
351 case 0: nFlag = ConfigFlags::MathLoad;
break;
352 case 1: nFlag = ConfigFlags::WriterLoad;
break;
353 case 2: nFlag = ConfigFlags::ImpressLoad;
break;
354 case 3: nFlag = ConfigFlags::CalcLoad;
break;
355 case 4: nFlag = ConfigFlags::MathSave;
break;
356 case 5: nFlag = ConfigFlags::WriterSave;
break;
357 case 6: nFlag = ConfigFlags::ImpressSave;
break;
358 case 7: nFlag = ConfigFlags::CalcSave;
break;
359 case 8: nFlag = ConfigFlags::EnablePowerPointPreview;
break;
360 case 9: nFlag = ConfigFlags::EnableExcelPreview;
break;
361 case 10: nFlag = ConfigFlags::EnableWordPreview;
break;
362 case 11: nFlag = ConfigFlags::UseEnhancedFields;
break;
363 case 12: nFlag = ConfigFlags::SmartArtShapeLoad;
break;
364 case 13: nFlag = ConfigFlags::CharBackgroundToHighlighting;
break;
365 case 14: nFlag = ConfigFlags::CreateMSOLockFiles;
break;
367 nFlag = ConfigFlags::VisioLoad;
370 default: OSL_FAIL(
"illegal value");
386 for(
int nProp = 0; nProp < aNames.getLength(); nProp++)
401 DBG_ASSERT(aValues.getLength() == rNames.getLength(),
"GetProperties failed");
402 if(aValues.getLength() == rNames.getLength())
404 for(
int nProp = 0; nProp < rNames.getLength(); nProp++)
408 bool bVal = *o3tl::doAccess<bool>(
pValues[nProp]);
410 pImpl->SetFlag( nFlag, bVal);
418 pImpl->SetFlag( ConfigFlags::WordCode, bFlag );
424 return pImpl->IsFlag( ConfigFlags::WordCode );
429 pImpl->SetFlag( ConfigFlags::WordWbctbl, bFlag );
435 return pImpl->IsFlag( ConfigFlags::WordWbctbl );
440 pImpl->SetFlag( ConfigFlags::WordStorage, bFlag );
446 return pImpl->IsFlag( ConfigFlags::WordStorage );
451 pImpl->SetFlag( ConfigFlags::ExcelCode, bFlag );
457 return pImpl->IsFlag( ConfigFlags::ExcelCode );
462 pImpl->SetFlag( ConfigFlags::ExcelExecTbl, bFlag );
468 return pImpl->IsFlag( ConfigFlags::ExcelExecTbl );
473 pImpl->SetFlag( ConfigFlags::ExcelStorage, bFlag );
479 return pImpl->IsFlag( ConfigFlags::ExcelStorage );
484 pImpl->SetFlag( ConfigFlags::PowerPointCode, bFlag );
490 return pImpl->IsFlag( ConfigFlags::PowerPointCode );
495 pImpl->SetFlag( ConfigFlags::PowerPointStorage, bFlag );
501 return pImpl->IsFlag( ConfigFlags::PowerPointStorage );
506 return pImpl->IsFlag( ConfigFlags::MathLoad );
511 pImpl->SetFlag( ConfigFlags::MathLoad, bFlag );
517 return pImpl->IsFlag( ConfigFlags::MathSave );
522 pImpl->SetFlag( ConfigFlags::MathSave, bFlag );
528 return pImpl->IsFlag( ConfigFlags::WriterLoad );
533 pImpl->SetFlag( ConfigFlags::WriterLoad, bFlag );
539 return pImpl->IsFlag( ConfigFlags::WriterSave );
544 pImpl->SetFlag( ConfigFlags::WriterSave, bFlag );
550 return pImpl->IsFlag( ConfigFlags::UseEnhancedFields );
555 return pImpl->IsFlag( ConfigFlags::CalcLoad );
560 pImpl->SetFlag( ConfigFlags::CalcLoad, bFlag );
566 return pImpl->IsFlag( ConfigFlags::CalcSave );
571 pImpl->SetFlag( ConfigFlags::CalcSave, bFlag );
577 return pImpl->IsFlag( ConfigFlags::ImpressLoad );
582 pImpl->SetFlag( ConfigFlags::ImpressLoad, bFlag );
588 return pImpl->IsFlag( ConfigFlags::ImpressSave );
593 pImpl->SetFlag( ConfigFlags::ImpressSave, bFlag );
599 return pImpl->IsFlag( ConfigFlags::SmartArtShapeLoad );
604 pImpl->SetFlag( ConfigFlags::SmartArtShapeLoad, bFlag );
612 pImpl->SetFlag(ConfigFlags::VisioLoad, bFlag);
624 return pImpl->IsFlag( ConfigFlags::EnablePowerPointPreview );
629 return pImpl->IsFlag( ConfigFlags::EnableExcelPreview );
634 return pImpl->IsFlag( ConfigFlags::EnableWordPreview );
639 return pImpl->IsFlag( ConfigFlags::CharBackgroundToHighlighting );
644 return !
pImpl->IsFlag( ConfigFlags::CharBackgroundToHighlighting );
649 pImpl->SetFlag( ConfigFlags::CharBackgroundToHighlighting,
true );
655 pImpl->SetFlag( ConfigFlags::CharBackgroundToHighlighting,
false );
661 return pImpl->IsFlag( ConfigFlags::CreateMSOLockFiles );
666 pImpl->SetFlag( ConfigFlags::CreateMSOLockFiles, bEnable );
const PropertyValue * pValues
void SetCharBackground2Highlighting()
void SetLoadExcelBasicExecutable(bool bFlag)
bool IsCharBackground2Shading() const
bool IsLoadExcelBasicStorage() const
bool IsCharBackground2Highlighting() const
bool IsMathType2Math() const
void SetWriter2WinWord(bool bFlag)
bool IsLoadPPointBasicStorage() const
bool IsCalc2Excel() const
void SetImpress2PowerPoint(bool bFlag)
void SetMath2MathType(bool bFlag)
bool IsLoadExcelBasicExecutable() const
bool IsWinWord2Writer() const
static SvtFilterOptions & Get()
bool IsImpress2PowerPoint() const
void SetLoadWordBasicCode(bool bFlag)
virtual void Notify(const css::uno::Sequence< OUString > &aPropertyNames) override
is called from the ConfigManager before application ends of from the PropertyChangeListener if the su...
std::unique_ptr< SvtFilterOptions_Impl, o3tl::default_delete< SvtFilterOptions_Impl > > pImpl
void SetLoadPPointBasicStorage(bool bFlag)
bool IsEnableWordPreview() const
void SetLoadExcelBasicStorage(bool bFlag)
void SetCharBackground2Shading()
void SetMathType2Math(bool bFlag)
virtual void ImplCommit() override
writes the changed values into the sub tree.
void SetLoadWordBasicExecutable(bool bFlag)
bool IsLoadExcelBasicCode() const
bool IsWriter2WinWord() const
bool IsMSOLockFileCreationIsEnabled() const
void SetPowerPoint2Impress(bool bFlag)
void SetVisio2Draw(bool bFlag)
bool IsLoadWordBasicCode() const
bool IsEnablePPTPreview() const
void EnableMSOLockFileCreation(bool bEnable)
bool IsMath2MathType() const
void SetSmartArt2Shape(bool bFlag)
void SetLoadPPointBasicCode(bool bFlag)
bool IsLoadWordBasicStorage() const
bool IsEnableCalcPreview() const
void SetLoadWordBasicStorage(bool bFlag)
virtual ~SvtFilterOptions() override
bool IsExcel2Calc() const
bool IsLoadWordBasicExecutable() const
bool IsPowerPoint2Impress() const
bool IsVisio2Draw() const
void SetCalc2Excel(bool bFlag)
void SetExcel2Calc(bool bFlag)
void SetWinWord2Writer(bool bFlag)
bool IsLoadPPointBasicCode() const
bool IsSmartArt2Shape() const
void SetLoadExcelBasicCode(bool bFlag)
bool IsUseEnhancedFields() const
css::uno::Sequence< css::uno::Any > GetProperties(const css::uno::Sequence< OUString > &rNames)
bool EnableNotification(const css::uno::Sequence< OUString > &rNames, bool bEnableInternalNotification=false)
enables notifications about changes on selected sub nodes/values
virtual void Notify(const css::uno::Sequence< OUString > &aPropertyNames)=0
is called from the ConfigManager before application ends of from the PropertyChangeListener if the su...
virtual void ImplCommit()=0
writes the changed values into the sub tree.
bool PutProperties(const css::uno::Sequence< OUString > &rNames, const css::uno::Sequence< css::uno::Any > &rValues)
#define DBG_ASSERT(sCon, aError)
static ConfigFlags lcl_GetFlag(sal_Int32 nProp)
SvtWriterFilterOptions_Impl aWriterCfg
bool IsFlag(ConfigFlags nFlag) const
SvtCalcFilterOptions_Impl aCalcCfg
void SetFlag(ConfigFlags nFlag, bool bSet)
SvtAppFilterOptions_Impl aImpressCfg