[Libreoffice-commits] core.git: sc/source

Ahmed ElShreif (via logerrit) logerrit at kemper.freedesktop.org
Wed Jul 8 14:47:33 UTC 2020


 sc/source/ui/inc/uiobject.hxx    |    2 +
 sc/source/ui/uitest/uiobject.cxx |   41 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+)

New commits:
commit e1690504c27081ff5b212f20a80468a1c703c09a
Author:     Ahmed ElShreif <aelshreif7 at gmail.com>
AuthorDate: Mon Jun 22 11:15:56 2020 +0200
Commit:     Ahmed ElShreif <aelshreif7 at gmail.com>
CommitDate: Wed Jul 8 16:46:46 2020 +0200

    uitest : Add support to Calc - comments
    
    This patch has the implementation of the support for Calc comments .
    
    Now you can use these lines to use comments in calc:
    
            * Open Comment Window :
            >>  gridwin.executeAction("COMMENT",mkPropertyValues({"OPEN":""}))
    
            * Then Type text as normal :
            >>  gridwin.executeAction("TYPE",mkPropertyValues({"TEXT":"any"}))
    
            * Close Comment Window :
            >>  gridwin.executeAction("COMMENT",mkPropertyValues({"CLOSE":""}))
    
            * Write Comment without opening comment window:
            >>  gridwin.executeAction("COMMENT",mkPropertyValues({"SETTEXT":"any"}))
    
    You can also check the comment text by this line:
            >>  get_state_as_dict(gridwind)["CurrentCellCommentText"]
    
    I will provide a test case in another patch.
    
    Change-Id: Ie3fc4efffb07827e742bdaa99dd5147c8b9711d3
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96837
    Tested-by: Jenkins
    Reviewed-by: Ahmed ElShreif <aelshreif7 at gmail.com>
    Reviewed-by: Markus Mohrhard <markus.mohrhard at googlemail.com>

diff --git a/sc/source/ui/inc/uiobject.hxx b/sc/source/ui/inc/uiobject.hxx
index 3f92943293f2..827c2f1b5c07 100644
--- a/sc/source/ui/inc/uiobject.hxx
+++ b/sc/source/ui/inc/uiobject.hxx
@@ -14,6 +14,7 @@ class ScGridWindow;
 class ScDBFunc;
 class ScDrawView;
 class ScTabViewShell;
+class ScViewFunc;
 
 class ScGridWinUIObject : public WindowUIObject
 {
@@ -43,6 +44,7 @@ private:
     ScDBFunc* getDBFunc();
     ScDrawView* getDrawView();
     ScTabViewShell* getViewShell();
+    ScViewFunc* getViewFunc();
 };
 
 class ScNavigatorDlg;
diff --git a/sc/source/ui/uitest/uiobject.cxx b/sc/source/ui/uitest/uiobject.cxx
index df62ab45881d..ec1b777ebfc5 100644
--- a/sc/source/ui/uitest/uiobject.cxx
+++ b/sc/source/ui/uitest/uiobject.cxx
@@ -14,14 +14,18 @@
 #include <gridwin.hxx>
 
 #include <viewdata.hxx>
+#include <viewfunc.hxx>
 #include <dbfunc.hxx>
 #include <tabvwsh.hxx>
 #include <drwlayer.hxx>
 #include <navipi.hxx>
 #include <sfx2/sidebar/Sidebar.hxx>
 #include <sfx2/viewfrm.hxx>
+#include <sfx2/dispatch.hxx>
 #include <appoptio.hxx>
 #include <scmod.hxx>
+#include <fudraw.hxx>
+#include <postit.hxx>
 
 #include <svx/svditer.hxx>
 #include <svx/svdobj.hxx>
@@ -75,6 +79,13 @@ StringMap ScGridWinUIObject::get_state()
 
     aMap["MarkedArea"] = aMarkedAreaString;
 
+    ScDocument* pDoc = mxGridWindow->getViewData()->GetDocument();
+    ScAddress aPos( mxGridWindow->getViewData()->GetCurX() , mxGridWindow->getViewData()->GetCurY() , mxGridWindow->getViewData()->GetTabNo() );
+    if ( pDoc->HasNote( aPos ) )
+    {
+        aMap["CurrentCellCommentText"] = pDoc->GetNote( aPos )->GetText();
+    }
+
     ScAppOptions aOpt = SC_MOD()->GetAppOptions();
     aMap["Zoom"] = OUString::number( aOpt.GetZoom() );
     return aMap;
@@ -104,6 +115,14 @@ ScTabViewShell* ScGridWinUIObject::getViewShell()
     return pViewShell;
 }
 
+ScViewFunc* ScGridWinUIObject::getViewFunc()
+{
+    ScViewData* pViewData = mxGridWindow->getViewData();
+    ScViewFunc* pViewFunc = pViewData->GetView();
+
+    return pViewFunc;
+}
+
 void ScGridWinUIObject::execute(const OUString& rAction,
         const StringMap& rParameters)
 {
@@ -231,6 +250,28 @@ void ScGridWinUIObject::execute(const OUString& rAction,
             mxGridWindow->LaunchDataSelectMenu(nCol, nRow);
         }
     }
+    else if (rAction == "COMMENT")
+    {
+        if ( rParameters.find("OPEN") != rParameters.end() )
+        {
+            ScViewFunc* pViewFunc = getViewFunc();
+            pViewFunc->EditNote();
+        }
+        else if ( rParameters.find("CLOSE") != rParameters.end() )
+        {
+            FuDraw* pDraw = dynamic_cast<FuDraw*> (getViewFunc()->GetDrawFuncPtr());
+            ScViewData* pViewData = mxGridWindow->getViewData();
+            pViewData->GetDispatcher().Execute( pDraw->GetSlotID() , SfxCallMode::SLOT | SfxCallMode::RECORD );
+        }
+        else if ( rParameters.find("SETTEXT") != rParameters.end() )
+        {
+            auto itr = rParameters.find("SETTEXT");
+            const OUString rStr = itr->second;
+            ScDocument* pDoc = mxGridWindow->getViewData()->GetDocument();
+            ScAddress aPos( mxGridWindow->getViewData()->GetCurX() , mxGridWindow->getViewData()->GetCurY() , mxGridWindow->getViewData()->GetTabNo() );
+            pDoc->GetOrCreateNote( aPos )->SetText( aPos , rStr );
+        }
+    }
     else if (rAction == "SIDEBAR")
     {
         SfxViewFrame* pViewFrm = SfxViewFrame::Current();


More information about the Libreoffice-commits mailing list