Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*************************************************************************
3 : : *
4 : : * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 : : *
6 : : * Copyright 2000, 2010 Oracle and/or its affiliates.
7 : : *
8 : : * OpenOffice.org - a multi-platform office productivity suite
9 : : *
10 : : * This file is part of OpenOffice.org.
11 : : *
12 : : * OpenOffice.org is free software: you can redistribute it and/or modify
13 : : * it under the terms of the GNU Lesser General Public License version 3
14 : : * only, as published by the Free Software Foundation.
15 : : *
16 : : * OpenOffice.org is distributed in the hope that it will be useful,
17 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 : : * GNU Lesser General Public License version 3 for more details
20 : : * (a copy is included in the LICENSE file that accompanied this code).
21 : : *
22 : : * You should have received a copy of the GNU Lesser General Public License
23 : : * version 3 along with OpenOffice.org. If not, see
24 : : * <http://www.openoffice.org/license.html>
25 : : * for a copy of the LGPLv3 License.
26 : : *
27 : : ************************************************************************/
28 : :
29 : : #include <comphelper/string.hxx>
30 : : #include <i18npool/mslangid.hxx>
31 : : #include <tools/shl.hxx>
32 : : #include <vcl/svapp.hxx>
33 : : #include <vcl/msgbox.hxx>
34 : : #include <unotools/saveopt.hxx>
35 : : #include <svl/intitem.hxx>
36 : :
37 : : #define _SVX_OPTGENRL_CXX
38 : :
39 : : #include <cuires.hrc>
40 : : #include "optgenrl.hrc"
41 : : #include <unotools/useroptions.hxx>
42 : : #include "cuioptgenrl.hxx"
43 : : #include <dialmgr.hxx>
44 : : #include <svx/dlgutil.hxx>
45 : : #include <svx/strarray.hxx>
46 : : #include <svx/svxids.hrc> // SID_FIELD_GRABFOCUS
47 : :
48 : : #define TRIM(s) comphelper::string::strip(s, ' ')
49 : :
50 : : // struct GeneralTabPage_Impl --------------------------------------------
51 : :
52 : 0 : struct GeneralTabPage_Impl
53 : : {
54 : : sal_Bool mbStreetEnabled;
55 : : sal_Bool mbPLZEnabled;
56 : : sal_Bool mbCityEnabled;
57 : : sal_Bool mbUsCityEnabled;
58 : : sal_Bool mbUsZipEnabled;
59 : :
60 : : String maQueryStr;
61 : :
62 : 0 : GeneralTabPage_Impl() :
63 : : mbStreetEnabled ( sal_False ),
64 : : mbPLZEnabled ( sal_False ),
65 : : mbCityEnabled ( sal_False ),
66 : : mbUsCityEnabled ( sal_False ),
67 : 0 : mbUsZipEnabled ( sal_False ) {}
68 : : };
69 : :
70 : : // -----------------------------------------------------------------------
71 : :
72 : 0 : SvxGeneralTabPage::SvxGeneralTabPage( Window* pParent, const SfxItemSet& rCoreSet ) :
73 : :
74 : 0 : SfxTabPage( pParent, CUI_RES(RID_SFXPAGE_GENERAL), rCoreSet ),
75 : :
76 [ # # ]: 0 : aAddrFrm ( this, CUI_RES( GB_ADDRESS ) ),
77 [ # # ]: 0 : aCompanyLbl ( this, CUI_RES( FT_COMPANY ), true ),
78 [ # # ]: 0 : aCompanyEdit ( this, CUI_RES( ED_COMPANY ), INDEX_NOTSET, &aCompanyLbl ),
79 [ # # ]: 0 : aNameLbl ( this, CUI_RES( FT_NAME ), true ),
80 [ # # ]: 0 : aNameLblRuss ( this, CUI_RES( FT_NAME_RUSS ), true ),
81 [ # # ]: 0 : aNameLblEastern ( this, CUI_RES( FT_NAME_EASTERN ), true ),
82 [ # # ]: 0 : aFirstName ( this, CUI_RES( ED_FIRSTNAME ), 0, &aNameLbl ),
83 [ # # ]: 0 : aFatherName ( this, CUI_RES( ED_FATHERNAME ) ),
84 [ # # ]: 0 : aName ( this, CUI_RES( ED_NAME ), 1, &aNameLbl ),
85 [ # # ]: 0 : aShortName ( this, CUI_RES( ED_SHORTNAME ), 2, &aNameLbl ),
86 [ # # ]: 0 : aStreetLbl ( this, CUI_RES( FT_STREET ), true ),
87 [ # # ]: 0 : aStreetLblRuss ( this, CUI_RES( FT_STREET_RUSS ), true ),
88 [ # # ]: 0 : aStreetEdit ( this, CUI_RES( ED_STREET ), 0, &aStreetLbl ),
89 [ # # ]: 0 : aApartmentNrEdit( this, CUI_RES( ED_APARTMENTNR ), 1, &aStreetLblRuss ),
90 [ # # ]: 0 : aCityLbl ( this, CUI_RES( FT_CITY ), true ),
91 [ # # ]: 0 : aPLZEdit ( this, CUI_RES( ED_PLZ ), 0, &aCityLbl ),
92 [ # # ]: 0 : aCityEdit ( this, CUI_RES( ED_CITY ), 1, &aCityLbl ),
93 [ # # ]: 0 : aUsCityEdit ( this, CUI_RES( ED_US_CITY ), 0, &aCityLbl ),
94 [ # # ]: 0 : aUsStateEdit ( this, CUI_RES( ED_US_STATE ), 1, &aCityLbl ),
95 [ # # ]: 0 : aUsZipEdit ( this, CUI_RES( ED_US_ZIPCODE ), 2, &aCityLbl ),
96 [ # # ]: 0 : aCountryLbl ( this, CUI_RES( FT_COUNTRY ), true ),
97 [ # # ]: 0 : aCountryEdit ( this, CUI_RES( ED_COUNTRY ), INDEX_NOTSET, &aCountryLbl ),
98 [ # # ]: 0 : aTitlePosLbl ( this, CUI_RES( FT_TITLEPOS ), true ),
99 [ # # ]: 0 : aTitleEdit ( this, CUI_RES( ED_TITLE ), 0, &aTitlePosLbl ),
100 [ # # ]: 0 : aPositionEdit ( this, CUI_RES( ED_POSITION ), 1, &aTitlePosLbl ),
101 [ # # ]: 0 : aPhoneLbl ( this, CUI_RES( FT_PHONE ), true ),
102 [ # # ]: 0 : aTelPrivEdit ( this, CUI_RES( ED_TELPRIVAT ), 0, &aPhoneLbl ),
103 [ # # ]: 0 : aTelCompanyEdit ( this, CUI_RES( ED_TELCOMPANY ), 1, &aPhoneLbl ),
104 [ # # ]: 0 : aFaxMailLbl ( this, CUI_RES( FT_FAXMAIL ), true ),
105 [ # # ]: 0 : aFaxEdit ( this, CUI_RES( ED_FAX ), 0, &aFaxMailLbl ),
106 [ # # ]: 0 : aEmailEdit ( this, CUI_RES( ED_EMAIL ), 1, &aFaxMailLbl ),
107 [ # # ]: 0 : aUseDataCB ( this, CUI_RES( CB_USEDATA ) ),
108 [ # # ][ # # ]: 0 : pImpl ( new GeneralTabPage_Impl )
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
109 : :
110 : : {
111 [ # # ][ # # ]: 0 : LanguageType eLang = Application::GetSettings().GetUILanguage();
112 [ # # ][ # # ]: 0 : pImpl->maQueryStr = String( CUI_RES( STR_QUERY_REG ) );
[ # # ][ # # ]
113 : :
114 [ # # ]: 0 : if ( LANGUAGE_ENGLISH_US == eLang )
115 : : {
116 : : // construct American post/mail address
117 [ # # ]: 0 : aPLZEdit.Hide();
118 [ # # ]: 0 : aCityEdit.Hide();
119 [ # # ][ # # ]: 0 : aCityLbl.SetText( CUI_RES( STR_US_STATE ) );
[ # # ][ # # ]
120 : : }
121 [ # # ]: 0 : else if ( LANGUAGE_RUSSIAN == eLang )
122 : : {
123 [ # # ]: 0 : aUsCityEdit.Hide();
124 [ # # ]: 0 : aUsStateEdit.Hide();
125 [ # # ]: 0 : aUsZipEdit.Hide();
126 [ # # ]: 0 : aNameLbl.Hide();
127 [ # # ]: 0 : aNameLblRuss.Show();
128 [ # # ]: 0 : aStreetLbl.Hide();
129 [ # # ]: 0 : aStreetLblRuss.Show();
130 [ # # ]: 0 : aFatherName.Show();
131 : 0 : aName.SetIndex( 0 );
132 : 0 : aName.SetLabel( &aNameLblRuss );
133 : 0 : aFirstName.SetIndex( 1 );
134 : 0 : aFirstName.SetLabel( &aNameLblRuss );
135 : 0 : aFatherName.SetIndex( 2 );
136 : 0 : aFatherName.SetLabel( &aNameLblRuss );
137 : 0 : aShortName.SetIndex( 3 );
138 : 0 : aShortName.SetLabel( &aNameLblRuss );
139 : :
140 [ # # ][ # # ]: 0 : Point aEditPoint = LogicToPixel( Point( MID, LINE(1) ), MAP_APPFONT );
[ # # ]
141 [ # # ][ # # ]: 0 : Point aRightPoint = LogicToPixel( Point( RIGHT, LINE(1) ), MAP_APPFONT );
[ # # ]
142 [ # # ][ # # ]: 0 : Size aEditSize = LogicToPixel( Size( 42, 12 ), MAP_APPFONT );
[ # # ]
143 [ # # ][ # # ]: 0 : Size a2Size = LogicToPixel( Size( 2, 2 ), MAP_APPFONT );
[ # # ]
144 : 0 : long nDelta = aEditSize.Width() + a2Size.Width();
145 [ # # ]: 0 : aName.SetPosSizePixel( aEditPoint, aEditSize );
146 : 0 : aEditPoint.X() = aEditPoint.X() + nDelta;
147 [ # # ]: 0 : aFirstName.SetPosSizePixel( aEditPoint, aEditSize );
148 : 0 : aEditPoint.X() = aEditPoint.X() + nDelta;
149 [ # # ]: 0 : aFatherName.SetPosSizePixel( aEditPoint, aEditSize );
150 : 0 : aEditPoint.X() = aEditPoint.X() + nDelta;
151 : 0 : aEditSize.Width() = aRightPoint.X() - aEditPoint.X();
152 [ # # ]: 0 : aShortName.SetPosSizePixel( aEditPoint, aEditSize );
153 : :
154 [ # # ]: 0 : Size aStreetSize = aStreetEdit.GetSizePixel();
155 : 0 : aStreetSize.Width() = aStreetSize.Width() - aEditSize.Width() - a2Size.Width();
156 [ # # ]: 0 : aStreetEdit.SetSizePixel( aStreetSize );
157 [ # # ]: 0 : aApartmentNrEdit.Show();
158 [ # # ][ # # ]: 0 : Point aApartmentPoint = LogicToPixel( Point( MID, LINE(2) ), MAP_APPFONT );
[ # # ]
159 : 0 : aApartmentPoint.X() = aEditPoint.X();
160 [ # # ]: 0 : aApartmentNrEdit.SetPosSizePixel( aApartmentPoint, aEditSize );
161 : :
162 [ # # ]: 0 : aName.SetZOrder( &aNameLblRuss, WINDOW_ZORDER_BEHIND );
163 [ # # ]: 0 : aFirstName.SetZOrder( &aName, WINDOW_ZORDER_BEHIND );
164 [ # # ]: 0 : aFatherName.SetZOrder( &aFirstName, WINDOW_ZORDER_BEHIND );
165 : : }
166 [ # # ][ # # ]: 0 : else if (MsLangId::isFamilyNameFirst(eLang))
167 : : {
168 [ # # ]: 0 : aUsCityEdit.Hide();
169 [ # # ]: 0 : aUsStateEdit.Hide();
170 [ # # ]: 0 : aUsZipEdit.Hide();
171 [ # # ]: 0 : aNameLbl.Hide();
172 [ # # ]: 0 : aNameLblEastern.Show();
173 : :
174 : : // swap "first name" field and "last name" field
175 [ # # ]: 0 : Point aPosTmp = aFirstName.GetPosPixel();
176 [ # # ][ # # ]: 0 : aFirstName.SetPosPixel( aName.GetPosPixel() );
177 [ # # ]: 0 : aName.SetPosPixel( aPosTmp );
178 [ # # ]: 0 : aFirstName.SetZOrder( &aName, WINDOW_ZORDER_BEHIND );
179 : : }
180 : : else
181 : : {
182 [ # # ]: 0 : aUsCityEdit.Hide();
183 [ # # ]: 0 : aUsStateEdit.Hide();
184 [ # # ]: 0 : aUsZipEdit.Hide();
185 : : }
186 : :
187 [ # # ]: 0 : FreeResource();
188 : :
189 : : // this page needs ExchangeSupport
190 : 0 : SetExchangeSupport();
191 : :
192 [ # # ]: 0 : Link aLink = LINK( this, SvxGeneralTabPage, ModifyHdl_Impl );
193 : 0 : aFirstName.SetModifyHdl( aLink );
194 : 0 : aName.SetModifyHdl( aLink );
195 : :
196 : : // because some labels have text for more than one edit field we have to split these texts
197 : : // and set these texts as accessible name of the corresponding edit fields
198 : : SvxUserEdit* pEdits[] =
199 : : {
200 : : &aCompanyEdit, &aFirstName, &aFatherName, &aName, &aShortName, &aStreetEdit,
201 : : &aApartmentNrEdit, &aPLZEdit, &aCityEdit, &aUsCityEdit, &aUsStateEdit, &aUsZipEdit,
202 : : &aCountryEdit, &aTitleEdit, &aPositionEdit, &aTelPrivEdit, &aTelCompanyEdit,
203 : : &aFaxEdit, &aEmailEdit, NULL
204 : 0 : };
205 : 0 : SvxUserEdit** pCurrent = pEdits;
206 [ # # ]: 0 : while ( *pCurrent )
207 : : {
208 : 0 : Window* pLabel = (*pCurrent)->GetLabel();
209 [ # # ]: 0 : if ( pLabel )
210 : : {
211 [ # # ][ # # ]: 0 : String sName, sText = pLabel->GetDisplayText();
212 : 0 : sal_Int16 nIndex = (*pCurrent)->GetIndex();
213 [ # # ]: 0 : if ( INDEX_NOTSET == nIndex )
214 [ # # ]: 0 : sName = sText;
215 : : else
216 [ # # ][ # # ]: 0 : sName = sText.GetToken( nIndex, '/' );
[ # # ]
217 [ # # ][ # # ]: 0 : sName = comphelper::string::remove(sName, '(');
218 [ # # ][ # # ]: 0 : sName = comphelper::string::remove(sName, ')');
219 [ # # ]: 0 : if ( sName.Len() > 0 )
220 [ # # ][ # # ]: 0 : (*pCurrent)->SetAccessibleName( sName );
[ # # ]
221 : : }
222 : 0 : pCurrent++;
223 : : }
224 : 0 : }
225 : :
226 : : //------------------------------------------------------------------------
227 : :
228 [ # # ][ # # ]: 0 : SvxGeneralTabPage::~SvxGeneralTabPage()
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
229 : : {
230 [ # # ][ # # ]: 0 : delete pImpl;
231 [ # # ]: 0 : }
232 : :
233 : : //------------------------------------------------------------------------
234 : :
235 : 0 : SfxTabPage* SvxGeneralTabPage::Create( Window* pParent, const SfxItemSet& rAttrSet )
236 : : {
237 [ # # ]: 0 : return ( new SvxGeneralTabPage( pParent, rAttrSet ) );
238 : : }
239 : :
240 : : //------------------------------------------------------------------------
241 : :
242 : 0 : sal_Bool SvxGeneralTabPage::FillItemSet( SfxItemSet& )
243 : : {
244 : : // remove leading and trailing whitespaces
245 [ # # ][ # # ]: 0 : aCompanyEdit.SetText( TRIM(aCompanyEdit.GetText()) );
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
246 [ # # ][ # # ]: 0 : aFirstName.SetText( TRIM(aFirstName.GetText()) );
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
247 [ # # ][ # # ]: 0 : aName.SetText( TRIM(aName.GetText()) );
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
248 [ # # ][ # # ]: 0 : aShortName.SetText( TRIM(aShortName.GetText()) );
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
249 [ # # ][ # # ]: 0 : aStreetEdit.SetText( TRIM(aStreetEdit.GetText()) );
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
250 [ # # ][ # # ]: 0 : aCountryEdit.SetText( TRIM(aCountryEdit.GetText()) );
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
251 [ # # ][ # # ]: 0 : aPLZEdit.SetText( TRIM(aPLZEdit.GetText()) );
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
252 [ # # ][ # # ]: 0 : aCityEdit.SetText( TRIM(aCityEdit.GetText()) );
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
253 [ # # ][ # # ]: 0 : aUsCityEdit.SetText( TRIM(aUsCityEdit.GetText()) );
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
254 [ # # ][ # # ]: 0 : aUsStateEdit.SetText( TRIM(aUsStateEdit.GetText()) );
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
255 [ # # ][ # # ]: 0 : aUsZipEdit.SetText( TRIM(aUsZipEdit.GetText()) );
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
256 [ # # ][ # # ]: 0 : aTitleEdit.SetText( TRIM(aTitleEdit.GetText()) );
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
257 [ # # ][ # # ]: 0 : aPositionEdit.SetText( TRIM(aPositionEdit.GetText()) );
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
258 [ # # ][ # # ]: 0 : aTelPrivEdit.SetText( TRIM(aTelPrivEdit.GetText()) );
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
259 [ # # ][ # # ]: 0 : aTelCompanyEdit.SetText( TRIM(aTelCompanyEdit.GetText()) );
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
260 [ # # ][ # # ]: 0 : aFaxEdit.SetText( TRIM(aFaxEdit.GetText()) );
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
261 [ # # ][ # # ]: 0 : aEmailEdit.SetText( TRIM(aEmailEdit.GetText()) );
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
262 : :
263 : 0 : sal_Bool bModified = sal_False;
264 [ # # ]: 0 : bModified |= GetAddress_Impl();
265 [ # # ]: 0 : SvtSaveOptions aSaveOpt;
266 [ # # ][ # # ]: 0 : if ( aUseDataCB.IsChecked() != aSaveOpt.IsUseUserData() )
[ # # ]
267 : : {
268 [ # # ][ # # ]: 0 : aSaveOpt.SetUseUserData( aUseDataCB.IsChecked() );
269 : 0 : bModified |= sal_True;
270 : : }
271 [ # # ]: 0 : return bModified;
272 : : }
273 : :
274 : : //------------------------------------------------------------------------
275 : :
276 : 0 : void SvxGeneralTabPage::Reset( const SfxItemSet& rSet )
277 : : {
278 : 0 : SetAddress_Impl();
279 : :
280 : 0 : sal_uInt16 nWhich = GetWhich( SID_FIELD_GRABFOCUS );
281 [ # # ]: 0 : if ( rSet.GetItemState( nWhich ) == SFX_ITEM_SET )
282 : : {
283 : 0 : sal_uInt16 nField = ( (SfxUInt16Item&)rSet.Get( nWhich ) ).GetValue();
284 : :
285 [ # # # # : 0 : switch ( nField )
# # # # #
# # # # #
# # ]
286 : : {
287 : 0 : case COMPANY_EDIT: aCompanyEdit.GrabFocus(); break;
288 : 0 : case FIRSTNAME_EDIT: aFirstName.GrabFocus(); break;
289 : 0 : case LASTNAME_EDIT: aName.GrabFocus(); break;
290 : 0 : case STREET_EDIT: aStreetEdit.GrabFocus(); break;
291 : 0 : case COUNTRY_EDIT: aCountryEdit.GrabFocus(); break;
292 : : case PLZ_EDIT:
293 [ # # ]: 0 : if ( aPLZEdit.IsVisible() )
294 : 0 : aPLZEdit.GrabFocus();
295 : : else
296 : 0 : aUsZipEdit.GrabFocus();
297 : 0 : break;
298 : : case CITY_EDIT:
299 [ # # ]: 0 : if ( aCityEdit.IsVisible() )
300 : 0 : aCityEdit.GrabFocus();
301 : : else
302 : 0 : aUsCityEdit.GrabFocus();
303 : 0 : break;
304 : : case STATE_EDIT:
305 [ # # ]: 0 : if ( aUsStateEdit.IsVisible() )
306 : 0 : aUsStateEdit.GrabFocus();
307 : : else
308 : 0 : aCityEdit.GrabFocus();
309 : 0 : break;
310 : 0 : case TITLE_EDIT: aTitleEdit.GrabFocus(); break;
311 : 0 : case POSITION_EDIT: aPositionEdit.GrabFocus(); break;
312 : 0 : case SHORTNAME_EDIT: aShortName.GrabFocus(); break;
313 : 0 : case TELPRIV_EDIT: aTelPrivEdit.GrabFocus(); break;
314 : 0 : case TELCOMPANY_EDIT: aTelCompanyEdit.GrabFocus(); break;
315 : 0 : case FAX_EDIT: aFaxEdit.GrabFocus(); break;
316 : 0 : case EMAIL_EDIT: aEmailEdit.GrabFocus(); break;
317 : 0 : default: aCompanyEdit.GrabFocus();
318 : : }
319 : : }
320 : :
321 [ # # ][ # # ]: 0 : aUseDataCB.Check( SvtSaveOptions().IsUseUserData() );
322 : 0 : }
323 : :
324 : : //------------------------------------------------------------------------
325 : :
326 : 0 : IMPL_LINK( SvxGeneralTabPage, ModifyHdl_Impl, Edit *, pEdit )
327 : : {
328 [ # # ]: 0 : if ( aShortName.IsEnabled() )
329 : : {
330 [ # # ]: 0 : String aShortStr( aShortName.GetText() );
331 [ # # # ]: 0 : switch ( aShortStr.Len() )
332 : : {
333 : : case 0:
334 [ # # ][ # # ]: 0 : aShortStr = String( RTL_CONSTASCII_USTRINGPARAM(" ") );
[ # # ]
335 : 0 : break;
336 : :
337 : : case 1:
338 [ # # ]: 0 : aShortStr += ' ';
339 : 0 : break;
340 : : }
341 : :
342 : 0 : sal_uInt16 nPos = ( pEdit == &aFirstName ) ? 0 : 1;
343 [ # # ]: 0 : String aTxt = pEdit->GetText();
344 [ # # ]: 0 : sal_Unicode cChar = ( aTxt.Len() > 0 ) ? aTxt.GetChar(0) : ' ';
345 [ # # ]: 0 : aShortStr.SetChar( nPos, cChar );
346 [ # # ][ # # ]: 0 : aShortName.SetText(comphelper::string::stripEnd(aShortStr, ' '));
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
347 : : }
348 : 0 : return 0;
349 : : }
350 : :
351 : : //------------------------------------------------------------------------
352 : :
353 : 0 : sal_Bool SvxGeneralTabPage::GetAddress_Impl()
354 : : {
355 : : sal_Bool bRet =
356 [ # # ][ # # ]: 0 : ( aCompanyEdit.GetSavedValue() != aCompanyEdit.GetText() ||
[ # # ][ # # ]
[ # # ]
357 [ # # ][ # # ]: 0 : aFirstName.GetSavedValue() != aFirstName.GetText() ||
[ # # ][ # # ]
[ # # ]
358 [ # # ][ # # ]: 0 : aFatherName.GetSavedValue() != aFatherName.GetText() ||
[ # # ][ # # ]
[ # # ]
359 [ # # ][ # # ]: 0 : aName.GetSavedValue() != aName.GetText() ||
[ # # ][ # # ]
[ # # ]
360 [ # # ][ # # ]: 0 : aShortName.GetSavedValue() != aShortName.GetText() ||
[ # # ][ # # ]
[ # # ]
361 [ # # ][ # # ]: 0 : aStreetEdit.GetSavedValue() != aStreetEdit.GetText() ||
[ # # ][ # # ]
[ # # ]
362 [ # # ][ # # ]: 0 : aApartmentNrEdit.GetSavedValue() != aApartmentNrEdit.GetText() ||
[ # # ][ # # ]
[ # # ]
363 [ # # ][ # # ]: 0 : aPLZEdit.GetSavedValue() != aPLZEdit.GetText() ||
[ # # ][ # # ]
[ # # ]
364 [ # # ][ # # ]: 0 : aCityEdit.GetSavedValue() != aCityEdit.GetText() ||
[ # # ][ # # ]
[ # # ]
365 [ # # ][ # # ]: 0 : aUsCityEdit.GetSavedValue() != aUsCityEdit.GetText() ||
[ # # ][ # # ]
[ # # ]
366 [ # # ][ # # ]: 0 : aUsStateEdit.GetSavedValue() != aUsStateEdit.GetText() ||
[ # # ][ # # ]
[ # # ]
367 [ # # ][ # # ]: 0 : aUsZipEdit.GetSavedValue() != aUsZipEdit.GetText() ||
[ # # ][ # # ]
[ # # ]
368 [ # # ][ # # ]: 0 : aCountryEdit.GetSavedValue() != aCountryEdit.GetText() ||
[ # # ][ # # ]
[ # # ]
369 [ # # ][ # # ]: 0 : aTitleEdit.GetSavedValue() != aTitleEdit.GetText() ||
[ # # ][ # # ]
[ # # ]
370 [ # # ][ # # ]: 0 : aPositionEdit.GetSavedValue() != aPositionEdit.GetText() ||
[ # # ][ # # ]
[ # # ]
371 [ # # ][ # # ]: 0 : aTelPrivEdit.GetSavedValue() != aTelPrivEdit.GetText() ||
[ # # ][ # # ]
[ # # ]
372 [ # # ][ # # ]: 0 : aTelCompanyEdit.GetSavedValue() != aTelCompanyEdit.GetText() ||
[ # # ][ # # ]
[ # # ]
373 [ # # ][ # # ]: 0 : aFaxEdit.GetSavedValue() != aFaxEdit.GetText() ||
[ # # ][ # # ]
[ # # ]
374 [ # # ][ # # ]: 0 : aEmailEdit.GetSavedValue() != aEmailEdit.GetText() );
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
375 : :
376 [ # # ][ # # ]: 0 : LanguageType eLang = Application::GetSettings().GetUILanguage();
377 : 0 : sal_Bool bUS = ( LANGUAGE_ENGLISH_US == eLang );
378 : :
379 [ # # ]: 0 : SvtUserOptions aUserOpt;
380 [ # # ][ # # ]: 0 : aUserOpt.SetCompany(aCompanyEdit.GetText());
[ # # ][ # # ]
381 [ # # ][ # # ]: 0 : aUserOpt.SetFirstName(aFirstName.GetText());
[ # # ][ # # ]
382 [ # # ][ # # ]: 0 : aUserOpt.SetLastName(aName.GetText());
[ # # ][ # # ]
383 [ # # ][ # # ]: 0 : aUserOpt.SetID( aShortName.GetText());
[ # # ][ # # ]
384 : :
385 [ # # ][ # # ]: 0 : aUserOpt.SetStreet(aStreetEdit.GetText() );
[ # # ][ # # ]
386 : :
387 [ # # ][ # # ]: 0 : aUserOpt.SetCountry(aCountryEdit.GetText() );
[ # # ][ # # ]
388 : :
389 [ # # ][ # # ]: 0 : aUserOpt.SetZip(bUS ? aUsZipEdit.GetText() : aPLZEdit.GetText() );
[ # # ][ # # ]
[ # # ][ # # ]
390 [ # # ][ # # ]: 0 : aUserOpt.SetCity(bUS ? aUsCityEdit.GetText() : aCityEdit.GetText() );
[ # # ][ # # ]
[ # # ][ # # ]
391 : :
392 [ # # ][ # # ]: 0 : aUserOpt.SetTitle( aTitleEdit.GetText() );
[ # # ][ # # ]
393 [ # # ][ # # ]: 0 : aUserOpt.SetPosition(aPositionEdit.GetText() );
[ # # ][ # # ]
394 [ # # ][ # # ]: 0 : aUserOpt.SetTelephoneHome( aTelPrivEdit.GetText() );
[ # # ][ # # ]
395 [ # # ][ # # ]: 0 : aUserOpt.SetTelephoneWork( aTelCompanyEdit.GetText() );
[ # # ][ # # ]
396 [ # # ][ # # ]: 0 : aUserOpt.SetFax( aFaxEdit.GetText() );
[ # # ][ # # ]
397 [ # # ][ # # ]: 0 : aUserOpt.SetEmail( aEmailEdit.GetText() );
[ # # ][ # # ]
398 [ # # ][ # # ]: 0 : aUserOpt.SetState( bUS ? aUsStateEdit.GetText() : String() );
[ # # ][ # # ]
[ # # ][ # # ]
399 : :
400 [ # # ]: 0 : if ( LANGUAGE_RUSSIAN == eLang )
401 : : {
402 [ # # ][ # # ]: 0 : aUserOpt.SetFathersName( aFatherName.GetText() );
[ # # ][ # # ]
403 [ # # ][ # # ]: 0 : aUserOpt.SetApartment( aApartmentNrEdit.GetText() );
[ # # ][ # # ]
404 : : }
405 [ # # ]: 0 : return bRet;
406 : : }
407 : :
408 : : //------------------------------------------------------------------------
409 : :
410 : 0 : void SvxGeneralTabPage::SetAddress_Impl()
411 : : {
412 [ # # ][ # # ]: 0 : LanguageType eLang = Application::GetSettings().GetUILanguage();
413 : 0 : sal_Bool bUS = ( LANGUAGE_ENGLISH_US == eLang );
414 [ # # ]: 0 : SvtUserOptions aUserOpt;
415 [ # # ][ # # ]: 0 : aCompanyEdit.SetText( aUserOpt.GetCompany() );
[ # # ][ # # ]
416 [ # # ][ # # ]: 0 : if ( aUserOpt.IsTokenReadonly( USER_OPT_COMPANY ) )
417 : : {
418 [ # # ]: 0 : aCompanyLbl.Disable();
419 [ # # ]: 0 : aCompanyEdit.Disable();
420 : : }
421 : 0 : sal_Int16 nEditCount = 0;
422 [ # # ][ # # ]: 0 : aFirstName.SetText( aUserOpt.GetFirstName() );
[ # # ][ # # ]
423 [ # # ][ # # ]: 0 : if ( aUserOpt.IsTokenReadonly( USER_OPT_FIRSTNAME ) )
424 : : {
425 [ # # ]: 0 : aFirstName.Disable();
426 : 0 : nEditCount++;
427 : : }
428 [ # # ][ # # ]: 0 : aName.SetText( aUserOpt.GetLastName() );
[ # # ][ # # ]
429 [ # # ][ # # ]: 0 : if ( aUserOpt.IsTokenReadonly( USER_OPT_LASTNAME ) )
430 : : {
431 [ # # ]: 0 : aName.Disable();
432 : 0 : nEditCount++;
433 : : }
434 [ # # ][ # # ]: 0 : aShortName.SetText( aUserOpt.GetID() );
[ # # ][ # # ]
435 [ # # ][ # # ]: 0 : if ( aUserOpt.IsTokenReadonly( USER_OPT_ID ) )
436 : : {
437 [ # # ]: 0 : aShortName.Disable();
438 : 0 : nEditCount++;
439 : : }
440 [ # # ]: 0 : aNameLbl.Enable( ( nEditCount != 3 ) );
441 [ # # ][ # # ]: 0 : aStreetEdit.SetText( aUserOpt.GetStreet() );
[ # # ][ # # ]
442 [ # # ][ # # ]: 0 : if ( aUserOpt.IsTokenReadonly( USER_OPT_STREET ) )
443 : : {
444 [ # # ]: 0 : aStreetLbl.Disable();
445 [ # # ]: 0 : aStreetEdit.Disable();
446 : : }
447 [ # # ]: 0 : Edit* pPLZEdit = bUS ? &aUsZipEdit : &aPLZEdit;
448 [ # # ]: 0 : Edit* pCityEdit = bUS ? &aUsCityEdit : &aCityEdit;
449 [ # # ][ # # ]: 0 : pPLZEdit->SetText( aUserOpt.GetZip() );
[ # # ][ # # ]
450 [ # # ][ # # ]: 0 : pCityEdit->SetText( aUserOpt.GetCity() );
[ # # ][ # # ]
451 : 0 : nEditCount = 0;
452 [ # # ][ # # ]: 0 : if ( aUserOpt.IsTokenReadonly( USER_OPT_ZIP ) )
453 : : {
454 [ # # ]: 0 : pPLZEdit->Disable();
455 : 0 : nEditCount++;
456 : : }
457 [ # # ][ # # ]: 0 : if ( aUserOpt.IsTokenReadonly( USER_OPT_CITY ) )
458 : : {
459 [ # # ]: 0 : pCityEdit->Disable();
460 : 0 : nEditCount++;
461 : : }
462 [ # # ]: 0 : if ( bUS )
463 : : {
464 [ # # ][ # # ]: 0 : aUsStateEdit.SetText( aUserOpt.GetState() );
[ # # ][ # # ]
465 [ # # ][ # # ]: 0 : if ( aUserOpt.IsTokenReadonly( USER_OPT_STATE ) )
466 : : {
467 [ # # ]: 0 : aUsStateEdit.Disable();
468 : 0 : nEditCount++;
469 : : }
470 : : }
471 [ # # ][ # # ]: 0 : aCityLbl.Enable( ( nEditCount != ( bUS ? 3 : 2 ) ) );
472 [ # # ][ # # ]: 0 : aCountryEdit.SetText( aUserOpt.GetCountry() );
[ # # ][ # # ]
473 [ # # ][ # # ]: 0 : if ( aUserOpt.IsTokenReadonly( USER_OPT_COUNTRY ) )
474 : : {
475 [ # # ]: 0 : aCountryLbl.Disable();
476 [ # # ]: 0 : aCountryEdit.Disable();
477 : : }
478 [ # # ][ # # ]: 0 : aTitleEdit.SetText( aUserOpt.GetTitle() );
[ # # ][ # # ]
479 [ # # ][ # # ]: 0 : aPositionEdit.SetText( aUserOpt.GetPosition() );
[ # # ][ # # ]
480 : 0 : nEditCount = 0;
481 [ # # ][ # # ]: 0 : if ( aUserOpt.IsTokenReadonly( USER_OPT_TITLE ) )
482 : : {
483 [ # # ]: 0 : aTitleEdit.Disable();
484 : 0 : nEditCount++;
485 : : }
486 [ # # ][ # # ]: 0 : if ( aUserOpt.IsTokenReadonly( USER_OPT_POSITION ) )
487 : : {
488 [ # # ]: 0 : aPositionEdit.Disable();
489 : 0 : nEditCount++;
490 : : }
491 [ # # ]: 0 : aTitlePosLbl.Enable( ( nEditCount != 2 ) );
492 [ # # ][ # # ]: 0 : aTelPrivEdit.SetText( aUserOpt.GetTelephoneHome() );
[ # # ][ # # ]
493 [ # # ][ # # ]: 0 : aTelCompanyEdit.SetText( aUserOpt.GetTelephoneWork() );
[ # # ][ # # ]
494 : 0 : nEditCount = 0;
495 [ # # ][ # # ]: 0 : if ( aUserOpt.IsTokenReadonly( USER_OPT_TELEPHONEHOME ) )
496 : : {
497 [ # # ]: 0 : aTelPrivEdit.Disable();
498 : 0 : nEditCount++;
499 : : }
500 [ # # ][ # # ]: 0 : if ( aUserOpt.IsTokenReadonly( USER_OPT_TELEPHONEWORK ) )
501 : : {
502 [ # # ]: 0 : aTelCompanyEdit.Disable();
503 : 0 : nEditCount++;
504 : : }
505 [ # # ]: 0 : aPhoneLbl.Enable( ( nEditCount != 2 ) );
506 [ # # ][ # # ]: 0 : aFaxEdit.SetText( aUserOpt.GetFax() );
[ # # ][ # # ]
507 [ # # ][ # # ]: 0 : aEmailEdit.SetText( aUserOpt.GetEmail() );
[ # # ][ # # ]
508 : 0 : nEditCount = 0;
509 [ # # ][ # # ]: 0 : if ( aUserOpt.IsTokenReadonly( USER_OPT_FAX ) )
510 : : {
511 [ # # ]: 0 : aFaxEdit.Disable();
512 : 0 : nEditCount++;
513 : : }
514 [ # # ][ # # ]: 0 : if ( aUserOpt.IsTokenReadonly( USER_OPT_EMAIL ) )
515 : : {
516 [ # # ]: 0 : aEmailEdit.Disable();
517 : 0 : nEditCount++;
518 : : }
519 [ # # ]: 0 : aFaxMailLbl.Enable( ( nEditCount != 2 ) );
520 : :
521 [ # # ]: 0 : if ( LANGUAGE_RUSSIAN == eLang )
522 : : {
523 [ # # ][ # # ]: 0 : aFatherName.SetText( aUserOpt.GetFathersName() );
[ # # ][ # # ]
524 [ # # ][ # # ]: 0 : aApartmentNrEdit.SetText( aUserOpt.GetApartment() );
[ # # ][ # # ]
525 : : }
526 : :
527 [ # # ]: 0 : aCompanyEdit.SaveValue();
528 [ # # ]: 0 : aFirstName.SaveValue();
529 [ # # ]: 0 : aFatherName.SaveValue();
530 [ # # ]: 0 : aName.SaveValue();
531 [ # # ]: 0 : aShortName.SaveValue();
532 [ # # ]: 0 : aStreetEdit.SaveValue();
533 [ # # ]: 0 : aApartmentNrEdit.SaveValue();
534 [ # # ]: 0 : aPLZEdit.SaveValue();
535 [ # # ]: 0 : aCityEdit.SaveValue();
536 [ # # ]: 0 : aUsCityEdit.SaveValue();
537 [ # # ]: 0 : aUsStateEdit.SaveValue();
538 [ # # ]: 0 : aUsZipEdit.SaveValue();
539 [ # # ]: 0 : aCountryEdit.SaveValue();
540 [ # # ]: 0 : aTitleEdit.SaveValue();
541 [ # # ]: 0 : aPositionEdit.SaveValue();
542 [ # # ]: 0 : aTelPrivEdit.SaveValue();
543 [ # # ]: 0 : aTelCompanyEdit.SaveValue();
544 [ # # ]: 0 : aFaxEdit.SaveValue();
545 [ # # ][ # # ]: 0 : aEmailEdit.SaveValue();
546 : 0 : }
547 : :
548 : : // -----------------------------------------------------------------------
549 : :
550 : 0 : int SvxGeneralTabPage::DeactivatePage( SfxItemSet* _pSet )
551 : : {
552 [ # # ]: 0 : if ( _pSet )
553 : 0 : FillItemSet( *_pSet );
554 : 0 : return LEAVE_PAGE;
555 : : }
556 : :
557 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|