forked from amazingfate/loongoffice
562 lines
20 KiB
C++
562 lines
20 KiB
C++
/*************************************************************************
|
|
*
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* Copyright 2000, 2010 Oracle and/or its affiliates.
|
|
*
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
|
*
|
|
* This file is part of OpenOffice.org.
|
|
*
|
|
* OpenOffice.org is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Lesser General Public License version 3
|
|
* only, as published by the Free Software Foundation.
|
|
*
|
|
* OpenOffice.org is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Lesser General Public License version 3 for more details
|
|
* (a copy is included in the LICENSE file that accompanied this code).
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* version 3 along with OpenOffice.org. If not, see
|
|
* <http://www.openoffice.org/license.html>
|
|
* for a copy of the LGPLv3 License.
|
|
*
|
|
************************************************************************/
|
|
|
|
// MARKER(update_precomp.py): autogen include statement, do not remove
|
|
#include "precompiled_cui.hxx"
|
|
|
|
// include ---------------------------------------------------------------
|
|
#include <tools/shl.hxx>
|
|
#include <vcl/svapp.hxx>
|
|
#include <vcl/msgbox.hxx>
|
|
#include <unotools/saveopt.hxx>
|
|
#include <svl/intitem.hxx>
|
|
|
|
#define _SVX_OPTGENRL_CXX
|
|
|
|
#include <cuires.hrc>
|
|
#include "optgenrl.hrc"
|
|
#include <unotools/useroptions.hxx>
|
|
#include "cuioptgenrl.hxx"
|
|
#include <dialmgr.hxx>
|
|
#include <svx/dlgutil.hxx>
|
|
#include <svx/strarray.hxx>
|
|
#include <svx/svxids.hrc> // SID_FIELD_GRABFOCUS
|
|
|
|
#define TRIM(s) s.EraseLeadingChars().EraseTrailingChars()
|
|
|
|
// struct GeneralTabPage_Impl --------------------------------------------
|
|
|
|
struct GeneralTabPage_Impl
|
|
{
|
|
sal_Bool mbStreetEnabled;
|
|
sal_Bool mbPLZEnabled;
|
|
sal_Bool mbCityEnabled;
|
|
sal_Bool mbUsCityEnabled;
|
|
sal_Bool mbUsZipEnabled;
|
|
|
|
String maQueryStr;
|
|
|
|
GeneralTabPage_Impl() :
|
|
mbStreetEnabled ( sal_False ),
|
|
mbPLZEnabled ( sal_False ),
|
|
mbCityEnabled ( sal_False ),
|
|
mbUsCityEnabled ( sal_False ),
|
|
mbUsZipEnabled ( sal_False ) {}
|
|
};
|
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
SvxGeneralTabPage::SvxGeneralTabPage( Window* pParent, const SfxItemSet& rCoreSet ) :
|
|
|
|
SfxTabPage( pParent, CUI_RES(RID_SFXPAGE_GENERAL), rCoreSet ),
|
|
|
|
aAddrFrm ( this, CUI_RES( GB_ADDRESS ) ),
|
|
aCompanyLbl ( this, CUI_RES( FT_COMPANY ), true ),
|
|
aCompanyEdit ( this, CUI_RES( ED_COMPANY ), INDEX_NOTSET, &aCompanyLbl ),
|
|
aNameLbl ( this, CUI_RES( FT_NAME ), true ),
|
|
aNameLblRuss ( this, CUI_RES( FT_NAME_RUSS ), true ),
|
|
aNameLblEastern ( this, CUI_RES( FT_NAME_EASTERN ), true ),
|
|
aFirstName ( this, CUI_RES( ED_FIRSTNAME ), 0, &aNameLbl ),
|
|
aFatherName ( this, CUI_RES( ED_FATHERNAME ) ),
|
|
aName ( this, CUI_RES( ED_NAME ), 1, &aNameLbl ),
|
|
aShortName ( this, CUI_RES( ED_SHORTNAME ), 2, &aNameLbl ),
|
|
aStreetLbl ( this, CUI_RES( FT_STREET ), true ),
|
|
aStreetLblRuss ( this, CUI_RES( FT_STREET_RUSS ), true ),
|
|
aStreetEdit ( this, CUI_RES( ED_STREET ), 0, &aStreetLbl ),
|
|
aApartmentNrEdit( this, CUI_RES( ED_APARTMENTNR ), 1, &aStreetLblRuss ),
|
|
aCityLbl ( this, CUI_RES( FT_CITY ), true ),
|
|
aPLZEdit ( this, CUI_RES( ED_PLZ ), 0, &aCityLbl ),
|
|
aCityEdit ( this, CUI_RES( ED_CITY ), 1, &aCityLbl ),
|
|
aUsCityEdit ( this, CUI_RES( ED_US_CITY ), 0, &aCityLbl ),
|
|
aUsStateEdit ( this, CUI_RES( ED_US_STATE ), 1, &aCityLbl ),
|
|
aUsZipEdit ( this, CUI_RES( ED_US_ZIPCODE ), 2, &aCityLbl ),
|
|
aCountryLbl ( this, CUI_RES( FT_COUNTRY ), true ),
|
|
aCountryEdit ( this, CUI_RES( ED_COUNTRY ), INDEX_NOTSET, &aCountryLbl ),
|
|
aTitlePosLbl ( this, CUI_RES( FT_TITLEPOS ), true ),
|
|
aTitleEdit ( this, CUI_RES( ED_TITLE ), 0, &aTitlePosLbl ),
|
|
aPositionEdit ( this, CUI_RES( ED_POSITION ), 1, &aTitlePosLbl ),
|
|
aPhoneLbl ( this, CUI_RES( FT_PHONE ), true ),
|
|
aTelPrivEdit ( this, CUI_RES( ED_TELPRIVAT ), 0, &aPhoneLbl ),
|
|
aTelCompanyEdit ( this, CUI_RES( ED_TELCOMPANY ), 1, &aPhoneLbl ),
|
|
aFaxMailLbl ( this, CUI_RES( FT_FAXMAIL ), true ),
|
|
aFaxEdit ( this, CUI_RES( ED_FAX ), 0, &aFaxMailLbl ),
|
|
aEmailEdit ( this, CUI_RES( ED_EMAIL ), 1, &aFaxMailLbl ),
|
|
aUseDataCB ( this, CUI_RES( CB_USEDATA ) ),
|
|
pImpl ( new GeneralTabPage_Impl )
|
|
|
|
{
|
|
LanguageType eLang = Application::GetSettings().GetUILanguage();
|
|
pImpl->maQueryStr = String( CUI_RES( STR_QUERY_REG ) );
|
|
|
|
if ( LANGUAGE_ENGLISH_US == eLang )
|
|
{
|
|
// amerikanische Postadresse aufbauen
|
|
aPLZEdit.Hide();
|
|
aCityEdit.Hide();
|
|
aCityLbl.SetText( CUI_RES( STR_US_STATE ) );
|
|
}
|
|
else if ( LANGUAGE_RUSSIAN == eLang )
|
|
{
|
|
aUsCityEdit.Hide();
|
|
aUsStateEdit.Hide();
|
|
aUsZipEdit.Hide();
|
|
aNameLbl.Hide();
|
|
aNameLblRuss.Show();
|
|
aStreetLbl.Hide();
|
|
aStreetLblRuss.Show();
|
|
aFatherName.Show();
|
|
aName.SetIndex( 0 );
|
|
aName.SetLabel( &aNameLblRuss );
|
|
aFirstName.SetIndex( 1 );
|
|
aFirstName.SetLabel( &aNameLblRuss );
|
|
aFatherName.SetIndex( 2 );
|
|
aFatherName.SetLabel( &aNameLblRuss );
|
|
aShortName.SetIndex( 3 );
|
|
aShortName.SetLabel( &aNameLblRuss );
|
|
|
|
Point aEditPoint = LogicToPixel( Point( MID, LINE(1) ), MAP_APPFONT );
|
|
Point aRightPoint = LogicToPixel( Point( RIGHT, LINE(1) ), MAP_APPFONT );
|
|
Size aEditSize = LogicToPixel( Size( 42, 12 ), MAP_APPFONT );
|
|
Size a2Size = LogicToPixel( Size( 2, 2 ), MAP_APPFONT );
|
|
long nDelta = aEditSize.Width() + a2Size.Width();
|
|
aName.SetPosSizePixel( aEditPoint, aEditSize );
|
|
aEditPoint.X() = aEditPoint.X() + nDelta;
|
|
aFirstName.SetPosSizePixel( aEditPoint, aEditSize );
|
|
aEditPoint.X() = aEditPoint.X() + nDelta;
|
|
aFatherName.SetPosSizePixel( aEditPoint, aEditSize );
|
|
aEditPoint.X() = aEditPoint.X() + nDelta;
|
|
aEditSize.Width() = aRightPoint.X() - aEditPoint.X();
|
|
aShortName.SetPosSizePixel( aEditPoint, aEditSize );
|
|
|
|
Size aStreetSize = aStreetEdit.GetSizePixel();
|
|
aStreetSize.Width() = aStreetSize.Width() - aEditSize.Width() - a2Size.Width();
|
|
aStreetEdit.SetSizePixel( aStreetSize );
|
|
aApartmentNrEdit.Show();
|
|
Point aApartmentPoint = LogicToPixel( Point( MID, LINE(2) ), MAP_APPFONT );
|
|
aApartmentPoint.X() = aEditPoint.X();
|
|
aApartmentNrEdit.SetPosSizePixel( aApartmentPoint, aEditSize );
|
|
|
|
aName.SetZOrder( &aNameLblRuss, WINDOW_ZORDER_BEHIND );
|
|
aFirstName.SetZOrder( &aName, WINDOW_ZORDER_BEHIND );
|
|
aFatherName.SetZOrder( &aFirstName, WINDOW_ZORDER_BEHIND );
|
|
}
|
|
else if ( LANGUAGE_JAPANESE == eLang ||
|
|
LANGUAGE_KOREAN == eLang ||
|
|
LANGUAGE_CHINESE_TRADITIONAL == eLang ||
|
|
LANGUAGE_CHINESE_SIMPLIFIED == eLang)
|
|
{
|
|
aUsCityEdit.Hide();
|
|
aUsStateEdit.Hide();
|
|
aUsZipEdit.Hide();
|
|
aNameLbl.Hide();
|
|
aNameLblEastern.Show();
|
|
|
|
// swap "first name" field and "last name" field
|
|
Point aPosTmp = aFirstName.GetPosPixel();
|
|
aFirstName.SetPosPixel( aName.GetPosPixel() );
|
|
aName.SetPosPixel( aPosTmp );
|
|
aFirstName.SetZOrder( &aName, WINDOW_ZORDER_BEHIND );
|
|
}
|
|
else
|
|
{
|
|
aUsCityEdit.Hide();
|
|
aUsStateEdit.Hide();
|
|
aUsZipEdit.Hide();
|
|
}
|
|
|
|
FreeResource();
|
|
|
|
// diese Page braucht ExchangeSupport
|
|
SetExchangeSupport();
|
|
|
|
Link aLink = LINK( this, SvxGeneralTabPage, ModifyHdl_Impl );
|
|
aFirstName.SetModifyHdl( aLink );
|
|
aName.SetModifyHdl( aLink );
|
|
|
|
// because some labels have text for more than one edit field we have to split these texts
|
|
// and set these texts as accessible name of the corresponding edit fields
|
|
SvxUserEdit* pEdits[] =
|
|
{
|
|
&aCompanyEdit, &aFirstName, &aFatherName, &aName, &aShortName, &aStreetEdit,
|
|
&aApartmentNrEdit, &aPLZEdit, &aCityEdit, &aUsCityEdit, &aUsStateEdit, &aUsZipEdit,
|
|
&aCountryEdit, &aTitleEdit, &aPositionEdit, &aTelPrivEdit, &aTelCompanyEdit,
|
|
&aFaxEdit, &aEmailEdit, NULL
|
|
};
|
|
SvxUserEdit** pCurrent = pEdits;
|
|
while ( *pCurrent )
|
|
{
|
|
Window* pLabel = (*pCurrent)->GetLabel();
|
|
if ( pLabel )
|
|
{
|
|
String sName, sText = pLabel->GetDisplayText();
|
|
sal_Int16 nIndex = (*pCurrent)->GetIndex();
|
|
if ( INDEX_NOTSET == nIndex )
|
|
sName = sText;
|
|
else
|
|
sName = sText.GetToken( nIndex, '/' );
|
|
sName.EraseAllChars( '(' );
|
|
sName.EraseAllChars( ')' );
|
|
if ( sName.Len() > 0 )
|
|
(*pCurrent)->SetAccessibleName( sName );
|
|
}
|
|
pCurrent++;
|
|
}
|
|
}
|
|
|
|
//------------------------------------------------------------------------
|
|
|
|
SvxGeneralTabPage::~SvxGeneralTabPage()
|
|
{
|
|
delete pImpl;
|
|
}
|
|
|
|
//------------------------------------------------------------------------
|
|
|
|
SfxTabPage* SvxGeneralTabPage::Create( Window* pParent, const SfxItemSet& rAttrSet )
|
|
{
|
|
return ( new SvxGeneralTabPage( pParent, rAttrSet ) );
|
|
}
|
|
|
|
//------------------------------------------------------------------------
|
|
|
|
sal_Bool SvxGeneralTabPage::FillItemSet( SfxItemSet& )
|
|
{
|
|
// Eingaben trimmen (f"uhrende und nachfolgende Leerzeichen entfernen)
|
|
aCompanyEdit.SetText( TRIM(aCompanyEdit.GetText()) );
|
|
aFirstName.SetText( TRIM(aFirstName.GetText()) );
|
|
aName.SetText( TRIM(aName.GetText()) );
|
|
aShortName.SetText( TRIM(aShortName.GetText()) );
|
|
aStreetEdit.SetText( TRIM(aStreetEdit.GetText()) );
|
|
aCountryEdit.SetText( TRIM(aCountryEdit.GetText()) );
|
|
aPLZEdit.SetText( TRIM(aPLZEdit.GetText()) );
|
|
aCityEdit.SetText( TRIM(aCityEdit.GetText()) );
|
|
aUsCityEdit.SetText( TRIM(aUsCityEdit.GetText()) );
|
|
aUsStateEdit.SetText( TRIM(aUsStateEdit.GetText()) );
|
|
aUsZipEdit.SetText( TRIM(aUsZipEdit.GetText()) );
|
|
aTitleEdit.SetText( TRIM(aTitleEdit.GetText()) );
|
|
aPositionEdit.SetText( TRIM(aPositionEdit.GetText()) );
|
|
aTelPrivEdit.SetText( TRIM(aTelPrivEdit.GetText()) );
|
|
aTelCompanyEdit.SetText( TRIM(aTelCompanyEdit.GetText()) );
|
|
aFaxEdit.SetText( TRIM(aFaxEdit.GetText()) );
|
|
aEmailEdit.SetText( TRIM(aEmailEdit.GetText()) );
|
|
|
|
sal_Bool bModified = sal_False;
|
|
bModified |= GetAddress_Impl();
|
|
SvtSaveOptions aSaveOpt;
|
|
if ( aUseDataCB.IsChecked() != aSaveOpt.IsUseUserData() )
|
|
{
|
|
aSaveOpt.SetUseUserData( aUseDataCB.IsChecked() );
|
|
bModified |= sal_True;
|
|
}
|
|
return bModified;
|
|
}
|
|
|
|
//------------------------------------------------------------------------
|
|
|
|
void SvxGeneralTabPage::Reset( const SfxItemSet& rSet )
|
|
{
|
|
SetAddress_Impl();
|
|
|
|
sal_uInt16 nWhich = GetWhich( SID_FIELD_GRABFOCUS );
|
|
if ( rSet.GetItemState( nWhich ) == SFX_ITEM_SET )
|
|
{
|
|
sal_uInt16 nField = ( (SfxUInt16Item&)rSet.Get( nWhich ) ).GetValue();
|
|
|
|
switch ( nField )
|
|
{
|
|
case COMPANY_EDIT: aCompanyEdit.GrabFocus(); break;
|
|
case FIRSTNAME_EDIT: aFirstName.GrabFocus(); break;
|
|
case LASTNAME_EDIT: aName.GrabFocus(); break;
|
|
case STREET_EDIT: aStreetEdit.GrabFocus(); break;
|
|
case COUNTRY_EDIT: aCountryEdit.GrabFocus(); break;
|
|
case PLZ_EDIT:
|
|
if ( aPLZEdit.IsVisible() )
|
|
aPLZEdit.GrabFocus();
|
|
else
|
|
aUsZipEdit.GrabFocus();
|
|
break;
|
|
case CITY_EDIT:
|
|
if ( aCityEdit.IsVisible() )
|
|
aCityEdit.GrabFocus();
|
|
else
|
|
aUsCityEdit.GrabFocus();
|
|
break;
|
|
case STATE_EDIT:
|
|
if ( aUsStateEdit.IsVisible() )
|
|
aUsStateEdit.GrabFocus();
|
|
else
|
|
aCityEdit.GrabFocus();
|
|
break;
|
|
case TITLE_EDIT: aTitleEdit.GrabFocus(); break;
|
|
case POSITION_EDIT: aPositionEdit.GrabFocus(); break;
|
|
case SHORTNAME_EDIT: aShortName.GrabFocus(); break;
|
|
case TELPRIV_EDIT: aTelPrivEdit.GrabFocus(); break;
|
|
case TELCOMPANY_EDIT: aTelCompanyEdit.GrabFocus(); break;
|
|
case FAX_EDIT: aFaxEdit.GrabFocus(); break;
|
|
case EMAIL_EDIT: aEmailEdit.GrabFocus(); break;
|
|
default: aCompanyEdit.GrabFocus();
|
|
}
|
|
}
|
|
|
|
aUseDataCB.Check( SvtSaveOptions().IsUseUserData() );
|
|
}
|
|
|
|
//------------------------------------------------------------------------
|
|
|
|
IMPL_LINK( SvxGeneralTabPage, ModifyHdl_Impl, Edit *, pEdit )
|
|
{
|
|
if ( aShortName.IsEnabled() )
|
|
{
|
|
String aShortStr( aShortName.GetText() );
|
|
switch ( aShortStr.Len() )
|
|
{
|
|
case 0:
|
|
aShortStr = String( RTL_CONSTASCII_STRINGPARAM(" ") );
|
|
break;
|
|
|
|
case 1:
|
|
aShortStr += ' ';
|
|
break;
|
|
}
|
|
|
|
sal_uInt16 nPos = ( pEdit == &aFirstName ) ? 0 : 1;
|
|
String aTxt = pEdit->GetText();
|
|
sal_Unicode cChar = ( aTxt.Len() > 0 ) ? aTxt.GetChar(0) : ' ';
|
|
aShortStr.SetChar( nPos, cChar );
|
|
aShortStr.EraseTrailingChars();
|
|
aShortName.SetText( aShortStr );
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
//------------------------------------------------------------------------
|
|
|
|
sal_Bool SvxGeneralTabPage::GetAddress_Impl()
|
|
{
|
|
sal_Bool bRet =
|
|
( aCompanyEdit.GetSavedValue() != aCompanyEdit.GetText() ||
|
|
aFirstName.GetSavedValue() != aFirstName.GetText() ||
|
|
aFatherName.GetSavedValue() != aFatherName.GetText() ||
|
|
aName.GetSavedValue() != aName.GetText() ||
|
|
aShortName.GetSavedValue() != aShortName.GetText() ||
|
|
aStreetEdit.GetSavedValue() != aStreetEdit.GetText() ||
|
|
aApartmentNrEdit.GetSavedValue() != aApartmentNrEdit.GetText() ||
|
|
aPLZEdit.GetSavedValue() != aPLZEdit.GetText() ||
|
|
aCityEdit.GetSavedValue() != aCityEdit.GetText() ||
|
|
aUsCityEdit.GetSavedValue() != aUsCityEdit.GetText() ||
|
|
aUsStateEdit.GetSavedValue() != aUsStateEdit.GetText() ||
|
|
aUsZipEdit.GetSavedValue() != aUsZipEdit.GetText() ||
|
|
aCountryEdit.GetSavedValue() != aCountryEdit.GetText() ||
|
|
aTitleEdit.GetSavedValue() != aTitleEdit.GetText() ||
|
|
aPositionEdit.GetSavedValue() != aPositionEdit.GetText() ||
|
|
aTelPrivEdit.GetSavedValue() != aTelPrivEdit.GetText() ||
|
|
aTelCompanyEdit.GetSavedValue() != aTelCompanyEdit.GetText() ||
|
|
aFaxEdit.GetSavedValue() != aFaxEdit.GetText() ||
|
|
aEmailEdit.GetSavedValue() != aEmailEdit.GetText() );
|
|
|
|
LanguageType eLang = Application::GetSettings().GetUILanguage();
|
|
sal_Bool bUS = ( LANGUAGE_ENGLISH_US == eLang );
|
|
|
|
SvtUserOptions aUserOpt;
|
|
aUserOpt.SetCompany(aCompanyEdit.GetText());
|
|
aUserOpt.SetFirstName(aFirstName.GetText());
|
|
aUserOpt.SetLastName(aName.GetText());
|
|
aUserOpt.SetID( aShortName.GetText());
|
|
|
|
aUserOpt.SetStreet(aStreetEdit.GetText() );
|
|
|
|
aUserOpt.SetCountry(aCountryEdit.GetText() );
|
|
|
|
aUserOpt.SetZip(bUS ? aUsZipEdit.GetText() : aPLZEdit.GetText() );
|
|
aUserOpt.SetCity(bUS ? aUsCityEdit.GetText() : aCityEdit.GetText() );
|
|
|
|
aUserOpt.SetTitle( aTitleEdit.GetText() );
|
|
aUserOpt.SetPosition(aPositionEdit.GetText() );
|
|
aUserOpt.SetTelephoneHome( aTelPrivEdit.GetText() );
|
|
aUserOpt.SetTelephoneWork( aTelCompanyEdit.GetText() );
|
|
aUserOpt.SetFax( aFaxEdit.GetText() );
|
|
aUserOpt.SetEmail( aEmailEdit.GetText() );
|
|
aUserOpt.SetState( bUS ? aUsStateEdit.GetText() : String() );
|
|
|
|
if ( LANGUAGE_RUSSIAN == eLang )
|
|
{
|
|
aUserOpt.SetFathersName( aFatherName.GetText() );
|
|
aUserOpt.SetApartment( aApartmentNrEdit.GetText() );
|
|
}
|
|
return bRet;
|
|
}
|
|
|
|
//------------------------------------------------------------------------
|
|
|
|
void SvxGeneralTabPage::SetAddress_Impl()
|
|
{
|
|
LanguageType eLang = Application::GetSettings().GetUILanguage();
|
|
sal_Bool bUS = ( LANGUAGE_ENGLISH_US == eLang );
|
|
SvtUserOptions aUserOpt;
|
|
aCompanyEdit.SetText( aUserOpt.GetCompany() );
|
|
if ( aUserOpt.IsTokenReadonly( USER_OPT_COMPANY ) )
|
|
{
|
|
aCompanyLbl.Disable();
|
|
aCompanyEdit.Disable();
|
|
}
|
|
sal_Int16 nEditCount = 0;
|
|
aFirstName.SetText( aUserOpt.GetFirstName() );
|
|
if ( aUserOpt.IsTokenReadonly( USER_OPT_FIRSTNAME ) )
|
|
{
|
|
aFirstName.Disable();
|
|
nEditCount++;
|
|
}
|
|
aName.SetText( aUserOpt.GetLastName() );
|
|
if ( aUserOpt.IsTokenReadonly( USER_OPT_LASTNAME ) )
|
|
{
|
|
aName.Disable();
|
|
nEditCount++;
|
|
}
|
|
aShortName.SetText( aUserOpt.GetID() );
|
|
if ( aUserOpt.IsTokenReadonly( USER_OPT_ID ) )
|
|
{
|
|
aShortName.Disable();
|
|
nEditCount++;
|
|
}
|
|
aNameLbl.Enable( ( nEditCount != 3 ) );
|
|
aStreetEdit.SetText( aUserOpt.GetStreet() );
|
|
if ( aUserOpt.IsTokenReadonly( USER_OPT_STREET ) )
|
|
{
|
|
aStreetLbl.Disable();
|
|
aStreetEdit.Disable();
|
|
}
|
|
Edit* pPLZEdit = bUS ? &aUsZipEdit : &aPLZEdit;
|
|
Edit* pCityEdit = bUS ? &aUsCityEdit : &aCityEdit;
|
|
pPLZEdit->SetText( aUserOpt.GetZip() );
|
|
pCityEdit->SetText( aUserOpt.GetCity() );
|
|
nEditCount = 0;
|
|
if ( aUserOpt.IsTokenReadonly( USER_OPT_ZIP ) )
|
|
{
|
|
pPLZEdit->Disable();
|
|
nEditCount++;
|
|
}
|
|
if ( aUserOpt.IsTokenReadonly( USER_OPT_CITY ) )
|
|
{
|
|
pCityEdit->Disable();
|
|
nEditCount++;
|
|
}
|
|
if ( bUS )
|
|
{
|
|
aUsStateEdit.SetText( aUserOpt.GetState() );
|
|
if ( aUserOpt.IsTokenReadonly( USER_OPT_STATE ) )
|
|
{
|
|
aUsStateEdit.Disable();
|
|
nEditCount++;
|
|
}
|
|
}
|
|
aCityLbl.Enable( ( nEditCount != ( bUS ? 3 : 2 ) ) );
|
|
aCountryEdit.SetText( aUserOpt.GetCountry() );
|
|
if ( aUserOpt.IsTokenReadonly( USER_OPT_COUNTRY ) )
|
|
{
|
|
aCountryLbl.Disable();
|
|
aCountryEdit.Disable();
|
|
}
|
|
aTitleEdit.SetText( aUserOpt.GetTitle() );
|
|
aPositionEdit.SetText( aUserOpt.GetPosition() );
|
|
nEditCount = 0;
|
|
if ( aUserOpt.IsTokenReadonly( USER_OPT_TITLE ) )
|
|
{
|
|
aTitleEdit.Disable();
|
|
nEditCount++;
|
|
}
|
|
if ( aUserOpt.IsTokenReadonly( USER_OPT_POSITION ) )
|
|
{
|
|
aPositionEdit.Disable();
|
|
nEditCount++;
|
|
}
|
|
aTitlePosLbl.Enable( ( nEditCount != 2 ) );
|
|
aTelPrivEdit.SetText( aUserOpt.GetTelephoneHome() );
|
|
aTelCompanyEdit.SetText( aUserOpt.GetTelephoneWork() );
|
|
nEditCount = 0;
|
|
if ( aUserOpt.IsTokenReadonly( USER_OPT_TELEPHONEHOME ) )
|
|
{
|
|
aTelPrivEdit.Disable();
|
|
nEditCount++;
|
|
}
|
|
if ( aUserOpt.IsTokenReadonly( USER_OPT_TELEPHONEWORK ) )
|
|
{
|
|
aTelCompanyEdit.Disable();
|
|
nEditCount++;
|
|
}
|
|
aPhoneLbl.Enable( ( nEditCount != 2 ) );
|
|
aFaxEdit.SetText( aUserOpt.GetFax() );
|
|
aEmailEdit.SetText( aUserOpt.GetEmail() );
|
|
nEditCount = 0;
|
|
if ( aUserOpt.IsTokenReadonly( USER_OPT_FAX ) )
|
|
{
|
|
aFaxEdit.Disable();
|
|
nEditCount++;
|
|
}
|
|
if ( aUserOpt.IsTokenReadonly( USER_OPT_EMAIL ) )
|
|
{
|
|
aEmailEdit.Disable();
|
|
nEditCount++;
|
|
}
|
|
aFaxMailLbl.Enable( ( nEditCount != 2 ) );
|
|
|
|
if ( LANGUAGE_RUSSIAN == eLang )
|
|
{
|
|
aFatherName.SetText( aUserOpt.GetFathersName() );
|
|
aApartmentNrEdit.SetText( aUserOpt.GetApartment() );
|
|
}
|
|
|
|
aCompanyEdit.SaveValue();
|
|
aFirstName.SaveValue();
|
|
aFatherName.SaveValue();
|
|
aName.SaveValue();
|
|
aShortName.SaveValue();
|
|
aStreetEdit.SaveValue();
|
|
aApartmentNrEdit.SaveValue();
|
|
aPLZEdit.SaveValue();
|
|
aCityEdit.SaveValue();
|
|
aUsCityEdit.SaveValue();
|
|
aUsStateEdit.SaveValue();
|
|
aUsZipEdit.SaveValue();
|
|
aCountryEdit.SaveValue();
|
|
aTitleEdit.SaveValue();
|
|
aPositionEdit.SaveValue();
|
|
aTelPrivEdit.SaveValue();
|
|
aTelCompanyEdit.SaveValue();
|
|
aFaxEdit.SaveValue();
|
|
aEmailEdit.SaveValue();
|
|
}
|
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
int SvxGeneralTabPage::DeactivatePage( SfxItemSet* _pSet )
|
|
{
|
|
if ( _pSet )
|
|
FillItemSet( *_pSet );
|
|
return LEAVE_PAGE;
|
|
}
|
|
|