You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by al...@apache.org on 2014/02/07 17:52:19 UTC

svn commit: r1565724 - in /openoffice/trunk/main/svx/source/dialog: hyprdlg.hxx hyprlink.cxx

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;
 }
 
 /*--------------------------------------------------------------------