sc/source/ui/inc/gridwin.hxx   |    5 ++---
 sc/source/ui/unoobj/docuno.cxx |   16 ++++++++++++++--
 2 files changed, 16 insertions(+), 5 deletions(-)

New commits:
commit be01dd78c47b51b19603a6259504e29b11979b0b
Author:     Gökay Şatır <gokay.sa...@collabora.com>
AuthorDate: Mon Jan 15 17:17:33 2024 +0300
Commit:     Miklos Vajna <vmik...@collabora.com>
CommitDate: Tue Jan 16 09:01:35 2024 +0100

    Implement hyperlinkInfoAtPosition function for Calc.
    
    Move getEditURL function to public.
    When in readonly mode, we need a way to get the hyperlink info (if any) 
when user
    clicks on a certain coordinate.
    
    Signed-off-by: Gökay Şatır <gokay.sa...@collabora.com>
    Change-Id: I2329b3569cfdca91f64cbdb46f43a3a9c34706c4
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162111
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Miklos Vajna <vmik...@collabora.com>

diff --git a/sc/source/ui/inc/gridwin.hxx b/sc/source/ui/inc/gridwin.hxx
index 8d5dcc08696f..773cb3a1eac3 100644
--- a/sc/source/ui/inc/gridwin.hxx
+++ b/sc/source/ui/inc/gridwin.hxx
@@ -291,9 +291,6 @@ class SAL_DLLPUBLIC_RTTI ScGridWindow : public 
vcl::DocWindow, public DropTarget
     void            DrawHiddenIndicator( SCCOL nX1, SCROW nY1, SCCOL nX2, 
SCROW nY2, vcl::RenderContext& rRenderContext);
     void            DrawPagePreview( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW 
nY2, vcl::RenderContext& rRenderContext);
 
-    bool            GetEditUrl( const Point& rPos,
-                                OUString* pName=nullptr, OUString* 
pUrl=nullptr, OUString* pTarget=nullptr );
-
     bool            HitRangeFinder( const Point& rMouse, RfCorner& rCorner, 
sal_uInt16* pIndex,
                                     SCCOL* pAddX, SCROW* pAddY );
 
@@ -390,6 +387,8 @@ public:
     /// Get the cell selection, coordinates are in logic units.
     void GetCellSelection(std::vector<tools::Rectangle>& rLogicRects);
 
+    bool GetEditUrl( const Point& rPos, OUString* pName=nullptr, OUString* 
pUrl=nullptr, OUString* pTarget=nullptr );
+
     virtual css::uno::Reference< css::accessibility::XAccessible > 
CreateAccessible() override;
 
     void            FakeButtonUp();
diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx
index 83db29153bca..593ff4bba5a6 100644
--- a/sc/source/ui/unoobj/docuno.cxx
+++ b/sc/source/ui/unoobj/docuno.cxx
@@ -891,9 +891,21 @@ void ScModelObj::setTextSelection(int nType, int nX, int 
nY)
     }
 }
 
-OUString ScModelObj::hyperlinkInfoAtPosition(int /*x*/, int /*y*/)
+OUString ScModelObj::hyperlinkInfoAtPosition(int x, int y)
 {
-    // To be implemented..
+    if (ScViewData* pViewData = ScDocShell::GetViewData())
+    {
+        ScGridWindow* pGridWindow = pViewData->GetActiveWin();
+        if (pGridWindow)
+        {
+            const Point point(x, y);
+            OUString name;
+            OUString url;
+            pGridWindow->GetEditUrl(point, &name, &url);
+            return url;
+        }
+    }
+
     return OUString();
 }
 

Reply via email to