Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
11 : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : * contributor license agreements. See the NOTICE file distributed
13 : * with this work for additional information regarding copyright
14 : * ownership. The ASF licenses this file to you under the Apache
15 : * License, Version 2.0 (the "License"); you may not use this file
16 : * except in compliance with the License. You may obtain a copy of
17 : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : */
19 :
20 : #include <config_features.h>
21 :
22 : #include <unotools/fltrcfg.hxx>
23 : #include <tools/debug.hxx>
24 : #include <tools/solar.h>
25 :
26 : #include <com/sun/star/uno/Any.hxx>
27 : #include <com/sun/star/uno/Sequence.hxx>
28 :
29 : using namespace utl;
30 : using namespace com::sun::star::uno;
31 :
32 : #define FILTERCFG_WORD_CODE 0x0001
33 : #define FILTERCFG_WORD_STORAGE 0x0002
34 : #define FILTERCFG_EXCEL_CODE 0x0004
35 : #define FILTERCFG_EXCEL_STORAGE 0x0008
36 : #define FILTERCFG_PPOINT_CODE 0x0010
37 : #define FILTERCFG_PPOINT_STORAGE 0x0020
38 : #define FILTERCFG_MATH_LOAD 0x0100
39 : #define FILTERCFG_MATH_SAVE 0x0200
40 : #define FILTERCFG_WRITER_LOAD 0x0400
41 : #define FILTERCFG_WRITER_SAVE 0x0800
42 : #define FILTERCFG_CALC_LOAD 0x1000
43 : #define FILTERCFG_CALC_SAVE 0x2000
44 : #define FILTERCFG_IMPRESS_LOAD 0x4000
45 : #define FILTERCFG_IMPRESS_SAVE 0x8000
46 : #define FILTERCFG_EXCEL_EXECTBL 0x10000
47 : #define FILTERCFG_ENABLE_PPT_PREVIEW 0x20000
48 : #define FILTERCFG_ENABLE_EXCEL_PREVIEW 0x40000
49 : #define FILTERCFG_ENABLE_WORD_PREVIEW 0x80000
50 : #define FILTERCFG_USE_ENHANCED_FIELDS 0x100000
51 : #define FILTERCFG_WORD_WBCTBL 0x200000
52 : #define FILTERCFG_SMARTART_SHAPE_LOAD 0x400000
53 :
54 : class SvtAppFilterOptions_Impl : public utl::ConfigItem
55 : {
56 : bool bLoadVBA;
57 : bool bSaveVBA;
58 : public:
59 144 : SvtAppFilterOptions_Impl(const OUString& rRoot) :
60 : utl::ConfigItem(rRoot),
61 : bLoadVBA(false),
62 144 : bSaveVBA(false) {}
63 : virtual ~SvtAppFilterOptions_Impl();
64 : virtual void Commit() SAL_OVERRIDE;
65 : virtual void Notify( const com::sun::star::uno::Sequence<OUString>& aPropertyNames) SAL_OVERRIDE;
66 : void Load();
67 :
68 74 : bool IsLoad() const {return bLoadVBA;}
69 0 : void SetLoad(bool bSet)
70 : {
71 0 : if(bSet != bLoadVBA)
72 0 : SetModified();
73 0 : bLoadVBA = bSet;
74 0 : }
75 26 : bool IsSave() const {return bSaveVBA;}
76 0 : void SetSave(bool bSet)
77 : {
78 0 : if(bSet != bSaveVBA)
79 0 : SetModified();
80 0 : bSaveVBA = bSet;
81 0 : }
82 : };
83 :
84 288 : SvtAppFilterOptions_Impl::~SvtAppFilterOptions_Impl()
85 : {
86 144 : if(IsModified())
87 0 : Commit();
88 144 : }
89 :
90 0 : void SvtAppFilterOptions_Impl::Commit()
91 : {
92 0 : Sequence<OUString> aNames(2);
93 0 : OUString* pNames = aNames.getArray();
94 0 : pNames[0] = "Load";
95 0 : pNames[1] = "Save";
96 0 : Sequence<Any> aValues(aNames.getLength());
97 0 : Any* pValues = aValues.getArray();
98 :
99 0 : const Type& rType = ::getBooleanCppuType();
100 0 : pValues[0].setValue(&bLoadVBA, rType);
101 0 : pValues[1].setValue(&bSaveVBA, rType);
102 :
103 0 : PutProperties(aNames, aValues);
104 0 : }
105 :
106 0 : void SvtAppFilterOptions_Impl::Notify( const Sequence< OUString >& )
107 : {
108 : // no listeners supported yet
109 0 : }
110 :
111 288 : void SvtAppFilterOptions_Impl::Load()
112 : {
113 288 : Sequence<OUString> aNames(2);
114 288 : OUString* pNames = aNames.getArray();
115 288 : pNames[0] = "Load";
116 288 : pNames[1] = "Save";
117 :
118 576 : Sequence<Any> aValues = GetProperties(aNames);
119 288 : const Any* pValues = aValues.getConstArray();
120 :
121 288 : if(pValues[0].hasValue())
122 288 : bLoadVBA = *(sal_Bool*)pValues[0].getValue();
123 288 : if(pValues[1].hasValue())
124 576 : bSaveVBA = *(sal_Bool*)pValues[1].getValue();
125 288 : }
126 :
127 48 : class SvtWriterFilterOptions_Impl : public SvtAppFilterOptions_Impl
128 : {
129 : bool bLoadExecutable;
130 : public:
131 48 : SvtWriterFilterOptions_Impl(const OUString& rRoot) :
132 : SvtAppFilterOptions_Impl(rRoot),
133 48 : bLoadExecutable(false)
134 48 : {}
135 : virtual void Commit() SAL_OVERRIDE;
136 : void Load();
137 :
138 0 : bool IsLoadExecutable() const {return bLoadExecutable;}
139 0 : void SetLoadExecutable(bool bSet)
140 : {
141 0 : if(bSet != bLoadExecutable)
142 0 : SetModified();
143 0 : bLoadExecutable = bSet;
144 0 : }
145 : };
146 :
147 0 : void SvtWriterFilterOptions_Impl::Commit()
148 : {
149 0 : SvtAppFilterOptions_Impl::Commit();
150 :
151 0 : Sequence<OUString> aNames(1);
152 0 : aNames[0] = "Executable";
153 0 : Sequence<Any> aValues(1);
154 0 : aValues[0] <<= bLoadExecutable;
155 :
156 0 : PutProperties(aNames, aValues);
157 0 : }
158 :
159 96 : void SvtWriterFilterOptions_Impl::Load()
160 : {
161 96 : SvtAppFilterOptions_Impl::Load();
162 :
163 96 : Sequence<OUString> aNames(1);
164 96 : aNames[0] = "Executable";
165 :
166 192 : Sequence<Any> aValues = GetProperties(aNames);
167 96 : const Any* pValues = aValues.getConstArray();
168 96 : if(pValues[0].hasValue())
169 192 : bLoadExecutable = *(sal_Bool*)pValues[0].getValue();
170 96 : }
171 :
172 48 : class SvtCalcFilterOptions_Impl : public SvtAppFilterOptions_Impl
173 : {
174 : bool bLoadExecutable;
175 : public:
176 48 : SvtCalcFilterOptions_Impl(const OUString& rRoot) :
177 : SvtAppFilterOptions_Impl(rRoot),
178 48 : bLoadExecutable(false)
179 48 : {}
180 : virtual void Commit() SAL_OVERRIDE;
181 : void Load();
182 :
183 56 : bool IsLoadExecutable() const {return bLoadExecutable;}
184 0 : void SetLoadExecutable(bool bSet)
185 : {
186 0 : if(bSet != bLoadExecutable)
187 0 : SetModified();
188 0 : bLoadExecutable = bSet;
189 0 : }
190 : };
191 :
192 0 : void SvtCalcFilterOptions_Impl::Commit()
193 : {
194 0 : SvtAppFilterOptions_Impl::Commit();
195 :
196 0 : Sequence<OUString> aNames(1);
197 0 : aNames[0] = "Executable";
198 0 : Sequence<Any> aValues(1);
199 0 : aValues[0] <<= bLoadExecutable;
200 :
201 0 : PutProperties(aNames, aValues);
202 0 : }
203 :
204 96 : void SvtCalcFilterOptions_Impl::Load()
205 : {
206 96 : SvtAppFilterOptions_Impl::Load();
207 :
208 96 : Sequence<OUString> aNames(1);
209 96 : aNames[0] = "Executable";
210 :
211 192 : Sequence<Any> aValues = GetProperties(aNames);
212 96 : const Any* pValues = aValues.getConstArray();
213 96 : if(pValues[0].hasValue())
214 192 : bLoadExecutable = *(sal_Bool*)pValues[0].getValue();
215 96 : }
216 :
217 48 : struct SvtFilterOptions_Impl
218 : {
219 : sal_uLong nFlags;
220 : SvtWriterFilterOptions_Impl aWriterCfg;
221 : SvtCalcFilterOptions_Impl aCalcCfg;
222 : SvtAppFilterOptions_Impl aImpressCfg;
223 :
224 48 : SvtFilterOptions_Impl() :
225 : aWriterCfg("Office.Writer/Filter/Import/VBA"),
226 : aCalcCfg("Office.Calc/Filter/Import/VBA"),
227 48 : aImpressCfg("Office.Impress/Filter/Import/VBA")
228 : {
229 : nFlags = FILTERCFG_WORD_CODE |
230 : FILTERCFG_WORD_STORAGE |
231 : FILTERCFG_EXCEL_CODE |
232 : FILTERCFG_EXCEL_STORAGE |
233 : FILTERCFG_PPOINT_CODE |
234 : FILTERCFG_PPOINT_STORAGE |
235 : FILTERCFG_MATH_LOAD |
236 : FILTERCFG_MATH_SAVE |
237 : FILTERCFG_WRITER_LOAD |
238 : FILTERCFG_WRITER_SAVE |
239 : FILTERCFG_CALC_LOAD |
240 : FILTERCFG_CALC_SAVE |
241 : FILTERCFG_IMPRESS_LOAD |
242 : FILTERCFG_IMPRESS_SAVE |
243 : FILTERCFG_USE_ENHANCED_FIELDS |
244 48 : FILTERCFG_SMARTART_SHAPE_LOAD;
245 48 : Load();
246 48 : }
247 :
248 : void SetFlag( sal_uLong nFlag, bool bSet );
249 : bool IsFlag( sal_uLong nFlag ) const;
250 96 : void Load()
251 : {
252 96 : aWriterCfg.Load();
253 96 : aCalcCfg.Load();
254 96 : aImpressCfg.Load();
255 96 : }
256 : };
257 :
258 632 : void SvtFilterOptions_Impl::SetFlag( sal_uLong nFlag, bool bSet )
259 : {
260 632 : switch(nFlag)
261 : {
262 0 : case FILTERCFG_WORD_CODE: aWriterCfg.SetLoad(bSet);break;
263 0 : case FILTERCFG_WORD_STORAGE: aWriterCfg.SetSave(bSet);break;
264 0 : case FILTERCFG_WORD_WBCTBL: aWriterCfg.SetLoadExecutable(bSet);break;
265 0 : case FILTERCFG_EXCEL_CODE: aCalcCfg.SetLoad(bSet);break;
266 0 : case FILTERCFG_EXCEL_STORAGE: aCalcCfg.SetSave(bSet);break;
267 0 : case FILTERCFG_EXCEL_EXECTBL: aCalcCfg.SetLoadExecutable(bSet);break;
268 0 : case FILTERCFG_PPOINT_CODE: aImpressCfg.SetLoad(bSet);break;
269 0 : case FILTERCFG_PPOINT_STORAGE: aImpressCfg.SetSave(bSet);break;
270 : default:
271 632 : if( bSet )
272 484 : nFlags |= nFlag;
273 : else
274 148 : nFlags &= ~nFlag;
275 : }
276 632 : }
277 :
278 5654 : bool SvtFilterOptions_Impl::IsFlag( sal_uLong nFlag ) const
279 : {
280 : bool bRet;
281 5654 : switch(nFlag)
282 : {
283 0 : case FILTERCFG_WORD_CODE : bRet = aWriterCfg.IsLoad();break;
284 0 : case FILTERCFG_WORD_STORAGE : bRet = aWriterCfg.IsSave();break;
285 0 : case FILTERCFG_WORD_WBCTBL : bRet = aWriterCfg.IsLoadExecutable();break;
286 56 : case FILTERCFG_EXCEL_CODE : bRet = aCalcCfg.IsLoad();break;
287 26 : case FILTERCFG_EXCEL_STORAGE : bRet = aCalcCfg.IsSave();break;
288 56 : case FILTERCFG_EXCEL_EXECTBL : bRet = aCalcCfg.IsLoadExecutable();break;
289 18 : case FILTERCFG_PPOINT_CODE : bRet = aImpressCfg.IsLoad();break;
290 0 : case FILTERCFG_PPOINT_STORAGE : bRet = aImpressCfg.IsSave();break;
291 : default:
292 5498 : bRet = 0 != (nFlags & nFlag );
293 : }
294 5654 : return bRet;
295 : }
296 :
297 48 : SvtFilterOptions::SvtFilterOptions() :
298 : ConfigItem( "Office.Common/Filter/Microsoft" ),
299 48 : pImp(new SvtFilterOptions_Impl)
300 : {
301 48 : EnableNotification(GetPropertyNames());
302 48 : Load();
303 48 : }
304 :
305 96 : SvtFilterOptions::~SvtFilterOptions()
306 : {
307 48 : delete pImp;
308 48 : }
309 :
310 98 : const Sequence<OUString>& SvtFilterOptions::GetPropertyNames()
311 : {
312 98 : static Sequence<OUString> aNames;
313 98 : if(!aNames.getLength())
314 : {
315 48 : int nCount = 13;
316 48 : aNames.realloc(nCount);
317 : static const char* aPropNames[] =
318 : {
319 : "Import/MathTypeToMath", // 0
320 : "Import/WinWordToWriter", // 1
321 : "Import/PowerPointToImpress", // 2
322 : "Import/ExcelToCalc", // 3
323 : "Export/MathToMathType", // 4
324 : "Export/WriterToWinWord", // 5
325 : "Export/ImpressToPowerPoint", // 6
326 : "Export/CalcToExcel", // 7
327 : "Export/EnablePowerPointPreview", // 8
328 : "Export/EnableExcelPreview", // 9
329 : "Export/EnableWordPreview", // 10
330 : "Import/ImportWWFieldsAsEnhancedFields", // 11
331 : "Import/SmartArtToShapes" // 12
332 : };
333 48 : OUString* pNames = aNames.getArray();
334 672 : for(int i = 0; i < nCount; i++)
335 624 : pNames[i] = OUString::createFromAscii(aPropNames[i]);
336 : }
337 98 : return aNames;
338 : }
339 :
340 650 : static sal_uLong lcl_GetFlag(sal_Int32 nProp)
341 : {
342 650 : sal_uLong nFlag = 0;
343 650 : switch(nProp)
344 : {
345 50 : case 0: nFlag = FILTERCFG_MATH_LOAD; break;
346 50 : case 1: nFlag = FILTERCFG_WRITER_LOAD; break;
347 50 : case 2: nFlag = FILTERCFG_IMPRESS_LOAD; break;
348 50 : case 3: nFlag = FILTERCFG_CALC_LOAD; break;
349 50 : case 4: nFlag = FILTERCFG_MATH_SAVE; break;
350 50 : case 5: nFlag = FILTERCFG_WRITER_SAVE; break;
351 50 : case 6: nFlag = FILTERCFG_IMPRESS_SAVE; break;
352 50 : case 7: nFlag = FILTERCFG_CALC_SAVE; break;
353 50 : case 8: nFlag = FILTERCFG_ENABLE_PPT_PREVIEW; break;
354 50 : case 9: nFlag = FILTERCFG_ENABLE_EXCEL_PREVIEW; break;
355 50 : case 10: nFlag = FILTERCFG_ENABLE_WORD_PREVIEW; break;
356 50 : case 11: nFlag = FILTERCFG_USE_ENHANCED_FIELDS; break;
357 50 : case 12: nFlag = FILTERCFG_SMARTART_SHAPE_LOAD; break;
358 :
359 : default: OSL_FAIL("illegal value");
360 : }
361 650 : return nFlag;
362 : }
363 :
364 0 : void SvtFilterOptions::Notify( const Sequence<OUString>& )
365 : {
366 0 : Load();
367 0 : }
368 :
369 2 : void SvtFilterOptions::Commit()
370 : {
371 2 : const Sequence<OUString>& aNames = GetPropertyNames();
372 2 : Sequence<Any> aValues(aNames.getLength());
373 2 : Any* pValues = aValues.getArray();
374 :
375 2 : const Type& rType = ::getBooleanCppuType();
376 28 : for(int nProp = 0; nProp < aNames.getLength(); nProp++)
377 : {
378 26 : sal_uLong nFlag = lcl_GetFlag(nProp);
379 26 : sal_Bool bVal = pImp->IsFlag( nFlag);
380 26 : pValues[nProp].setValue(&bVal, rType);
381 :
382 : }
383 2 : PutProperties(aNames, aValues);
384 2 : }
385 :
386 48 : void SvtFilterOptions::Load()
387 : {
388 48 : pImp->Load();
389 48 : const Sequence<OUString>& rNames = GetPropertyNames();
390 48 : Sequence<Any> aValues = GetProperties(rNames);
391 48 : const Any* pValues = aValues.getConstArray();
392 : DBG_ASSERT(aValues.getLength() == rNames.getLength(), "GetProperties failed");
393 48 : if(aValues.getLength() == rNames.getLength())
394 : {
395 672 : for(int nProp = 0; nProp < rNames.getLength(); nProp++)
396 : {
397 624 : if(pValues[nProp].hasValue())
398 : {
399 624 : bool bVal = *(sal_Bool*)pValues[nProp].getValue();
400 624 : sal_uLong nFlag = lcl_GetFlag(nProp);
401 624 : pImp->SetFlag( nFlag, bVal);
402 : }
403 : }
404 48 : }
405 48 : }
406 :
407 0 : void SvtFilterOptions::SetLoadWordBasicCode( bool bFlag )
408 : {
409 0 : pImp->SetFlag( FILTERCFG_WORD_CODE, bFlag );
410 0 : SetModified();
411 0 : }
412 :
413 0 : bool SvtFilterOptions::IsLoadWordBasicCode() const
414 : {
415 0 : return pImp->IsFlag( FILTERCFG_WORD_CODE );
416 : }
417 :
418 0 : void SvtFilterOptions::SetLoadWordBasicExecutable( bool bFlag )
419 : {
420 0 : pImp->SetFlag( FILTERCFG_WORD_WBCTBL, bFlag );
421 0 : SetModified();
422 0 : }
423 :
424 0 : bool SvtFilterOptions::IsLoadWordBasicExecutable() const
425 : {
426 0 : return pImp->IsFlag( FILTERCFG_WORD_WBCTBL );
427 : }
428 :
429 0 : void SvtFilterOptions::SetLoadWordBasicStorage( bool bFlag )
430 : {
431 0 : pImp->SetFlag( FILTERCFG_WORD_STORAGE, bFlag );
432 0 : SetModified();
433 0 : }
434 :
435 0 : bool SvtFilterOptions::IsLoadWordBasicStorage() const
436 : {
437 0 : return pImp->IsFlag( FILTERCFG_WORD_STORAGE );
438 : }
439 :
440 0 : void SvtFilterOptions::SetLoadExcelBasicCode( bool bFlag )
441 : {
442 0 : pImp->SetFlag( FILTERCFG_EXCEL_CODE, bFlag );
443 0 : SetModified();
444 0 : }
445 :
446 56 : bool SvtFilterOptions::IsLoadExcelBasicCode() const
447 : {
448 56 : return pImp->IsFlag( FILTERCFG_EXCEL_CODE );
449 : }
450 :
451 0 : void SvtFilterOptions::SetLoadExcelBasicExecutable( bool bFlag )
452 : {
453 0 : pImp->SetFlag( FILTERCFG_EXCEL_EXECTBL, bFlag );
454 0 : SetModified();
455 0 : }
456 :
457 56 : bool SvtFilterOptions::IsLoadExcelBasicExecutable() const
458 : {
459 56 : return pImp->IsFlag( FILTERCFG_EXCEL_EXECTBL );
460 : }
461 :
462 0 : void SvtFilterOptions::SetLoadExcelBasicStorage( bool bFlag )
463 : {
464 0 : pImp->SetFlag( FILTERCFG_EXCEL_STORAGE, bFlag );
465 0 : SetModified();
466 0 : }
467 :
468 26 : bool SvtFilterOptions::IsLoadExcelBasicStorage() const
469 : {
470 26 : return pImp->IsFlag( FILTERCFG_EXCEL_STORAGE );
471 : }
472 :
473 0 : void SvtFilterOptions::SetLoadPPointBasicCode( bool bFlag )
474 : {
475 0 : pImp->SetFlag( FILTERCFG_PPOINT_CODE, bFlag );
476 0 : SetModified();
477 0 : }
478 :
479 18 : bool SvtFilterOptions::IsLoadPPointBasicCode() const
480 : {
481 18 : return pImp->IsFlag( FILTERCFG_PPOINT_CODE );
482 : }
483 :
484 0 : void SvtFilterOptions::SetLoadPPointBasicStorage( bool bFlag )
485 : {
486 0 : pImp->SetFlag( FILTERCFG_PPOINT_STORAGE, bFlag );
487 0 : SetModified();
488 0 : }
489 :
490 0 : bool SvtFilterOptions::IsLoadPPointBasicStorage() const
491 : {
492 0 : return pImp->IsFlag( FILTERCFG_PPOINT_STORAGE );
493 : }
494 :
495 208 : bool SvtFilterOptions::IsMathType2Math() const
496 : {
497 208 : return pImp->IsFlag( FILTERCFG_MATH_LOAD );
498 : }
499 :
500 0 : void SvtFilterOptions::SetMathType2Math( bool bFlag )
501 : {
502 0 : pImp->SetFlag( FILTERCFG_MATH_LOAD, bFlag );
503 0 : SetModified();
504 0 : }
505 :
506 1032 : bool SvtFilterOptions::IsMath2MathType() const
507 : {
508 1032 : return pImp->IsFlag( FILTERCFG_MATH_SAVE );
509 : }
510 :
511 0 : void SvtFilterOptions::SetMath2MathType( bool bFlag )
512 : {
513 0 : pImp->SetFlag( FILTERCFG_MATH_SAVE, bFlag );
514 0 : SetModified();
515 0 : }
516 :
517 208 : bool SvtFilterOptions::IsWinWord2Writer() const
518 : {
519 208 : return pImp->IsFlag( FILTERCFG_WRITER_LOAD );
520 : }
521 :
522 0 : void SvtFilterOptions::SetWinWord2Writer( bool bFlag )
523 : {
524 0 : pImp->SetFlag( FILTERCFG_WRITER_LOAD, bFlag );
525 0 : SetModified();
526 0 : }
527 :
528 1032 : bool SvtFilterOptions::IsWriter2WinWord() const
529 : {
530 1032 : return pImp->IsFlag( FILTERCFG_WRITER_SAVE );
531 : }
532 :
533 0 : void SvtFilterOptions::SetWriter2WinWord( bool bFlag )
534 : {
535 0 : pImp->SetFlag( FILTERCFG_WRITER_SAVE, bFlag );
536 0 : SetModified();
537 0 : }
538 :
539 454 : bool SvtFilterOptions::IsUseEnhancedFields() const
540 : {
541 454 : return pImp->IsFlag( FILTERCFG_USE_ENHANCED_FIELDS );
542 : }
543 :
544 134 : bool SvtFilterOptions::IsExcel2Calc() const
545 : {
546 134 : return pImp->IsFlag( FILTERCFG_CALC_LOAD );
547 : }
548 :
549 0 : void SvtFilterOptions::SetExcel2Calc( bool bFlag )
550 : {
551 0 : pImp->SetFlag( FILTERCFG_CALC_LOAD, bFlag );
552 0 : SetModified();
553 0 : }
554 :
555 1032 : bool SvtFilterOptions::IsCalc2Excel() const
556 : {
557 1032 : return pImp->IsFlag( FILTERCFG_CALC_SAVE );
558 : }
559 :
560 0 : void SvtFilterOptions::SetCalc2Excel( bool bFlag )
561 : {
562 0 : pImp->SetFlag( FILTERCFG_CALC_SAVE, bFlag );
563 0 : SetModified();
564 0 : }
565 :
566 208 : bool SvtFilterOptions::IsPowerPoint2Impress() const
567 : {
568 208 : return pImp->IsFlag( FILTERCFG_IMPRESS_LOAD );
569 : }
570 :
571 0 : void SvtFilterOptions::SetPowerPoint2Impress( bool bFlag )
572 : {
573 0 : pImp->SetFlag( FILTERCFG_IMPRESS_LOAD, bFlag );
574 0 : SetModified();
575 0 : }
576 :
577 1032 : bool SvtFilterOptions::IsImpress2PowerPoint() const
578 : {
579 1032 : return pImp->IsFlag( FILTERCFG_IMPRESS_SAVE );
580 : }
581 :
582 0 : void SvtFilterOptions::SetImpress2PowerPoint( bool bFlag )
583 : {
584 0 : pImp->SetFlag( FILTERCFG_IMPRESS_SAVE, bFlag );
585 0 : SetModified();
586 0 : }
587 :
588 72 : bool SvtFilterOptions::IsSmartArt2Shape() const
589 : {
590 72 : return pImp->IsFlag( FILTERCFG_SMARTART_SHAPE_LOAD );
591 : }
592 :
593 8 : void SvtFilterOptions::SetSmartArt2Shape( bool bFlag )
594 : {
595 8 : pImp->SetFlag( FILTERCFG_SMARTART_SHAPE_LOAD, bFlag );
596 8 : SetModified();
597 8 : }
598 :
599 : namespace
600 : {
601 : class theFilterOptions
602 : : public rtl::Static<SvtFilterOptions, theFilterOptions>
603 : {
604 : };
605 : }
606 :
607 1916 : SvtFilterOptions& SvtFilterOptions::Get()
608 : {
609 1916 : return theFilterOptions::get();
610 : }
611 :
612 0 : bool SvtFilterOptions::IsEnablePPTPreview() const
613 : {
614 0 : return pImp->IsFlag( FILTERCFG_ENABLE_PPT_PREVIEW );
615 : }
616 :
617 26 : bool SvtFilterOptions::IsEnableCalcPreview() const
618 : {
619 26 : return pImp->IsFlag( FILTERCFG_ENABLE_EXCEL_PREVIEW );
620 : }
621 :
622 34 : bool SvtFilterOptions::IsEnableWordPreview() const
623 : {
624 34 : return pImp->IsFlag( FILTERCFG_ENABLE_WORD_PREVIEW );
625 : }
626 :
627 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|