summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAshod Nakashian <ashod.nakashian@collabora.co.uk>2018-11-08 11:02:26 -0500
committerMichael Meeks <michael.meeks@collabora.com>2018-11-08 20:36:39 +0000
commitd4f821b7a385953542e90b2749690b9f8f4cc782 (patch)
tree41d5bd160d6080d2ff5ab6adde763083dcd0caea
parent4ab9bd5a59b0f0c2e8ae429065080538fc53807f (diff)
LOK: don't emit redline comments
Change tracking can be quite numerous. Showing the markers (and their comments" as comment-boxes is sensible where there is limited change in a doc. However with extensively modified doc, this becomes overwhelming both in terms of browser load and editing performance. As such, we disable them as they don't add much value. The user can still access them from the Track Changes > Manage menu. Use a rather nasty env. var hack to propagate this setting from WSD for now. Change-Id: I3f964816b4a10f565012b273added8a8413cd309 Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
-rw-r--r--sw/source/core/doc/docredln.cxx4
-rw-r--r--sw/source/uibase/uno/unotxdoc.cxx69
2 files changed, 44 insertions, 29 deletions
diff --git a/sw/source/core/doc/docredln.cxx b/sw/source/core/doc/docredln.cxx
index fc92fbcf6a68..1a429a83f8d9 100644
--- a/sw/source/core/doc/docredln.cxx
+++ b/sw/source/core/doc/docredln.cxx
@@ -357,7 +357,9 @@ void lcl_LOKInvalidateStartEndFrames(SwShellCursor& rCursor)
/// Emits LOK notification about one addition / removal of a redline item.
void SwRedlineTable::LOKRedlineNotification(RedlineNotification nType, SwRangeRedline* pRedline)
{
- if (!comphelper::LibreOfficeKit::isActive())
+ // Disable since usability is very low beyond some small number of changes.
+ static bool bDisableRedlineComments = getenv("DISABLE_REDLINE") != nullptr;
+ if (!comphelper::LibreOfficeKit::isActive() || bDisableRedlineComments)
return;
boost::property_tree::ptree aRedline;
diff --git a/sw/source/uibase/uno/unotxdoc.cxx b/sw/source/uibase/uno/unotxdoc.cxx
index f578c5480bb4..c5aafda8c191 100644
--- a/sw/source/uibase/uno/unotxdoc.cxx
+++ b/sw/source/uibase/uno/unotxdoc.cxx
@@ -3278,40 +3278,53 @@ Pointer SwXTextDocument::getPointer()
OUString SwXTextDocument::getTrackedChanges()
{
- const SwRedlineTable& rRedlineTable = pDocShell->GetDoc()->getIDocumentRedlineAccess().GetRedlineTable();
boost::property_tree::ptree aTrackedChanges;
- for (SwRedlineTable::size_type i = 0; i < rRedlineTable.size(); ++i)
- {
- boost::property_tree::ptree aTrackedChange;
- aTrackedChange.put("index", rRedlineTable[i]->GetId());
- aTrackedChange.put("author", rRedlineTable[i]->GetAuthorString(1).toUtf8().getStr());
- aTrackedChange.put("type", nsRedlineType_t::SwRedlineTypeToOUString(rRedlineTable[i]->GetRedlineData().GetType()).toUtf8().getStr());
- aTrackedChange.put("comment", rRedlineTable[i]->GetRedlineData().GetComment().toUtf8().getStr());
- aTrackedChange.put("description", rRedlineTable[i]->GetDescr().toUtf8().getStr());
- OUString sDateTime = utl::toISO8601(rRedlineTable[i]->GetRedlineData().GetTimeStamp().GetUNODateTime());
- aTrackedChange.put("dateTime", sDateTime.toUtf8().getStr());
-
- SwContentNode* pContentNd = rRedlineTable[i]->GetContentNode();
- SwView* pView = dynamic_cast<SwView*>(SfxViewShell::Current());
- if (pView && pContentNd)
+
+ // Disable since usability is very low beyond some small number of changes.
+ static bool bDisableRedlineComments = getenv("DISABLE_REDLINE") != nullptr;
+ if (!bDisableRedlineComments)
+ {
+ const SwRedlineTable& rRedlineTable
+ = pDocShell->GetDoc()->getIDocumentRedlineAccess().GetRedlineTable();
+ for (SwRedlineTable::size_type i = 0; i < rRedlineTable.size(); ++i)
{
- SwShellCursor aCursor(pView->GetWrtShell(), *(rRedlineTable[i]->Start()));
- aCursor.SetMark();
- aCursor.GetMark()->nNode = *pContentNd;
- aCursor.GetMark()->nContent.Assign(pContentNd, rRedlineTable[i]->End()->nContent.GetIndex());
+ boost::property_tree::ptree aTrackedChange;
+ aTrackedChange.put("index", rRedlineTable[i]->GetId());
+ aTrackedChange.put("author", rRedlineTable[i]->GetAuthorString(1).toUtf8().getStr());
+ aTrackedChange.put("type", nsRedlineType_t::SwRedlineTypeToOUString(
+ rRedlineTable[i]->GetRedlineData().GetType())
+ .toUtf8()
+ .getStr());
+ aTrackedChange.put("comment",
+ rRedlineTable[i]->GetRedlineData().GetComment().toUtf8().getStr());
+ aTrackedChange.put("description", rRedlineTable[i]->GetDescr().toUtf8().getStr());
+ OUString sDateTime = utl::toISO8601(
+ rRedlineTable[i]->GetRedlineData().GetTimeStamp().GetUNODateTime());
+ aTrackedChange.put("dateTime", sDateTime.toUtf8().getStr());
+
+ SwContentNode* pContentNd = rRedlineTable[i]->GetContentNode();
+ SwView* pView = dynamic_cast<SwView*>(SfxViewShell::Current());
+ if (pView && pContentNd)
+ {
+ SwShellCursor aCursor(pView->GetWrtShell(), *(rRedlineTable[i]->Start()));
+ aCursor.SetMark();
+ aCursor.GetMark()->nNode = *pContentNd;
+ aCursor.GetMark()->nContent.Assign(pContentNd,
+ rRedlineTable[i]->End()->nContent.GetIndex());
- aCursor.FillRects();
+ aCursor.FillRects();
- SwRects* pRects(&aCursor);
- std::vector<OString> aRects;
- for(SwRect& rNextRect : *pRects)
- aRects.push_back(rNextRect.SVRect().toString());
+ SwRects* pRects(&aCursor);
+ std::vector<OString> aRects;
+ for (SwRect& rNextRect : *pRects)
+ aRects.push_back(rNextRect.SVRect().toString());
- const OString sRects = comphelper::string::join("; ", aRects);
- aTrackedChange.put("textRange", sRects.getStr());
- }
+ const OString sRects = comphelper::string::join("; ", aRects);
+ aTrackedChange.put("textRange", sRects.getStr());
+ }
- aTrackedChanges.push_back(std::make_pair("", aTrackedChange));
+ aTrackedChanges.push_back(std::make_pair("", aTrackedChange));
+ }
}
boost::property_tree::ptree aTree;