diff options
author | Ahmed ElShreif <aelshreif7@gmail.com> | 2020-06-22 11:15:56 +0200 |
---|---|---|
committer | Ahmed ElShreif <aelshreif7@gmail.com> | 2020-07-08 16:46:46 +0200 |
commit | e1690504c27081ff5b212f20a80468a1c703c09a (patch) | |
tree | 00a7bb5d472799e63c125a717de3ab15c50d485d /sc | |
parent | b55031ec4e15b085a6eca581a46f229187c93afa (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.hxx | 2 | ||||
-rw-r--r-- | sc/source/ui/uitest/uiobject.cxx | 41 |
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(); |