summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenry Castro <hcastro@collabora.com>2017-11-04 12:18:53 -0400
committerHenry Castro <hcastro@collabora.com>2017-11-08 04:28:01 +0100
commit2db44bd017daac8f668393bca24911e95125857a (patch)
treed2ee78fee77c5c5475d2aba9142c669ab91ed0cb
parenta6ee721868f444049bf9af59e2cf43ae10502fa8 (diff)
sw lok: add Accept/Reject All tracked changes, tdf#101977
Change-Id: I04d747343e24cb498a621c965d034d0791411d83 Reviewed-on: https://gerrit.libreoffice.org/44311 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Henry Castro <hcastro@collabora.com>
-rw-r--r--desktop/source/lib/init.cxx4
-rw-r--r--include/svl/hint.hxx1
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu28
-rw-r--r--sfx2/source/control/unoctitm.cxx5
-rw-r--r--sw/inc/IDocumentRedlineAccess.hxx2
-rw-r--r--sw/inc/cmdid.h2
-rw-r--r--sw/qa/extras/tiledrendering/tiledrendering.cxx74
-rw-r--r--sw/sdi/docsh.sdi10
-rw-r--r--sw/sdi/swriter.sdi36
-rw-r--r--sw/source/core/doc/DocumentRedlineManager.cxx32
-rw-r--r--sw/source/core/inc/DocumentRedlineManager.hxx2
-rw-r--r--sw/source/uibase/app/docsh.cxx7
-rw-r--r--sw/source/uibase/app/docsh2.cxx27
-rw-r--r--sw/source/uibase/uiview/view.cxx14
-rw-r--r--sw/uiconfig/sglobal/popupmenu/text.xml2
-rw-r--r--sw/uiconfig/sweb/popupmenu/text.xml2
-rw-r--r--sw/uiconfig/swform/popupmenu/text.xml2
-rw-r--r--sw/uiconfig/swreport/popupmenu/text.xml2
-rw-r--r--sw/uiconfig/swriter/menubar/menubar.xml2
-rw-r--r--sw/uiconfig/swriter/popupmenu/text.xml2
-rw-r--r--sw/uiconfig/swxform/popupmenu/text.xml2
21 files changed, 256 insertions, 2 deletions
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 96b6ab2e2399..891911429438 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -1617,7 +1617,9 @@ static void doc_iniUnoCommands ()
OUString(".uno:TrackChanges"),
OUString(".uno:ShowTrackedChanges"),
OUString(".uno:NextTrackedChange"),
- OUString(".uno:PreviousTrackedChange")
+ OUString(".uno:PreviousTrackedChange"),
+ OUString(".uno:AcceptAllTrackedChanges"),
+ OUString(".uno:RejectAllTrackedChanges")
};
util::URL aCommandURL;
diff --git a/include/svl/hint.hxx b/include/svl/hint.hxx
index b987e9091476..bce91f5462ae 100644
--- a/include/svl/hint.hxx
+++ b/include/svl/hint.hxx
@@ -34,6 +34,7 @@ enum class SfxHintId {
ModeChanged,
ColorsChanged,
LanguageChanged,
+ RedlineChanged,
// VCL text hints
TextParaInserted,
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu
index 853d98a6f40d..5b3c5ed09ae9 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu
@@ -228,6 +228,20 @@
<value>1</value>
</prop>
</node>
+ <node oor:name=".uno:RejectAllTrackedChanges" oor:op="replace">
+ <prop oor:name="Label" oor:type="xs:string">
+ <value xml:lang="en-US">Reject All</value>
+ </prop>
+ <prop oor:name="TooltipLabel" oor:type="xs:string">
+ <value xml:lang="en-US">Reject All Tracked Changes</value>
+ </prop>
+ <prop oor:name="PopupLabel" oor:type="xs:string">
+ <value xml:lang="en-US">Reject All Changes</value>
+ </prop>
+ <prop oor:name="Properties" oor:type="xs:int">
+ <value>1</value>
+ </prop>
+ </node>
<node oor:name=".uno:AcceptTrackedChange" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Accept</value>
@@ -242,6 +256,20 @@
<value>1</value>
</prop>
</node>
+ <node oor:name=".uno:AcceptAllTrackedChanges" oor:op="replace">
+ <prop oor:name="Label" oor:type="xs:string">
+ <value xml:lang="en-US">Accept All</value>
+ </prop>
+ <prop oor:name="TooltipLabel" oor:type="xs:string">
+ <value xml:lang="en-US">Accept All Tracked Changes</value>
+ </prop>
+ <prop oor:name="PopupLabel" oor:type="xs:string">
+ <value xml:lang="en-US">Accept All Changes</value>
+ </prop>
+ <prop oor:name="Properties" oor:type="xs:int">
+ <value>1</value>
+ </prop>
+ </node>
<node oor:name=".uno:NextTrackedChange" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Next</value>
diff --git a/sfx2/source/control/unoctitm.cxx b/sfx2/source/control/unoctitm.cxx
index 2db72d42d829..2dcbb0b7113c 100644
--- a/sfx2/source/control/unoctitm.cxx
+++ b/sfx2/source/control/unoctitm.cxx
@@ -1074,7 +1074,10 @@ static void InterceptLOKStateChangeEvent(const SfxViewFrame* pViewFrame, const c
aEvent.FeatureURL.Path == "EntireColumn" ||
aEvent.FeatureURL.Path == "EntireCell" ||
aEvent.FeatureURL.Path == "SortAscending" ||
- aEvent.FeatureURL.Path == "SortDescending")
+ aEvent.FeatureURL.Path == "SortDescending" ||
+ aEvent.FeatureURL.Path == "AcceptAllTrackedChanges" ||
+ aEvent.FeatureURL.Path == "RejectAllTrackedChanges")
+
{
aBuffer.append(aEvent.IsEnabled ? OUString("enabled") : OUString("disabled"));
}
diff --git a/sw/inc/IDocumentRedlineAccess.hxx b/sw/inc/IDocumentRedlineAccess.hxx
index f3a6f66dff13..de115fac77e0 100644
--- a/sw/inc/IDocumentRedlineAccess.hxx
+++ b/sw/inc/IDocumentRedlineAccess.hxx
@@ -218,6 +218,8 @@ public:
virtual const SwRangeRedline* SelPrevRedline(/*[in]*/SwPaM& rPam) const = 0;
+ virtual void AcceptAllRedline(/*[in]*/bool bAcceptReject) = 0;
+
// Representation has changed, invalidate all Redlines.
virtual void UpdateRedlineAttr() = 0;
diff --git a/sw/inc/cmdid.h b/sw/inc/cmdid.h
index f321d1851f21..651c72082eff 100644
--- a/sw/inc/cmdid.h
+++ b/sw/inc/cmdid.h
@@ -140,6 +140,8 @@
#define FN_COPY_HYPERLINK_LOCATION (FN_EDIT2 + 40) /* copy hyperlink URL to clipboard */
#define FN_REDLINE_NEXT_CHANGE (FN_EDIT2 + 41) /* Go to the next change */
#define FN_REDLINE_PREV_CHANGE (FN_EDIT2 + 42) /* Go to the previous change */
+#define FN_REDLINE_ACCEPT_ALL (FN_EDIT2 + 43) /* Redlining Accept All*/
+#define FN_REDLINE_REJECT_ALL (FN_EDIT2 + 44) /* Redlining Reject All*/
// Region: Edit
#define FN_REFRESH_VIEW (FN_VIEW + 1) /* Refresh/Redraw */
diff --git a/sw/qa/extras/tiledrendering/tiledrendering.cxx b/sw/qa/extras/tiledrendering/tiledrendering.cxx
index b7eb3393fc61..b55e775d0ba7 100644
--- a/sw/qa/extras/tiledrendering/tiledrendering.cxx
+++ b/sw/qa/extras/tiledrendering/tiledrendering.cxx
@@ -30,6 +30,8 @@
#include <UndoManager.hxx>
#include <cmdid.h>
#include <sfx2/viewsh.hxx>
+#include <sfx2/bindings.hxx>
+#include <sfx2/dispatch.hxx>
#include <sfx2/lokhelper.hxx>
#include <redline.hxx>
#include <IDocumentRedlineAccess.hxx>
@@ -91,6 +93,7 @@ public:
void testUndoRepairResult();
void testRedoRepairResult();
void testDisableUndoRepair();
+ void testAllTrackedChanges();
CPPUNIT_TEST_SUITE(SwTiledRenderingTest);
@@ -137,6 +140,7 @@ public:
CPPUNIT_TEST(testUndoRepairResult);
CPPUNIT_TEST(testRedoRepairResult);
CPPUNIT_TEST(testDisableUndoRepair);
+ CPPUNIT_TEST(testAllTrackedChanges);
CPPUNIT_TEST_SUITE_END();
@@ -1813,6 +1817,76 @@ void SwTiledRenderingTest::testDisableUndoRepair()
comphelper::LibreOfficeKit::setActive(false);
}
+void SwTiledRenderingTest::testAllTrackedChanges()
+{
+ // Load a document.
+ comphelper::LibreOfficeKit::setActive();
+ createDoc("dummy.fodt");
+
+ uno::Reference<beans::XPropertySet> xPropSet(mxComponent, uno::UNO_QUERY);
+ xPropSet->setPropertyValue("RecordChanges", uno::makeAny(true));
+
+ // view #1
+ SwView* pView1 = dynamic_cast<SwView*>(SfxViewShell::Current());
+ SwWrtShell* pWrtShell1 = pView1->GetWrtShellPtr();
+
+ // view #2
+ SfxLokHelper::createView();
+ SwView* pView2 = dynamic_cast<SwView*>(SfxViewShell::Current());
+ CPPUNIT_ASSERT(pView1 != pView2);
+ SwWrtShell* pWrtShell2 = pView2->GetWrtShellPtr();
+ // Insert text and reject all
+ {
+ pWrtShell1->SttDoc();
+ pWrtShell1->Insert("hxx");
+
+ pWrtShell2->EndDoc();
+ pWrtShell2->Insert("cxx");
+ }
+
+ // Get the redline
+ const SwRedlineTable& rTable = pWrtShell2->GetDoc()->getIDocumentRedlineAccess().GetRedlineTable();
+ CPPUNIT_ASSERT_EQUAL(static_cast<SwRedlineTable::size_type>(2), rTable.size());
+ {
+ SfxVoidItem aItem(FN_REDLINE_REJECT_ALL);
+ pView1->GetViewFrame()->GetDispatcher()->ExecuteList(FN_REDLINE_REJECT_ALL,
+ SfxCallMode::SYNCHRON, { &aItem });
+ }
+
+ // The reject all was performed.
+ CPPUNIT_ASSERT_EQUAL(static_cast<SwRedlineTable::size_type>(0), rTable.size());
+ {
+ SwShellCursor* pShellCursor = pWrtShell1->getShellCursor(false);
+ CPPUNIT_ASSERT_EQUAL(OUString("Aaa bbb."), pShellCursor->GetPoint()->nNode.GetNode().GetTextNode()->GetText());
+ }
+
+ // Insert text and accept all
+ {
+ pWrtShell1->SttDoc();
+ pWrtShell1->Insert("hyy");
+
+ pWrtShell2->EndDoc();
+ pWrtShell2->Insert("cyy");
+ }
+
+ CPPUNIT_ASSERT_EQUAL(static_cast<SwRedlineTable::size_type>(2), rTable.size());
+ {
+ SfxVoidItem aItem(FN_REDLINE_ACCEPT_ALL);
+ pView1->GetViewFrame()->GetDispatcher()->ExecuteList(FN_REDLINE_ACCEPT_ALL,
+ SfxCallMode::SYNCHRON, { &aItem });
+ }
+
+ // The accept all was performed
+ CPPUNIT_ASSERT_EQUAL(static_cast<SwRedlineTable::size_type>(0), rTable.size());
+ {
+ SwShellCursor* pShellCursor = pWrtShell2->getShellCursor(false);
+ CPPUNIT_ASSERT_EQUAL(OUString("hyyAaa bbb.cyy"), pShellCursor->GetPoint()->nNode.GetNode().GetTextNode()->GetText());
+ }
+
+ comphelper::LibreOfficeKit::setActive(false);
+}
+
+
CPPUNIT_TEST_SUITE_REGISTRATION(SwTiledRenderingTest);
CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sw/sdi/docsh.sdi b/sw/sdi/docsh.sdi
index 511823fbaeb9..503de5036f7c 100644
--- a/sw/sdi/docsh.sdi
+++ b/sw/sdi/docsh.sdi
@@ -61,6 +61,16 @@ interface TextDocument : BaseTextDocument
ExecMethod = Execute;
StateMethod = GetState;
]
+ FN_REDLINE_ACCEPT_ALL
+ [
+ ExecMethod = Execute;
+ StateMethod = GetState;
+ ]
+ FN_REDLINE_REJECT_ALL
+ [
+ ExecMethod = Execute;
+ StateMethod = GetState;
+ ]
}
shell SwDocShell
diff --git a/sw/sdi/swriter.sdi b/sw/sdi/swriter.sdi
index 999b03c166ad..90aa48538dc7 100644
--- a/sw/sdi/swriter.sdi
+++ b/sw/sdi/swriter.sdi
@@ -7220,6 +7220,24 @@ SfxVoidItem AcceptTrackedChange FN_REDLINE_ACCEPT_DIRECT
GroupId = SfxGroupId::Edit;
]
+SfxVoidItem AcceptAllTrackedChanges FN_REDLINE_ACCEPT_ALL
+[
+ AutoUpdate = FALSE,
+ FastCall = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ RecordAbsolute = FALSE,
+ RecordPerSet;
+ Asynchron;
+
+
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ ToolBoxConfig = TRUE,
+ GroupId = SfxGroupId::Edit;
+]
+
SfxVoidItem RejectTrackedChange FN_REDLINE_REJECT_DIRECT
( SfxUInt32Item RejectTrackedChange FN_REDLINE_REJECT_DIRECT )
[
@@ -7239,6 +7257,24 @@ SfxVoidItem RejectTrackedChange FN_REDLINE_REJECT_DIRECT
GroupId = SfxGroupId::Edit;
]
+SfxVoidItem RejectAllTrackedChanges FN_REDLINE_REJECT_ALL
+[
+ AutoUpdate = FALSE,
+ FastCall = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ RecordAbsolute = FALSE,
+ RecordPerSet;
+ Asynchron;
+
+
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ ToolBoxConfig = TRUE,
+ GroupId = SfxGroupId::Edit;
+]
+
SfxVoidItem NextTrackedChange FN_REDLINE_NEXT_CHANGE
( SfxUInt32Item NextTrackedChange FN_REDLINE_NEXT_CHANGE )
[
diff --git a/sw/source/core/doc/DocumentRedlineManager.cxx b/sw/source/core/doc/DocumentRedlineManager.cxx
index 8085f0059944..eea50f39ce25 100644
--- a/sw/source/core/doc/DocumentRedlineManager.cxx
+++ b/sw/source/core/doc/DocumentRedlineManager.cxx
@@ -2344,6 +2344,38 @@ bool DocumentRedlineManager::RejectRedline( const SwPaM& rPam, bool bCallDelete
// #TODO - add 'SwExtraRedlineTable' also ?
}
+void DocumentRedlineManager::AcceptAllRedline(bool bAccept)
+{
+ OUString sUndoStr;
+ IDocumentUndoRedo& rUndoMgr = m_rDoc.GetIDocumentUndoRedo();
+
+ if (mpRedlineTable->size() > 1)
+ {
+ {
+ SwRewriter aRewriter;
+ aRewriter.AddRule(UndoArg1, OUString::number(mpRedlineTable->size()));
+ sUndoStr = aRewriter.Apply(SwResId(STR_N_REDLINES));
+ }
+
+ SwRewriter aRewriter;
+ aRewriter.AddRule(UndoArg1, sUndoStr);
+ rUndoMgr.StartUndo(bAccept ? SwUndoId::ACCEPT_REDLINE : SwUndoId::REJECT_REDLINE, &aRewriter);
+ }
+
+ while (mpRedlineTable->size() > 0)
+ {
+ if (bAccept)
+ AcceptRedline(mpRedlineTable->size() - 1, true);
+ else
+ RejectRedline(mpRedlineTable->size() - 1, true);
+ }
+
+ if (!sUndoStr.isEmpty())
+ {
+ rUndoMgr.EndUndo(SwUndoId::EMPTY, nullptr);
+ }
+}
+
const SwRangeRedline* DocumentRedlineManager::SelNextRedline( SwPaM& rPam ) const
{
rPam.DeleteMark();
diff --git a/sw/source/core/inc/DocumentRedlineManager.hxx b/sw/source/core/inc/DocumentRedlineManager.hxx
index 166c7e56804d..88487f8dbdc6 100644
--- a/sw/source/core/inc/DocumentRedlineManager.hxx
+++ b/sw/source/core/inc/DocumentRedlineManager.hxx
@@ -90,6 +90,8 @@ public:
virtual bool RejectRedline(/*[in]*/const SwPaM& rPam, /*[in]*/bool bCallDelete) override;
+ virtual void AcceptAllRedline(/*[in]*/bool bAcceptReject) override;
+
virtual const SwRangeRedline* SelNextRedline(/*[in]*/SwPaM& rPam) const override;
virtual const SwRangeRedline* SelPrevRedline(/*[in]*/SwPaM& rPam) const override;
diff --git a/sw/source/uibase/app/docsh.cxx b/sw/source/uibase/app/docsh.cxx
index 40d52c938b4f..445a4404eb2c 100644
--- a/sw/source/uibase/app/docsh.cxx
+++ b/sw/source/uibase/app/docsh.cxx
@@ -1073,6 +1073,13 @@ void SwDocShell::GetState(SfxItemSet& rSet)
rSet.Put( SfxBoolItem( SID_NOTEBOOKBAR, bVisible ) );
}
break;
+ case FN_REDLINE_ACCEPT_ALL:
+ case FN_REDLINE_REJECT_ALL:
+ {
+ if (GetDoc()->getIDocumentRedlineAccess().GetRedlineTable().size() == 0)
+ rSet.DisableItem(nWhich);
+ }
+ break;
default: OSL_ENSURE(false,"You cannot get here!");
diff --git a/sw/source/uibase/app/docsh2.cxx b/sw/source/uibase/app/docsh2.cxx
index 8c12de7b91c2..d288a6781300 100644
--- a/sw/source/uibase/app/docsh2.cxx
+++ b/sw/source/uibase/app/docsh2.cxx
@@ -1241,6 +1241,33 @@ void SwDocShell::Execute(SfxRequest& rReq)
}
}
break;
+ case FN_REDLINE_ACCEPT_ALL:
+ case FN_REDLINE_REJECT_ALL:
+ {
+ IDocumentRedlineAccess& rRedlineAccess = GetDoc()->getIDocumentRedlineAccess();
+ SwWrtShell *pWrtShell = dynamic_cast<SwWrtShell*>(GetDoc()->getIDocumentLayoutAccess().GetCurrentViewShell());
+
+ if (rRedlineAccess.GetRedlineTable().empty())
+ {
+ break;
+ }
+
+ if (pWrtShell)
+ {
+ pWrtShell->StartAllAction();
+ }
+
+ rRedlineAccess.AcceptAllRedline(nWhich == FN_REDLINE_ACCEPT_ALL);
+
+ if (pWrtShell)
+ {
+ pWrtShell->EndAllAction();
+ }
+
+ Broadcast(SfxHint(SfxHintId::RedlineChanged));
+ rReq.Done();
+ }
+ break;
default: OSL_FAIL("wrong Dispatcher");
}
diff --git a/sw/source/uibase/uiview/view.cxx b/sw/source/uibase/uiview/view.cxx
index 408bcffcc04e..92da15465e21 100644
--- a/sw/source/uibase/uiview/view.cxx
+++ b/sw/source/uibase/uiview/view.cxx
@@ -1645,6 +1645,20 @@ void SwView::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
}
}
break;
+ case SfxHintId::RedlineChanged:
+ {
+ sal_uInt16 aSlotRedLine[] = {
+ FN_REDLINE_NEXT_CHANGE,
+ FN_REDLINE_PREV_CHANGE,
+ FN_REDLINE_ACCEPT_DIRECT,
+ FN_REDLINE_REJECT_DIRECT,
+ FN_REDLINE_ACCEPT_ALL,
+ FN_REDLINE_REJECT_ALL,
+ 0
+ };
+ GetViewFrame()->GetBindings().Invalidate(aSlotRedLine);
+ }
+ break;
default: break;
}
diff --git a/sw/uiconfig/sglobal/popupmenu/text.xml b/sw/uiconfig/sglobal/popupmenu/text.xml
index a6a60215aab5..d721e7c9ca60 100644
--- a/sw/uiconfig/sglobal/popupmenu/text.xml
+++ b/sw/uiconfig/sglobal/popupmenu/text.xml
@@ -38,7 +38,9 @@
<menu:menuitem menu:id=".uno:AuthoritiesEntryDialog"/>
<menu:menuseparator/>
<menu:menuitem menu:id=".uno:AcceptTrackedChange"/>
+ <menu:menuitem menu:id=".uno:AcceptAllTrackedChanges"/>
<menu:menuitem menu:id=".uno:RejectTrackedChange"/>
+ <menu:menuitem menu:id=".uno:RejectAllTrackedChanges"/>
<menu:menuitem menu:id=".uno:NextTrackedChange"/>
<menu:menuitem menu:id=".uno:PreviousTrackedChange"/>
<menu:menuseparator/>
diff --git a/sw/uiconfig/sweb/popupmenu/text.xml b/sw/uiconfig/sweb/popupmenu/text.xml
index 1b267e1ce25d..ad6d0f466749 100644
--- a/sw/uiconfig/sweb/popupmenu/text.xml
+++ b/sw/uiconfig/sweb/popupmenu/text.xml
@@ -34,7 +34,9 @@
<menu:menuitem menu:id=".uno:AuthoritiesEntryDialog"/>
<menu:menuseparator/>
<menu:menuitem menu:id=".uno:AcceptTrackedChange"/>
+ <menu:menuitem menu:id=".uno:AcceptAllTrackedChanges"/>
<menu:menuitem menu:id=".uno:RejectTrackedChange"/>
+ <menu:menuitem menu:id=".uno:RejectAllTrackedChanges"/>
<menu:menuitem menu:id=".uno:NextTrackedChange"/>
<menu:menuitem menu:id=".uno:PreviousTrackedChange"/>
<menu:menuseparator/>
diff --git a/sw/uiconfig/swform/popupmenu/text.xml b/sw/uiconfig/swform/popupmenu/text.xml
index a6a60215aab5..d721e7c9ca60 100644
--- a/sw/uiconfig/swform/popupmenu/text.xml
+++ b/sw/uiconfig/swform/popupmenu/text.xml
@@ -38,7 +38,9 @@
<menu:menuitem menu:id=".uno:AuthoritiesEntryDialog"/>
<menu:menuseparator/>
<menu:menuitem menu:id=".uno:AcceptTrackedChange"/>
+ <menu:menuitem menu:id=".uno:AcceptAllTrackedChanges"/>
<menu:menuitem menu:id=".uno:RejectTrackedChange"/>
+ <menu:menuitem menu:id=".uno:RejectAllTrackedChanges"/>
<menu:menuitem menu:id=".uno:NextTrackedChange"/>
<menu:menuitem menu:id=".uno:PreviousTrackedChange"/>
<menu:menuseparator/>
diff --git a/sw/uiconfig/swreport/popupmenu/text.xml b/sw/uiconfig/swreport/popupmenu/text.xml
index a6a60215aab5..d721e7c9ca60 100644
--- a/sw/uiconfig/swreport/popupmenu/text.xml
+++ b/sw/uiconfig/swreport/popupmenu/text.xml
@@ -38,7 +38,9 @@
<menu:menuitem menu:id=".uno:AuthoritiesEntryDialog"/>
<menu:menuseparator/>
<menu:menuitem menu:id=".uno:AcceptTrackedChange"/>
+ <menu:menuitem menu:id=".uno:AcceptAllTrackedChanges"/>
<menu:menuitem menu:id=".uno:RejectTrackedChange"/>
+ <menu:menuitem menu:id=".uno:RejectAllTrackedChanges"/>
<menu:menuitem menu:id=".uno:NextTrackedChange"/>
<menu:menuitem menu:id=".uno:PreviousTrackedChange"/>
<menu:menuseparator/>
diff --git a/sw/uiconfig/swriter/menubar/menubar.xml b/sw/uiconfig/swriter/menubar/menubar.xml
index a87ff5fea7f0..b5ba20d1f96d 100644
--- a/sw/uiconfig/swriter/menubar/menubar.xml
+++ b/sw/uiconfig/swriter/menubar/menubar.xml
@@ -118,7 +118,9 @@
<menu:menuitem menu:id=".uno:PreviousTrackedChange"/>
<menu:menuitem menu:id=".uno:NextTrackedChange"/>
<menu:menuitem menu:id=".uno:AcceptTrackedChange"/>
+ <menu:menuitem menu:id=".uno:AcceptAllTrackedChanges"/>
<menu:menuitem menu:id=".uno:RejectTrackedChange"/>
+ <menu:menuitem menu:id=".uno:RejectAllTrackedChanges"/>
<menu:menuseparator/>
<menu:menuitem menu:id=".uno:CommentChangeTracking"/>
<menu:menuitem menu:id=".uno:ProtectTraceChangeMode"/>
diff --git a/sw/uiconfig/swriter/popupmenu/text.xml b/sw/uiconfig/swriter/popupmenu/text.xml
index 6f689036a5c6..ddfcaaad273c 100644
--- a/sw/uiconfig/swriter/popupmenu/text.xml
+++ b/sw/uiconfig/swriter/popupmenu/text.xml
@@ -38,7 +38,9 @@
<menu:menuitem menu:id=".uno:AuthoritiesEntryDialog"/>
<menu:menuseparator/>
<menu:menuitem menu:id=".uno:AcceptTrackedChange"/>
+ <menu:menuitem menu:id=".uno:AcceptAllTrackedChanges"/>
<menu:menuitem menu:id=".uno:RejectTrackedChange"/>
+ <menu:menuitem menu:id=".uno:RejectAllTrackedChanges"/>
<menu:menuitem menu:id=".uno:NextTrackedChange"/>
<menu:menuitem menu:id=".uno:PreviousTrackedChange"/>
<menu:menuseparator/>
diff --git a/sw/uiconfig/swxform/popupmenu/text.xml b/sw/uiconfig/swxform/popupmenu/text.xml
index a6a60215aab5..d721e7c9ca60 100644
--- a/sw/uiconfig/swxform/popupmenu/text.xml
+++ b/sw/uiconfig/swxform/popupmenu/text.xml
@@ -38,7 +38,9 @@
<menu:menuitem menu:id=".uno:AuthoritiesEntryDialog"/>
<menu:menuseparator/>
<menu:menuitem menu:id=".uno:AcceptTrackedChange"/>
+ <menu:menuitem menu:id=".uno:AcceptAllTrackedChanges"/>
<menu:menuitem menu:id=".uno:RejectTrackedChange"/>
+ <menu:menuitem menu:id=".uno:RejectAllTrackedChanges"/>
<menu:menuitem menu:id=".uno:NextTrackedChange"/>
<menu:menuitem menu:id=".uno:PreviousTrackedChange"/>
<menu:menuseparator/>