summaryrefslogtreecommitdiff
path: root/sc/source
diff options
context:
space:
mode:
authorPranav Kant <pranavk@collabora.co.uk>2017-03-16 13:07:21 +0530
committerpranavk <pranavk@collabora.co.uk>2017-03-16 11:12:40 +0000
commit055d8821e664446b7e66b73970a324f765e35f9c (patch)
tree28f2b3b1c76a216082215cf285dc7861a8b1cb1a /sc/source
parent2237f08812f6075d529f4bee9d8bef94f653948a (diff)
sc lok: Edit annotation by id
Change-Id: Iaea08b7a31fab1a8c9b8edc193754821c6608c53 Reviewed-on: https://gerrit.libreoffice.org/35249 Reviewed-by: pranavk <pranavk@collabora.co.uk> Tested-by: pranavk <pranavk@collabora.co.uk>
Diffstat (limited to 'sc/source')
-rw-r--r--sc/source/ui/view/cellsh.cxx6
-rw-r--r--sc/source/ui/view/cellsh1.cxx21
2 files changed, 24 insertions, 3 deletions
diff --git a/sc/source/ui/view/cellsh.cxx b/sc/source/ui/view/cellsh.cxx
index c82c3808e66c..0e3d1301bfc9 100644
--- a/sc/source/ui/view/cellsh.cxx
+++ b/sc/source/ui/view/cellsh.cxx
@@ -19,6 +19,7 @@
#include "scitems.hxx"
+#include <comphelper/lok.hxx>
#include <svl/slstitm.hxx>
#include <svl/stritem.hxx>
#include <svl/whiter.hxx>
@@ -312,7 +313,7 @@ void ScCellShell::GetCellState( SfxItemSet& rSet )
ScDocument& rDoc = GetViewData()->GetDocShell()->GetDocument();
ScAddress aCursor( GetViewData()->GetCurX(), GetViewData()->GetCurY(),
GetViewData()->GetTabNo() );
-
+ bool isLOKNoTiledAnnotations = comphelper::LibreOfficeKit::isActive() && !comphelper::LibreOfficeKit::isTiledAnnotations();
SfxWhichIter aIter(rSet);
sal_uInt16 nWhich = aIter.FirstWhich();
while ( nWhich )
@@ -371,7 +372,8 @@ void ScCellShell::GetCellState( SfxItemSet& rSet )
case SID_EDIT_POSTIT:
{
ScAddress aPos( GetViewData()->GetCurX(), GetViewData()->GetCurY(), GetViewData()->GetTabNo() );
- if( rDoc.GetNote(aPos) )
+ // Allow editing annotation by Id (without selecting the cell) for LOK
+ if( isLOKNoTiledAnnotations || rDoc.GetNote(aPos) )
{
bDisable = false;
}
diff --git a/sc/source/ui/view/cellsh1.cxx b/sc/source/ui/view/cellsh1.cxx
index a836749b3fbe..6f34b75b5f4c 100644
--- a/sc/source/ui/view/cellsh1.cxx
+++ b/sc/source/ui/view/cellsh1.cxx
@@ -2201,10 +2201,29 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
const SfxPoolItem* pText;
if ( pReqArgs && pReqArgs->HasItem( SID_ATTR_POSTIT_TEXT, &pText) )
{
+ const SfxPoolItem* pCellId;
+ OUString aCellId;
+ // SID_ATTR_POSTIT_ID only argument for SID_EDIT_POSTIT
+ if (pReqArgs->HasItem( SID_ATTR_POSTIT_ID, &pCellId ))
+ aCellId = static_cast<const SvxPostItIdItem*>(pCellId)->GetValue();
+
const SvxPostItTextItem* pTextItem = static_cast<const SvxPostItTextItem*>( pText );
- const SvxPostItAuthorItem* pAuthorItem = static_cast<const SvxPostItAuthorItem*>( pReqArgs->GetItem( SID_ATTR_POSTIT_AUTHOR) );
+ const SvxPostItAuthorItem* pAuthorItem = static_cast<const SvxPostItAuthorItem*>( pReqArgs->GetItem( SID_ATTR_POSTIT_AUTHOR ) );
const SvxPostItDateItem* pDateItem = static_cast<const SvxPostItDateItem*>( pReqArgs->GetItem( SID_ATTR_POSTIT_DATE ) );
+ if (!aCellId.isEmpty())
+ {
+ ScAddress aParsedPos;
+ ScRefFlags nRes = aParsedPos.Parse(aCellId,
+ GetViewData()->GetDocument(),
+ ScAddress::Details(formula::FormulaGrammar::AddressConvention::CONV_ODF));
+ if (nRes & ScRefFlags::VALID)
+ {
+ pTabViewShell->SetTabNo(aParsedPos.Tab());
+ pTabViewShell->SetCursor(aParsedPos.Col(), aParsedPos.Row());
+ }
+ }
+
ScAddress aPos( GetViewData()->GetCurX(), GetViewData()->GetCurY(), GetViewData()->GetTabNo() );
pTabViewShell->ReplaceNote( aPos, pTextItem->GetValue(),
pAuthorItem ? &pAuthorItem->GetValue() : nullptr,