summaryrefslogtreecommitdiff
path: root/sw/source
diff options
context:
space:
mode:
authorPranam Lashkari <lpranam@collabora.com>2020-09-14 12:56:21 +0530
committerAndras Timar <andras.timar@collabora.com>2020-09-15 22:04:25 +0200
commit047e40e0b1bf09c7fcc4d9b3ea83ed6011785802 (patch)
tree4402493840270d2065f544d0f58dbf008c7a5a86 /sw/source
parent0b03e1898a32488e91cd6e0a947a13be1eb6d295 (diff)
Added new command to resolve the comment thread
Change-Id: I8a4e5f63ee6ea5e560fae8a5d3602178f2b58b36 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102779 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Andras Timar <andras.timar@collabora.com>
Diffstat (limited to 'sw/source')
-rw-r--r--sw/source/uibase/docvw/AnnotationMenuButton.cxx6
-rw-r--r--sw/source/uibase/docvw/AnnotationWin2.cxx7
-rw-r--r--sw/source/uibase/shells/annotsh.cxx15
-rw-r--r--sw/source/uibase/shells/textfld.cxx9
4 files changed, 37 insertions, 0 deletions
diff --git a/sw/source/uibase/docvw/AnnotationMenuButton.cxx b/sw/source/uibase/docvw/AnnotationMenuButton.cxx
index ad523ec5f822..e634496bb40b 100644
--- a/sw/source/uibase/docvw/AnnotationMenuButton.cxx
+++ b/sw/source/uibase/docvw/AnnotationMenuButton.cxx
@@ -72,6 +72,8 @@ void AnnotationMenuButton::Select()
mrSidebarWin.ExecuteCommand(FN_REPLY);
if (sIdent == "resolve" || sIdent == "unresolve")
mrSidebarWin.ExecuteCommand(FN_RESOLVE_NOTE);
+ else if (sIdent == "resolvethread" || sIdent == "unresolvethread")
+ mrSidebarWin.ExecuteCommand(FN_RESOLVE_NOTE_THREAD);
else if (sIdent == "delete")
mrSidebarWin.ExecuteCommand(FN_DELETE_COMMENT);
else if (sIdent == "deleteby")
@@ -90,6 +92,8 @@ void AnnotationMenuButton::MouseButtonDown( const MouseEvent& rMEvt )
pButtonPopup->EnableItem(pButtonPopup->GetItemId("reply"), false);
pButtonPopup->EnableItem(pButtonPopup->GetItemId("resolve"), false);
pButtonPopup->EnableItem(pButtonPopup->GetItemId("unresolve"), false);
+ pButtonPopup->EnableItem(pButtonPopup->GetItemId("resolvethread"), false);
+ pButtonPopup->EnableItem(pButtonPopup->GetItemId("unresolvethread"), false);
pButtonPopup->EnableItem(pButtonPopup->GetItemId("delete"), false );
pButtonPopup->EnableItem(pButtonPopup->GetItemId("deleteby"), false );
pButtonPopup->EnableItem(pButtonPopup->GetItemId("deleteall"), false );
@@ -99,6 +103,8 @@ void AnnotationMenuButton::MouseButtonDown( const MouseEvent& rMEvt )
{
pButtonPopup->EnableItem(pButtonPopup->GetItemId("resolve"), !mrSidebarWin.IsResolved());
pButtonPopup->EnableItem(pButtonPopup->GetItemId("unresolve"), mrSidebarWin.IsResolved());
+ pButtonPopup->EnableItem(pButtonPopup->GetItemId("resolvethread"), !mrSidebarWin.IsThreadResolved());
+ pButtonPopup->EnableItem(pButtonPopup->GetItemId("unresolvethread"), mrSidebarWin.IsThreadResolved());
pButtonPopup->EnableItem(pButtonPopup->GetItemId("delete"), !mrSidebarWin.IsProtected());
pButtonPopup->EnableItem(pButtonPopup->GetItemId("deleteby"));
pButtonPopup->EnableItem(pButtonPopup->GetItemId("deleteall"));
diff --git a/sw/source/uibase/docvw/AnnotationWin2.cxx b/sw/source/uibase/docvw/AnnotationWin2.cxx
index ae3bf7ac5501..52af97f096a8 100644
--- a/sw/source/uibase/docvw/AnnotationWin2.cxx
+++ b/sw/source/uibase/docvw/AnnotationWin2.cxx
@@ -1267,6 +1267,13 @@ void SwAnnotationWin::ExecuteCommand(sal_uInt16 nSlot)
Invalidate();
mrMgr.LayoutPostIts();
break;
+ case FN_RESOLVE_NOTE_THREAD:
+ GetTopReplyNote()->SetResolved(!IsThreadResolved());
+ mrMgr.UpdateResolvedStatus(GetTopReplyNote());
+ DoResize();
+ Invalidate();
+ mrMgr.LayoutPostIts();
+ break;
case FN_FORMAT_ALL_NOTES:
case FN_DELETE_ALL_NOTES:
case FN_HIDE_ALL_NOTES:
diff --git a/sw/source/uibase/shells/annotsh.cxx b/sw/source/uibase/shells/annotsh.cxx
index 31d71d98a23b..f112affe5c69 100644
--- a/sw/source/uibase/shells/annotsh.cxx
+++ b/sw/source/uibase/shells/annotsh.cxx
@@ -1109,6 +1109,7 @@ void SwAnnotationShell::NoteExec(SfxRequest const &rReq)
case FN_POSTIT:
case FN_DELETE_COMMENT:
case FN_RESOLVE_NOTE:
+ case FN_RESOLVE_NOTE_THREAD:
if ( pPostItMgr->HasActiveSidebarWin() )
pPostItMgr->GetActiveSidebarWin()->ExecuteCommand(nSlot);
break;
@@ -1181,6 +1182,20 @@ void SwAnnotationShell::GetNoteState(SfxItemSet &rSet)
}
break;
}
+ case FN_RESOLVE_NOTE_THREAD:
+ {
+ if( !pPostItMgr
+ || !pPostItMgr->HasActiveAnnotationWin() )
+ {
+ rSet.DisableItem(nWhich);
+ }
+ else
+ {
+ SfxBoolItem aBool(nWhich, pPostItMgr->GetActiveSidebarWin()->IsThreadResolved());
+ rSet.Put( aBool );
+ }
+ break;
+ }
case FN_DELETE_NOTE_AUTHOR:
case FN_HIDE_NOTE_AUTHOR:
{
diff --git a/sw/source/uibase/shells/textfld.cxx b/sw/source/uibase/shells/textfld.cxx
index a06d7ecc6b02..5331ac1a5331 100644
--- a/sw/source/uibase/shells/textfld.cxx
+++ b/sw/source/uibase/shells/textfld.cxx
@@ -351,6 +351,15 @@ void SwTextShell::ExecField(SfxRequest &rReq)
}
break;
}
+ case FN_RESOLVE_NOTE_THREAD:
+ {
+ const SvxPostItIdItem* pIdItem = rReq.GetArg<SvxPostItIdItem>(SID_ATTR_POSTIT_ID);
+ if (pIdItem && !pIdItem->GetValue().isEmpty() && GetView().GetPostItMgr())
+ {
+ GetView().GetPostItMgr()->ToggleResolvedForThread(pIdItem->GetValue().toUInt32());
+ }
+ break;
+ }
case FN_DELETE_ALL_NOTES:
if ( GetView().GetPostItMgr() )
GetView().GetPostItMgr()->Delete();