Author: alg Date: Fri Feb 7 16:52:18 2014 New Revision: 1565724 URL: http://svn.apache.org/r1565724 Log: i124197 allow URL Toolbar to send URLs to the app more than once
Modified: openoffice/trunk/main/svx/source/dialog/hyprdlg.hxx openoffice/trunk/main/svx/source/dialog/hyprlink.cxx Modified: openoffice/trunk/main/svx/source/dialog/hyprdlg.hxx URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/dialog/hyprdlg.hxx?rev=1565724&r1=1565723&r2=1565724&view=diff ============================================================================== --- openoffice/trunk/main/svx/source/dialog/hyprdlg.hxx (original) +++ openoffice/trunk/main/svx/source/dialog/hyprdlg.hxx Fri Feb 7 16:52:18 2014 @@ -93,7 +93,6 @@ private: PopupMenu aLinkPopup; PopupMenu *pTargetMenu; sal_Bool bNoDoc; - sal_Bool bSend; sal_Bool bHasOldName; long nMaxWidth; long nMinWidth; Modified: openoffice/trunk/main/svx/source/dialog/hyprlink.cxx URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/dialog/hyprlink.cxx?rev=1565724&r1=1565723&r2=1565724&view=diff ============================================================================== --- openoffice/trunk/main/svx/source/dialog/hyprlink.cxx (original) +++ openoffice/trunk/main/svx/source/dialog/hyprlink.cxx Fri Feb 7 16:52:18 2014 @@ -114,7 +114,6 @@ SvxHyperlinkDlg::SvxHyperlinkDlg( SfxBin pTargetMenu ( NULL ), bNoDoc ( sal_True ), - bSend ( sal_False ), bHasOldName ( sal_False ), bHtmlMode ( sal_False ) @@ -344,8 +343,7 @@ IMPL_LINK( SvxHyperlinkDlg, TBClickHdl, { case BTN_LINK: { - if (!bSend) // Link ins Dokument einfuegen - SendToApp(HLINK_DEFAULT); + SendToApp(HLINK_DEFAULT); } break; @@ -650,12 +648,23 @@ void SvxHyperlinkDlg::EnableLink() void SvxHyperlinkDlg::SendToApp(sal_uInt16 nType) { + static bool bAlreadyWorking(false); + + if(bAlreadyWorking) + { + OSL_ENSURE(false, "SvxHyperlinkDlg::SendToApp called to potentially run recursively, please check (!)"); + return; + } + + bAlreadyWorking = true; sal_Bool bIsFile = sal_False; - bSend = sal_True; String sURL( aUrlCB.GetText() ); if ( !sURL.Len() ) - return; + { + bAlreadyWorking = false; + return; + } String aBase = GetBindings().GetDispatcher()->GetFrame()->GetObjectShell()->GetMedium()->GetBaseURL(); INetURLObject aObj( URIHelper::SmartRel2Abs( INetURLObject(aBase), sURL, URIHelper::GetMaybeFileHdl(), true, false, @@ -674,7 +683,10 @@ void SvxHyperlinkDlg::SendToApp(sal_uInt LeaveWait(); QueryBox aBox( this, SVX_RES( RID_SVXQB_DONTEXIST ) ); if ( aBox.Execute() == RET_NO ) + { + bAlreadyWorking = false; return; + } } else LeaveWait(); @@ -700,6 +712,8 @@ void SvxHyperlinkDlg::SendToApp(sal_uInt if ( sURL != aUrlCB.GetText() ) aUrlCB.SetText( sURL ); + + bAlreadyWorking = false; } /*--------------------------------------------------------------------