diff options
author | Pranam Lashkari <lpranam@collabora.com> | 2020-09-14 12:56:21 +0530 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2020-09-15 22:04:25 +0200 |
commit | 047e40e0b1bf09c7fcc4d9b3ea83ed6011785802 (patch) | |
tree | 4402493840270d2065f544d0f58dbf008c7a5a86 /sw/source | |
parent | 0b03e1898a32488e91cd6e0a947a13be1eb6d295 (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.cxx | 6 | ||||
-rw-r--r-- | sw/source/uibase/docvw/AnnotationWin2.cxx | 7 | ||||
-rw-r--r-- | sw/source/uibase/shells/annotsh.cxx | 15 | ||||
-rw-r--r-- | sw/source/uibase/shells/textfld.cxx | 9 |
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(); |