diff options
Diffstat (limited to 'svx/source/cui/hlinettp.cxx')
-rw-r--r-- | svx/source/cui/hlinettp.cxx | 550 |
1 files changed, 0 insertions, 550 deletions
diff --git a/svx/source/cui/hlinettp.cxx b/svx/source/cui/hlinettp.cxx deleted file mode 100644 index 218cc73d8a82..000000000000 --- a/svx/source/cui/hlinettp.cxx +++ /dev/null @@ -1,550 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * $RCSfile: hlinettp.cxx,v $ - * $Revision: 1.30 $ - * - * 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_svx.hxx" - -#ifdef SVX_DLLIMPLEMENTATION -#undef SVX_DLLIMPLEMENTATION -#endif -#include <svtools/adrparse.hxx> -#include <svtools/pathoptions.hxx> -#include <svtools/useroptions.hxx> - -#include "hlinettp.hxx" -#include "hyperdlg.hrc" -#include "hlmarkwn_def.hxx" //ADD CHINA001 - -#define STD_DOC_SUBPATH "internal" -#define STD_DOC_NAME "url_transfer.htm" - -sal_Char __READONLY_DATA sAnonymous[] = "anonymous"; -sal_Char __READONLY_DATA sHTTPScheme[] = INET_HTTP_SCHEME; -sal_Char __READONLY_DATA sHTTPSScheme[] = INET_HTTPS_SCHEME; -sal_Char __READONLY_DATA sFTPScheme[] = INET_FTP_SCHEME; -sal_Char __READONLY_DATA sTelnetScheme[] = INET_TELNET_SCHEME; - -/************************************************************************* -|* -|* Contructor / Destructor -|* -|************************************************************************/ - -SvxHyperlinkInternetTp::SvxHyperlinkInternetTp ( Window *pParent, - const SfxItemSet& rItemSet) -: SvxHyperlinkTabPageBase ( pParent, SVX_RES( RID_SVXPAGE_HYPERLINK_INTERNET ), - rItemSet ) , - maGrpLinkTyp ( this, SVX_RES (GRP_LINKTYPE) ), - maRbtLinktypInternet ( this, SVX_RES (RB_LINKTYP_INTERNET) ), - maRbtLinktypFTP ( this, SVX_RES (RB_LINKTYP_FTP) ), - maRbtLinktypTelnet ( this, SVX_RES (RB_LINKTYP_TELNET) ), - maFtTarget ( this, SVX_RES (FT_TARGET_HTML) ), - maCbbTarget ( this, INET_PROT_HTTP ), - maFtLogin ( this, SVX_RES (FT_LOGIN) ), - maEdLogin ( this, SVX_RES (ED_LOGIN) ), - maFtPassword ( this, SVX_RES (FT_PASSWD) ), - maEdPassword ( this, SVX_RES (ED_PASSWD) ), - maCbAnonymous ( this, SVX_RES (CBX_ANONYMOUS) ), - maBtBrowse ( this, SVX_RES (BTN_BROWSE) ), - maBtTarget ( this, SVX_RES (BTN_TARGET) ), - mbMarkWndOpen ( FALSE ) -{ - // Set HC bitmaps and display display of bitmap names. - maBtBrowse.SetModeImage( Image( SVX_RES( IMG_BROWSE_HC ) ), BMP_COLOR_HIGHCONTRAST ); - maBtBrowse.EnableTextDisplay (FALSE); - maBtTarget.SetModeImage( Image( SVX_RES( IMG_TARGET_HC ) ), BMP_COLOR_HIGHCONTRAST ); - maBtTarget.EnableTextDisplay (FALSE); - - InitStdControls(); - FreeResource(); - - // Init URL-Box (pos&size, Open-Handler) - maCbbTarget.SetPosSizePixel ( LogicToPixel( Point( COL_2, 25 ), MAP_APPFONT ), - LogicToPixel( Size ( 176 - COL_DIFF, 60), MAP_APPFONT ) ); - maCbbTarget.Show(); - maCbbTarget.SetHelpId( HID_HYPERDLG_INET_PATH ); - - // Find Path to Std-Doc - String aStrBasePaths( SvtPathOptions().GetTemplatePath() ); - for( xub_StrLen n = 0; n < aStrBasePaths.GetTokenCount(); n++ ) - { - INetURLObject aURL( aStrBasePaths.GetToken( n ) ); - aURL.Append( UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( STD_DOC_SUBPATH ) ) ); - aURL.Append( UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( STD_DOC_NAME ) ) ); - if ( FileExists( aURL ) ) - { - maStrStdDocURL = aURL.GetMainURL( INetURLObject::NO_DECODE ); - break; - } - } - SetExchangeSupport (); - - /////////////////////////////////////// - // set defaults - maRbtLinktypInternet.Check (); - maFtLogin.Show( FALSE ); - maFtPassword.Show( FALSE ); - maEdLogin.Show( FALSE ); - maEdPassword.Show( FALSE ); - maCbAnonymous.Show( FALSE ); - maBtTarget.Enable( FALSE ); - maBtBrowse.Enable( maStrStdDocURL != aEmptyStr ); - - /////////////////////////////////////// - // overload handlers - Link aLink( LINK ( this, SvxHyperlinkInternetTp, Click_SmartProtocol_Impl ) ); - maRbtLinktypInternet.SetClickHdl( aLink ); - maRbtLinktypFTP.SetClickHdl ( aLink ); - maRbtLinktypTelnet.SetClickHdl ( aLink ); - maCbAnonymous.SetClickHdl ( LINK ( this, SvxHyperlinkInternetTp, ClickAnonymousHdl_Impl ) ); - maBtBrowse.SetClickHdl ( LINK ( this, SvxHyperlinkInternetTp, ClickBrowseHdl_Impl ) ); - maBtTarget.SetClickHdl ( LINK ( this, SvxHyperlinkInternetTp, ClickTargetHdl_Impl ) ); - maEdLogin.SetModifyHdl ( LINK ( this, SvxHyperlinkInternetTp, ModifiedLoginHdl_Impl ) ); - maCbbTarget.SetLoseFocusHdl ( LINK ( this, SvxHyperlinkInternetTp, LostFocusTargetHdl_Impl ) ); - maCbbTarget.SetModifyHdl ( LINK ( this, SvxHyperlinkInternetTp, ModifiedTargetHdl_Impl ) ); - maTimer.SetTimeoutHdl ( LINK ( this, SvxHyperlinkInternetTp, TimeoutHdl_Impl ) ); -} - -SvxHyperlinkInternetTp::~SvxHyperlinkInternetTp () -{ -} - -/************************************************************************* -|* -|* Fill the all dialog-controls except controls in groupbox "more..." -|* -|************************************************************************/ - -void SvxHyperlinkInternetTp::FillDlgFields ( String& aStrURL ) -{ - INetURLObject aURL( aStrURL ); - String aStrScheme = GetSchemeFromURL( aStrURL ); - - // set additional controls for FTP: Username / Password - if ( aStrScheme.SearchAscii( sFTPScheme ) == 0 ) - { - if ( String(aURL.GetUser()).ToLowerAscii().SearchAscii ( sAnonymous ) == 0 ) - setAnonymousFTPUser(); - else - setFTPUser(aURL.GetUser(), aURL.GetPass()); - - //do not show password and user in url - if(aURL.GetUser().getLength()!=0 || aURL.GetPass().getLength()!=0 ) - aURL.SetUserAndPass(aEmptyStr,aEmptyStr); - } - - // set URL-field - // Show the scheme, #72740 - if ( aURL.GetProtocol() != INET_PROT_NOT_VALID ) - maCbbTarget.SetText( aURL.GetMainURL( INetURLObject::DECODE_UNAMBIGUOUS ) ); - else - maCbbTarget.SetText( aStrURL ); // #77696# - - SetScheme( aStrScheme ); -} - -void SvxHyperlinkInternetTp::setAnonymousFTPUser() -{ - maEdLogin.SetText( UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM ( sAnonymous ) ) ); - SvAddressParser aAddress( SvtUserOptions().GetEmail() ); - maEdPassword.SetText( aAddress.Count() ? aAddress.GetEmailAddress(0) : String() ); - - maFtLogin.Disable (); - maFtPassword.Disable (); - maEdLogin.Disable (); - maEdPassword.Disable (); - maCbAnonymous.Check(); -} - -void SvxHyperlinkInternetTp::setFTPUser(const String& rUser, const String& rPassword) -{ - maEdLogin.SetText ( rUser ); - maEdPassword.SetText ( rPassword ); - - maFtLogin.Enable (); - maFtPassword.Enable (); - maEdLogin.Enable (); - maEdPassword.Enable (); - maCbAnonymous.Check(FALSE); -} - -/************************************************************************* -|* -|* retrieve and prepare data from dialog-fields -|* -|************************************************************************/ - -void SvxHyperlinkInternetTp::GetCurentItemData ( String& aStrURL, String& aStrName, - String& aStrIntName, String& aStrFrame, - SvxLinkInsertMode& eMode ) -{ - aStrURL = CreateAbsoluteURL(); - GetDataFromCommonFields( aStrName, aStrIntName, aStrFrame, eMode ); -} - -String SvxHyperlinkInternetTp::CreateAbsoluteURL() const -{ - String aStrURL = maCbbTarget.GetText(); - String aScheme = GetSchemeFromURL(aStrURL); - - INetURLObject aURL(aStrURL); - - if( aURL.GetProtocol() == INET_PROT_NOT_VALID ) - { - aURL.SetSmartProtocol( GetSmartProtocolFromButtons() ); - aURL.SetSmartURL(aStrURL); - } - - // username and password for ftp-url - if( aURL.GetProtocol() == INET_PROT_FTP && maEdLogin.GetText().Len()!=0 ) - aURL.SetUserAndPass ( maEdLogin.GetText(), maEdPassword.GetText() ); - - if ( aURL.GetProtocol() != INET_PROT_NOT_VALID ) - return aURL.GetMainURL( INetURLObject::DECODE_WITH_CHARSET ); - else //#105788# always create a URL even if it is not valid - return aStrURL; -} - -/************************************************************************* -|* -|* static method to create Tabpage -|* -|************************************************************************/ - -IconChoicePage* SvxHyperlinkInternetTp::Create( Window* pWindow, const SfxItemSet& rItemSet ) -{ - return( new SvxHyperlinkInternetTp( pWindow, rItemSet ) ); -} - -/************************************************************************* -|* -|* Set initial focus -|* -|************************************************************************/ - -void SvxHyperlinkInternetTp::SetInitFocus() -{ - maCbbTarget.GrabFocus(); -} - -/************************************************************************* -|* -|* Contens of editfield "Taregt" modified -|* -|************************************************************************/ - -IMPL_LINK ( SvxHyperlinkInternetTp, ModifiedTargetHdl_Impl, void *, EMPTYARG ) -{ - String aScheme = GetSchemeFromURL( maCbbTarget.GetText() ); - if(aScheme.Len()!=0) - SetScheme( aScheme ); - - // start timer - maTimer.SetTimeout( 2500 ); - maTimer.Start(); - - return( 0L ); -} - -/************************************************************************* -|* -|* If target-field was modify, to browse the new doc afeter timeout -|* -|************************************************************************/ - -IMPL_LINK ( SvxHyperlinkInternetTp, TimeoutHdl_Impl, Timer *, EMPTYARG ) -{ - RefreshMarkWindow(); - return( 0L ); -} - -/************************************************************************* -|* -|* Contens of editfield "Login" modified -|* -|************************************************************************/ - -IMPL_LINK ( SvxHyperlinkInternetTp, ModifiedLoginHdl_Impl, void *, EMPTYARG ) -{ - String aStrLogin ( maEdLogin.GetText() ); - if ( aStrLogin.EqualsIgnoreCaseAscii( sAnonymous ) ) - { - maCbAnonymous.Check(); - ClickAnonymousHdl_Impl(NULL); - } - - return( 0L ); -} - -/************************************************************************* -|************************************************************************/ - -void SvxHyperlinkInternetTp::SetScheme( const String& aScheme ) -{ - //if aScheme is empty or unknown the default beaviour is like it where HTTP - - BOOL bFTP = aScheme.SearchAscii( sFTPScheme ) == 0; - BOOL bTelnet = FALSE; - if( !bFTP ) - bTelnet = aScheme.SearchAscii( sTelnetScheme ) == 0; - BOOL bInternet = !(bFTP || bTelnet); - - //update protocol button selection: - maRbtLinktypFTP.Check(bFTP); - maRbtLinktypTelnet.Check(bTelnet); - maRbtLinktypInternet.Check(bInternet); - - //update target: - RemoveImproperProtocol(aScheme); - maCbbTarget.SetSmartProtocol( GetSmartProtocolFromButtons() ); - - //show/hide special fields for FTP: - maFtLogin.Show( bFTP ); - maFtPassword.Show( bFTP ); - maEdLogin.Show( bFTP ); - maEdPassword.Show( bFTP ); - maCbAnonymous.Show( bFTP ); - - //update 'link target in document'-window and opening-button - if( aScheme.SearchAscii( sHTTPScheme ) == 0 || aScheme.Len() == 0 ) - { - maBtTarget.Enable(); - if ( mbMarkWndOpen ) - ShowMarkWnd (); - } - else - { - //disable for https, ftp and telnet - maBtTarget.Disable(); - if ( mbMarkWndOpen ) - HideMarkWnd (); - } -} - -/************************************************************************* -|* -|* Remove protocol if it does not fit to the current button selection -|* -|************************************************************************/ - -void SvxHyperlinkInternetTp::RemoveImproperProtocol(const String& aProperScheme) -{ - String aStrURL ( maCbbTarget.GetText() ); - if ( aStrURL != aEmptyStr ) - { - String aStrScheme = GetSchemeFromURL( aStrURL ); - if ( aStrScheme != aEmptyStr && aStrScheme != aProperScheme ) - { - aStrURL.Erase ( 0, aStrScheme.Len() ); - maCbbTarget.SetText ( aStrURL ); - } - } -} - -String SvxHyperlinkInternetTp::GetSchemeFromButtons() const -{ - if( maRbtLinktypFTP.IsChecked() ) - { - return String::CreateFromAscii( INET_FTP_SCHEME ); - } - else if( maRbtLinktypTelnet.IsChecked() ) - { - return String::CreateFromAscii( INET_TELNET_SCHEME ); - } - return String::CreateFromAscii( INET_HTTP_SCHEME ); -} - -INetProtocol SvxHyperlinkInternetTp::GetSmartProtocolFromButtons() const -{ - if( maRbtLinktypFTP.IsChecked() ) - { - return INET_PROT_FTP; - } - else if( maRbtLinktypTelnet.IsChecked() ) - { - return INET_PROT_TELNET; - } - return INET_PROT_HTTP; -} - -/************************************************************************* -|* -|* Click on Radiobutton : Internet, FTP or Telnet -|* -|************************************************************************/ - -IMPL_LINK ( SvxHyperlinkInternetTp, Click_SmartProtocol_Impl, void*, EMPTYARG ) -{ - String aScheme = GetSchemeFromButtons(); - SetScheme( aScheme ); - return( 0L ); -} - -/************************************************************************* -|* -|* Click on Checkbox : Anonymous user -|* -|************************************************************************/ - -IMPL_LINK ( SvxHyperlinkInternetTp, ClickAnonymousHdl_Impl, void *, EMPTYARG ) -{ - // disable login-editfields if checked - if ( maCbAnonymous.IsChecked() ) - { - if ( maEdLogin.GetText().ToLowerAscii().SearchAscii ( sAnonymous ) == 0 ) - { - maStrOldUser = aEmptyStr; - maStrOldPassword = aEmptyStr; - } - else - { - maStrOldUser = maEdLogin.GetText(); - maStrOldPassword = maEdPassword.GetText(); - } - - setAnonymousFTPUser(); - } - else - setFTPUser(maStrOldUser, maStrOldPassword); - - return( 0L ); -} - -/************************************************************************* -|* -|* Combobox Target lost the focus -|* -|************************************************************************/ - -IMPL_LINK ( SvxHyperlinkInternetTp, LostFocusTargetHdl_Impl, void *, EMPTYARG ) -{ - RefreshMarkWindow(); - return (0L); -} - -/************************************************************************* -|* -|* Click on imagebutton : Browse -|* -|************************************************************************/ - -IMPL_LINK ( SvxHyperlinkInternetTp, ClickBrowseHdl_Impl, void *, EMPTYARG ) -{ - ///////////////////////////////////////////////// - // Open URL if available - - SfxStringItem aName( SID_FILE_NAME, maStrStdDocURL ); - SfxStringItem aRefererItem( SID_REFERER, UniString::CreateFromAscii( - RTL_CONSTASCII_STRINGPARAM( "private:user" ) ) ); - SfxBoolItem aNewView( SID_OPEN_NEW_VIEW, TRUE ); - SfxBoolItem aSilent( SID_SILENT, TRUE ); - SfxBoolItem aReadOnly( SID_DOC_READONLY, TRUE ); - - SfxBoolItem aBrowse( SID_BROWSE, TRUE ); - - const SfxPoolItem *ppItems[] = { &aName, &aNewView, &aSilent, &aReadOnly, &aRefererItem, &aBrowse, NULL }; - (((SvxHpLinkDlg*)mpDialog)->GetBindings())->Execute( SID_OPENDOC, ppItems, 0, SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD ); - - return( 0L ); -} - -/************************************************************************* -|* -|* Click on imagebutton : Target -|* -|************************************************************************/ - -IMPL_LINK ( SvxHyperlinkInternetTp, ClickTargetHdl_Impl, void *, EMPTYARG ) -{ - RefreshMarkWindow(); - ShowMarkWnd (); - mbMarkWndOpen = IsMarkWndVisible (); - - return( 0L ); -} - -void SvxHyperlinkInternetTp::RefreshMarkWindow() -{ - if ( maRbtLinktypInternet.IsChecked() && IsMarkWndVisible() ) - { - EnterWait(); - String aStrURL( CreateAbsoluteURL() ); - if ( aStrURL != aEmptyStr ) - mpMarkWnd->RefreshTree ( aStrURL ); - else - mpMarkWnd->SetError( LERR_DOCNOTOPEN ); - LeaveWait(); - } - -} - -/************************************************************************* -|* -|* Get String from Bookmark-Wnd -|* -|************************************************************************/ - -void SvxHyperlinkInternetTp::SetMarkStr ( String& aStrMark ) -{ - String aStrURL ( maCbbTarget.GetText() ); - - const sal_Unicode sUHash = '#'; - xub_StrLen nPos = aStrURL.SearchBackward( sUHash ); - - if( nPos != STRING_NOTFOUND ) - aStrURL.Erase ( nPos ); - - aStrURL += sUHash; - aStrURL += aStrMark; - - maCbbTarget.SetText ( aStrURL ); -} - -/************************************************************************* -|* -|* Enable Browse-Button in subject to the office is in onlinemode -|* -|************************************************************************/ - -void SvxHyperlinkInternetTp::SetOnlineMode( BOOL /*bEnable*/ ) -{ - // State of target-button in subject to the current url-string - // ( Can't display any targets in an document, if there is no - // valid url to a document ) - String aStrCurrentTarget( maCbbTarget.GetText() ); - aStrCurrentTarget.EraseTrailingChars(); - - if( aStrCurrentTarget == aEmptyStr || - aStrCurrentTarget.EqualsIgnoreCaseAscii( sHTTPScheme ) || - aStrCurrentTarget.EqualsIgnoreCaseAscii( sHTTPSScheme ) ) - maBtTarget.Enable( FALSE ); - else - maBtTarget.Enable( TRUE ); -} |