summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2022-08-17 08:40:31 +0300
committerMike Kaganski <mike.kaganski@collabora.com>2022-08-17 09:28:59 +0200
commit0b85a66cc3d8e54747506089f92e154dc7665bfe (patch)
tree8a4a755a6803649e12e018089fc810946a5257f6
parent78fb8fe0c5a58bc4d5074de66e77c20c3a441fd3 (diff)
Return std::optional instead of using bool* argument
Change-Id: I47f03411a6677f22291bea4dc06920ab9052349a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138399 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
-rw-r--r--desktop/source/lib/init.cxx7
-rw-r--r--include/sfx2/viewsh.hxx3
-rw-r--r--sfx2/source/view/viewsh.cxx2
-rw-r--r--starmath/inc/view.hxx2
-rw-r--r--starmath/source/view.cxx6
-rw-r--r--sw/inc/view.hxx2
-rw-r--r--sw/inc/viscrs.hxx6
-rw-r--r--sw/source/core/crsr/viscrs.cxx15
-rw-r--r--sw/source/uibase/inc/wrtsh.hxx2
-rw-r--r--sw/source/uibase/uiview/view.cxx4
-rw-r--r--sw/source/uibase/wrtsh/wrtsh4.cxx6
-rw-r--r--test/source/lokcallback.cxx14
12 files changed, 31 insertions, 38 deletions
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 7f27f96d9efa..f9e871fb99f1 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -2119,11 +2119,10 @@ void CallbackFlushHandler::enqueueUpdatedTypes()
void CallbackFlushHandler::enqueueUpdatedType( int type, const SfxViewShell* viewShell, int viewId )
{
- bool ignore = false;
- OString payload = viewShell->getLOKPayload( type, viewId, &ignore );
- if(ignore)
+ std::optional<OString> payload = viewShell->getLOKPayload( type, viewId );
+ if(!payload)
return; // No actual payload to send.
- CallbackData callbackData(payload.getStr(), viewId);
+ CallbackData callbackData(payload->getStr(), viewId);
m_queue1.emplace_back(type);
m_queue2.emplace_back(callbackData);
SAL_INFO("lok", "Queued updated [" << type << "]: [" << callbackData.getPayload()
diff --git a/include/sfx2/viewsh.hxx b/include/sfx2/viewsh.hxx
index ea431a687b49..9762c6cd6e03 100644
--- a/include/sfx2/viewsh.hxx
+++ b/include/sfx2/viewsh.hxx
@@ -21,6 +21,7 @@
#include <sal/config.h>
#include <memory>
+#include <optional>
#include <sfx2/dllapi.h>
#include <sal/types.h>
#include <com/sun/star/uno/Reference.h>
@@ -356,7 +357,7 @@ public:
// Returns current payload for nType, after libreOfficeKitViewUpdatedCallback() or
// libreOfficeKitViewUpdatedCallbackPerViewId() were called. If no payload should
// be generated, the ignore flag should be set.
- virtual OString getLOKPayload(int nType, int nViewId, bool* ignore) const;
+ virtual std::optional<OString> getLOKPayload(int nType, int nViewId) const;
/// Set if we are doing tiled searching.
void setTiledSearching(bool bTiledSearching);
diff --git a/sfx2/source/view/viewsh.cxx b/sfx2/source/view/viewsh.cxx
index bd04697fab89..11812cca2fbf 100644
--- a/sfx2/source/view/viewsh.cxx
+++ b/sfx2/source/view/viewsh.cxx
@@ -1555,7 +1555,7 @@ void SfxViewShell::flushPendingLOKInvalidateTiles()
// SfxViewShell itself does not delay any tile invalidations.
}
-OString SfxViewShell::getLOKPayload(int nType, int /*nViewId*/, bool* /*ignore*/) const
+std::optional<OString> SfxViewShell::getLOKPayload(int nType, int /*nViewId*/) const
{
// SfxViewShell itself currently doesn't handle any updated-payload types.
SAL_WARN("sfx.view", "SfxViewShell::getLOKPayload unhandled type " << lokCallbackTypeToString(nType));
diff --git a/starmath/inc/view.hxx b/starmath/inc/view.hxx
index 0a18e0084435..3bc3b7cdf461 100644
--- a/starmath/inc/view.hxx
+++ b/starmath/inc/view.hxx
@@ -289,7 +289,7 @@ class SmViewShell final : public SfxViewShell
virtual void OuterResizePixel(const Point &rOfs, const Size &rSize) override;
virtual void QueryObjAreaPixel( tools::Rectangle& rRect ) const override;
virtual void SetZoomFactor( const Fraction &rX, const Fraction &rY ) override;
- virtual OString getLOKPayload(int nType, int nViewId, bool* ignore) const override;
+ virtual std::optional<OString> getLOKPayload(int nType, int nViewId) const override;
public:
diff --git a/starmath/source/view.cxx b/starmath/source/view.cxx
index add20227a808..56fc72bdd96d 100644
--- a/starmath/source/view.cxx
+++ b/starmath/source/view.cxx
@@ -2275,7 +2275,7 @@ void SmViewShell::ZoomByItemSet(const SfxItemSet *pSet)
}
}
-OString SmViewShell::getLOKPayload(int nType, int nViewId, bool* ignore) const
+std::optional<OString> SmViewShell::getLOKPayload(int nType, int nViewId) const
{
switch (nType)
{
@@ -2285,11 +2285,9 @@ OString SmViewShell::getLOKPayload(int nType, int nViewId, bool* ignore) const
case LOK_CALLBACK_TEXT_SELECTION_START:
case LOK_CALLBACK_TEXT_SELECTION_END:
case LOK_CALLBACK_TEXT_VIEW_SELECTION:
- if (ignore)
- *ignore = true;
return {};
}
- return SfxViewShell::getLOKPayload(nType, nViewId, ignore); // aborts
+ return SfxViewShell::getLOKPayload(nType, nViewId); // aborts
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/inc/view.hxx b/sw/inc/view.hxx
index 33847fcb93d9..d4d8ec608d8f 100644
--- a/sw/inc/view.hxx
+++ b/sw/inc/view.hxx
@@ -692,7 +692,7 @@ public:
virtual tools::Rectangle getLOKVisibleArea() const override;
virtual void flushPendingLOKInvalidateTiles() override;
- virtual OString getLOKPayload(int nType, int nViewId, bool* ignore) const override;
+ virtual std::optional<OString> getLOKPayload(int nType, int nViewId) const override;
};
inline tools::Long SwView::GetXScroll() const
diff --git a/sw/inc/viscrs.hxx b/sw/inc/viscrs.hxx
index 6c41fcb61b7e..7866b6335f2a 100644
--- a/sw/inc/viscrs.hxx
+++ b/sw/inc/viscrs.hxx
@@ -26,6 +26,8 @@
#include "swregion.hxx"
#include "swdllapi.h"
+#include <optional>
+
namespace sdr::overlay { class OverlayObject; }
class SwCursorShell;
@@ -61,7 +63,7 @@ public:
void SetPosAndShow(SfxViewShell const * pViewShell);
const vcl::Cursor& GetTextCursor() const;
- OString getLOKPayload(int nType, int nViewId, bool* ignore) const;
+ std::optional<OString> getLOKPayload(int nType, int nViewId) const;
};
// From here classes/methods for selections.
@@ -123,7 +125,7 @@ public:
static void Get1PixelInLogic( const SwViewShell& rSh,
tools::Long* pX = nullptr, tools::Long* pY = nullptr );
- OString getLOKPayload(int nType, int nViewId, bool* ignore) const;
+ std::optional<OString> getLOKPayload(int nType, int nViewId) const;
};
class SW_DLLPUBLIC SwShellCursor : public virtual SwCursor, public SwSelPaintRects
diff --git a/sw/source/core/crsr/viscrs.cxx b/sw/source/core/crsr/viscrs.cxx
index 588f572de73d..2575495b1328 100644
--- a/sw/source/core/crsr/viscrs.cxx
+++ b/sw/source/core/crsr/viscrs.cxx
@@ -271,7 +271,7 @@ void SwVisibleCursor::SetPosAndShow(SfxViewShell const * pViewShell)
m_aTextCursor.Show();
}
-OString SwVisibleCursor::getLOKPayload(int nType, int nViewId, bool*) const
+std::optional<OString> SwVisibleCursor::getLOKPayload(int nType, int nViewId) const
{
assert(nType == LOK_CALLBACK_INVALIDATE_VISIBLE_CURSOR || nType == LOK_CALLBACK_INVALIDATE_VIEW_CURSOR);
if (comphelper::LibreOfficeKit::isActive())
@@ -516,7 +516,7 @@ void SwSelPaintRects::Show(std::vector<OString>* pSelectionRectangles)
pSelectionRectangles->push_back(sRect);
}
-OString SwSelPaintRects::getLOKPayload( int nType, int nViewId, bool* ignore ) const
+std::optional<OString> SwSelPaintRects::getLOKPayload(int nType, int nViewId) const
{
switch( nType )
{
@@ -534,24 +534,19 @@ OString SwSelPaintRects::getLOKPayload( int nType, int nViewId, bool* ignore ) c
// no selection rect
if (!size())
- {
- *ignore = true;
- return OString();
- }
+ return {};
if( nType == LOK_CALLBACK_TEXT_SELECTION_START )
{
if (aStartRect.HasArea())
return aStartRect.SVRect().toString();
- *ignore = true;
- return OString();
+ return {};
}
else // LOK_CALLBACK_TEXT_SELECTION_END
{
if (aEndRect.HasArea())
return aEndRect.SVRect().toString();
- *ignore = true;
- return OString();
+ return {};
}
}
break;
diff --git a/sw/source/uibase/inc/wrtsh.hxx b/sw/source/uibase/inc/wrtsh.hxx
index 2f7fb5fa7b06..316e0b511a29 100644
--- a/sw/source/uibase/inc/wrtsh.hxx
+++ b/sw/source/uibase/inc/wrtsh.hxx
@@ -506,7 +506,7 @@ typedef bool (SwWrtShell::*FNSimpleMove)();
void InvalidateOutlineContentVisibility();
bool GetAttrOutlineContentVisible(const size_t nPos);
- OString getLOKPayload(int nType, int nViewId, bool* ignore) const;
+ std::optional<OString> getLOKPayload(int nType, int nViewId) const;
private:
diff --git a/sw/source/uibase/uiview/view.cxx b/sw/source/uibase/uiview/view.cxx
index 9fa0064386e6..4e68b6e04bf0 100644
--- a/sw/source/uibase/uiview/view.cxx
+++ b/sw/source/uibase/uiview/view.cxx
@@ -1916,11 +1916,11 @@ void SwView::flushPendingLOKInvalidateTiles()
pSh->FlushPendingLOKInvalidateTiles();
}
-OString SwView::getLOKPayload(int nType, int nViewId, bool* ignore) const
+std::optional<OString> SwView::getLOKPayload(int nType, int nViewId) const
{
SwWrtShell* pSh = GetWrtShellPtr();
assert(pSh);
- return pSh->getLOKPayload(nType, nViewId, ignore);
+ return pSh->getLOKPayload(nType, nViewId);
}
OUString SwView::GetDataSourceName() const
diff --git a/sw/source/uibase/wrtsh/wrtsh4.cxx b/sw/source/uibase/wrtsh/wrtsh4.cxx
index d15bb7710c37..0442e3152bb6 100644
--- a/sw/source/uibase/wrtsh/wrtsh4.cxx
+++ b/sw/source/uibase/wrtsh/wrtsh4.cxx
@@ -234,18 +234,18 @@ bool SwWrtShell::BwdPara_()
return bRet;
}
-OString SwWrtShell::getLOKPayload(int nType, int nViewId, bool* ignore) const
+std::optional<OString> SwWrtShell::getLOKPayload(int nType, int nViewId) const
{
switch(nType)
{
case LOK_CALLBACK_INVALIDATE_VISIBLE_CURSOR:
case LOK_CALLBACK_INVALIDATE_VIEW_CURSOR:
- return GetVisibleCursor()->getLOKPayload(nType, nViewId, ignore);
+ return GetVisibleCursor()->getLOKPayload(nType, nViewId);
case LOK_CALLBACK_TEXT_SELECTION:
case LOK_CALLBACK_TEXT_SELECTION_START:
case LOK_CALLBACK_TEXT_SELECTION_END:
case LOK_CALLBACK_TEXT_VIEW_SELECTION:
- return GetCursor_()->getLOKPayload( nType, nViewId, ignore );
+ return GetCursor_()->getLOKPayload(nType, nViewId);
}
abort();
}
diff --git a/test/source/lokcallback.cxx b/test/source/lokcallback.cxx
index 323ba4af1f10..c938e1e699a8 100644
--- a/test/source/lokcallback.cxx
+++ b/test/source/lokcallback.cxx
@@ -151,10 +151,9 @@ void TestLokCallbackWrapper::flushLOKData()
for (int type : updatedTypes)
{
- bool ignore = false;
- OString payload = viewShell->getLOKPayload(type, m_viewId, &ignore);
- if (!ignore)
- libreOfficeKitViewCallback(type, payload.getStr());
+ std::optional<OString> payload = viewShell->getLOKPayload(type, m_viewId);
+ if (payload)
+ libreOfficeKitViewCallback(type, payload->getStr());
}
for (const PerViewIdData& data : updatedTypesPerViewId)
{
@@ -162,10 +161,9 @@ void TestLokCallbackWrapper::flushLOKData()
return shell->GetViewShellId().get() == data.sourceViewId;
});
assert(viewShell != nullptr);
- bool ignore = false;
- OString payload = viewShell->getLOKPayload(data.type, data.viewId, &ignore);
- if (!ignore)
- libreOfficeKitViewCallbackWithViewId(data.type, payload.getStr(), data.viewId);
+ std::optional<OString> payload = viewShell->getLOKPayload(data.type, data.viewId);
+ if (payload)
+ libreOfficeKitViewCallbackWithViewId(data.type, payload->getStr(), data.viewId);
}
}