summaryrefslogtreecommitdiff
path: root/svx/source/cui/hlinettp.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svx/source/cui/hlinettp.cxx')
-rw-r--r--svx/source/cui/hlinettp.cxx550
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 177affd720..0000000000
--- 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 );
-}