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