1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski *
3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file
5*b1cdbd2cSJim Jagielski * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file
7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski *
11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski *
13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the
17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski * under the License.
19*b1cdbd2cSJim Jagielski *
20*b1cdbd2cSJim Jagielski *************************************************************/
21*b1cdbd2cSJim Jagielski
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim Jagielski
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_unotools.hxx"
26*b1cdbd2cSJim Jagielski
27*b1cdbd2cSJim Jagielski #ifndef GCC
28*b1cdbd2cSJim Jagielski #endif
29*b1cdbd2cSJim Jagielski
30*b1cdbd2cSJim Jagielski #include <unotools/saveopt.hxx>
31*b1cdbd2cSJim Jagielski #include "rtl/instance.hxx"
32*b1cdbd2cSJim Jagielski #include <unotools/configmgr.hxx>
33*b1cdbd2cSJim Jagielski #include <unotools/configitem.hxx>
34*b1cdbd2cSJim Jagielski #include <tools/debug.hxx>
35*b1cdbd2cSJim Jagielski #include <com/sun/star/uno/Any.hxx>
36*b1cdbd2cSJim Jagielski #include <com/sun/star/uno/Sequence.hxx>
37*b1cdbd2cSJim Jagielski
38*b1cdbd2cSJim Jagielski #include <osl/mutex.hxx>
39*b1cdbd2cSJim Jagielski #include <comphelper/configurationhelper.hxx>
40*b1cdbd2cSJim Jagielski #include <unotools/processfactory.hxx>
41*b1cdbd2cSJim Jagielski #include <rtl/logfile.hxx>
42*b1cdbd2cSJim Jagielski #include "itemholder1.hxx"
43*b1cdbd2cSJim Jagielski
44*b1cdbd2cSJim Jagielski using namespace utl;
45*b1cdbd2cSJim Jagielski using namespace rtl;
46*b1cdbd2cSJim Jagielski using namespace com::sun::star::uno;
47*b1cdbd2cSJim Jagielski namespace css = ::com::sun::star;
48*b1cdbd2cSJim Jagielski
49*b1cdbd2cSJim Jagielski class SvtSaveOptions_Impl;
50*b1cdbd2cSJim Jagielski class SvtLoadOptions_Impl;
51*b1cdbd2cSJim Jagielski
52*b1cdbd2cSJim Jagielski #define CFG_READONLY_DEFAULT sal_False
53*b1cdbd2cSJim Jagielski
54*b1cdbd2cSJim Jagielski struct SvtLoadSaveOptions_Impl
55*b1cdbd2cSJim Jagielski {
56*b1cdbd2cSJim Jagielski SvtSaveOptions_Impl* pSaveOpt;
57*b1cdbd2cSJim Jagielski SvtLoadOptions_Impl* pLoadOpt;
58*b1cdbd2cSJim Jagielski };
59*b1cdbd2cSJim Jagielski
60*b1cdbd2cSJim Jagielski static SvtLoadSaveOptions_Impl* pOptions = NULL;
61*b1cdbd2cSJim Jagielski static sal_Int32 nRefCount = 0;
62*b1cdbd2cSJim Jagielski
63*b1cdbd2cSJim Jagielski class SvtSaveOptions_Impl : public utl::ConfigItem
64*b1cdbd2cSJim Jagielski {
65*b1cdbd2cSJim Jagielski sal_Int32 nAutoSaveTime;
66*b1cdbd2cSJim Jagielski sal_Bool bUseUserData,
67*b1cdbd2cSJim Jagielski bBackup,
68*b1cdbd2cSJim Jagielski bAutoSave,
69*b1cdbd2cSJim Jagielski bAutoSavePrompt,
70*b1cdbd2cSJim Jagielski bDocInfSave,
71*b1cdbd2cSJim Jagielski bSaveWorkingSet,
72*b1cdbd2cSJim Jagielski bSaveDocView,
73*b1cdbd2cSJim Jagielski bSaveRelINet,
74*b1cdbd2cSJim Jagielski bSaveRelFSys,
75*b1cdbd2cSJim Jagielski bSaveUnpacked,
76*b1cdbd2cSJim Jagielski bDoPrettyPrinting,
77*b1cdbd2cSJim Jagielski bWarnAlienFormat,
78*b1cdbd2cSJim Jagielski bLoadDocPrinter,
79*b1cdbd2cSJim Jagielski bUseSHA1InODF12,
80*b1cdbd2cSJim Jagielski bUseBlowfishInODF12;
81*b1cdbd2cSJim Jagielski
82*b1cdbd2cSJim Jagielski SvtSaveOptions::ODFDefaultVersion eODFDefaultVersion;
83*b1cdbd2cSJim Jagielski
84*b1cdbd2cSJim Jagielski sal_Bool bROAutoSaveTime,
85*b1cdbd2cSJim Jagielski bROUseUserData,
86*b1cdbd2cSJim Jagielski bROBackup,
87*b1cdbd2cSJim Jagielski bROAutoSave,
88*b1cdbd2cSJim Jagielski bROAutoSavePrompt,
89*b1cdbd2cSJim Jagielski bRODocInfSave,
90*b1cdbd2cSJim Jagielski bROSaveWorkingSet,
91*b1cdbd2cSJim Jagielski bROSaveDocView,
92*b1cdbd2cSJim Jagielski bROSaveRelINet,
93*b1cdbd2cSJim Jagielski bROSaveRelFSys,
94*b1cdbd2cSJim Jagielski bROSaveUnpacked,
95*b1cdbd2cSJim Jagielski bROWarnAlienFormat,
96*b1cdbd2cSJim Jagielski bRODoPrettyPrinting,
97*b1cdbd2cSJim Jagielski bROLoadDocPrinter,
98*b1cdbd2cSJim Jagielski bROODFDefaultVersion,
99*b1cdbd2cSJim Jagielski bROUseSHA1InODF12,
100*b1cdbd2cSJim Jagielski bROUseBlowfishInODF12;
101*b1cdbd2cSJim Jagielski
102*b1cdbd2cSJim Jagielski public:
103*b1cdbd2cSJim Jagielski SvtSaveOptions_Impl();
104*b1cdbd2cSJim Jagielski ~SvtSaveOptions_Impl();
105*b1cdbd2cSJim Jagielski
106*b1cdbd2cSJim Jagielski virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames );
107*b1cdbd2cSJim Jagielski virtual void Commit();
108*b1cdbd2cSJim Jagielski
GetAutoSaveTime() const109*b1cdbd2cSJim Jagielski sal_Int32 GetAutoSaveTime() const { return nAutoSaveTime; }
IsUseUserData() const110*b1cdbd2cSJim Jagielski sal_Bool IsUseUserData() const { return bUseUserData; }
IsBackup() const111*b1cdbd2cSJim Jagielski sal_Bool IsBackup() const { return bBackup; }
IsAutoSave() const112*b1cdbd2cSJim Jagielski sal_Bool IsAutoSave() const { return bAutoSave; }
IsAutoSavePrompt() const113*b1cdbd2cSJim Jagielski sal_Bool IsAutoSavePrompt() const { return bAutoSavePrompt; }
IsDocInfoSave() const114*b1cdbd2cSJim Jagielski sal_Bool IsDocInfoSave() const { return bDocInfSave; }
IsSaveWorkingSet() const115*b1cdbd2cSJim Jagielski sal_Bool IsSaveWorkingSet() const { return bSaveWorkingSet; }
IsSaveDocView() const116*b1cdbd2cSJim Jagielski sal_Bool IsSaveDocView() const { return bSaveDocView; }
IsSaveRelINet() const117*b1cdbd2cSJim Jagielski sal_Bool IsSaveRelINet() const { return bSaveRelINet; }
IsSaveRelFSys() const118*b1cdbd2cSJim Jagielski sal_Bool IsSaveRelFSys() const { return bSaveRelFSys; }
IsSaveUnpacked() const119*b1cdbd2cSJim Jagielski sal_Bool IsSaveUnpacked() const { return bSaveUnpacked; }
IsPrettyPrintingEnabled() const120*b1cdbd2cSJim Jagielski sal_Bool IsPrettyPrintingEnabled( ) const { return bDoPrettyPrinting; }
IsWarnAlienFormat() const121*b1cdbd2cSJim Jagielski sal_Bool IsWarnAlienFormat() const { return bWarnAlienFormat; }
IsLoadDocPrinter() const122*b1cdbd2cSJim Jagielski sal_Bool IsLoadDocPrinter() const { return bLoadDocPrinter; }
IsUseSHA1InODF12() const123*b1cdbd2cSJim Jagielski sal_Bool IsUseSHA1InODF12() const { return bUseSHA1InODF12; }
IsUseBlowfishInODF12() const124*b1cdbd2cSJim Jagielski sal_Bool IsUseBlowfishInODF12() const { return bUseBlowfishInODF12; }
125*b1cdbd2cSJim Jagielski
126*b1cdbd2cSJim Jagielski SvtSaveOptions::ODFDefaultVersion
GetODFDefaultVersion() const127*b1cdbd2cSJim Jagielski GetODFDefaultVersion() const { return eODFDefaultVersion; }
128*b1cdbd2cSJim Jagielski
129*b1cdbd2cSJim Jagielski void SetAutoSaveTime( sal_Int32 n );
130*b1cdbd2cSJim Jagielski void SetUseUserData( sal_Bool b );
131*b1cdbd2cSJim Jagielski void SetBackup( sal_Bool b );
132*b1cdbd2cSJim Jagielski void SetAutoSave( sal_Bool b );
133*b1cdbd2cSJim Jagielski void SetAutoSavePrompt( sal_Bool b );
134*b1cdbd2cSJim Jagielski void SetDocInfoSave( sal_Bool b );
135*b1cdbd2cSJim Jagielski void SetSaveWorkingSet( sal_Bool b );
136*b1cdbd2cSJim Jagielski void SetSaveDocView( sal_Bool b );
137*b1cdbd2cSJim Jagielski void SetSaveRelINet( sal_Bool b );
138*b1cdbd2cSJim Jagielski void SetSaveRelFSys( sal_Bool b );
139*b1cdbd2cSJim Jagielski void SetSaveUnpacked( sal_Bool b );
140*b1cdbd2cSJim Jagielski void EnablePrettyPrinting( sal_Bool _bDoPP );
141*b1cdbd2cSJim Jagielski void SetWarnAlienFormat( sal_Bool _bDoPP );
142*b1cdbd2cSJim Jagielski void SetLoadDocPrinter( sal_Bool bNew );
143*b1cdbd2cSJim Jagielski void SetUseSHA1InODF12( sal_Bool bUse );
144*b1cdbd2cSJim Jagielski void SetUseBlowfishInODF12( sal_Bool bUse );
145*b1cdbd2cSJim Jagielski void SetODFDefaultVersion( SvtSaveOptions::ODFDefaultVersion eNew );
146*b1cdbd2cSJim Jagielski
147*b1cdbd2cSJim Jagielski sal_Bool IsReadOnly( SvtSaveOptions::EOption eOption ) const;
148*b1cdbd2cSJim Jagielski };
149*b1cdbd2cSJim Jagielski
SetAutoSaveTime(sal_Int32 n)150*b1cdbd2cSJim Jagielski void SvtSaveOptions_Impl::SetAutoSaveTime( sal_Int32 n )
151*b1cdbd2cSJim Jagielski {
152*b1cdbd2cSJim Jagielski if (!bROAutoSaveTime && nAutoSaveTime!=n)
153*b1cdbd2cSJim Jagielski {
154*b1cdbd2cSJim Jagielski nAutoSaveTime = n;
155*b1cdbd2cSJim Jagielski SetModified();
156*b1cdbd2cSJim Jagielski Commit();
157*b1cdbd2cSJim Jagielski }
158*b1cdbd2cSJim Jagielski }
159*b1cdbd2cSJim Jagielski
SetUseUserData(sal_Bool b)160*b1cdbd2cSJim Jagielski void SvtSaveOptions_Impl::SetUseUserData( sal_Bool b )
161*b1cdbd2cSJim Jagielski {
162*b1cdbd2cSJim Jagielski if (!bROUseUserData && bUseUserData!=b)
163*b1cdbd2cSJim Jagielski {
164*b1cdbd2cSJim Jagielski bUseUserData = b;
165*b1cdbd2cSJim Jagielski SetModified();
166*b1cdbd2cSJim Jagielski }
167*b1cdbd2cSJim Jagielski }
168*b1cdbd2cSJim Jagielski
SetBackup(sal_Bool b)169*b1cdbd2cSJim Jagielski void SvtSaveOptions_Impl::SetBackup( sal_Bool b )
170*b1cdbd2cSJim Jagielski {
171*b1cdbd2cSJim Jagielski if (!bROBackup && bBackup!=b)
172*b1cdbd2cSJim Jagielski {
173*b1cdbd2cSJim Jagielski bBackup = b;
174*b1cdbd2cSJim Jagielski SetModified();
175*b1cdbd2cSJim Jagielski }
176*b1cdbd2cSJim Jagielski }
177*b1cdbd2cSJim Jagielski
SetAutoSave(sal_Bool b)178*b1cdbd2cSJim Jagielski void SvtSaveOptions_Impl::SetAutoSave( sal_Bool b )
179*b1cdbd2cSJim Jagielski {
180*b1cdbd2cSJim Jagielski if (!bROAutoSave && bAutoSave!=b)
181*b1cdbd2cSJim Jagielski {
182*b1cdbd2cSJim Jagielski bAutoSave = b;
183*b1cdbd2cSJim Jagielski SetModified();
184*b1cdbd2cSJim Jagielski Commit();
185*b1cdbd2cSJim Jagielski }
186*b1cdbd2cSJim Jagielski }
187*b1cdbd2cSJim Jagielski
SetAutoSavePrompt(sal_Bool b)188*b1cdbd2cSJim Jagielski void SvtSaveOptions_Impl::SetAutoSavePrompt( sal_Bool b )
189*b1cdbd2cSJim Jagielski {
190*b1cdbd2cSJim Jagielski if (!bROAutoSavePrompt && bAutoSavePrompt!=b)
191*b1cdbd2cSJim Jagielski {
192*b1cdbd2cSJim Jagielski bAutoSavePrompt = b;
193*b1cdbd2cSJim Jagielski SetModified();
194*b1cdbd2cSJim Jagielski }
195*b1cdbd2cSJim Jagielski }
196*b1cdbd2cSJim Jagielski
SetDocInfoSave(sal_Bool b)197*b1cdbd2cSJim Jagielski void SvtSaveOptions_Impl::SetDocInfoSave(sal_Bool b)
198*b1cdbd2cSJim Jagielski {
199*b1cdbd2cSJim Jagielski if (!bRODocInfSave && bDocInfSave!=b)
200*b1cdbd2cSJim Jagielski {
201*b1cdbd2cSJim Jagielski bDocInfSave = b;
202*b1cdbd2cSJim Jagielski SetModified();
203*b1cdbd2cSJim Jagielski }
204*b1cdbd2cSJim Jagielski }
205*b1cdbd2cSJim Jagielski
SetSaveWorkingSet(sal_Bool b)206*b1cdbd2cSJim Jagielski void SvtSaveOptions_Impl::SetSaveWorkingSet( sal_Bool b )
207*b1cdbd2cSJim Jagielski {
208*b1cdbd2cSJim Jagielski if (!bROSaveWorkingSet && bSaveWorkingSet!=b)
209*b1cdbd2cSJim Jagielski {
210*b1cdbd2cSJim Jagielski bSaveWorkingSet = b;
211*b1cdbd2cSJim Jagielski SetModified();
212*b1cdbd2cSJim Jagielski }
213*b1cdbd2cSJim Jagielski }
214*b1cdbd2cSJim Jagielski
SetSaveDocView(sal_Bool b)215*b1cdbd2cSJim Jagielski void SvtSaveOptions_Impl::SetSaveDocView( sal_Bool b )
216*b1cdbd2cSJim Jagielski {
217*b1cdbd2cSJim Jagielski if (!bROSaveDocView && bSaveDocView!=b)
218*b1cdbd2cSJim Jagielski {
219*b1cdbd2cSJim Jagielski bSaveDocView = b;
220*b1cdbd2cSJim Jagielski SetModified();
221*b1cdbd2cSJim Jagielski }
222*b1cdbd2cSJim Jagielski }
223*b1cdbd2cSJim Jagielski
SetSaveRelINet(sal_Bool b)224*b1cdbd2cSJim Jagielski void SvtSaveOptions_Impl::SetSaveRelINet( sal_Bool b )
225*b1cdbd2cSJim Jagielski {
226*b1cdbd2cSJim Jagielski if (!bROSaveRelINet && bSaveRelINet!=b)
227*b1cdbd2cSJim Jagielski {
228*b1cdbd2cSJim Jagielski bSaveRelINet = b;
229*b1cdbd2cSJim Jagielski SetModified();
230*b1cdbd2cSJim Jagielski }
231*b1cdbd2cSJim Jagielski }
232*b1cdbd2cSJim Jagielski
SetSaveRelFSys(sal_Bool b)233*b1cdbd2cSJim Jagielski void SvtSaveOptions_Impl::SetSaveRelFSys( sal_Bool b )
234*b1cdbd2cSJim Jagielski {
235*b1cdbd2cSJim Jagielski if (!bROSaveRelFSys && bSaveRelFSys!=b)
236*b1cdbd2cSJim Jagielski {
237*b1cdbd2cSJim Jagielski bSaveRelFSys = b;
238*b1cdbd2cSJim Jagielski SetModified();
239*b1cdbd2cSJim Jagielski }
240*b1cdbd2cSJim Jagielski }
241*b1cdbd2cSJim Jagielski
SetSaveUnpacked(sal_Bool b)242*b1cdbd2cSJim Jagielski void SvtSaveOptions_Impl::SetSaveUnpacked( sal_Bool b )
243*b1cdbd2cSJim Jagielski {
244*b1cdbd2cSJim Jagielski if (!bROSaveUnpacked && bSaveUnpacked!=b)
245*b1cdbd2cSJim Jagielski {
246*b1cdbd2cSJim Jagielski bSaveUnpacked = b;
247*b1cdbd2cSJim Jagielski SetModified();
248*b1cdbd2cSJim Jagielski }
249*b1cdbd2cSJim Jagielski }
250*b1cdbd2cSJim Jagielski
EnablePrettyPrinting(sal_Bool _bDoPP)251*b1cdbd2cSJim Jagielski void SvtSaveOptions_Impl::EnablePrettyPrinting( sal_Bool _bDoPP )
252*b1cdbd2cSJim Jagielski {
253*b1cdbd2cSJim Jagielski if (!bRODoPrettyPrinting && bDoPrettyPrinting!=_bDoPP)
254*b1cdbd2cSJim Jagielski {
255*b1cdbd2cSJim Jagielski bDoPrettyPrinting = _bDoPP;
256*b1cdbd2cSJim Jagielski SetModified();
257*b1cdbd2cSJim Jagielski }
258*b1cdbd2cSJim Jagielski }
259*b1cdbd2cSJim Jagielski
SetWarnAlienFormat(sal_Bool _bDoPP)260*b1cdbd2cSJim Jagielski void SvtSaveOptions_Impl::SetWarnAlienFormat( sal_Bool _bDoPP )
261*b1cdbd2cSJim Jagielski {
262*b1cdbd2cSJim Jagielski if (!bROWarnAlienFormat && bWarnAlienFormat!=_bDoPP)
263*b1cdbd2cSJim Jagielski {
264*b1cdbd2cSJim Jagielski bWarnAlienFormat = _bDoPP;
265*b1cdbd2cSJim Jagielski SetModified();
266*b1cdbd2cSJim Jagielski }
267*b1cdbd2cSJim Jagielski }
268*b1cdbd2cSJim Jagielski
SetLoadDocPrinter(sal_Bool bNew)269*b1cdbd2cSJim Jagielski void SvtSaveOptions_Impl::SetLoadDocPrinter( sal_Bool bNew )
270*b1cdbd2cSJim Jagielski {
271*b1cdbd2cSJim Jagielski if ( !bROLoadDocPrinter && bLoadDocPrinter != bNew )
272*b1cdbd2cSJim Jagielski {
273*b1cdbd2cSJim Jagielski bLoadDocPrinter = bNew;
274*b1cdbd2cSJim Jagielski SetModified();
275*b1cdbd2cSJim Jagielski }
276*b1cdbd2cSJim Jagielski }
277*b1cdbd2cSJim Jagielski
SetODFDefaultVersion(SvtSaveOptions::ODFDefaultVersion eNew)278*b1cdbd2cSJim Jagielski void SvtSaveOptions_Impl::SetODFDefaultVersion( SvtSaveOptions::ODFDefaultVersion eNew )
279*b1cdbd2cSJim Jagielski {
280*b1cdbd2cSJim Jagielski if ( !bROODFDefaultVersion && eODFDefaultVersion != eNew )
281*b1cdbd2cSJim Jagielski {
282*b1cdbd2cSJim Jagielski eODFDefaultVersion = eNew;
283*b1cdbd2cSJim Jagielski SetModified();
284*b1cdbd2cSJim Jagielski }
285*b1cdbd2cSJim Jagielski }
286*b1cdbd2cSJim Jagielski
SetUseSHA1InODF12(sal_Bool bUse)287*b1cdbd2cSJim Jagielski void SvtSaveOptions_Impl::SetUseSHA1InODF12( sal_Bool bUse )
288*b1cdbd2cSJim Jagielski {
289*b1cdbd2cSJim Jagielski if ( !bROUseSHA1InODF12 && bUseSHA1InODF12 != bUse )
290*b1cdbd2cSJim Jagielski {
291*b1cdbd2cSJim Jagielski bUseSHA1InODF12 = bUse;
292*b1cdbd2cSJim Jagielski SetModified();
293*b1cdbd2cSJim Jagielski }
294*b1cdbd2cSJim Jagielski }
295*b1cdbd2cSJim Jagielski
SetUseBlowfishInODF12(sal_Bool bUse)296*b1cdbd2cSJim Jagielski void SvtSaveOptions_Impl::SetUseBlowfishInODF12( sal_Bool bUse )
297*b1cdbd2cSJim Jagielski {
298*b1cdbd2cSJim Jagielski if ( !bROUseBlowfishInODF12 && bUseBlowfishInODF12 != bUse )
299*b1cdbd2cSJim Jagielski {
300*b1cdbd2cSJim Jagielski bUseBlowfishInODF12 = bUse;
301*b1cdbd2cSJim Jagielski SetModified();
302*b1cdbd2cSJim Jagielski }
303*b1cdbd2cSJim Jagielski }
304*b1cdbd2cSJim Jagielski
IsReadOnly(SvtSaveOptions::EOption eOption) const305*b1cdbd2cSJim Jagielski sal_Bool SvtSaveOptions_Impl::IsReadOnly( SvtSaveOptions::EOption eOption ) const
306*b1cdbd2cSJim Jagielski {
307*b1cdbd2cSJim Jagielski sal_Bool bReadOnly = CFG_READONLY_DEFAULT;
308*b1cdbd2cSJim Jagielski switch(eOption)
309*b1cdbd2cSJim Jagielski {
310*b1cdbd2cSJim Jagielski case SvtSaveOptions::E_AUTOSAVETIME :
311*b1cdbd2cSJim Jagielski bReadOnly = bROAutoSaveTime;
312*b1cdbd2cSJim Jagielski break;
313*b1cdbd2cSJim Jagielski case SvtSaveOptions::E_USEUSERDATA :
314*b1cdbd2cSJim Jagielski bReadOnly = bROUseUserData;
315*b1cdbd2cSJim Jagielski break;
316*b1cdbd2cSJim Jagielski case SvtSaveOptions::E_BACKUP :
317*b1cdbd2cSJim Jagielski bReadOnly = bROBackup;
318*b1cdbd2cSJim Jagielski break;
319*b1cdbd2cSJim Jagielski case SvtSaveOptions::E_AUTOSAVE :
320*b1cdbd2cSJim Jagielski bReadOnly = bROAutoSave;
321*b1cdbd2cSJim Jagielski break;
322*b1cdbd2cSJim Jagielski case SvtSaveOptions::E_AUTOSAVEPROMPT :
323*b1cdbd2cSJim Jagielski bReadOnly = bROAutoSavePrompt;
324*b1cdbd2cSJim Jagielski break;
325*b1cdbd2cSJim Jagielski case SvtSaveOptions::E_DOCINFSAVE :
326*b1cdbd2cSJim Jagielski bReadOnly = bRODocInfSave;
327*b1cdbd2cSJim Jagielski break;
328*b1cdbd2cSJim Jagielski case SvtSaveOptions::E_SAVEWORKINGSET :
329*b1cdbd2cSJim Jagielski bReadOnly = bROSaveWorkingSet;
330*b1cdbd2cSJim Jagielski break;
331*b1cdbd2cSJim Jagielski case SvtSaveOptions::E_SAVEDOCVIEW :
332*b1cdbd2cSJim Jagielski bReadOnly = bROSaveDocView;
333*b1cdbd2cSJim Jagielski break;
334*b1cdbd2cSJim Jagielski case SvtSaveOptions::E_SAVERELINET :
335*b1cdbd2cSJim Jagielski bReadOnly = bROSaveRelINet;
336*b1cdbd2cSJim Jagielski break;
337*b1cdbd2cSJim Jagielski case SvtSaveOptions::E_SAVERELFSYS :
338*b1cdbd2cSJim Jagielski bReadOnly = bROSaveRelFSys;
339*b1cdbd2cSJim Jagielski break;
340*b1cdbd2cSJim Jagielski case SvtSaveOptions::E_SAVEUNPACKED :
341*b1cdbd2cSJim Jagielski bReadOnly = bROSaveUnpacked;
342*b1cdbd2cSJim Jagielski break;
343*b1cdbd2cSJim Jagielski case SvtSaveOptions::E_DOPRETTYPRINTING :
344*b1cdbd2cSJim Jagielski bReadOnly = bRODoPrettyPrinting;
345*b1cdbd2cSJim Jagielski break;
346*b1cdbd2cSJim Jagielski case SvtSaveOptions::E_WARNALIENFORMAT :
347*b1cdbd2cSJim Jagielski bReadOnly = bROWarnAlienFormat;
348*b1cdbd2cSJim Jagielski break;
349*b1cdbd2cSJim Jagielski case SvtSaveOptions::E_LOADDOCPRINTER :
350*b1cdbd2cSJim Jagielski bReadOnly = bROLoadDocPrinter;
351*b1cdbd2cSJim Jagielski break;
352*b1cdbd2cSJim Jagielski case SvtSaveOptions::E_ODFDEFAULTVERSION :
353*b1cdbd2cSJim Jagielski bReadOnly = bROLoadDocPrinter;
354*b1cdbd2cSJim Jagielski break;
355*b1cdbd2cSJim Jagielski case SvtSaveOptions::E_USESHA1INODF12:
356*b1cdbd2cSJim Jagielski bReadOnly = bROUseSHA1InODF12;
357*b1cdbd2cSJim Jagielski break;
358*b1cdbd2cSJim Jagielski case SvtSaveOptions::E_USEBLOWFISHINODF12:
359*b1cdbd2cSJim Jagielski bReadOnly = bROUseBlowfishInODF12;
360*b1cdbd2cSJim Jagielski break;
361*b1cdbd2cSJim Jagielski }
362*b1cdbd2cSJim Jagielski return bReadOnly;
363*b1cdbd2cSJim Jagielski }
364*b1cdbd2cSJim Jagielski
365*b1cdbd2cSJim Jagielski #define FORMAT 0
366*b1cdbd2cSJim Jagielski #define TIMEINTERVALL 1
367*b1cdbd2cSJim Jagielski #define USEUSERDATA 2
368*b1cdbd2cSJim Jagielski #define CREATEBACKUP 3
369*b1cdbd2cSJim Jagielski #define AUTOSAVE 4
370*b1cdbd2cSJim Jagielski #define PROMPT 5
371*b1cdbd2cSJim Jagielski #define EDITPROPERTY 6
372*b1cdbd2cSJim Jagielski #define SAVEVIEWINFO 7
373*b1cdbd2cSJim Jagielski #define UNPACKED 8
374*b1cdbd2cSJim Jagielski #define PRETTYPRINTING 9
375*b1cdbd2cSJim Jagielski #define WARNALIENFORMAT 10
376*b1cdbd2cSJim Jagielski #define LOADDOCPRINTER 11
377*b1cdbd2cSJim Jagielski #define FILESYSTEM 12
378*b1cdbd2cSJim Jagielski #define INTERNET 13
379*b1cdbd2cSJim Jagielski #define SAVEWORKINGSET 14
380*b1cdbd2cSJim Jagielski #define ODFDEFAULTVERSION 15
381*b1cdbd2cSJim Jagielski #define USESHA1INODF12 16
382*b1cdbd2cSJim Jagielski #define USEBLOWFISHINODF12 17
383*b1cdbd2cSJim Jagielski
GetPropertyNames()384*b1cdbd2cSJim Jagielski Sequence< OUString > GetPropertyNames()
385*b1cdbd2cSJim Jagielski {
386*b1cdbd2cSJim Jagielski static const char* aPropNames[] =
387*b1cdbd2cSJim Jagielski {
388*b1cdbd2cSJim Jagielski "Graphic/Format",
389*b1cdbd2cSJim Jagielski "Document/AutoSaveTimeIntervall",
390*b1cdbd2cSJim Jagielski "Document/UseUserData",
391*b1cdbd2cSJim Jagielski "Document/CreateBackup",
392*b1cdbd2cSJim Jagielski "Document/AutoSave",
393*b1cdbd2cSJim Jagielski "Document/AutoSavePrompt",
394*b1cdbd2cSJim Jagielski "Document/EditProperty",
395*b1cdbd2cSJim Jagielski "Document/ViewInfo",
396*b1cdbd2cSJim Jagielski "Document/Unpacked",
397*b1cdbd2cSJim Jagielski "Document/PrettyPrinting",
398*b1cdbd2cSJim Jagielski "Document/WarnAlienFormat",
399*b1cdbd2cSJim Jagielski "Document/LoadPrinter",
400*b1cdbd2cSJim Jagielski "URL/FileSystem",
401*b1cdbd2cSJim Jagielski "URL/Internet",
402*b1cdbd2cSJim Jagielski "WorkingSet",
403*b1cdbd2cSJim Jagielski "ODF/DefaultVersion",
404*b1cdbd2cSJim Jagielski "ODF/UseSHA1InODF12",
405*b1cdbd2cSJim Jagielski "ODF/UseBlowfishInODF12"
406*b1cdbd2cSJim Jagielski };
407*b1cdbd2cSJim Jagielski
408*b1cdbd2cSJim Jagielski const int nCount = sizeof( aPropNames ) / sizeof( const char* );
409*b1cdbd2cSJim Jagielski Sequence< OUString > aNames( nCount );
410*b1cdbd2cSJim Jagielski OUString* pNames = aNames.getArray();
411*b1cdbd2cSJim Jagielski for ( int i = 0; i < nCount; i++ )
412*b1cdbd2cSJim Jagielski pNames[i] = OUString::createFromAscii( aPropNames[i] );
413*b1cdbd2cSJim Jagielski
414*b1cdbd2cSJim Jagielski return aNames;
415*b1cdbd2cSJim Jagielski }
416*b1cdbd2cSJim Jagielski
417*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------
418*b1cdbd2cSJim Jagielski
SvtSaveOptions_Impl()419*b1cdbd2cSJim Jagielski SvtSaveOptions_Impl::SvtSaveOptions_Impl()
420*b1cdbd2cSJim Jagielski : ConfigItem( OUString::createFromAscii("Office.Common/Save") )
421*b1cdbd2cSJim Jagielski , nAutoSaveTime( 0 )
422*b1cdbd2cSJim Jagielski , bUseUserData( sal_False )
423*b1cdbd2cSJim Jagielski , bBackup( sal_False )
424*b1cdbd2cSJim Jagielski , bAutoSave( sal_False )
425*b1cdbd2cSJim Jagielski , bAutoSavePrompt( sal_False )
426*b1cdbd2cSJim Jagielski , bDocInfSave( sal_False )
427*b1cdbd2cSJim Jagielski , bSaveWorkingSet( sal_False )
428*b1cdbd2cSJim Jagielski , bSaveDocView( sal_False )
429*b1cdbd2cSJim Jagielski , bSaveRelINet( sal_False )
430*b1cdbd2cSJim Jagielski , bSaveRelFSys( sal_False )
431*b1cdbd2cSJim Jagielski , bSaveUnpacked( sal_False )
432*b1cdbd2cSJim Jagielski , bDoPrettyPrinting( sal_False )
433*b1cdbd2cSJim Jagielski , bWarnAlienFormat( sal_True )
434*b1cdbd2cSJim Jagielski , bLoadDocPrinter( sal_True )
435*b1cdbd2cSJim Jagielski , bUseSHA1InODF12( sal_False )
436*b1cdbd2cSJim Jagielski , bUseBlowfishInODF12( sal_False )
437*b1cdbd2cSJim Jagielski , eODFDefaultVersion( SvtSaveOptions::ODFVER_LATEST )
438*b1cdbd2cSJim Jagielski , bROAutoSaveTime( CFG_READONLY_DEFAULT )
439*b1cdbd2cSJim Jagielski , bROUseUserData( CFG_READONLY_DEFAULT )
440*b1cdbd2cSJim Jagielski , bROBackup( CFG_READONLY_DEFAULT )
441*b1cdbd2cSJim Jagielski , bROAutoSave( CFG_READONLY_DEFAULT )
442*b1cdbd2cSJim Jagielski , bROAutoSavePrompt( CFG_READONLY_DEFAULT )
443*b1cdbd2cSJim Jagielski , bRODocInfSave( CFG_READONLY_DEFAULT )
444*b1cdbd2cSJim Jagielski , bROSaveWorkingSet( CFG_READONLY_DEFAULT )
445*b1cdbd2cSJim Jagielski , bROSaveDocView( CFG_READONLY_DEFAULT )
446*b1cdbd2cSJim Jagielski , bROSaveRelINet( CFG_READONLY_DEFAULT )
447*b1cdbd2cSJim Jagielski , bROSaveRelFSys( CFG_READONLY_DEFAULT )
448*b1cdbd2cSJim Jagielski , bROSaveUnpacked( CFG_READONLY_DEFAULT )
449*b1cdbd2cSJim Jagielski , bROWarnAlienFormat( CFG_READONLY_DEFAULT )
450*b1cdbd2cSJim Jagielski , bRODoPrettyPrinting( CFG_READONLY_DEFAULT )
451*b1cdbd2cSJim Jagielski , bROLoadDocPrinter( CFG_READONLY_DEFAULT )
452*b1cdbd2cSJim Jagielski , bROODFDefaultVersion( CFG_READONLY_DEFAULT )
453*b1cdbd2cSJim Jagielski , bROUseSHA1InODF12( CFG_READONLY_DEFAULT )
454*b1cdbd2cSJim Jagielski , bROUseBlowfishInODF12( CFG_READONLY_DEFAULT )
455*b1cdbd2cSJim Jagielski {
456*b1cdbd2cSJim Jagielski Sequence< OUString > aNames = GetPropertyNames();
457*b1cdbd2cSJim Jagielski Sequence< Any > aValues = GetProperties( aNames );
458*b1cdbd2cSJim Jagielski Sequence< sal_Bool > aROStates = GetReadOnlyStates( aNames );
459*b1cdbd2cSJim Jagielski EnableNotification( aNames );
460*b1cdbd2cSJim Jagielski const Any* pValues = aValues.getConstArray();
461*b1cdbd2cSJim Jagielski const sal_Bool* pROStates = aROStates.getConstArray();
462*b1cdbd2cSJim Jagielski DBG_ASSERT( aValues.getLength() == aNames.getLength(), "GetProperties failed" );
463*b1cdbd2cSJim Jagielski DBG_ASSERT( aROStates.getLength() == aNames.getLength(), "GetReadOnlyStates failed" );
464*b1cdbd2cSJim Jagielski if ( aValues.getLength() == aNames.getLength() && aROStates.getLength() == aNames.getLength() )
465*b1cdbd2cSJim Jagielski {
466*b1cdbd2cSJim Jagielski for ( int nProp = 0; nProp < aNames.getLength(); nProp++ )
467*b1cdbd2cSJim Jagielski {
468*b1cdbd2cSJim Jagielski DBG_ASSERT( pValues[nProp].hasValue(), "property value missing" );
469*b1cdbd2cSJim Jagielski if ( pValues[nProp].hasValue() )
470*b1cdbd2cSJim Jagielski {
471*b1cdbd2cSJim Jagielski sal_Int32 nTemp = 0;
472*b1cdbd2cSJim Jagielski switch ( nProp )
473*b1cdbd2cSJim Jagielski {
474*b1cdbd2cSJim Jagielski case FORMAT:
475*b1cdbd2cSJim Jagielski // not supported anymore
476*b1cdbd2cSJim Jagielski break;
477*b1cdbd2cSJim Jagielski
478*b1cdbd2cSJim Jagielski case TIMEINTERVALL :
479*b1cdbd2cSJim Jagielski if ( pValues[nProp] >>= nTemp )
480*b1cdbd2cSJim Jagielski nAutoSaveTime = nTemp;
481*b1cdbd2cSJim Jagielski else {
482*b1cdbd2cSJim Jagielski DBG_ERROR( "Wrong Type!" );
483*b1cdbd2cSJim Jagielski };
484*b1cdbd2cSJim Jagielski bROAutoSaveTime = pROStates[nProp];
485*b1cdbd2cSJim Jagielski break;
486*b1cdbd2cSJim Jagielski
487*b1cdbd2cSJim Jagielski case ODFDEFAULTVERSION :
488*b1cdbd2cSJim Jagielski {
489*b1cdbd2cSJim Jagielski sal_Int16 nTmp = 0;
490*b1cdbd2cSJim Jagielski if ( pValues[nProp] >>= nTmp )
491*b1cdbd2cSJim Jagielski {
492*b1cdbd2cSJim Jagielski if( nTmp == 3 )
493*b1cdbd2cSJim Jagielski eODFDefaultVersion = SvtSaveOptions::ODFVER_LATEST;
494*b1cdbd2cSJim Jagielski else
495*b1cdbd2cSJim Jagielski eODFDefaultVersion = SvtSaveOptions::ODFDefaultVersion( nTmp );
496*b1cdbd2cSJim Jagielski }
497*b1cdbd2cSJim Jagielski else {
498*b1cdbd2cSJim Jagielski DBG_ERRORFILE( "SvtSaveOptions_Impl::SvtSaveOptions_Impl(): Wrong Type!" );
499*b1cdbd2cSJim Jagielski };
500*b1cdbd2cSJim Jagielski bROODFDefaultVersion = pROStates[nProp];
501*b1cdbd2cSJim Jagielski break;
502*b1cdbd2cSJim Jagielski }
503*b1cdbd2cSJim Jagielski
504*b1cdbd2cSJim Jagielski default:
505*b1cdbd2cSJim Jagielski {
506*b1cdbd2cSJim Jagielski sal_Bool bTemp = sal_Bool();
507*b1cdbd2cSJim Jagielski if ( pValues[nProp] >>= bTemp )
508*b1cdbd2cSJim Jagielski {
509*b1cdbd2cSJim Jagielski switch ( nProp )
510*b1cdbd2cSJim Jagielski {
511*b1cdbd2cSJim Jagielski case USEUSERDATA :
512*b1cdbd2cSJim Jagielski bUseUserData = bTemp;
513*b1cdbd2cSJim Jagielski bROUseUserData = pROStates[nProp];
514*b1cdbd2cSJim Jagielski break;
515*b1cdbd2cSJim Jagielski case CREATEBACKUP :
516*b1cdbd2cSJim Jagielski bBackup = bTemp;
517*b1cdbd2cSJim Jagielski bROBackup = pROStates[nProp];
518*b1cdbd2cSJim Jagielski break;
519*b1cdbd2cSJim Jagielski case AUTOSAVE :
520*b1cdbd2cSJim Jagielski bAutoSave = bTemp;
521*b1cdbd2cSJim Jagielski bROAutoSave = pROStates[nProp];
522*b1cdbd2cSJim Jagielski break;
523*b1cdbd2cSJim Jagielski case PROMPT :
524*b1cdbd2cSJim Jagielski bAutoSavePrompt = bTemp;
525*b1cdbd2cSJim Jagielski bROAutoSavePrompt = pROStates[nProp];
526*b1cdbd2cSJim Jagielski break;
527*b1cdbd2cSJim Jagielski case EDITPROPERTY :
528*b1cdbd2cSJim Jagielski bDocInfSave = bTemp;
529*b1cdbd2cSJim Jagielski bRODocInfSave = pROStates[nProp];
530*b1cdbd2cSJim Jagielski break;
531*b1cdbd2cSJim Jagielski case SAVEWORKINGSET :
532*b1cdbd2cSJim Jagielski bSaveWorkingSet = bTemp;
533*b1cdbd2cSJim Jagielski bROSaveWorkingSet = pROStates[nProp];
534*b1cdbd2cSJim Jagielski break;
535*b1cdbd2cSJim Jagielski case SAVEVIEWINFO :
536*b1cdbd2cSJim Jagielski bSaveDocView = bTemp;
537*b1cdbd2cSJim Jagielski bROSaveDocView = pROStates[nProp];
538*b1cdbd2cSJim Jagielski break;
539*b1cdbd2cSJim Jagielski case FILESYSTEM :
540*b1cdbd2cSJim Jagielski bSaveRelFSys = bTemp;
541*b1cdbd2cSJim Jagielski bROSaveRelFSys = pROStates[nProp];
542*b1cdbd2cSJim Jagielski break;
543*b1cdbd2cSJim Jagielski case INTERNET :
544*b1cdbd2cSJim Jagielski bSaveRelINet = bTemp;
545*b1cdbd2cSJim Jagielski bROSaveRelINet = pROStates[nProp];
546*b1cdbd2cSJim Jagielski break;
547*b1cdbd2cSJim Jagielski case UNPACKED :
548*b1cdbd2cSJim Jagielski bSaveUnpacked = bTemp;
549*b1cdbd2cSJim Jagielski bROSaveUnpacked = pROStates[nProp];
550*b1cdbd2cSJim Jagielski break;
551*b1cdbd2cSJim Jagielski
552*b1cdbd2cSJim Jagielski case PRETTYPRINTING:
553*b1cdbd2cSJim Jagielski bDoPrettyPrinting = bTemp;
554*b1cdbd2cSJim Jagielski bRODoPrettyPrinting = pROStates[nProp];
555*b1cdbd2cSJim Jagielski break;
556*b1cdbd2cSJim Jagielski
557*b1cdbd2cSJim Jagielski case WARNALIENFORMAT:
558*b1cdbd2cSJim Jagielski bWarnAlienFormat = bTemp;
559*b1cdbd2cSJim Jagielski bROWarnAlienFormat = pROStates[nProp];
560*b1cdbd2cSJim Jagielski break;
561*b1cdbd2cSJim Jagielski
562*b1cdbd2cSJim Jagielski case LOADDOCPRINTER:
563*b1cdbd2cSJim Jagielski bLoadDocPrinter = bTemp;
564*b1cdbd2cSJim Jagielski bROLoadDocPrinter = pROStates[nProp];
565*b1cdbd2cSJim Jagielski break;
566*b1cdbd2cSJim Jagielski
567*b1cdbd2cSJim Jagielski case USESHA1INODF12:
568*b1cdbd2cSJim Jagielski bUseSHA1InODF12 = bTemp;
569*b1cdbd2cSJim Jagielski bROUseSHA1InODF12 = pROStates[nProp];
570*b1cdbd2cSJim Jagielski break;
571*b1cdbd2cSJim Jagielski
572*b1cdbd2cSJim Jagielski case USEBLOWFISHINODF12:
573*b1cdbd2cSJim Jagielski bUseBlowfishInODF12 = bTemp;
574*b1cdbd2cSJim Jagielski bROUseBlowfishInODF12 = pROStates[nProp];
575*b1cdbd2cSJim Jagielski break;
576*b1cdbd2cSJim Jagielski
577*b1cdbd2cSJim Jagielski default :
578*b1cdbd2cSJim Jagielski DBG_ERRORFILE( "invalid index to load a path" );
579*b1cdbd2cSJim Jagielski }
580*b1cdbd2cSJim Jagielski }
581*b1cdbd2cSJim Jagielski else
582*b1cdbd2cSJim Jagielski {
583*b1cdbd2cSJim Jagielski DBG_ERROR( "Wrong Type!" );
584*b1cdbd2cSJim Jagielski }
585*b1cdbd2cSJim Jagielski }
586*b1cdbd2cSJim Jagielski }
587*b1cdbd2cSJim Jagielski }
588*b1cdbd2cSJim Jagielski }
589*b1cdbd2cSJim Jagielski }
590*b1cdbd2cSJim Jagielski
591*b1cdbd2cSJim Jagielski try
592*b1cdbd2cSJim Jagielski {
593*b1cdbd2cSJim Jagielski css::uno::Reference< css::uno::XInterface > xCFG = ::comphelper::ConfigurationHelper::openConfig(
594*b1cdbd2cSJim Jagielski ::utl::getProcessServiceFactory(),
595*b1cdbd2cSJim Jagielski ::rtl::OUString::createFromAscii("org.openoffice.Office.Recovery"),
596*b1cdbd2cSJim Jagielski ::comphelper::ConfigurationHelper::E_READONLY);
597*b1cdbd2cSJim Jagielski
598*b1cdbd2cSJim Jagielski ::comphelper::ConfigurationHelper::readRelativeKey(
599*b1cdbd2cSJim Jagielski xCFG,
600*b1cdbd2cSJim Jagielski ::rtl::OUString::createFromAscii("AutoSave"),
601*b1cdbd2cSJim Jagielski ::rtl::OUString::createFromAscii("Enabled")) >>= bAutoSave;
602*b1cdbd2cSJim Jagielski
603*b1cdbd2cSJim Jagielski ::comphelper::ConfigurationHelper::readRelativeKey(
604*b1cdbd2cSJim Jagielski xCFG,
605*b1cdbd2cSJim Jagielski ::rtl::OUString::createFromAscii("AutoSave"),
606*b1cdbd2cSJim Jagielski ::rtl::OUString::createFromAscii("TimeIntervall")) >>= nAutoSaveTime;
607*b1cdbd2cSJim Jagielski }
608*b1cdbd2cSJim Jagielski catch(const css::uno::Exception&)
609*b1cdbd2cSJim Jagielski { DBG_ERROR("Could not find needed informations for AutoSave feature."); }
610*b1cdbd2cSJim Jagielski }
611*b1cdbd2cSJim Jagielski
~SvtSaveOptions_Impl()612*b1cdbd2cSJim Jagielski SvtSaveOptions_Impl::~SvtSaveOptions_Impl()
613*b1cdbd2cSJim Jagielski {}
614*b1cdbd2cSJim Jagielski
Commit()615*b1cdbd2cSJim Jagielski void SvtSaveOptions_Impl::Commit()
616*b1cdbd2cSJim Jagielski {
617*b1cdbd2cSJim Jagielski Sequence< OUString > aOrgNames = GetPropertyNames();
618*b1cdbd2cSJim Jagielski OUString* pOrgNames = aOrgNames.getArray();
619*b1cdbd2cSJim Jagielski sal_Int32 nOrgCount = aOrgNames.getLength();
620*b1cdbd2cSJim Jagielski
621*b1cdbd2cSJim Jagielski Sequence< OUString > aNames( nOrgCount );
622*b1cdbd2cSJim Jagielski Sequence< Any > aValues( nOrgCount );
623*b1cdbd2cSJim Jagielski OUString* pNames = aNames.getArray();
624*b1cdbd2cSJim Jagielski Any* pValues = aValues.getArray();
625*b1cdbd2cSJim Jagielski sal_Int32 nRealCount = 0;
626*b1cdbd2cSJim Jagielski
627*b1cdbd2cSJim Jagielski for (sal_Int32 i=0; i<nOrgCount; ++i)
628*b1cdbd2cSJim Jagielski {
629*b1cdbd2cSJim Jagielski switch (i)
630*b1cdbd2cSJim Jagielski {
631*b1cdbd2cSJim Jagielski case FORMAT:
632*b1cdbd2cSJim Jagielski // not supported anymore
633*b1cdbd2cSJim Jagielski break;
634*b1cdbd2cSJim Jagielski case TIMEINTERVALL :
635*b1cdbd2cSJim Jagielski if (!bROAutoSaveTime)
636*b1cdbd2cSJim Jagielski {
637*b1cdbd2cSJim Jagielski pValues[nRealCount] <<= nAutoSaveTime;
638*b1cdbd2cSJim Jagielski pNames[nRealCount] = pOrgNames[i];
639*b1cdbd2cSJim Jagielski ++nRealCount;
640*b1cdbd2cSJim Jagielski }
641*b1cdbd2cSJim Jagielski break;
642*b1cdbd2cSJim Jagielski case USEUSERDATA :
643*b1cdbd2cSJim Jagielski if (!bROUseUserData)
644*b1cdbd2cSJim Jagielski {
645*b1cdbd2cSJim Jagielski pValues[nRealCount] <<= bUseUserData;
646*b1cdbd2cSJim Jagielski pNames[nRealCount] = pOrgNames[i];
647*b1cdbd2cSJim Jagielski ++nRealCount;
648*b1cdbd2cSJim Jagielski }
649*b1cdbd2cSJim Jagielski break;
650*b1cdbd2cSJim Jagielski case CREATEBACKUP :
651*b1cdbd2cSJim Jagielski if (!bROBackup)
652*b1cdbd2cSJim Jagielski {
653*b1cdbd2cSJim Jagielski pValues[nRealCount] <<= bBackup;
654*b1cdbd2cSJim Jagielski pNames[nRealCount] = pOrgNames[i];
655*b1cdbd2cSJim Jagielski ++nRealCount;
656*b1cdbd2cSJim Jagielski }
657*b1cdbd2cSJim Jagielski break;
658*b1cdbd2cSJim Jagielski case AUTOSAVE :
659*b1cdbd2cSJim Jagielski if (!bROAutoSave)
660*b1cdbd2cSJim Jagielski {
661*b1cdbd2cSJim Jagielski pValues[nRealCount] <<= bAutoSave;
662*b1cdbd2cSJim Jagielski pNames[nRealCount] = pOrgNames[i];
663*b1cdbd2cSJim Jagielski ++nRealCount;
664*b1cdbd2cSJim Jagielski }
665*b1cdbd2cSJim Jagielski break;
666*b1cdbd2cSJim Jagielski case PROMPT :
667*b1cdbd2cSJim Jagielski if (!bROAutoSavePrompt)
668*b1cdbd2cSJim Jagielski {
669*b1cdbd2cSJim Jagielski pValues[nRealCount] <<= bAutoSavePrompt;
670*b1cdbd2cSJim Jagielski pNames[nRealCount] = pOrgNames[i];
671*b1cdbd2cSJim Jagielski ++nRealCount;
672*b1cdbd2cSJim Jagielski }
673*b1cdbd2cSJim Jagielski break;
674*b1cdbd2cSJim Jagielski case EDITPROPERTY :
675*b1cdbd2cSJim Jagielski if (!bRODocInfSave)
676*b1cdbd2cSJim Jagielski {
677*b1cdbd2cSJim Jagielski pValues[nRealCount] <<= bDocInfSave;
678*b1cdbd2cSJim Jagielski pNames[nRealCount] = pOrgNames[i];
679*b1cdbd2cSJim Jagielski ++nRealCount;
680*b1cdbd2cSJim Jagielski }
681*b1cdbd2cSJim Jagielski break;
682*b1cdbd2cSJim Jagielski case SAVEWORKINGSET :
683*b1cdbd2cSJim Jagielski if (!bROSaveWorkingSet)
684*b1cdbd2cSJim Jagielski {
685*b1cdbd2cSJim Jagielski pValues[nRealCount] <<= bSaveWorkingSet;
686*b1cdbd2cSJim Jagielski pNames[nRealCount] = pOrgNames[i];
687*b1cdbd2cSJim Jagielski ++nRealCount;
688*b1cdbd2cSJim Jagielski }
689*b1cdbd2cSJim Jagielski break;
690*b1cdbd2cSJim Jagielski case SAVEVIEWINFO :
691*b1cdbd2cSJim Jagielski if (!bROSaveDocView)
692*b1cdbd2cSJim Jagielski {
693*b1cdbd2cSJim Jagielski pValues[nRealCount] <<= bSaveDocView;
694*b1cdbd2cSJim Jagielski pNames[nRealCount] = pOrgNames[i];
695*b1cdbd2cSJim Jagielski ++nRealCount;
696*b1cdbd2cSJim Jagielski }
697*b1cdbd2cSJim Jagielski break;
698*b1cdbd2cSJim Jagielski case FILESYSTEM :
699*b1cdbd2cSJim Jagielski if (!bROSaveRelFSys)
700*b1cdbd2cSJim Jagielski {
701*b1cdbd2cSJim Jagielski pValues[nRealCount] <<= bSaveRelFSys;
702*b1cdbd2cSJim Jagielski pNames[nRealCount] = pOrgNames[i];
703*b1cdbd2cSJim Jagielski ++nRealCount;
704*b1cdbd2cSJim Jagielski }
705*b1cdbd2cSJim Jagielski break;
706*b1cdbd2cSJim Jagielski case INTERNET :
707*b1cdbd2cSJim Jagielski if (!bROSaveRelINet)
708*b1cdbd2cSJim Jagielski {
709*b1cdbd2cSJim Jagielski pValues[nRealCount] <<= bSaveRelINet;
710*b1cdbd2cSJim Jagielski pNames[nRealCount] = pOrgNames[i];
711*b1cdbd2cSJim Jagielski ++nRealCount;
712*b1cdbd2cSJim Jagielski }
713*b1cdbd2cSJim Jagielski break;
714*b1cdbd2cSJim Jagielski case UNPACKED :
715*b1cdbd2cSJim Jagielski if (!bROSaveUnpacked)
716*b1cdbd2cSJim Jagielski {
717*b1cdbd2cSJim Jagielski pValues[nRealCount] <<= bSaveUnpacked;
718*b1cdbd2cSJim Jagielski pNames[nRealCount] = pOrgNames[i];
719*b1cdbd2cSJim Jagielski ++nRealCount;
720*b1cdbd2cSJim Jagielski }
721*b1cdbd2cSJim Jagielski break;
722*b1cdbd2cSJim Jagielski case PRETTYPRINTING:
723*b1cdbd2cSJim Jagielski if (!bRODoPrettyPrinting)
724*b1cdbd2cSJim Jagielski {
725*b1cdbd2cSJim Jagielski pValues[nRealCount] <<= bDoPrettyPrinting;
726*b1cdbd2cSJim Jagielski pNames[nRealCount] = pOrgNames[i];
727*b1cdbd2cSJim Jagielski ++nRealCount;
728*b1cdbd2cSJim Jagielski }
729*b1cdbd2cSJim Jagielski break;
730*b1cdbd2cSJim Jagielski case WARNALIENFORMAT:
731*b1cdbd2cSJim Jagielski if (!bROWarnAlienFormat)
732*b1cdbd2cSJim Jagielski {
733*b1cdbd2cSJim Jagielski pValues[nRealCount] <<= bWarnAlienFormat;
734*b1cdbd2cSJim Jagielski pNames[nRealCount] = pOrgNames[i];
735*b1cdbd2cSJim Jagielski ++nRealCount;
736*b1cdbd2cSJim Jagielski }
737*b1cdbd2cSJim Jagielski break;
738*b1cdbd2cSJim Jagielski case LOADDOCPRINTER:
739*b1cdbd2cSJim Jagielski if (!bROLoadDocPrinter)
740*b1cdbd2cSJim Jagielski {
741*b1cdbd2cSJim Jagielski pValues[nRealCount] <<= bLoadDocPrinter;
742*b1cdbd2cSJim Jagielski pNames[nRealCount] = pOrgNames[i];
743*b1cdbd2cSJim Jagielski ++nRealCount;
744*b1cdbd2cSJim Jagielski }
745*b1cdbd2cSJim Jagielski break;
746*b1cdbd2cSJim Jagielski case ODFDEFAULTVERSION:
747*b1cdbd2cSJim Jagielski if (!bROODFDefaultVersion)
748*b1cdbd2cSJim Jagielski {
749*b1cdbd2cSJim Jagielski pValues[nRealCount] <<= (eODFDefaultVersion == SvtSaveOptions::ODFVER_LATEST) ? sal_Int16( 3 ) : sal_Int16( eODFDefaultVersion );
750*b1cdbd2cSJim Jagielski pNames[nRealCount] = pOrgNames[i];
751*b1cdbd2cSJim Jagielski ++nRealCount;
752*b1cdbd2cSJim Jagielski }
753*b1cdbd2cSJim Jagielski break;
754*b1cdbd2cSJim Jagielski case USESHA1INODF12:
755*b1cdbd2cSJim Jagielski if (!bROUseSHA1InODF12)
756*b1cdbd2cSJim Jagielski {
757*b1cdbd2cSJim Jagielski pValues[nRealCount] <<= bUseSHA1InODF12;
758*b1cdbd2cSJim Jagielski pNames[nRealCount] = pOrgNames[i];
759*b1cdbd2cSJim Jagielski ++nRealCount;
760*b1cdbd2cSJim Jagielski }
761*b1cdbd2cSJim Jagielski break;
762*b1cdbd2cSJim Jagielski case USEBLOWFISHINODF12:
763*b1cdbd2cSJim Jagielski if (!bROUseBlowfishInODF12)
764*b1cdbd2cSJim Jagielski {
765*b1cdbd2cSJim Jagielski pValues[nRealCount] <<= bUseBlowfishInODF12;
766*b1cdbd2cSJim Jagielski pNames[nRealCount] = pOrgNames[i];
767*b1cdbd2cSJim Jagielski ++nRealCount;
768*b1cdbd2cSJim Jagielski }
769*b1cdbd2cSJim Jagielski break;
770*b1cdbd2cSJim Jagielski
771*b1cdbd2cSJim Jagielski default:
772*b1cdbd2cSJim Jagielski DBG_ERRORFILE( "invalid index to save a path" );
773*b1cdbd2cSJim Jagielski }
774*b1cdbd2cSJim Jagielski }
775*b1cdbd2cSJim Jagielski
776*b1cdbd2cSJim Jagielski aNames.realloc(nRealCount);
777*b1cdbd2cSJim Jagielski aValues.realloc(nRealCount);
778*b1cdbd2cSJim Jagielski PutProperties( aNames, aValues );
779*b1cdbd2cSJim Jagielski
780*b1cdbd2cSJim Jagielski css::uno::Reference< css::uno::XInterface > xCFG = ::comphelper::ConfigurationHelper::openConfig(
781*b1cdbd2cSJim Jagielski ::utl::getProcessServiceFactory(),
782*b1cdbd2cSJim Jagielski ::rtl::OUString::createFromAscii("org.openoffice.Office.Recovery"),
783*b1cdbd2cSJim Jagielski ::comphelper::ConfigurationHelper::E_STANDARD);
784*b1cdbd2cSJim Jagielski
785*b1cdbd2cSJim Jagielski ::comphelper::ConfigurationHelper::writeRelativeKey(
786*b1cdbd2cSJim Jagielski xCFG,
787*b1cdbd2cSJim Jagielski ::rtl::OUString::createFromAscii("AutoSave"),
788*b1cdbd2cSJim Jagielski ::rtl::OUString::createFromAscii("TimeIntervall"),
789*b1cdbd2cSJim Jagielski css::uno::makeAny(nAutoSaveTime));
790*b1cdbd2cSJim Jagielski
791*b1cdbd2cSJim Jagielski ::comphelper::ConfigurationHelper::writeRelativeKey(
792*b1cdbd2cSJim Jagielski xCFG,
793*b1cdbd2cSJim Jagielski ::rtl::OUString::createFromAscii("AutoSave"),
794*b1cdbd2cSJim Jagielski ::rtl::OUString::createFromAscii("Enabled"),
795*b1cdbd2cSJim Jagielski css::uno::makeAny(bAutoSave));
796*b1cdbd2cSJim Jagielski
797*b1cdbd2cSJim Jagielski ::comphelper::ConfigurationHelper::flush(xCFG);
798*b1cdbd2cSJim Jagielski }
799*b1cdbd2cSJim Jagielski
800*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------
801*b1cdbd2cSJim Jagielski
Notify(const Sequence<rtl::OUString> &)802*b1cdbd2cSJim Jagielski void SvtSaveOptions_Impl::Notify( const Sequence<rtl::OUString>& )
803*b1cdbd2cSJim Jagielski {
804*b1cdbd2cSJim Jagielski }
805*b1cdbd2cSJim Jagielski
806*b1cdbd2cSJim Jagielski
807*b1cdbd2cSJim Jagielski class SvtLoadOptions_Impl : public utl::ConfigItem
808*b1cdbd2cSJim Jagielski {
809*b1cdbd2cSJim Jagielski
810*b1cdbd2cSJim Jagielski sal_Bool bLoadUserDefinedSettings;
811*b1cdbd2cSJim Jagielski
812*b1cdbd2cSJim Jagielski public:
813*b1cdbd2cSJim Jagielski SvtLoadOptions_Impl();
814*b1cdbd2cSJim Jagielski ~SvtLoadOptions_Impl();
815*b1cdbd2cSJim Jagielski
816*b1cdbd2cSJim Jagielski virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames );
817*b1cdbd2cSJim Jagielski virtual void Commit();
818*b1cdbd2cSJim Jagielski
SetLoadUserSettings(sal_Bool b)819*b1cdbd2cSJim Jagielski void SetLoadUserSettings(sal_Bool b){bLoadUserDefinedSettings = b; SetModified();}
IsLoadUserSettings() const820*b1cdbd2cSJim Jagielski sal_Bool IsLoadUserSettings() const {return bLoadUserDefinedSettings;}
821*b1cdbd2cSJim Jagielski };
822*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------
823*b1cdbd2cSJim Jagielski const sal_Char cUserDefinedSettings[] = "UserDefinedSettings";
824*b1cdbd2cSJim Jagielski
SvtLoadOptions_Impl()825*b1cdbd2cSJim Jagielski SvtLoadOptions_Impl::SvtLoadOptions_Impl()
826*b1cdbd2cSJim Jagielski : ConfigItem( OUString::createFromAscii("Office.Common/Load") )
827*b1cdbd2cSJim Jagielski , bLoadUserDefinedSettings( sal_False )
828*b1cdbd2cSJim Jagielski {
829*b1cdbd2cSJim Jagielski Sequence< OUString > aNames(1);
830*b1cdbd2cSJim Jagielski aNames[0] = OUString::createFromAscii(cUserDefinedSettings);
831*b1cdbd2cSJim Jagielski Sequence< Any > aValues = GetProperties( aNames );
832*b1cdbd2cSJim Jagielski EnableNotification( aNames );
833*b1cdbd2cSJim Jagielski const Any* pValues = aValues.getConstArray();
834*b1cdbd2cSJim Jagielski DBG_ASSERT( aValues.getLength() == aNames.getLength(), "GetProperties failed" );
835*b1cdbd2cSJim Jagielski if (pValues[0].getValueTypeClass() == ::com::sun::star::uno::TypeClass_BOOLEAN)
836*b1cdbd2cSJim Jagielski bLoadUserDefinedSettings = *(sal_Bool *)pValues[0].getValue();
837*b1cdbd2cSJim Jagielski }
838*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------
~SvtLoadOptions_Impl()839*b1cdbd2cSJim Jagielski SvtLoadOptions_Impl::~SvtLoadOptions_Impl()
840*b1cdbd2cSJim Jagielski {
841*b1cdbd2cSJim Jagielski }
842*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------
Commit()843*b1cdbd2cSJim Jagielski void SvtLoadOptions_Impl::Commit()
844*b1cdbd2cSJim Jagielski {
845*b1cdbd2cSJim Jagielski Sequence< OUString > aNames(1);
846*b1cdbd2cSJim Jagielski aNames[0] = OUString::createFromAscii(cUserDefinedSettings);
847*b1cdbd2cSJim Jagielski Sequence< Any > aValues( 1 );
848*b1cdbd2cSJim Jagielski aValues[0].setValue(&bLoadUserDefinedSettings, ::getBooleanCppuType());
849*b1cdbd2cSJim Jagielski PutProperties( aNames, aValues );
850*b1cdbd2cSJim Jagielski }
851*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------
Notify(const Sequence<rtl::OUString> &)852*b1cdbd2cSJim Jagielski void SvtLoadOptions_Impl::Notify( const Sequence<rtl::OUString>& )
853*b1cdbd2cSJim Jagielski {
854*b1cdbd2cSJim Jagielski DBG_ERRORFILE( "properties have been changed" );
855*b1cdbd2cSJim Jagielski }
856*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------
857*b1cdbd2cSJim Jagielski
858*b1cdbd2cSJim Jagielski namespace
859*b1cdbd2cSJim Jagielski {
860*b1cdbd2cSJim Jagielski class LocalSingleton : public rtl::Static< osl::Mutex, LocalSingleton >
861*b1cdbd2cSJim Jagielski {
862*b1cdbd2cSJim Jagielski };
863*b1cdbd2cSJim Jagielski }
864*b1cdbd2cSJim Jagielski
865*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------
SvtSaveOptions()866*b1cdbd2cSJim Jagielski SvtSaveOptions::SvtSaveOptions()
867*b1cdbd2cSJim Jagielski {
868*b1cdbd2cSJim Jagielski // Global access, must be guarded (multithreading)
869*b1cdbd2cSJim Jagielski ::osl::MutexGuard aGuard( LocalSingleton::get() );
870*b1cdbd2cSJim Jagielski if ( !pOptions )
871*b1cdbd2cSJim Jagielski {
872*b1cdbd2cSJim Jagielski RTL_LOGFILE_CONTEXT(aLog, "unotools ( ??? ) ::SvtSaveOptions_Impl::ctor()");
873*b1cdbd2cSJim Jagielski pOptions = new SvtLoadSaveOptions_Impl;
874*b1cdbd2cSJim Jagielski pOptions->pSaveOpt = new SvtSaveOptions_Impl;
875*b1cdbd2cSJim Jagielski pOptions->pLoadOpt = new SvtLoadOptions_Impl;
876*b1cdbd2cSJim Jagielski
877*b1cdbd2cSJim Jagielski ItemHolder1::holdConfigItem(E_SAVEOPTIONS);
878*b1cdbd2cSJim Jagielski }
879*b1cdbd2cSJim Jagielski ++nRefCount;
880*b1cdbd2cSJim Jagielski pImp = pOptions;
881*b1cdbd2cSJim Jagielski }
882*b1cdbd2cSJim Jagielski
883*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------
884*b1cdbd2cSJim Jagielski
~SvtSaveOptions()885*b1cdbd2cSJim Jagielski SvtSaveOptions::~SvtSaveOptions()
886*b1cdbd2cSJim Jagielski {
887*b1cdbd2cSJim Jagielski // Global access, must be guarded (multithreading)
888*b1cdbd2cSJim Jagielski ::osl::MutexGuard aGuard( LocalSingleton::get() );
889*b1cdbd2cSJim Jagielski if ( !--nRefCount )
890*b1cdbd2cSJim Jagielski {
891*b1cdbd2cSJim Jagielski if ( pOptions->pSaveOpt->IsModified() )
892*b1cdbd2cSJim Jagielski pOptions->pSaveOpt->Commit();
893*b1cdbd2cSJim Jagielski if ( pOptions->pLoadOpt->IsModified() )
894*b1cdbd2cSJim Jagielski pOptions->pLoadOpt->Commit();
895*b1cdbd2cSJim Jagielski
896*b1cdbd2cSJim Jagielski DELETEZ( pOptions->pLoadOpt );
897*b1cdbd2cSJim Jagielski DELETEZ( pOptions->pSaveOpt );
898*b1cdbd2cSJim Jagielski DELETEZ( pOptions );
899*b1cdbd2cSJim Jagielski }
900*b1cdbd2cSJim Jagielski }
901*b1cdbd2cSJim Jagielski
SetAutoSaveTime(sal_Int32 n)902*b1cdbd2cSJim Jagielski void SvtSaveOptions::SetAutoSaveTime( sal_Int32 n )
903*b1cdbd2cSJim Jagielski {
904*b1cdbd2cSJim Jagielski pImp->pSaveOpt->SetAutoSaveTime( n );
905*b1cdbd2cSJim Jagielski }
906*b1cdbd2cSJim Jagielski
GetAutoSaveTime() const907*b1cdbd2cSJim Jagielski sal_Int32 SvtSaveOptions::GetAutoSaveTime() const
908*b1cdbd2cSJim Jagielski {
909*b1cdbd2cSJim Jagielski return pImp->pSaveOpt->GetAutoSaveTime();
910*b1cdbd2cSJim Jagielski }
911*b1cdbd2cSJim Jagielski
SetUseUserData(sal_Bool b)912*b1cdbd2cSJim Jagielski void SvtSaveOptions::SetUseUserData( sal_Bool b )
913*b1cdbd2cSJim Jagielski {
914*b1cdbd2cSJim Jagielski pImp->pSaveOpt->SetUseUserData( b );
915*b1cdbd2cSJim Jagielski }
916*b1cdbd2cSJim Jagielski
IsUseUserData() const917*b1cdbd2cSJim Jagielski sal_Bool SvtSaveOptions::IsUseUserData() const
918*b1cdbd2cSJim Jagielski {
919*b1cdbd2cSJim Jagielski return pImp->pSaveOpt->IsUseUserData();
920*b1cdbd2cSJim Jagielski }
921*b1cdbd2cSJim Jagielski
SetBackup(sal_Bool b)922*b1cdbd2cSJim Jagielski void SvtSaveOptions::SetBackup( sal_Bool b )
923*b1cdbd2cSJim Jagielski {
924*b1cdbd2cSJim Jagielski pImp->pSaveOpt->SetBackup( b );
925*b1cdbd2cSJim Jagielski }
926*b1cdbd2cSJim Jagielski
IsBackup() const927*b1cdbd2cSJim Jagielski sal_Bool SvtSaveOptions::IsBackup() const
928*b1cdbd2cSJim Jagielski {
929*b1cdbd2cSJim Jagielski return pImp->pSaveOpt->IsBackup();
930*b1cdbd2cSJim Jagielski }
931*b1cdbd2cSJim Jagielski
SetAutoSave(sal_Bool b)932*b1cdbd2cSJim Jagielski void SvtSaveOptions::SetAutoSave( sal_Bool b )
933*b1cdbd2cSJim Jagielski {
934*b1cdbd2cSJim Jagielski pImp->pSaveOpt->SetAutoSave( b );
935*b1cdbd2cSJim Jagielski }
936*b1cdbd2cSJim Jagielski
IsAutoSave() const937*b1cdbd2cSJim Jagielski sal_Bool SvtSaveOptions::IsAutoSave() const
938*b1cdbd2cSJim Jagielski {
939*b1cdbd2cSJim Jagielski return pImp->pSaveOpt->IsAutoSave();
940*b1cdbd2cSJim Jagielski }
941*b1cdbd2cSJim Jagielski
SetAutoSavePrompt(sal_Bool b)942*b1cdbd2cSJim Jagielski void SvtSaveOptions::SetAutoSavePrompt( sal_Bool b )
943*b1cdbd2cSJim Jagielski {
944*b1cdbd2cSJim Jagielski pImp->pSaveOpt->SetAutoSavePrompt( b );
945*b1cdbd2cSJim Jagielski }
946*b1cdbd2cSJim Jagielski
IsAutoSavePrompt() const947*b1cdbd2cSJim Jagielski sal_Bool SvtSaveOptions::IsAutoSavePrompt() const
948*b1cdbd2cSJim Jagielski {
949*b1cdbd2cSJim Jagielski return pImp->pSaveOpt->IsAutoSavePrompt();
950*b1cdbd2cSJim Jagielski }
951*b1cdbd2cSJim Jagielski
SetDocInfoSave(sal_Bool b)952*b1cdbd2cSJim Jagielski void SvtSaveOptions::SetDocInfoSave(sal_Bool b)
953*b1cdbd2cSJim Jagielski {
954*b1cdbd2cSJim Jagielski pImp->pSaveOpt->SetDocInfoSave( b );
955*b1cdbd2cSJim Jagielski }
956*b1cdbd2cSJim Jagielski
IsDocInfoSave() const957*b1cdbd2cSJim Jagielski sal_Bool SvtSaveOptions::IsDocInfoSave() const
958*b1cdbd2cSJim Jagielski {
959*b1cdbd2cSJim Jagielski return pImp->pSaveOpt->IsDocInfoSave();
960*b1cdbd2cSJim Jagielski }
961*b1cdbd2cSJim Jagielski
SetSaveWorkingSet(sal_Bool b)962*b1cdbd2cSJim Jagielski void SvtSaveOptions::SetSaveWorkingSet( sal_Bool b )
963*b1cdbd2cSJim Jagielski {
964*b1cdbd2cSJim Jagielski pImp->pSaveOpt->SetSaveWorkingSet( b );
965*b1cdbd2cSJim Jagielski }
966*b1cdbd2cSJim Jagielski
IsSaveWorkingSet() const967*b1cdbd2cSJim Jagielski sal_Bool SvtSaveOptions::IsSaveWorkingSet() const
968*b1cdbd2cSJim Jagielski {
969*b1cdbd2cSJim Jagielski return pImp->pSaveOpt->IsSaveWorkingSet();
970*b1cdbd2cSJim Jagielski }
971*b1cdbd2cSJim Jagielski
SetSaveDocView(sal_Bool b)972*b1cdbd2cSJim Jagielski void SvtSaveOptions::SetSaveDocView( sal_Bool b )
973*b1cdbd2cSJim Jagielski {
974*b1cdbd2cSJim Jagielski pImp->pSaveOpt->SetSaveDocView( b );
975*b1cdbd2cSJim Jagielski }
976*b1cdbd2cSJim Jagielski
IsSaveDocView() const977*b1cdbd2cSJim Jagielski sal_Bool SvtSaveOptions::IsSaveDocView() const
978*b1cdbd2cSJim Jagielski {
979*b1cdbd2cSJim Jagielski return pImp->pSaveOpt->IsSaveDocView();
980*b1cdbd2cSJim Jagielski }
981*b1cdbd2cSJim Jagielski
SetSaveRelINet(sal_Bool b)982*b1cdbd2cSJim Jagielski void SvtSaveOptions::SetSaveRelINet( sal_Bool b )
983*b1cdbd2cSJim Jagielski {
984*b1cdbd2cSJim Jagielski pImp->pSaveOpt->SetSaveRelINet( b );
985*b1cdbd2cSJim Jagielski }
986*b1cdbd2cSJim Jagielski
IsSaveRelINet() const987*b1cdbd2cSJim Jagielski sal_Bool SvtSaveOptions::IsSaveRelINet() const
988*b1cdbd2cSJim Jagielski {
989*b1cdbd2cSJim Jagielski return pImp->pSaveOpt->IsSaveRelINet();
990*b1cdbd2cSJim Jagielski }
991*b1cdbd2cSJim Jagielski
SetSaveRelFSys(sal_Bool b)992*b1cdbd2cSJim Jagielski void SvtSaveOptions::SetSaveRelFSys( sal_Bool b )
993*b1cdbd2cSJim Jagielski {
994*b1cdbd2cSJim Jagielski pImp->pSaveOpt->SetSaveRelFSys( b );
995*b1cdbd2cSJim Jagielski }
996*b1cdbd2cSJim Jagielski
IsSaveRelFSys() const997*b1cdbd2cSJim Jagielski sal_Bool SvtSaveOptions::IsSaveRelFSys() const
998*b1cdbd2cSJim Jagielski {
999*b1cdbd2cSJim Jagielski return pImp->pSaveOpt->IsSaveRelFSys();
1000*b1cdbd2cSJim Jagielski }
1001*b1cdbd2cSJim Jagielski
SetSaveUnpacked(sal_Bool b)1002*b1cdbd2cSJim Jagielski void SvtSaveOptions::SetSaveUnpacked( sal_Bool b )
1003*b1cdbd2cSJim Jagielski {
1004*b1cdbd2cSJim Jagielski pImp->pSaveOpt->SetSaveUnpacked( b );
1005*b1cdbd2cSJim Jagielski }
1006*b1cdbd2cSJim Jagielski
IsSaveUnpacked() const1007*b1cdbd2cSJim Jagielski sal_Bool SvtSaveOptions::IsSaveUnpacked() const
1008*b1cdbd2cSJim Jagielski {
1009*b1cdbd2cSJim Jagielski return pImp->pSaveOpt->IsSaveUnpacked();
1010*b1cdbd2cSJim Jagielski }
1011*b1cdbd2cSJim Jagielski
SetLoadUserSettings(sal_Bool b)1012*b1cdbd2cSJim Jagielski void SvtSaveOptions::SetLoadUserSettings(sal_Bool b)
1013*b1cdbd2cSJim Jagielski {
1014*b1cdbd2cSJim Jagielski pImp->pLoadOpt->SetLoadUserSettings(b);
1015*b1cdbd2cSJim Jagielski }
1016*b1cdbd2cSJim Jagielski
IsLoadUserSettings() const1017*b1cdbd2cSJim Jagielski sal_Bool SvtSaveOptions::IsLoadUserSettings() const
1018*b1cdbd2cSJim Jagielski {
1019*b1cdbd2cSJim Jagielski return pImp->pLoadOpt->IsLoadUserSettings();
1020*b1cdbd2cSJim Jagielski }
1021*b1cdbd2cSJim Jagielski
SetPrettyPrinting(sal_Bool _bEnable)1022*b1cdbd2cSJim Jagielski void SvtSaveOptions::SetPrettyPrinting( sal_Bool _bEnable )
1023*b1cdbd2cSJim Jagielski {
1024*b1cdbd2cSJim Jagielski pImp->pSaveOpt->EnablePrettyPrinting( _bEnable );
1025*b1cdbd2cSJim Jagielski }
1026*b1cdbd2cSJim Jagielski
IsPrettyPrinting() const1027*b1cdbd2cSJim Jagielski sal_Bool SvtSaveOptions::IsPrettyPrinting() const
1028*b1cdbd2cSJim Jagielski {
1029*b1cdbd2cSJim Jagielski return pImp->pSaveOpt->IsPrettyPrintingEnabled();
1030*b1cdbd2cSJim Jagielski }
1031*b1cdbd2cSJim Jagielski
SetWarnAlienFormat(sal_Bool _bEnable)1032*b1cdbd2cSJim Jagielski void SvtSaveOptions::SetWarnAlienFormat( sal_Bool _bEnable )
1033*b1cdbd2cSJim Jagielski {
1034*b1cdbd2cSJim Jagielski pImp->pSaveOpt->SetWarnAlienFormat( _bEnable );
1035*b1cdbd2cSJim Jagielski }
1036*b1cdbd2cSJim Jagielski
IsWarnAlienFormat() const1037*b1cdbd2cSJim Jagielski sal_Bool SvtSaveOptions::IsWarnAlienFormat() const
1038*b1cdbd2cSJim Jagielski {
1039*b1cdbd2cSJim Jagielski return pImp->pSaveOpt->IsWarnAlienFormat();
1040*b1cdbd2cSJim Jagielski }
1041*b1cdbd2cSJim Jagielski
SetLoadDocumentPrinter(sal_Bool _bEnable)1042*b1cdbd2cSJim Jagielski void SvtSaveOptions::SetLoadDocumentPrinter( sal_Bool _bEnable )
1043*b1cdbd2cSJim Jagielski {
1044*b1cdbd2cSJim Jagielski pImp->pSaveOpt->SetLoadDocPrinter( _bEnable );
1045*b1cdbd2cSJim Jagielski }
1046*b1cdbd2cSJim Jagielski
IsLoadDocumentPrinter() const1047*b1cdbd2cSJim Jagielski sal_Bool SvtSaveOptions::IsLoadDocumentPrinter() const
1048*b1cdbd2cSJim Jagielski {
1049*b1cdbd2cSJim Jagielski return pImp->pSaveOpt->IsLoadDocPrinter();
1050*b1cdbd2cSJim Jagielski }
1051*b1cdbd2cSJim Jagielski
SetODFDefaultVersion(SvtSaveOptions::ODFDefaultVersion eVersion)1052*b1cdbd2cSJim Jagielski void SvtSaveOptions::SetODFDefaultVersion( SvtSaveOptions::ODFDefaultVersion eVersion )
1053*b1cdbd2cSJim Jagielski {
1054*b1cdbd2cSJim Jagielski pImp->pSaveOpt->SetODFDefaultVersion( eVersion );
1055*b1cdbd2cSJim Jagielski }
1056*b1cdbd2cSJim Jagielski
GetODFDefaultVersion() const1057*b1cdbd2cSJim Jagielski SvtSaveOptions::ODFDefaultVersion SvtSaveOptions::GetODFDefaultVersion() const
1058*b1cdbd2cSJim Jagielski {
1059*b1cdbd2cSJim Jagielski return pImp->pSaveOpt->GetODFDefaultVersion();
1060*b1cdbd2cSJim Jagielski }
1061*b1cdbd2cSJim Jagielski
SetUseSHA1InODF12(sal_Bool bUse)1062*b1cdbd2cSJim Jagielski void SvtSaveOptions::SetUseSHA1InODF12( sal_Bool bUse )
1063*b1cdbd2cSJim Jagielski {
1064*b1cdbd2cSJim Jagielski pImp->pSaveOpt->SetUseSHA1InODF12( bUse );
1065*b1cdbd2cSJim Jagielski }
1066*b1cdbd2cSJim Jagielski
IsUseSHA1InODF12() const1067*b1cdbd2cSJim Jagielski sal_Bool SvtSaveOptions::IsUseSHA1InODF12() const
1068*b1cdbd2cSJim Jagielski {
1069*b1cdbd2cSJim Jagielski return pImp->pSaveOpt->IsUseSHA1InODF12();
1070*b1cdbd2cSJim Jagielski }
1071*b1cdbd2cSJim Jagielski
SetUseBlowfishInODF12(sal_Bool bUse)1072*b1cdbd2cSJim Jagielski void SvtSaveOptions::SetUseBlowfishInODF12( sal_Bool bUse )
1073*b1cdbd2cSJim Jagielski {
1074*b1cdbd2cSJim Jagielski pImp->pSaveOpt->SetUseBlowfishInODF12( bUse );
1075*b1cdbd2cSJim Jagielski }
1076*b1cdbd2cSJim Jagielski
IsUseBlowfishInODF12() const1077*b1cdbd2cSJim Jagielski sal_Bool SvtSaveOptions::IsUseBlowfishInODF12() const
1078*b1cdbd2cSJim Jagielski {
1079*b1cdbd2cSJim Jagielski return pImp->pSaveOpt->IsUseBlowfishInODF12();
1080*b1cdbd2cSJim Jagielski }
1081*b1cdbd2cSJim Jagielski
IsReadOnly(SvtSaveOptions::EOption eOption) const1082*b1cdbd2cSJim Jagielski sal_Bool SvtSaveOptions::IsReadOnly( SvtSaveOptions::EOption eOption ) const
1083*b1cdbd2cSJim Jagielski {
1084*b1cdbd2cSJim Jagielski return pImp->pSaveOpt->IsReadOnly(eOption);
1085*b1cdbd2cSJim Jagielski }
1086*b1cdbd2cSJim Jagielski
1087