summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorAhmed ElShreif <aelshreif7@gmail.com>2020-06-22 11:15:56 +0200
committerAhmed ElShreif <aelshreif7@gmail.com>2020-07-08 16:46:46 +0200
commite1690504c27081ff5b212f20a80468a1c703c09a (patch)
tree00a7bb5d472799e63c125a717de3ab15c50d485d /sc
parentb55031ec4e15b085a6eca581a46f229187c93afa (diff)
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@gmail.com> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Diffstat (limited to 'sc')
-rw-r--r--sc/source/ui/inc/uiobject.hxx2
-rw-r--r--sc/source/ui/uitest/uiobject.cxx41
2 files changed, 43 insertions, 0 deletions
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();