summaryrefslogtreecommitdiff
path: root/svx/source
diff options
context:
space:
mode:
authorSamuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>2019-08-19 15:16:40 +0200
committerSamuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>2019-08-27 08:33:43 +0200
commit7da92c6fff9549ebbea5e527b72ffd89faa46f71 (patch)
tree67974d9e08e3633eeca4741cca0f223d8d7bf449 /svx/source
parent3877328fcea01f24a94fd3debc243cf9f187dee9 (diff)
clang-format svx/source/svdraw/svdedxv.cxx
This file had lots of inline ifs making it hard to read and debug. Format the file using clang-format. Change-Id: I591f2724f4b10002de34c62ca178caa2a1dde4c0 Reviewed-on: https://gerrit.libreoffice.org/77726 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
Diffstat (limited to 'svx/source')
-rw-r--r--svx/source/svdraw/svdedxv.cxx2006
1 files changed, 1069 insertions, 937 deletions
diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx
index 69d9905c9477..bc4839d1ec15 100644
--- a/svx/source/svdraw/svdedxv.cxx
+++ b/svx/source/svdraw/svdedxv.cxx
@@ -18,93 +18,91 @@
*/
#include <com/sun/star/i18n/WordType.hpp>
-#include <svtools/accessibilityoptions.hxx>
-#include <svx/svdedxv.hxx>
-#include <svl/solar.hrc>
-#include <svl/itemiter.hxx>
-#include <vcl/commandevent.hxx>
-#include <vcl/weld.hxx>
-#include <vcl/hatch.hxx>
-#include <svl/whiter.hxx>
-#include <svl/style.hxx>
-#include <editeng/editstat.hxx>
-#include <vcl/canvastools.hxx>
-#include <vcl/cursor.hxx>
-#include <editeng/unotext.hxx>
#include <editeng/editdata.hxx>
#include <editeng/editeng.hxx>
#include <editeng/editobj.hxx>
+#include <editeng/editstat.hxx>
#include <editeng/outlobj.hxx>
-#include <svx/svdoutl.hxx>
+#include <editeng/unotext.hxx>
+#include <svl/itemiter.hxx>
+#include <svl/solar.hrc>
+#include <svl/style.hxx>
+#include <svl/whiter.hxx>
+#include <svtools/accessibilityoptions.hxx>
#include <svx/sdtfchim.hxx>
-#include <svx/svdotext.hxx>
-#include <svx/svdundo.hxx>
-#include <svx/svditer.hxx>
-#include <svx/svdpagv.hxx>
-#include <svx/svdpage.hxx>
+#include <svx/selectioncontroller.hxx>
+#include <svx/svdedxv.hxx>
#include <svx/svdetc.hxx>
+#include <svx/svditer.hxx>
#include <svx/svdotable.hxx>
-#include <svx/selectioncontroller.hxx>
+#include <svx/svdotext.hxx>
+#include <svx/svdoutl.hxx>
+#include <svx/svdpage.hxx>
+#include <svx/svdpagv.hxx>
+#include <svx/svdundo.hxx>
+#include <vcl/canvastools.hxx>
+#include <vcl/commandevent.hxx>
+#include <vcl/cursor.hxx>
+#include <vcl/hatch.hxx>
+#include <vcl/weld.hxx>
#ifdef DBG_UTIL
#include <svdibrow.hxx>
#endif
-#include <svx/svddrgv.hxx>
-#include <svx/strings.hrc>
-#include <svx/dialmgr.hxx>
-#include <svx/globl3d.hxx>
-#include <svx/textchain.hxx>
-#include <svx/textchaincursor.hxx>
-#include <editeng/outliner.hxx>
-#include <editeng/adjustitem.hxx>
-#include <svtools/colorcfg.hxx>
-#include <vcl/svapp.hxx>
-#include <svx/sdrpaintwindow.hxx>
-#include <svx/sdrundomanager.hxx>
-#include <sdr/overlay/overlaytools.hxx>
-#include <svx/sdr/table/tablecontroller.hxx>
+#include <comphelper/lok.hxx>
#include <drawinglayer/processor2d/baseprocessor2d.hxx>
#include <drawinglayer/processor2d/processor2dtools.hxx>
-#include <comphelper/lok.hxx>
+#include <editeng/adjustitem.hxx>
+#include <editeng/outliner.hxx>
+#include <sal/log.hxx>
+#include <sdr/overlay/overlaytools.hxx>
#include <sfx2/viewsh.hxx>
-#include <svx/svdviter.hxx>
-#include <svx/sdr/overlay/overlayselection.hxx>
+#include <svtools/colorcfg.hxx>
+#include <svx/dialmgr.hxx>
+#include <svx/globl3d.hxx>
#include <svx/sdr/overlay/overlaymanager.hxx>
+#include <svx/sdr/overlay/overlayselection.hxx>
+#include <svx/sdr/table/tablecontroller.hxx>
#include <svx/sdrpagewindow.hxx>
-#include <sal/log.hxx>
+#include <svx/sdrpaintwindow.hxx>
+#include <svx/sdrundomanager.hxx>
+#include <svx/strings.hrc>
+#include <svx/svddrgv.hxx>
+#include <svx/svdviter.hxx>
+#include <svx/textchain.hxx>
+#include <svx/textchaincursor.hxx>
#include <tools/debug.hxx>
+#include <vcl/svapp.hxx>
#include <memory>
void SdrObjEditView::ImpClearVars()
{
- bQuickTextEditMode=true;
+ bQuickTextEditMode = true;
pTextEditOutliner.reset();
- pTextEditOutlinerView=nullptr;
- pTextEditPV=nullptr;
- pTextEditWin=nullptr;
- pTextEditCursorBuffer=nullptr;
- bTextEditNewObj=false;
- bMacroDown=false;
- pMacroObj=nullptr;
- pMacroPV=nullptr;
- pMacroWin=nullptr;
- nMacroTol=0;
- bTextEditDontDelete=false;
- bTextEditOnlyOneView=false;
-}
-
-SdrObjEditView::SdrObjEditView(
- SdrModel& rSdrModel,
- OutputDevice* pOut)
-: SdrGlueEditView(rSdrModel, pOut),
- mpOldTextEditUndoManager(nullptr)
+ pTextEditOutlinerView = nullptr;
+ pTextEditPV = nullptr;
+ pTextEditWin = nullptr;
+ pTextEditCursorBuffer = nullptr;
+ bTextEditNewObj = false;
+ bMacroDown = false;
+ pMacroObj = nullptr;
+ pMacroPV = nullptr;
+ pMacroWin = nullptr;
+ nMacroTol = 0;
+ bTextEditDontDelete = false;
+ bTextEditOnlyOneView = false;
+}
+
+SdrObjEditView::SdrObjEditView(SdrModel& rSdrModel, OutputDevice* pOut)
+ : SdrGlueEditView(rSdrModel, pOut)
+ , mpOldTextEditUndoManager(nullptr)
{
ImpClearVars();
}
SdrObjEditView::~SdrObjEditView()
{
- pTextEditWin = nullptr; // so there's no ShowCursor in SdrEndTextEdit
+ pTextEditWin = nullptr; // so there's no ShowCursor in SdrEndTextEdit
assert(!IsTextEdit());
if (IsTextEdit())
SdrEndTextEdit();
@@ -112,20 +110,19 @@ SdrObjEditView::~SdrObjEditView()
assert(nullptr == mpOldTextEditUndoManager); // should have been reset
}
-bool SdrObjEditView::IsAction() const
-{
- return IsMacroObj() || SdrGlueEditView::IsAction();
-}
+bool SdrObjEditView::IsAction() const { return IsMacroObj() || SdrGlueEditView::IsAction(); }
void SdrObjEditView::MovAction(const Point& rPnt)
{
- if (IsMacroObj()) MovMacroObj(rPnt);
+ if (IsMacroObj())
+ MovMacroObj(rPnt);
SdrGlueEditView::MovAction(rPnt);
}
void SdrObjEditView::EndAction()
{
- if (IsMacroObj()) EndMacroObj();
+ if (IsMacroObj())
+ EndMacroObj();
SdrGlueEditView::EndAction();
}
@@ -164,7 +161,8 @@ SdrPageView* SdrObjEditView::ShowSdrPage(SdrPage* pPage)
// Call GetSfxViewShell() to make sure ImpMakeOutlinerView()
// registers the view shell of this draw view, and not the view
// shell of pView.
- OutlinerView* pOutlinerView = pView->ImpMakeOutlinerView(static_cast<vcl::Window*>(pOutDev), nullptr, GetSfxViewShell());
+ OutlinerView* pOutlinerView = pView->ImpMakeOutlinerView(
+ static_cast<vcl::Window*>(pOutDev), nullptr, GetSfxViewShell());
pOutlinerView->HideCursor();
pView->GetTextEditOutliner()->InsertView(pOutlinerView);
}
@@ -173,10 +171,11 @@ SdrPageView* SdrObjEditView::ShowSdrPage(SdrPage* pPage)
return pPageView;
}
-namespace {
-
+namespace
+{
/// Removes outliner views registered in other draw views that use pOutputDevice.
-void lcl_RemoveTextEditOutlinerViews(SdrObjEditView const * pThis, SdrPageView const * pPageView, OutputDevice const * pOutputDevice)
+void lcl_RemoveTextEditOutlinerViews(SdrObjEditView const* pThis, SdrPageView const* pPageView,
+ OutputDevice const* pOutputDevice)
{
if (!comphelper::LibreOfficeKit::isActive())
return;
@@ -205,7 +204,6 @@ void lcl_RemoveTextEditOutlinerViews(SdrObjEditView const * pThis, SdrPageView c
}
}
}
-
}
void SdrObjEditView::HideSdrPage()
@@ -217,26 +215,32 @@ void SdrObjEditView::HideSdrPage()
void SdrObjEditView::TakeActionRect(tools::Rectangle& rRect) const
{
- if (IsMacroObj()) {
- rRect=pMacroObj->GetCurrentBoundRect();
- } else {
+ if (IsMacroObj())
+ {
+ rRect = pMacroObj->GetCurrentBoundRect();
+ }
+ else
+ {
SdrGlueEditView::TakeActionRect(rRect);
}
}
void SdrObjEditView::Notify(SfxBroadcaster& rBC, const SfxHint& rHint)
{
- SdrGlueEditView::Notify(rBC,rHint);
- if (pTextEditOutliner!=nullptr) {
+ SdrGlueEditView::Notify(rBC, rHint);
+ if (pTextEditOutliner != nullptr)
+ {
// change of printer while editing
if (rHint.GetId() == SfxHintId::ThisIsAnSdrHint)
{
const SdrHint* pSdrHint = static_cast<const SdrHint*>(&rHint);
- SdrHintKind eKind=pSdrHint->GetKind();
- if (eKind==SdrHintKind::RefDeviceChange) {
+ SdrHintKind eKind = pSdrHint->GetKind();
+ if (eKind == SdrHintKind::RefDeviceChange)
+ {
pTextEditOutliner->SetRefDevice(mpModel->GetRefDevice());
}
- if (eKind==SdrHintKind::DefaultTabChange) {
+ if (eKind == SdrHintKind::DefaultTabChange)
+ {
pTextEditOutliner->SetDefTab(mpModel->GetDefaultTabulator());
}
}
@@ -246,16 +250,19 @@ void SdrObjEditView::Notify(SfxBroadcaster& rBC, const SfxHint& rHint)
void SdrObjEditView::ModelHasChanged()
{
SdrGlueEditView::ModelHasChanged();
- if (mxTextEditObj.is() && !mxTextEditObj->IsInserted()) SdrEndTextEdit(); // object deleted
+ if (mxTextEditObj.is() && !mxTextEditObj->IsInserted())
+ SdrEndTextEdit(); // object deleted
// TextEditObj changed?
- if (IsTextEdit()) {
- SdrTextObj* pTextObj= mxTextEditObj.get();
- if (pTextObj!=nullptr) {
- sal_uIntPtr nOutlViewCnt=pTextEditOutliner->GetViewCount();
- bool bAreaChg=false;
- bool bAnchorChg=false;
- bool bColorChg=false;
- bool bContourFrame=pTextObj->IsContourTextFrame();
+ if (IsTextEdit())
+ {
+ SdrTextObj* pTextObj = mxTextEditObj.get();
+ if (pTextObj != nullptr)
+ {
+ sal_uIntPtr nOutlViewCnt = pTextEditOutliner->GetViewCount();
+ bool bAreaChg = false;
+ bool bAnchorChg = false;
+ bool bColorChg = false;
+ bool bContourFrame = pTextObj->IsContourTextFrame();
EEAnchorMode eNewAnchor(EEAnchorMode::VCenterHCenter);
tools::Rectangle aOldArea(aMinTextEditArea);
aOldArea.Union(aTextEditArea);
@@ -265,67 +272,77 @@ void SdrObjEditView::ModelHasChanged()
Size aPaperMax1;
tools::Rectangle aEditArea1;
tools::Rectangle aMinArea1;
- pTextObj->TakeTextEditArea(&aPaperMin1,&aPaperMax1,&aEditArea1,&aMinArea1);
+ pTextObj->TakeTextEditArea(&aPaperMin1, &aPaperMax1, &aEditArea1, &aMinArea1);
Point aPvOfs(pTextObj->GetTextEditOffset());
// add possible GridOffset to up-to-now view-independent EditAreas
basegfx::B2DVector aGridOffset(0.0, 0.0);
- if(getPossibleGridOffsetForSdrObject(aGridOffset, pTextObj, GetSdrPageView()))
+ if (getPossibleGridOffsetForSdrObject(aGridOffset, pTextObj, GetSdrPageView()))
{
- const Point aOffset(
- basegfx::fround(aGridOffset.getX()),
- basegfx::fround(aGridOffset.getY()));
+ const Point aOffset(basegfx::fround(aGridOffset.getX()),
+ basegfx::fround(aGridOffset.getY()));
aEditArea1 += aOffset;
aMinArea1 += aOffset;
}
- aEditArea1.Move(aPvOfs.X(),aPvOfs.Y());
- aMinArea1.Move(aPvOfs.X(),aPvOfs.Y());
+ aEditArea1.Move(aPvOfs.X(), aPvOfs.Y());
+ aMinArea1.Move(aPvOfs.X(), aPvOfs.Y());
tools::Rectangle aNewArea(aMinArea1);
aNewArea.Union(aEditArea1);
- if (aNewArea!=aOldArea || aEditArea1!=aTextEditArea || aMinArea1!=aMinTextEditArea ||
- pTextEditOutliner->GetMinAutoPaperSize()!=aPaperMin1 || pTextEditOutliner->GetMaxAutoPaperSize()!=aPaperMax1) {
- aTextEditArea=aEditArea1;
- aMinTextEditArea=aMinArea1;
+ if (aNewArea != aOldArea || aEditArea1 != aTextEditArea
+ || aMinArea1 != aMinTextEditArea
+ || pTextEditOutliner->GetMinAutoPaperSize() != aPaperMin1
+ || pTextEditOutliner->GetMaxAutoPaperSize() != aPaperMax1)
+ {
+ aTextEditArea = aEditArea1;
+ aMinTextEditArea = aMinArea1;
pTextEditOutliner->SetUpdateMode(false);
pTextEditOutliner->SetMinAutoPaperSize(aPaperMin1);
pTextEditOutliner->SetMaxAutoPaperSize(aPaperMax1);
- pTextEditOutliner->SetPaperSize(Size(0,0)); // re-format Outliner
- if (!bContourFrame) {
+ pTextEditOutliner->SetPaperSize(Size(0, 0)); // re-format Outliner
+ if (!bContourFrame)
+ {
pTextEditOutliner->ClearPolygon();
- EEControlBits nStat=pTextEditOutliner->GetControlWord();
- nStat|=EEControlBits::AUTOPAGESIZE;
+ EEControlBits nStat = pTextEditOutliner->GetControlWord();
+ nStat |= EEControlBits::AUTOPAGESIZE;
pTextEditOutliner->SetControlWord(nStat);
- } else {
- EEControlBits nStat=pTextEditOutliner->GetControlWord();
- nStat&=~EEControlBits::AUTOPAGESIZE;
+ }
+ else
+ {
+ EEControlBits nStat = pTextEditOutliner->GetControlWord();
+ nStat &= ~EEControlBits::AUTOPAGESIZE;
pTextEditOutliner->SetControlWord(nStat);
tools::Rectangle aAnchorRect;
pTextObj->TakeTextAnchorRect(aAnchorRect);
- pTextObj->ImpSetContourPolygon(*pTextEditOutliner,aAnchorRect, true);
+ pTextObj->ImpSetContourPolygon(*pTextEditOutliner, aAnchorRect, true);
}
- for (sal_uIntPtr nOV=0; nOV<nOutlViewCnt; nOV++) {
- OutlinerView* pOLV=pTextEditOutliner->GetView(nOV);
- EVControlBits nStat0=pOLV->GetControlWord();
- EVControlBits nStat=nStat0;
+ for (sal_uIntPtr nOV = 0; nOV < nOutlViewCnt; nOV++)
+ {
+ OutlinerView* pOLV = pTextEditOutliner->GetView(nOV);
+ EVControlBits nStat0 = pOLV->GetControlWord();
+ EVControlBits nStat = nStat0;
// AutoViewSize only if not ContourFrame.
- if (!bContourFrame) nStat|=EVControlBits::AUTOSIZE;
- else nStat&=~EVControlBits::AUTOSIZE;
- if (nStat!=nStat0) pOLV->SetControlWord(nStat);
+ if (!bContourFrame)
+ nStat |= EVControlBits::AUTOSIZE;
+ else
+ nStat &= ~EVControlBits::AUTOSIZE;
+ if (nStat != nStat0)
+ pOLV->SetControlWord(nStat);
}
pTextEditOutliner->SetUpdateMode(true);
- bAreaChg=true;
+ bAreaChg = true;
}
}
- if (pTextEditOutlinerView!=nullptr) { // check fill and anchor
- EEAnchorMode eOldAnchor=pTextEditOutlinerView->GetAnchorMode();
- eNewAnchor=pTextObj->GetOutlinerViewAnchorMode();
- bAnchorChg=eOldAnchor!=eNewAnchor;
+ if (pTextEditOutlinerView != nullptr)
+ { // check fill and anchor
+ EEAnchorMode eOldAnchor = pTextEditOutlinerView->GetAnchorMode();
+ eNewAnchor = pTextObj->GetOutlinerViewAnchorMode();
+ bAnchorChg = eOldAnchor != eNewAnchor;
Color aOldColor(pTextEditOutlinerView->GetBackgroundColor());
aNewColor = GetTextEditBackgroundColor(*this);
- bColorChg=aOldColor!=aNewColor;
+ bColorChg = aOldColor != aNewColor;
}
// refresh always when it's a contour frame. That
// refresh is necessary since it triggers the repaint
@@ -344,26 +361,27 @@ void SdrObjEditView::ModelHasChanged()
// again on ModelHasChanged().
if (bContourFrame || bAreaChg || bAnchorChg || bColorChg)
{
- for (sal_uIntPtr nOV=0; nOV<nOutlViewCnt; nOV++)
+ for (sal_uIntPtr nOV = 0; nOV < nOutlViewCnt; nOV++)
{
- OutlinerView* pOLV=pTextEditOutliner->GetView(nOV);
+ OutlinerView* pOLV = pTextEditOutliner->GetView(nOV);
{ // invalidate old OutlinerView area
- vcl::Window* pWin=pOLV->GetWindow();
+ vcl::Window* pWin = pOLV->GetWindow();
tools::Rectangle aTmpRect(aOldArea);
- sal_uInt16 nPixSiz=pOLV->GetInvalidateMore()+1;
- Size aMore(pWin->PixelToLogic(Size(nPixSiz,nPixSiz)));
- aTmpRect.AdjustLeft( -(aMore.Width()) );
- aTmpRect.AdjustRight(aMore.Width() );
- aTmpRect.AdjustTop( -(aMore.Height()) );
- aTmpRect.AdjustBottom(aMore.Height() );
- InvalidateOneWin(*pWin,aTmpRect);
+ sal_uInt16 nPixSiz = pOLV->GetInvalidateMore() + 1;
+ Size aMore(pWin->PixelToLogic(Size(nPixSiz, nPixSiz)));
+ aTmpRect.AdjustLeft(-(aMore.Width()));
+ aTmpRect.AdjustRight(aMore.Width());
+ aTmpRect.AdjustTop(-(aMore.Height()));
+ aTmpRect.AdjustBottom(aMore.Height());
+ InvalidateOneWin(*pWin, aTmpRect);
}
if (bAnchorChg)
pOLV->SetAnchorMode(eNewAnchor);
if (bColorChg)
- pOLV->SetBackgroundColor( aNewColor );
+ pOLV->SetBackgroundColor(aNewColor);
- pOLV->SetOutputArea(aTextEditArea); // because otherwise, we're not re-anchoring correctly
+ pOLV->SetOutputArea(
+ aTextEditArea); // because otherwise, we're not re-anchoring correctly
ImpInvalidateOutlinerView(*pOLV);
}
pTextEditOutlinerView->ShowCursor();
@@ -375,7 +393,7 @@ void SdrObjEditView::ModelHasChanged()
namespace
{
- /**
+/**
Helper class to visualize the content of an active EditView as an
OverlayObject. These objects work with Primitives and are handled
from the OverlayManager(s) in place as needed.
@@ -388,238 +406,223 @@ namespace
It buffers as much as possible locally and *only* triggers a real
change (see call to objectChange()) when really needed.
*/
- class TextEditOverlayObject : public sdr::overlay::OverlayObject
- {
- protected:
- /// local access to associated sdr::overlay::OverlaySelection
- sdr::overlay::OverlaySelection* mpOverlaySelection;
+class TextEditOverlayObject : public sdr::overlay::OverlayObject
+{
+protected:
+ /// local access to associated sdr::overlay::OverlaySelection
+ sdr::overlay::OverlaySelection* mpOverlaySelection;
- /// local definition depends on active OutlinerView
- OutlinerView& mrOutlinerView;
+ /// local definition depends on active OutlinerView
+ OutlinerView& mrOutlinerView;
- /// geometry definitions with buffering
- basegfx::B2DRange maLastRange;
- basegfx::B2DRange maRange;
+ /// geometry definitions with buffering
+ basegfx::B2DRange maLastRange;
+ basegfx::B2DRange maRange;
- /// text content definitions with buffering
- drawinglayer::primitive2d::Primitive2DContainer maTextPrimitives;
- drawinglayer::primitive2d::Primitive2DContainer maLastTextPrimitives;
+ /// text content definitions with buffering
+ drawinglayer::primitive2d::Primitive2DContainer maTextPrimitives;
+ drawinglayer::primitive2d::Primitive2DContainer maLastTextPrimitives;
- /// bitfield
- bool const mbVisualizeSurroundingFrame : 1;
+ /// bitfield
+ bool const mbVisualizeSurroundingFrame : 1;
- // geometry creation for OverlayObject, can use local *Last* values
- virtual drawinglayer::primitive2d::Primitive2DContainer createOverlayObjectPrimitive2DSequence() override;
+ // geometry creation for OverlayObject, can use local *Last* values
+ virtual drawinglayer::primitive2d::Primitive2DContainer
+ createOverlayObjectPrimitive2DSequence() override;
- public:
- TextEditOverlayObject(
- const Color& rColor,
- OutlinerView& rOutlinerView,
- bool bVisualizeSurroundingFrame);
- virtual ~TextEditOverlayObject() override;
+public:
+ TextEditOverlayObject(const Color& rColor, OutlinerView& rOutlinerView,
+ bool bVisualizeSurroundingFrame);
+ virtual ~TextEditOverlayObject() override;
- // data read access
- const sdr::overlay::OverlaySelection* getOverlaySelection() const { return mpOverlaySelection; }
- const OutlinerView& getOutlinerView() const { return mrOutlinerView; }
- bool getVisualizeSurroundingFrame() const { return mbVisualizeSurroundingFrame; }
+ // data read access
+ const sdr::overlay::OverlaySelection* getOverlaySelection() const { return mpOverlaySelection; }
+ const OutlinerView& getOutlinerView() const { return mrOutlinerView; }
+ bool getVisualizeSurroundingFrame() const { return mbVisualizeSurroundingFrame; }
- /// override to check conditions for last createOverlayObjectPrimitive2DSequence
- virtual drawinglayer::primitive2d::Primitive2DContainer getOverlayObjectPrimitive2DSequence() const override;
+ /// override to check conditions for last createOverlayObjectPrimitive2DSequence
+ virtual drawinglayer::primitive2d::Primitive2DContainer
+ getOverlayObjectPrimitive2DSequence() const override;
- // data write access. In this OverlayObject we only have the
- // callback that triggers detecting if something *has* changed
- void checkDataChange(const basegfx::B2DRange& rMinTextEditArea);
- void checkSelectionChange();
- };
+ // data write access. In this OverlayObject we only have the
+ // callback that triggers detecting if something *has* changed
+ void checkDataChange(const basegfx::B2DRange& rMinTextEditArea);
+ void checkSelectionChange();
+};
- drawinglayer::primitive2d::Primitive2DContainer TextEditOverlayObject::createOverlayObjectPrimitive2DSequence()
+drawinglayer::primitive2d::Primitive2DContainer
+TextEditOverlayObject::createOverlayObjectPrimitive2DSequence()
+{
+ drawinglayer::primitive2d::Primitive2DContainer aRetval;
+
+ /// outer frame visualization
+ if (getVisualizeSurroundingFrame())
{
- drawinglayer::primitive2d::Primitive2DContainer aRetval;
+ const SvtOptionsDrawinglayer aSvtOptionsDrawinglayer;
+ const double fTransparence(aSvtOptionsDrawinglayer.GetTransparentSelectionPercent() * 0.01);
+ const sal_uInt16 nPixSiz(getOutlinerView().GetInvalidateMore() - 1);
- /// outer frame visualization
- if (getVisualizeSurroundingFrame())
- {
- const SvtOptionsDrawinglayer aSvtOptionsDrawinglayer;
- const double fTransparence(aSvtOptionsDrawinglayer.GetTransparentSelectionPercent() * 0.01);
- const sal_uInt16 nPixSiz(getOutlinerView().GetInvalidateMore() - 1);
+ aRetval.push_back(new drawinglayer::primitive2d::OverlayRectanglePrimitive(
+ maRange, getBaseColor().getBColor(), fTransparence, std::max(6, nPixSiz - 2), // grow
+ 0.0, // shrink
+ 0.0));
+ }
- aRetval.push_back(
- new drawinglayer::primitive2d::OverlayRectanglePrimitive(
- maRange,
- getBaseColor().getBColor(),
- fTransparence,
- std::max(6, nPixSiz - 2), // grow
- 0.0, // shrink
- 0.0));
- }
+ // add buffered TextPrimitives
+ aRetval.append(maTextPrimitives);
- // add buffered TextPrimitives
- aRetval.append(maTextPrimitives);
+ return aRetval;
+}
- return aRetval;
- }
+TextEditOverlayObject::TextEditOverlayObject(const Color& rColor, OutlinerView& rOutlinerView,
+ bool bVisualizeSurroundingFrame)
+ : OverlayObject(rColor)
+ , mpOverlaySelection(nullptr)
+ , mrOutlinerView(rOutlinerView)
+ , maLastRange()
+ , maRange()
+ , maTextPrimitives()
+ , maLastTextPrimitives()
+ , mbVisualizeSurroundingFrame(bVisualizeSurroundingFrame)
+{
+ // no AA for TextEdit overlay
+ allowAntiAliase(false);
- TextEditOverlayObject::TextEditOverlayObject(
- const Color& rColor,
- OutlinerView& rOutlinerView,
- bool bVisualizeSurroundingFrame)
- : OverlayObject(rColor),
- mpOverlaySelection(nullptr),
- mrOutlinerView(rOutlinerView),
- maLastRange(),
- maRange(),
- maTextPrimitives(),
- maLastTextPrimitives(),
- mbVisualizeSurroundingFrame(bVisualizeSurroundingFrame)
- {
- // no AA for TextEdit overlay
- allowAntiAliase(false);
+ // create local OverlaySelection - this is an integral part of EditText
+ // visualization
+ const std::vector<basegfx::B2DRange> aEmptySelection{};
+ mpOverlaySelection = new sdr::overlay::OverlaySelection(sdr::overlay::OverlayType::Transparent,
+ rColor, aEmptySelection, true);
+}
- // create local OverlaySelection - this is an integral part of EditText
- // visualization
- const std::vector< basegfx::B2DRange > aEmptySelection{};
- mpOverlaySelection = new sdr::overlay::OverlaySelection(
- sdr::overlay::OverlayType::Transparent,
- rColor,
- aEmptySelection,
- true);
+TextEditOverlayObject::~TextEditOverlayObject()
+{
+ if (getOverlaySelection())
+ {
+ delete mpOverlaySelection;
+ mpOverlaySelection = nullptr;
}
- TextEditOverlayObject::~TextEditOverlayObject()
+ if (getOverlayManager())
{
- if (getOverlaySelection())
- {
- delete mpOverlaySelection;
- mpOverlaySelection = nullptr;
- }
+ getOverlayManager()->remove(*this);
+ }
+}
- if (getOverlayManager())
+drawinglayer::primitive2d::Primitive2DContainer
+TextEditOverlayObject::getOverlayObjectPrimitive2DSequence() const
+{
+ if (!getPrimitive2DSequence().empty())
+ {
+ if (!maRange.equal(maLastRange) || maLastTextPrimitives != maTextPrimitives)
{
- getOverlayManager()->remove(*this);
+ // conditions of last local decomposition have changed, delete to force new evaluation
+ const_cast<TextEditOverlayObject*>(this)->resetPrimitive2DSequence();
}
}
- drawinglayer::primitive2d::Primitive2DContainer TextEditOverlayObject::getOverlayObjectPrimitive2DSequence() const
+ if (getPrimitive2DSequence().empty())
{
- if (!getPrimitive2DSequence().empty())
- {
- if (!maRange.equal(maLastRange) || maLastTextPrimitives != maTextPrimitives)
- {
- // conditions of last local decomposition have changed, delete to force new evaluation
- const_cast<TextEditOverlayObject*>(this)->resetPrimitive2DSequence();
- }
- }
+ // remember new buffered values
+ const_cast<TextEditOverlayObject*>(this)->maLastRange = maRange;
+ const_cast<TextEditOverlayObject*>(this)->maLastTextPrimitives = maTextPrimitives;
+ }
- if (getPrimitive2DSequence().empty())
- {
- // remember new buffered values
- const_cast<TextEditOverlayObject*>(this)->maLastRange = maRange;
- const_cast<TextEditOverlayObject*>(this)->maLastTextPrimitives = maTextPrimitives;
- }
+ // call base implementation
+ return OverlayObject::getOverlayObjectPrimitive2DSequence();
+}
+
+void TextEditOverlayObject::checkDataChange(const basegfx::B2DRange& rMinTextEditArea)
+{
+ bool bObjectChange(false);
- // call base implementation
- return OverlayObject::getOverlayObjectPrimitive2DSequence();
+ // check current range
+ const tools::Rectangle aOutArea(mrOutlinerView.GetOutputArea());
+ basegfx::B2DRange aNewRange = vcl::unotools::b2DRectangleFromRectangle(aOutArea);
+ aNewRange.expand(rMinTextEditArea);
+
+ if (aNewRange != maRange)
+ {
+ maRange = aNewRange;
+ bObjectChange = true;
}
- void TextEditOverlayObject::checkDataChange(const basegfx::B2DRange& rMinTextEditArea)
+ // check if text primitives did change
+ SdrOutliner* pSdrOutliner = dynamic_cast<SdrOutliner*>(getOutlinerView().GetOutliner());
+
+ if (pSdrOutliner)
{
- bool bObjectChange(false);
+ // get TextPrimitives directly from active Outliner
+ basegfx::B2DHomMatrix aNewTransformA;
+ basegfx::B2DHomMatrix aNewTransformB;
+ basegfx::B2DRange aClipRange;
+ drawinglayer::primitive2d::Primitive2DContainer aNewTextPrimitives;
- // check current range
- const tools::Rectangle aOutArea(mrOutlinerView.GetOutputArea());
- basegfx::B2DRange aNewRange = vcl::unotools::b2DRectangleFromRectangle(aOutArea);
- aNewRange.expand(rMinTextEditArea);
+ // active Outliner is always in unified oriented coordinate system (currently)
+ // so just translate to TopLeft of visible Range. Keep in mind that top-left
+ // depends on vertical text and top-to-bottom text attributes
+ const tools::Rectangle aVisArea(mrOutlinerView.GetVisArea());
+ const bool bVerticalWriting(pSdrOutliner->IsVertical());
+ const bool bTopToBottom(pSdrOutliner->IsTopToBottom());
+ const double fStartInX(bVerticalWriting && bTopToBottom
+ ? aOutArea.Right() - aVisArea.Left()
+ : aOutArea.Left() - aVisArea.Left());
+ const double fStartInY(bVerticalWriting && !bTopToBottom
+ ? aOutArea.Bottom() - aVisArea.Top()
+ : aOutArea.Top() - aVisArea.Top());
- if (aNewRange != maRange)
- {
- maRange = aNewRange;
- bObjectChange = true;
- }
+ aNewTransformB.translate(fStartInX, fStartInY);
- // check if text primitives did change
- SdrOutliner* pSdrOutliner = dynamic_cast<SdrOutliner*>(getOutlinerView().GetOutliner());
-
- if (pSdrOutliner)
- {
- // get TextPrimitives directly from active Outliner
- basegfx::B2DHomMatrix aNewTransformA;
- basegfx::B2DHomMatrix aNewTransformB;
- basegfx::B2DRange aClipRange;
- drawinglayer::primitive2d::Primitive2DContainer aNewTextPrimitives;
-
- // active Outliner is always in unified oriented coordinate system (currently)
- // so just translate to TopLeft of visible Range. Keep in mind that top-left
- // depends on vertical text and top-to-bottom text attributes
- const tools::Rectangle aVisArea(mrOutlinerView.GetVisArea());
- const bool bVerticalWriting(pSdrOutliner->IsVertical());
- const bool bTopToBottom(pSdrOutliner->IsTopToBottom());
- const double fStartInX(
- bVerticalWriting && bTopToBottom
- ? aOutArea.Right() - aVisArea.Left()
- : aOutArea.Left() - aVisArea.Left());
- const double fStartInY(
- bVerticalWriting && !bTopToBottom
- ? aOutArea.Bottom() - aVisArea.Top()
- : aOutArea.Top() - aVisArea.Top());
-
- aNewTransformB.translate(
- fStartInX,
- fStartInY);
-
- // get the current TextPrimitives. This is the most expensive part
- // of this mechanism, it *may* be possible to buffer layouted
- // primitives per ParaPortion with/in/dependent on the EditEngine
- // content if needed. For now, get and compare
- SdrTextObj::impDecomposeBlockTextPrimitiveDirect(
- aNewTextPrimitives,
- *pSdrOutliner,
- aNewTransformA,
- aNewTransformB,
- aClipRange);
-
- if (aNewTextPrimitives != maTextPrimitives)
- {
- maTextPrimitives = aNewTextPrimitives;
- bObjectChange = true;
- }
- }
+ // get the current TextPrimitives. This is the most expensive part
+ // of this mechanism, it *may* be possible to buffer layouted
+ // primitives per ParaPortion with/in/dependent on the EditEngine
+ // content if needed. For now, get and compare
+ SdrTextObj::impDecomposeBlockTextPrimitiveDirect(
+ aNewTextPrimitives, *pSdrOutliner, aNewTransformA, aNewTransformB, aClipRange);
- if (bObjectChange)
+ if (aNewTextPrimitives != maTextPrimitives)
{
- // if there really *was* a change signal the OverlayManager to
- // refresh this object's visualization
- objectChange();
-
- // on data change, always do a SelectionChange, too
- // since the selection is an integral part of text visualization
- checkSelectionChange();
+ maTextPrimitives = aNewTextPrimitives;
+ bObjectChange = true;
}
}
- void TextEditOverlayObject::checkSelectionChange()
+ if (bObjectChange)
{
- if (getOverlaySelection() && getOverlayManager())
- {
- std::vector<tools::Rectangle> aLogicRects;
- std::vector<basegfx::B2DRange> aLogicRanges;
- const Size aLogicPixel(getOverlayManager()->getOutputDevice().PixelToLogic(Size(1, 1)));
+ // if there really *was* a change signal the OverlayManager to
+ // refresh this object's visualization
+ objectChange();
- // get logic selection
- getOutlinerView().GetSelectionRectangles(aLogicRects);
+ // on data change, always do a SelectionChange, too
+ // since the selection is an integral part of text visualization
+ checkSelectionChange();
+ }
+}
- aLogicRanges.reserve(aLogicRects.size());
- for (const auto& aRect : aLogicRects)
- {
- // convert from logic Rectangles to logic Ranges, do not forget to add
- // one Unit (in this case logical units for one pixel, pre-calculated)
- aLogicRanges.emplace_back(
- aRect.Left() - aLogicPixel.Width(), aRect.Top() - aLogicPixel.Height(),
- aRect.Right() + aLogicPixel.Width(), aRect.Bottom() + aLogicPixel.Height());
- }
+void TextEditOverlayObject::checkSelectionChange()
+{
+ if (getOverlaySelection() && getOverlayManager())
+ {
+ std::vector<tools::Rectangle> aLogicRects;
+ std::vector<basegfx::B2DRange> aLogicRanges;
+ const Size aLogicPixel(getOverlayManager()->getOutputDevice().PixelToLogic(Size(1, 1)));
+
+ // get logic selection
+ getOutlinerView().GetSelectionRectangles(aLogicRects);
- mpOverlaySelection->setRanges(aLogicRanges);
+ aLogicRanges.reserve(aLogicRects.size());
+ for (const auto& aRect : aLogicRects)
+ {
+ // convert from logic Rectangles to logic Ranges, do not forget to add
+ // one Unit (in this case logical units for one pixel, pre-calculated)
+ aLogicRanges.emplace_back(
+ aRect.Left() - aLogicPixel.Width(), aRect.Top() - aLogicPixel.Height(),
+ aRect.Right() + aLogicPixel.Width(), aRect.Bottom() + aLogicPixel.Height());
}
+
+ mpOverlaySelection->setRanges(aLogicRanges);
}
+}
} // end of anonymous namespace
// TextEdit
@@ -632,11 +635,13 @@ void SdrObjEditView::EditViewInvalidate(const tools::Rectangle&) const
if (IsTextEdit())
{
// MinTextRange may have changed. Forward it, too
- const basegfx::B2DRange aMinTextRange = vcl::unotools::b2DRectangleFromRectangle(aMinTextEditArea);
+ const basegfx::B2DRange aMinTextRange
+ = vcl::unotools::b2DRectangleFromRectangle(aMinTextEditArea);
for (sal_uInt32 a(0); a < maTEOverlayGroup.count(); a++)
{
- TextEditOverlayObject* pCandidate = dynamic_cast< TextEditOverlayObject* >(&maTEOverlayGroup.getOverlayObject(a));
+ TextEditOverlayObject* pCandidate
+ = dynamic_cast<TextEditOverlayObject*>(&maTEOverlayGroup.getOverlayObject(a));
if (pCandidate)
{
@@ -655,7 +660,8 @@ void SdrObjEditView::EditViewSelectionChange() const
{
for (sal_uInt32 a(0); a < maTEOverlayGroup.count(); a++)
{
- TextEditOverlayObject* pCandidate = dynamic_cast< TextEditOverlayObject* >(&maTEOverlayGroup.getOverlayObject(a));
+ TextEditOverlayObject* pCandidate
+ = dynamic_cast<TextEditOverlayObject*>(&maTEOverlayGroup.getOverlayObject(a));
if (pCandidate)
{
@@ -665,10 +671,7 @@ void SdrObjEditView::EditViewSelectionChange() const
}
}
-OutputDevice& SdrObjEditView::EditViewOutputDevice() const
-{
- return *pTextEditWin;
-}
+OutputDevice& SdrObjEditView::EditViewOutputDevice() const { return *pTextEditWin; }
void SdrObjEditView::TextEditDrawing(SdrPaintWindow& rPaintWindow) const
{
@@ -703,10 +706,14 @@ void SdrObjEditView::TextEditDrawing(SdrPaintWindow& rPaintWindow) const
// context and is aware of the underlying vcl::Window,
// compare against that; that's how double-buffering can
// still find the matching OutlinerView.
- OutputDevice* pOutputDevice = rPaintWindow.GetWindow() ? rPaintWindow.GetWindow() : &rPaintWindow.GetOutputDevice();
- if (pOLV->GetWindow() == pOutputDevice || comphelper::LibreOfficeKit::isActive())
+ OutputDevice* pOutputDevice = rPaintWindow.GetWindow()
+ ? rPaintWindow.GetWindow()
+ : &rPaintWindow.GetOutputDevice();
+ if (pOLV->GetWindow() == pOutputDevice
+ || comphelper::LibreOfficeKit::isActive())
{
- ImpPaintOutlinerView(*pOLV, aCheckRect, rPaintWindow.GetTargetOutputDevice());
+ ImpPaintOutlinerView(*pOLV, aCheckRect,
+ rPaintWindow.GetTargetOutputDevice());
return;
}
}
@@ -716,7 +723,8 @@ void SdrObjEditView::TextEditDrawing(SdrPaintWindow& rPaintWindow) const
}
}
-void SdrObjEditView::ImpPaintOutlinerView(OutlinerView& rOutlView, const tools::Rectangle& rRect, OutputDevice& rTargetDevice) const
+void SdrObjEditView::ImpPaintOutlinerView(OutlinerView& rOutlView, const tools::Rectangle& rRect,
+ OutputDevice& rTargetDevice) const
{
const SdrTextObj* pText = GetTextEditObject();
bool bTextFrame(pText && pText->IsTextFrame());
@@ -737,18 +745,18 @@ void SdrObjEditView::ImpPaintOutlinerView(OutlinerView& rOutlView, const tools::
rOutlView.GetOutliner()->SetUpdateMode(true); // Bugfix #22596#
rOutlView.Paint(aBlankRect, &rTargetDevice);
- if(!bModified)
+ if (!bModified)
{
pTextEditOutliner->ClearModifyFlag();
}
- if(bTextFrame && !bFitToSize)
+ if (bTextFrame && !bFitToSize)
{
// completely reworked to use primitives; this ensures same look and functionality
const drawinglayer::geometry::ViewInformation2D aViewInformation2D;
- std::unique_ptr<drawinglayer::processor2d::BaseProcessor2D> xProcessor(drawinglayer::processor2d::createProcessor2DFromOutputDevice(
- rTargetDevice,
- aViewInformation2D));
+ std::unique_ptr<drawinglayer::processor2d::BaseProcessor2D> xProcessor(
+ drawinglayer::processor2d::createProcessor2DFromOutputDevice(rTargetDevice,
+ aViewInformation2D));
if (xProcessor)
{
@@ -756,17 +764,16 @@ void SdrObjEditView::ImpPaintOutlinerView(OutlinerView& rOutlView, const tools::
const basegfx::B2DRange aRange = vcl::unotools::b2DRectangleFromRectangle(aPixRect);
const SvtOptionsDrawinglayer aSvtOptionsDrawinglayer;
const Color aHilightColor(aSvtOptionsDrawinglayer.getHilightColor());
- const double fTransparence(aSvtOptionsDrawinglayer.GetTransparentSelectionPercent() * 0.01);
+ const double fTransparence(aSvtOptionsDrawinglayer.GetTransparentSelectionPercent()
+ * 0.01);
const sal_uInt16 nPixSiz(rOutlView.GetInvalidateMore() - 1);
const drawinglayer::primitive2d::Primitive2DReference xReference(
new drawinglayer::primitive2d::OverlayRectanglePrimitive(
- aRange,
- aHilightColor.getBColor(),
- fTransparence,
+ aRange, aHilightColor.getBColor(), fTransparence,
std::max(6, nPixSiz - 2), // grow
0.0, // shrink
0.0));
- const drawinglayer::primitive2d::Primitive2DContainer aSequence { xReference };
+ const drawinglayer::primitive2d::Primitive2DContainer aSequence{ xReference };
rTargetDevice.EnableMapMode(false);
xProcessor->process(aSequence);
@@ -777,27 +784,27 @@ void SdrObjEditView::ImpPaintOutlinerView(OutlinerView& rOutlView, const tools::
rOutlView.ShowCursor(/*bGotoCursor=*/true, /*bActivate=*/true);
}
-void SdrObjEditView::ImpInvalidateOutlinerView(OutlinerView const & rOutlView) const
+void SdrObjEditView::ImpInvalidateOutlinerView(OutlinerView const& rOutlView) const
{
vcl::Window* pWin = rOutlView.GetWindow();
- if(pWin)
+ if (pWin)
{
const SdrTextObj* pText = GetTextEditObject();
bool bTextFrame(pText && pText->IsTextFrame());
bool bFitToSize(pText && pText->IsFitToSize());
- if(bTextFrame && !bFitToSize)
+ if (bTextFrame && !bFitToSize)
{
tools::Rectangle aBlankRect(rOutlView.GetOutputArea());
aBlankRect.Union(aMinTextEditArea);
tools::Rectangle aPixRect(pWin->LogicToPixel(aBlankRect));
sal_uInt16 nPixSiz(rOutlView.GetInvalidateMore() - 1);
- aPixRect.AdjustLeft( -1 );
- aPixRect.AdjustTop( -1 );
- aPixRect.AdjustRight( 1 );
- aPixRect.AdjustBottom( 1 );
+ aPixRect.AdjustLeft(-1);
+ aPixRect.AdjustTop(-1);
+ aPixRect.AdjustRight(1);
+ aPixRect.AdjustBottom(1);
{
// limit xPixRect because of driver problems when pixel coordinates are too far out
@@ -806,17 +813,21 @@ void SdrObjEditView::ImpInvalidateOutlinerView(OutlinerView const & rOutlView) c
long nMaxX(aMaxXY.Width() + a);
long nMaxY(aMaxXY.Height() + a);
- if (aPixRect.Left ()<-a) aPixRect.SetLeft(-a );
- if (aPixRect.Top ()<-a) aPixRect.SetTop(-a );
- if (aPixRect.Right ()>nMaxX) aPixRect.SetRight(nMaxX );
- if (aPixRect.Bottom()>nMaxY) aPixRect.SetBottom(nMaxY );
+ if (aPixRect.Left() < -a)
+ aPixRect.SetLeft(-a);
+ if (aPixRect.Top() < -a)
+ aPixRect.SetTop(-a);
+ if (aPixRect.Right() > nMaxX)
+ aPixRect.SetRight(nMaxX);
+ if (aPixRect.Bottom() > nMaxY)
+ aPixRect.SetBottom(nMaxY);
}
tools::Rectangle aOuterPix(aPixRect);
- aOuterPix.AdjustLeft( -nPixSiz );
- aOuterPix.AdjustTop( -nPixSiz );
- aOuterPix.AdjustRight(nPixSiz );
- aOuterPix.AdjustBottom(nPixSiz );
+ aOuterPix.AdjustLeft(-nPixSiz);
+ aOuterPix.AdjustTop(-nPixSiz);
+ aOuterPix.AdjustRight(nPixSiz);
+ aOuterPix.AdjustBottom(nPixSiz);
bool bMapModeEnabled(pWin->IsMapModeEnabled());
pWin->EnableMapMode(false);
@@ -826,15 +837,16 @@ void SdrObjEditView::ImpInvalidateOutlinerView(OutlinerView const & rOutlView) c
}
}
-OutlinerView* SdrObjEditView::ImpMakeOutlinerView(vcl::Window* pWin, OutlinerView* pGivenView, SfxViewShell* pViewShell) const
+OutlinerView* SdrObjEditView::ImpMakeOutlinerView(vcl::Window* pWin, OutlinerView* pGivenView,
+ SfxViewShell* pViewShell) const
{
// background
Color aBackground(GetTextEditBackgroundColor(*this));
SdrTextObj* pText = mxTextEditObj.get();
- bool bTextFrame=pText!=nullptr && pText->IsTextFrame();
- bool bContourFrame=pText!=nullptr && pText->IsContourTextFrame();
+ bool bTextFrame = pText != nullptr && pText->IsTextFrame();
+ bool bContourFrame = pText != nullptr && pText->IsContourTextFrame();
// create OutlinerView
- OutlinerView* pOutlView=pGivenView;
+ OutlinerView* pOutlView = pGivenView;
pTextEditOutliner->SetUpdateMode(false);
if (pOutlView == nullptr)
@@ -847,17 +859,19 @@ OutlinerView* SdrObjEditView::ImpMakeOutlinerView(vcl::Window* pWin, OutlinerVie
}
// disallow scrolling
- EVControlBits nStat=pOutlView->GetControlWord();
- nStat&=~EVControlBits::AUTOSCROLL;
+ EVControlBits nStat = pOutlView->GetControlWord();
+ nStat &= ~EVControlBits::AUTOSCROLL;
// AutoViewSize only if not ContourFrame.
- if (!bContourFrame) nStat|=EVControlBits::AUTOSIZE;
- if (bTextFrame) {
- sal_uInt16 nPixSiz=maHdlList.GetHdlSize()*2+1;
- nStat|=EVControlBits::INVONEMORE;
+ if (!bContourFrame)
+ nStat |= EVControlBits::AUTOSIZE;
+ if (bTextFrame)
+ {
+ sal_uInt16 nPixSiz = maHdlList.GetHdlSize() * 2 + 1;
+ nStat |= EVControlBits::INVONEMORE;
pOutlView->SetInvalidateMore(nPixSiz);
}
pOutlView->SetControlWord(nStat);
- pOutlView->SetBackgroundColor( aBackground );
+ pOutlView->SetBackgroundColor(aBackground);
// In case we're in the process of constructing a new view shell,
// SfxViewShell::Current() may still point to the old one. So if possible,
@@ -866,10 +880,11 @@ OutlinerView* SdrObjEditView::ImpMakeOutlinerView(vcl::Window* pWin, OutlinerVie
SfxViewShell* pSfxViewShell = pViewShell ? pViewShell : GetSfxViewShell();
pOutlView->RegisterViewShell(pSfxViewShell ? pSfxViewShell : SfxViewShell::Current());
- if (pText!=nullptr)
+ if (pText != nullptr)
{
pOutlView->SetAnchorMode(pText->GetOutlinerViewAnchorMode());
- pTextEditOutliner->SetFixedCellHeight(pText->GetMergedItem(SDRATTR_TEXT_USEFIXEDCELLHEIGHT).GetValue());
+ pTextEditOutliner->SetFixedCellHeight(
+ pText->GetMergedItem(SDRATTR_TEXT_USEFIXEDCELLHEIGHT).GetValue());
}
// do update before setting output area so that aTextEditArea can be recalculated
pTextEditOutliner->SetUpdateMode(true);
@@ -878,34 +893,36 @@ OutlinerView* SdrObjEditView::ImpMakeOutlinerView(vcl::Window* pWin, OutlinerVie
return pOutlView;
}
-IMPL_LINK(SdrObjEditView,ImpOutlinerStatusEventHdl, EditStatus&, rEditStat, void)
+IMPL_LINK(SdrObjEditView, ImpOutlinerStatusEventHdl, EditStatus&, rEditStat, void)
{
- if(pTextEditOutliner )
+ if (pTextEditOutliner)
{
SdrTextObj* pTextObj = mxTextEditObj.get();
- if( pTextObj )
+ if (pTextObj)
{
- pTextObj->onEditOutlinerStatusEvent( &rEditStat );
+ pTextObj->onEditOutlinerStatusEvent(&rEditStat);
}
}
}
void SdrObjEditView::ImpChainingEventHdl()
{
- if(pTextEditOutliner )
+ if (pTextEditOutliner)
{
SdrTextObj* pTextObj = mxTextEditObj.get();
OutlinerView* pOLV = GetTextEditOutlinerView();
- if( pTextObj && pOLV)
+ if (pTextObj && pOLV)
{
- TextChain *pTextChain = pTextObj->GetTextChain();
+ TextChain* pTextChain = pTextObj->GetTextChain();
- // XXX: IsChainable and GetNilChainingEvent are a bit mixed up atm
- if (!pTextObj->IsChainable()) {
+ // XXX: IsChainable and GetNilChainingEvent are a bit mixed up atm
+ if (!pTextObj->IsChainable())
+ {
return;
}
// This is true during an underflow-caused overflow (with pEdtOutl->SetText())
- if (pTextChain->GetNilChainingEvent(pTextObj)) {
+ if (pTextChain->GetNilChainingEvent(pTextObj))
+ {
return;
}
@@ -922,8 +939,11 @@ void SdrObjEditView::ImpChainingEventHdl()
const bool bUndoEnabled = GetModel() && IsUndoEnabled();
std::unique_ptr<SdrUndoObjSetText> pTxtUndo;
if (bUndoEnabled)
- pTxtUndo.reset(dynamic_cast< SdrUndoObjSetText* >
- ( GetModel()->GetSdrUndoFactory().CreateUndoObjectSetText(*pTextObj, nText ).release() ));
+ pTxtUndo.reset(
+ dynamic_cast<SdrUndoObjSetText*>(GetModel()
+ ->GetSdrUndoFactory()
+ .CreateUndoObjectSetText(*pTextObj, nText)
+ .release()));
// trigger actual chaining
pTextObj->onChainingEvent();
@@ -945,15 +965,16 @@ void SdrObjEditView::ImpChainingEventHdl()
// NOTE: Must be called. Don't let the function return if you set it to true and not reset it
pTextChain->SetNilChainingEvent(pTextObj, false);
- } else {
+ }
+ else
+ {
// XXX
SAL_INFO("svx.chaining", "[OnChaining] No Edit Outliner View");
}
}
-
}
-IMPL_LINK_NOARG(SdrObjEditView,ImpAfterCutOrPasteChainingEventHdl, LinkParamNone*, void)
+IMPL_LINK_NOARG(SdrObjEditView, ImpAfterCutOrPasteChainingEventHdl, LinkParamNone*, void)
{
SdrTextObj* pTextObj = GetTextEditObject();
if (!pTextObj)
@@ -963,7 +984,7 @@ IMPL_LINK_NOARG(SdrObjEditView,ImpAfterCutOrPasteChainingEventHdl, LinkParamNone
ImpMoveCursorAfterChainingEvent(&aCursorManager);
}
-void SdrObjEditView::ImpMoveCursorAfterChainingEvent(TextChainCursorManager *pCursorManager)
+void SdrObjEditView::ImpMoveCursorAfterChainingEvent(TextChainCursorManager* pCursorManager)
{
if (!mxTextEditObj.is() || !pCursorManager)
return;
@@ -974,172 +995,175 @@ void SdrObjEditView::ImpMoveCursorAfterChainingEvent(TextChainCursorManager *pCu
if (!pTextObj || !pTextObj->IsChainable())
return;
- TextChain *pTextChain = pTextObj->GetTextChain();
+ TextChain* pTextChain = pTextObj->GetTextChain();
ESelection aNewSel = pTextChain->GetPostChainingSel(pTextObj);
- pCursorManager->HandleCursorEventAfterChaining(
- pTextChain->GetCursorEvent(pTextObj),
- aNewSel);
+ pCursorManager->HandleCursorEventAfterChaining(pTextChain->GetCursorEvent(pTextObj), aNewSel);
// Reset event
pTextChain->SetCursorEvent(pTextObj, CursorChainingEvent::NULL_EVENT);
}
-
-IMPL_LINK(SdrObjEditView,ImpOutlinerCalcFieldValueHdl,EditFieldInfo*,pFI,void)
+IMPL_LINK(SdrObjEditView, ImpOutlinerCalcFieldValueHdl, EditFieldInfo*, pFI, void)
{
- bool bOk=false;
- OUString& rStr=pFI->GetRepresentation();
+ bool bOk = false;
+ OUString& rStr = pFI->GetRepresentation();
rStr.clear();
SdrTextObj* pTextObj = mxTextEditObj.get();
- if (pTextObj!=nullptr) {
+ if (pTextObj != nullptr)
+ {
boost::optional<Color> pTxtCol;
boost::optional<Color> pFldCol;
- bOk=pTextObj->CalcFieldValue(pFI->GetField(),pFI->GetPara(),pFI->GetPos(),true,pTxtCol,pFldCol,rStr);
- if (bOk) {
- if (pTxtCol) {
+ bOk = pTextObj->CalcFieldValue(pFI->GetField(), pFI->GetPara(), pFI->GetPos(), true,
+ pTxtCol, pFldCol, rStr);
+ if (bOk)
+ {
+ if (pTxtCol)
+ {
pFI->SetTextColor(*pTxtCol);
}
- if (pFldCol) {
+ if (pFldCol)
+ {
pFI->SetFieldColor(*pFldCol);
- } else {
+ }
+ else
+ {
pFI->SetFieldColor(COL_LIGHTGRAY); // TODO: remove this later on (357)
}
}
}
- Outliner& rDrawOutl=mpModel->GetDrawOutliner(pTextObj);
- Link<EditFieldInfo*,void> aDrawOutlLink=rDrawOutl.GetCalcFieldValueHdl();
- if (!bOk && aDrawOutlLink.IsSet()) {
+ Outliner& rDrawOutl = mpModel->GetDrawOutliner(pTextObj);
+ Link<EditFieldInfo*, void> aDrawOutlLink = rDrawOutl.GetCalcFieldValueHdl();
+ if (!bOk && aDrawOutlLink.IsSet())
+ {
aDrawOutlLink.Call(pFI);
bOk = !rStr.isEmpty();
}
- if (!bOk) {
+ if (!bOk)
+ {
aOldCalcFieldValueLink.Call(pFI);
}
}
-IMPL_LINK_NOARG(SdrObjEditView, EndTextEditHdl, SdrUndoManager*, void)
-{
- SdrEndTextEdit();
-}
+IMPL_LINK_NOARG(SdrObjEditView, EndTextEditHdl, SdrUndoManager*, void) { SdrEndTextEdit(); }
SdrUndoManager* SdrObjEditView::getSdrUndoManagerForEnhancedTextEdit() const
{
// default returns registered UndoManager
- return GetModel() ? dynamic_cast< SdrUndoManager* >(GetModel()->GetSdrUndoManager()) : nullptr;
+ return GetModel() ? dynamic_cast<SdrUndoManager*>(GetModel()->GetSdrUndoManager()) : nullptr;
}
-bool SdrObjEditView::SdrBeginTextEdit(
- SdrObject* pObj_, SdrPageView* pPV, vcl::Window* pWin,
- bool bIsNewObj, SdrOutliner* pGivenOutliner,
- OutlinerView* pGivenOutlinerView,
- bool bDontDeleteOutliner, bool bOnlyOneView,
- bool bGrabFocus)
+bool SdrObjEditView::SdrBeginTextEdit(SdrObject* pObj_, SdrPageView* pPV, vcl::Window* pWin,
+ bool bIsNewObj, SdrOutliner* pGivenOutliner,
+ OutlinerView* pGivenOutlinerView, bool bDontDeleteOutliner,
+ bool bOnlyOneView, bool bGrabFocus)
{
assert(!IsTextEdit());
// FIXME this encourages all sorts of bad habits and should be removed
SdrEndTextEdit();
- SdrTextObj* pObj = dynamic_cast< SdrTextObj* >( pObj_ );
- if( !pObj )
+ SdrTextObj* pObj = dynamic_cast<SdrTextObj*>(pObj_);
+ if (!pObj)
return false; // currently only possible with text objects
- if(bGrabFocus && pWin)
+ if (bGrabFocus && pWin)
{
// attention, this call may cause an EndTextEdit() call to this view
pWin->GrabFocus(); // to force the cursor into the edit view
}
- bTextEditDontDelete=bDontDeleteOutliner && pGivenOutliner!=nullptr;
- bTextEditOnlyOneView=bOnlyOneView;
- bTextEditNewObj=bIsNewObj;
+ bTextEditDontDelete = bDontDeleteOutliner && pGivenOutliner != nullptr;
+ bTextEditOnlyOneView = bOnlyOneView;
+ bTextEditNewObj = bIsNewObj;
const sal_uInt32 nWinCount(PaintWindowCount());
sal_uInt32 i;
bool bBrk(false);
- if(!pWin)
+ if (!pWin)
{
- for(i = 0; i < nWinCount && !pWin; i++)
+ for (i = 0; i < nWinCount && !pWin; i++)
{
SdrPaintWindow* pPaintWindow = GetPaintWindow(i);
- if(OUTDEV_WINDOW == pPaintWindow->GetOutputDevice().GetOutDevType())
+ if (OUTDEV_WINDOW == pPaintWindow->GetOutputDevice().GetOutDevType())
{
pWin = static_cast<vcl::Window*>(&pPaintWindow->GetOutputDevice());
}
}
// break, when no window exists
- if(!pWin)
+ if (!pWin)
{
bBrk = true;
}
}
- if(!bBrk && !pPV)
+ if (!bBrk && !pPV)
{
pPV = GetSdrPageView();
// break, when no PageView for the object exists
- if(!pPV)
+ if (!pPV)
{
bBrk = true;
}
}
// no TextEdit on objects in locked Layer
- if(pPV && pPV->GetLockedLayers().IsSet(pObj->GetLayer()))
+ if (pPV && pPV->GetLockedLayers().IsSet(pObj->GetLayer()))
{
bBrk = true;
}
- if(pTextEditOutliner)
+ if (pTextEditOutliner)
{
OSL_FAIL("SdrObjEditView::SdrBeginTextEdit(): Old Outliner still exists.");
pTextEditOutliner.reset();
}
- if(!bBrk)
+ if (!bBrk)
{
- pTextEditWin=pWin;
- pTextEditPV=pPV;
- mxTextEditObj.reset( pObj );
+ pTextEditWin = pWin;
+ pTextEditPV = pPV;
+ mxTextEditObj.reset(pObj);
if (pGivenOutliner)
{
pTextEditOutliner.reset(pGivenOutliner);
pGivenOutliner = nullptr; // so we don't delete it on the error path
}
else
- pTextEditOutliner = SdrMakeOutliner( OutlinerMode::TextObject, mxTextEditObj->getSdrModelFromSdrObject() );
+ pTextEditOutliner = SdrMakeOutliner(OutlinerMode::TextObject,
+ mxTextEditObj->getSdrModelFromSdrObject());
{
SvtAccessibilityOptions aOptions;
- pTextEditOutliner->ForceAutoColor( aOptions.GetIsAutomaticFontColor() );
+ pTextEditOutliner->ForceAutoColor(aOptions.GetIsAutomaticFontColor());
}
- aOldCalcFieldValueLink=pTextEditOutliner->GetCalcFieldValueHdl();
+ aOldCalcFieldValueLink = pTextEditOutliner->GetCalcFieldValueHdl();
// FieldHdl has to be set by SdrBeginTextEdit, because this call an UpdateFields
- pTextEditOutliner->SetCalcFieldValueHdl(LINK(this,SdrObjEditView,ImpOutlinerCalcFieldValueHdl));
- pTextEditOutliner->SetBeginPasteOrDropHdl(LINK(this,SdrObjEditView,BeginPasteOrDropHdl));
- pTextEditOutliner->SetEndPasteOrDropHdl(LINK(this,SdrObjEditView,EndPasteOrDropHdl));
+ pTextEditOutliner->SetCalcFieldValueHdl(
+ LINK(this, SdrObjEditView, ImpOutlinerCalcFieldValueHdl));
+ pTextEditOutliner->SetBeginPasteOrDropHdl(LINK(this, SdrObjEditView, BeginPasteOrDropHdl));
+ pTextEditOutliner->SetEndPasteOrDropHdl(LINK(this, SdrObjEditView, EndPasteOrDropHdl));
// It is just necessary to make the visualized page known. Set it.
pTextEditOutliner->setVisualizedPage(pPV->GetPage());
- pTextEditOutliner->SetTextObjNoInit( mxTextEditObj.get() );
+ pTextEditOutliner->SetTextObjNoInit(mxTextEditObj.get());
- if(mxTextEditObj->BegTextEdit(*pTextEditOutliner))
+ if (mxTextEditObj->BegTextEdit(*pTextEditOutliner))
{
SdrTextObj* pTextObj = mxTextEditObj.get();
- DBG_ASSERT( pTextObj, "svx::SdrObjEditView::BegTextEdit(), no text object?" );
- if( !pTextObj )
+ DBG_ASSERT(pTextObj, "svx::SdrObjEditView::BegTextEdit(), no text object?");
+ if (!pTextObj)
return false;
// switch off any running TextAnimations
pTextObj->SetTextAnimationAllowed(false);
// remember old cursor
- if (pTextEditOutliner->GetViewCount()!=0)
+ if (pTextEditOutliner->GetViewCount() != 0)
{
pTextEditOutliner->RemoveView(static_cast<size_t>(0));
}
@@ -1147,14 +1171,14 @@ bool SdrObjEditView::SdrBeginTextEdit(
// Determine EditArea via TakeTextEditArea.
// TODO: This could theoretically be left out, because TakeTextRect() calculates the aTextEditArea,
// but aMinTextEditArea has to happen, too (therefore leaving this in right now)
- pTextObj->TakeTextEditArea(nullptr,nullptr,&aTextEditArea,&aMinTextEditArea);
+ pTextObj->TakeTextEditArea(nullptr, nullptr, &aTextEditArea, &aMinTextEditArea);
tools::Rectangle aTextRect;
tools::Rectangle aAnchorRect;
pTextObj->TakeTextRect(*pTextEditOutliner, aTextRect, true,
- &aAnchorRect /* Give true here, not false */);
+ &aAnchorRect /* Give true here, not false */);
- if ( !pTextObj->IsContourTextFrame() )
+ if (!pTextObj->IsContourTextFrame())
{
// FitToSize not together with ContourFrame, for now
if (pTextObj->IsFitToSize())
@@ -1165,20 +1189,19 @@ bool SdrObjEditView::SdrBeginTextEdit(
// add possible GridOffset to up-to-now view-independent EditAreas
basegfx::B2DVector aGridOffset(0.0, 0.0);
- if(getPossibleGridOffsetForSdrObject(aGridOffset, pTextObj, pPV))
+ if (getPossibleGridOffsetForSdrObject(aGridOffset, pTextObj, pPV))
{
- const Point aOffset(
- basegfx::fround(aGridOffset.getX()),
- basegfx::fround(aGridOffset.getY()));
+ const Point aOffset(basegfx::fround(aGridOffset.getX()),
+ basegfx::fround(aGridOffset.getY()));
aTextEditArea += aOffset;
aMinTextEditArea += aOffset;
}
Point aPvOfs(pTextObj->GetTextEditOffset());
- aTextEditArea.Move(aPvOfs.X(),aPvOfs.Y());
- aMinTextEditArea.Move(aPvOfs.X(),aPvOfs.Y());
- pTextEditCursorBuffer=pWin->GetCursor();
+ aTextEditArea.Move(aPvOfs.X(), aPvOfs.Y());
+ aMinTextEditArea.Move(aPvOfs.X(), aPvOfs.Y());
+ pTextEditCursorBuffer = pWin->GetCursor();
maHdlList.SetMoveOutside(true);
@@ -1186,7 +1209,7 @@ bool SdrObjEditView::SdrBeginTextEdit(
// to call AdjustMarkHdl() always.
AdjustMarkHdl();
- pTextEditOutlinerView=ImpMakeOutlinerView(pWin,pGivenOutlinerView);
+ pTextEditOutlinerView = ImpMakeOutlinerView(pWin, pGivenOutlinerView);
if (!comphelper::LibreOfficeKit::isActive() && pTextEditOutlinerView)
{
@@ -1198,7 +1221,8 @@ bool SdrObjEditView::SdrBeginTextEdit(
const Color aHilightColor(aSvtOptionsDrawinglayer.getHilightColor());
const SdrTextObj* pText = GetTextEditObject();
const bool bTextFrame(pText && pText->IsTextFrame());
- const bool bFitToSize(pTextEditOutliner->GetControlWord() & EEControlBits::STRETCHING);
+ const bool bFitToSize(pTextEditOutliner->GetControlWord()
+ & EEControlBits::STRETCHING);
const bool bVisualizeSurroundingFrame(bTextFrame && !bFitToSize);
SdrPageView* pPageView = GetSdrPageView();
@@ -1210,16 +1234,17 @@ bool SdrObjEditView::SdrBeginTextEdit(
if (rPageWindow.GetPaintWindow().OutputToWindow())
{
- const rtl::Reference< sdr::overlay::OverlayManager >& xManager = rPageWindow.GetOverlayManager();
+ const rtl::Reference<sdr::overlay::OverlayManager>& xManager
+ = rPageWindow.GetOverlayManager();
if (xManager.is())
{
- std::unique_ptr<TextEditOverlayObject> pNewTextEditOverlayObject(new TextEditOverlayObject(
- aHilightColor,
- *pTextEditOutlinerView,
- bVisualizeSurroundingFrame));
+ std::unique_ptr<TextEditOverlayObject> pNewTextEditOverlayObject(
+ new TextEditOverlayObject(aHilightColor, *pTextEditOutlinerView,
+ bVisualizeSurroundingFrame));
xManager->add(*pNewTextEditOverlayObject);
- xManager->add(const_cast<sdr::overlay::OverlaySelection&>(*pNewTextEditOverlayObject->getOverlaySelection()));
+ xManager->add(const_cast<sdr::overlay::OverlaySelection&>(
+ *pNewTextEditOverlayObject->getOverlaySelection()));
maTEOverlayGroup.append(std::move(pNewTextEditOverlayObject));
}
@@ -1229,30 +1254,31 @@ bool SdrObjEditView::SdrBeginTextEdit(
}
// check if this view is already inserted
- sal_uIntPtr i2,nCount = pTextEditOutliner->GetViewCount();
- for( i2 = 0; i2 < nCount; i2++ )
+ sal_uIntPtr i2, nCount = pTextEditOutliner->GetViewCount();
+ for (i2 = 0; i2 < nCount; i2++)
{
- if( pTextEditOutliner->GetView(i2) == pTextEditOutlinerView )
+ if (pTextEditOutliner->GetView(i2) == pTextEditOutlinerView)
break;
}
- if( i2 == nCount )
- pTextEditOutliner->InsertView(pTextEditOutlinerView,0);
+ if (i2 == nCount)
+ pTextEditOutliner->InsertView(pTextEditOutlinerView, 0);
maHdlList.SetMoveOutside(false);
maHdlList.SetMoveOutside(true);
// register all windows as OutlinerViews with the Outliner
- if(!bOnlyOneView)
+ if (!bOnlyOneView)
{
- for(i = 0; i < nWinCount; i++)
+ for (i = 0; i < nWinCount; i++)
{
SdrPaintWindow* pPaintWindow = GetPaintWindow(i);
OutputDevice& rOutDev = pPaintWindow->GetOutputDevice();
- if(&rOutDev != pWin && OUTDEV_WINDOW == rOutDev.GetOutDevType())
+ if (&rOutDev != pWin && OUTDEV_WINDOW == rOutDev.GetOutDevType())
{
- OutlinerView* pOutlView = ImpMakeOutlinerView(static_cast<vcl::Window*>(&rOutDev), nullptr);
+ OutlinerView* pOutlView
+ = ImpMakeOutlinerView(static_cast<vcl::Window*>(&rOutDev), nullptr);
pTextEditOutliner->InsertView(pOutlView, static_cast<sal_uInt16>(i));
}
}
@@ -1268,14 +1294,16 @@ bool SdrObjEditView::SdrBeginTextEdit(
if (pView == this)
continue;
- for(sal_uInt32 nViewPaintWindow = 0; nViewPaintWindow < pView->PaintWindowCount(); ++nViewPaintWindow)
+ for (sal_uInt32 nViewPaintWindow = 0;
+ nViewPaintWindow < pView->PaintWindowCount(); ++nViewPaintWindow)
{
SdrPaintWindow* pPaintWindow = pView->GetPaintWindow(nViewPaintWindow);
OutputDevice& rOutDev = pPaintWindow->GetOutputDevice();
- if(&rOutDev != pWin && OUTDEV_WINDOW == rOutDev.GetOutDevType())
+ if (&rOutDev != pWin && OUTDEV_WINDOW == rOutDev.GetOutDevType())
{
- OutlinerView* pOutlView = ImpMakeOutlinerView(static_cast<vcl::Window*>(&rOutDev), nullptr);
+ OutlinerView* pOutlView = ImpMakeOutlinerView(
+ static_cast<vcl::Window*>(&rOutDev), nullptr);
pOutlView->HideCursor();
static_cast<vcl::Window*>(&rOutDev)->SetCursor(nullptr);
pTextEditOutliner->InsertView(pOutlView);
@@ -1286,13 +1314,17 @@ bool SdrObjEditView::SdrBeginTextEdit(
}
pTextEditOutlinerView->ShowCursor();
- pTextEditOutliner->SetStatusEventHdl(LINK(this,SdrObjEditView,ImpOutlinerStatusEventHdl));
- if (pTextObj->IsChainable()) {
- pTextEditOutlinerView->SetEndCutPasteLinkHdl(LINK(this,SdrObjEditView,ImpAfterCutOrPasteChainingEventHdl) );
+ pTextEditOutliner->SetStatusEventHdl(
+ LINK(this, SdrObjEditView, ImpOutlinerStatusEventHdl));
+ if (pTextObj->IsChainable())
+ {
+ pTextEditOutlinerView->SetEndCutPasteLinkHdl(
+ LINK(this, SdrObjEditView, ImpAfterCutOrPasteChainingEventHdl));
}
#ifdef DBG_UTIL
- if (mpItemBrowser!=nullptr) mpItemBrowser->SetDirty();
+ if (mpItemBrowser != nullptr)
+ mpItemBrowser->SetDirty();
#endif
pTextEditOutliner->ClearModifyFlag();
@@ -1301,7 +1333,7 @@ bool SdrObjEditView::SdrBeginTextEdit(
pWin->Invalidate(aTextEditArea);
}
- if( GetModel() )
+ if (GetModel())
{
SdrHint aHint(SdrHintKind::BeginEdit, *pTextObj);
GetModel()->Broadcast(aHint);
@@ -1309,14 +1341,15 @@ bool SdrObjEditView::SdrBeginTextEdit(
pTextEditOutliner->setVisualizedPage(nullptr);
- if( mxSelectionController.is() )
+ if (mxSelectionController.is())
mxSelectionController->onSelectionHasChanged();
- if (GetModel() && IsUndoEnabled() && !GetModel()->GetDisableTextEditUsesCommonUndoManager())
+ if (GetModel() && IsUndoEnabled()
+ && !GetModel()->GetDisableTextEditUsesCommonUndoManager())
{
SdrUndoManager* pSdrUndoManager = getSdrUndoManagerForEnhancedTextEdit();
- if(pSdrUndoManager)
+ if (pSdrUndoManager)
{
// we have an outliner, undo manager and it's an EditUndoManager, exchange
// the document undo manager and the default one from the outliner and tell
@@ -1328,7 +1361,8 @@ bool SdrObjEditView::SdrBeginTextEdit(
}
else
{
- OSL_ENSURE(false, "The document undo manager is not derived from SdrUndoManager (!)");
+ OSL_ENSURE(false,
+ "The document undo manager is not derived from SdrUndoManager (!)");
}
}
@@ -1337,8 +1371,8 @@ bool SdrObjEditView::SdrBeginTextEdit(
else
{
pTextEditOutliner->SetCalcFieldValueHdl(aOldCalcFieldValueLink);
- pTextEditOutliner->SetBeginPasteOrDropHdl(Link<PasteOrDropInfos*,void>());
- pTextEditOutliner->SetEndPasteOrDropHdl(Link<PasteOrDropInfos*,void>());
+ pTextEditOutliner->SetBeginPasteOrDropHdl(Link<PasteOrDropInfos*, void>());
+ pTextEditOutliner->SetEndPasteOrDropHdl(Link<PasteOrDropInfos*, void>());
}
}
if (pTextEditOutliner != nullptr)
@@ -1347,10 +1381,10 @@ bool SdrObjEditView::SdrBeginTextEdit(
}
// something went wrong...
- if(!bDontDeleteOutliner)
+ if (!bDontDeleteOutliner)
{
delete pGivenOutliner;
- if(pGivenOutlinerView!=nullptr)
+ if (pGivenOutlinerView != nullptr)
{
delete pGivenOutlinerView;
pGivenOutlinerView = nullptr;
@@ -1358,10 +1392,10 @@ bool SdrObjEditView::SdrBeginTextEdit(
}
pTextEditOutliner.reset();
- pTextEditOutlinerView=nullptr;
+ pTextEditOutlinerView = nullptr;
mxTextEditObj.reset(nullptr);
- pTextEditPV=nullptr;
- pTextEditWin=nullptr;
+ pTextEditPV = nullptr;
+ pTextEditWin = nullptr;
maHdlList.SetMoveOutside(false);
return false;
@@ -1369,28 +1403,29 @@ bool SdrObjEditView::SdrBeginTextEdit(
SdrEndTextEditKind SdrObjEditView::SdrEndTextEdit(bool bDontDeleteReally)
{
- SdrEndTextEditKind eRet=SdrEndTextEditKind::Unchanged;
+ SdrEndTextEditKind eRet = SdrEndTextEditKind::Unchanged;
SdrTextObj* pTEObj = mxTextEditObj.get();
- vcl::Window* pTEWin =pTextEditWin;
- OutlinerView* pTEOutlinerView=pTextEditOutlinerView;
- vcl::Cursor* pTECursorBuffer=pTextEditCursorBuffer;
+ vcl::Window* pTEWin = pTextEditWin;
+ OutlinerView* pTEOutlinerView = pTextEditOutlinerView;
+ vcl::Cursor* pTECursorBuffer = pTextEditCursorBuffer;
SdrUndoManager* pUndoEditUndoManager = nullptr;
bool bNeedToUndoSavedRedoTextEdit(false);
- if (GetModel() && IsUndoEnabled() && pTEObj && pTextEditOutliner && !GetModel()->GetDisableTextEditUsesCommonUndoManager())
+ if (GetModel() && IsUndoEnabled() && pTEObj && pTextEditOutliner
+ && !GetModel()->GetDisableTextEditUsesCommonUndoManager())
{
// change back the UndoManager to the remembered original one
SfxUndoManager* pOriginal = pTextEditOutliner->SetUndoManager(mpOldTextEditUndoManager);
mpOldTextEditUndoManager = nullptr;
- if(pOriginal)
+ if (pOriginal)
{
// check if we got back our document undo manager
SdrUndoManager* pSdrUndoManager = getSdrUndoManagerForEnhancedTextEdit();
- if(pSdrUndoManager && dynamic_cast< SdrUndoManager* >(pOriginal) == pSdrUndoManager)
+ if (pSdrUndoManager && dynamic_cast<SdrUndoManager*>(pOriginal) == pSdrUndoManager)
{
- if(pSdrUndoManager->isEndTextEditTriggeredFromUndo())
+ if (pSdrUndoManager->isEndTextEditTriggeredFromUndo())
{
// remember the UndoManager where missing Undos have to be triggered after end
// text edit. When the undo had triggered the end text edit, the original action
@@ -1401,7 +1436,7 @@ SdrEndTextEditKind SdrObjEditView::SdrEndTextEdit(bool bDontDeleteReally)
// to create a complete text change undo action for the redo buffer. Also mark this
// state when at least one redo was executed; the created extra TextChange needs to
// be undone in addition to the first real undo outside the text edit changes
- while(pSdrUndoManager->GetRedoActionCount())
+ while (pSdrUndoManager->GetRedoActionCount())
{
bNeedToUndoSavedRedoTextEdit = true;
pSdrUndoManager->Redo();
@@ -1410,11 +1445,12 @@ SdrEndTextEditKind SdrObjEditView::SdrEndTextEdit(bool bDontDeleteReally)
// reset the callback link and let the undo manager cleanup all text edit
// undo actions to get the stack back to the form before the text edit
- pSdrUndoManager->SetEndTextEditHdl(Link<SdrUndoManager*,void>());
+ pSdrUndoManager->SetEndTextEditHdl(Link<SdrUndoManager*, void>());
}
else
{
- OSL_ENSURE(false, "Got UndoManager back in SdrEndTextEdit which is NOT the expected document UndoManager (!)");
+ OSL_ENSURE(false, "Got UndoManager back in SdrEndTextEdit which is NOT the "
+ "expected document UndoManager (!)");
delete pOriginal;
}
}
@@ -1424,7 +1460,7 @@ SdrEndTextEditKind SdrObjEditView::SdrEndTextEdit(bool bDontDeleteReally)
assert(nullptr == mpOldTextEditUndoManager); // cannot be restored!
}
- if( GetModel() && mxTextEditObj.is() )
+ if (GetModel() && mxTextEditObj.is())
{
SdrHint aHint(SdrHintKind::EndEdit, *mxTextEditObj.get());
GetModel()->Broadcast(aHint);
@@ -1439,48 +1475,53 @@ SdrEndTextEditKind SdrObjEditView::SdrEndTextEdit(bool bDontDeleteReally)
}
mxTextEditObj.reset(nullptr);
- pTextEditPV=nullptr;
- pTextEditWin=nullptr;
+ pTextEditPV = nullptr;
+ pTextEditWin = nullptr;
SdrOutliner* pTEOutliner = pTextEditOutliner.release();
- pTextEditOutlinerView=nullptr;
- pTextEditCursorBuffer=nullptr;
- aTextEditArea=tools::Rectangle();
+ pTextEditOutlinerView = nullptr;
+ pTextEditCursorBuffer = nullptr;
+ aTextEditArea = tools::Rectangle();
- if (pTEOutliner!=nullptr)
+ if (pTEOutliner != nullptr)
{
- bool bModified=pTEOutliner->IsModified();
- if (pTEOutlinerView!=nullptr)
+ bool bModified = pTEOutliner->IsModified();
+ if (pTEOutlinerView != nullptr)
{
pTEOutlinerView->HideCursor();
}
- if (pTEObj!=nullptr)
+ if (pTEObj != nullptr)
{
pTEOutliner->CompleteOnlineSpelling();
std::unique_ptr<SdrUndoObjSetText> pTxtUndo;
- if( bModified )
+ if (bModified)
{
sal_Int32 nText;
- for( nText = 0; nText < pTEObj->getTextCount(); ++nText )
- if( pTEObj->getText( nText ) == pTEObj->getActiveText() )
+ for (nText = 0; nText < pTEObj->getTextCount(); ++nText)
+ if (pTEObj->getText(nText) == pTEObj->getActiveText())
break;
- pTxtUndo.reset( dynamic_cast< SdrUndoObjSetText* >( GetModel()->GetSdrUndoFactory().CreateUndoObjectSetText(*pTEObj, nText ).release() ) );
+ pTxtUndo.reset(
+ dynamic_cast<SdrUndoObjSetText*>(GetModel()
+ ->GetSdrUndoFactory()
+ .CreateUndoObjectSetText(*pTEObj, nText)
+ .release()));
}
- DBG_ASSERT( !bModified || pTxtUndo, "svx::SdrObjEditView::EndTextEdit(), could not create undo action!" );
+ DBG_ASSERT(!bModified || pTxtUndo,
+ "svx::SdrObjEditView::EndTextEdit(), could not create undo action!");
// Set old CalcFieldValue-Handler again, this
// has to happen before Obj::EndTextEdit(), as this does UpdateFields().
pTEOutliner->SetCalcFieldValueHdl(aOldCalcFieldValueLink);
- pTEOutliner->SetBeginPasteOrDropHdl(Link<PasteOrDropInfos*,void>());
- pTEOutliner->SetEndPasteOrDropHdl(Link<PasteOrDropInfos*,void>());
+ pTEOutliner->SetBeginPasteOrDropHdl(Link<PasteOrDropInfos*, void>());
+ pTEOutliner->SetEndPasteOrDropHdl(Link<PasteOrDropInfos*, void>());
const bool bUndo = IsUndoEnabled();
- if( bUndo )
+ if (bUndo)
{
EndTextEditAllViews();
OUString aObjName(pTEObj->TakeObjNameSingul());
- BegUndo(SvxResId(STR_UndoObjSetText),aObjName);
+ BegUndo(SvxResId(STR_UndoObjSetText), aObjName);
}
pTEObj->EndTextEdit(*pTEOutliner);
@@ -1491,7 +1532,7 @@ SdrEndTextEditKind SdrObjEditView::SdrEndTextEdit(bool bDontDeleteReally)
pTEObj->ActionChanged();
}
- if (pTxtUndo!=nullptr)
+ if (pTxtUndo != nullptr)
{
pTxtUndo->AfterSetText();
if (!pTxtUndo->IsDifferent())
@@ -1501,39 +1542,39 @@ SdrEndTextEditKind SdrObjEditView::SdrEndTextEdit(bool bDontDeleteReally)
}
// check deletion of entire TextObj
std::unique_ptr<SdrUndoAction> pDelUndo;
- bool bDelObj=false;
+ bool bDelObj = false;
if (bTextEditNewObj)
{
- bDelObj=pTEObj->IsTextFrame() &&
- !pTEObj->HasText() &&
- !pTEObj->IsEmptyPresObj() &&
- !pTEObj->HasFill() &&
- !pTEObj->HasLine();
+ bDelObj = pTEObj->IsTextFrame() && !pTEObj->HasText() && !pTEObj->IsEmptyPresObj()
+ && !pTEObj->HasFill() && !pTEObj->HasLine();
- if(pTEObj->IsInserted() && bDelObj && pTEObj->GetObjInventor()==SdrInventor::Default && !bDontDeleteReally)
+ if (pTEObj->IsInserted() && bDelObj
+ && pTEObj->GetObjInventor() == SdrInventor::Default && !bDontDeleteReally)
{
- SdrObjKind eIdent=static_cast<SdrObjKind>(pTEObj->GetObjIdentifier());
- if(eIdent==OBJ_TEXT)
+ SdrObjKind eIdent = static_cast<SdrObjKind>(pTEObj->GetObjIdentifier());
+ if (eIdent == OBJ_TEXT)
{
- pDelUndo= GetModel()->GetSdrUndoFactory().CreateUndoDeleteObject(*pTEObj);
+ pDelUndo = GetModel()->GetSdrUndoFactory().CreateUndoDeleteObject(*pTEObj);
}
}
}
if (pTxtUndo)
{
- if( bUndo )
+ if (bUndo)
AddUndo(std::move(pTxtUndo));
- eRet=SdrEndTextEditKind::Changed;
+ eRet = SdrEndTextEditKind::Changed;
}
- if (pDelUndo!=nullptr)
+ if (pDelUndo != nullptr)
{
- if( bUndo )
+ if (bUndo)
{
AddUndo(std::move(pDelUndo));
}
- eRet=SdrEndTextEditKind::Deleted;
- DBG_ASSERT(pTEObj->getParentSdrObjListFromSdrObject()!=nullptr,"SdrObjEditView::SdrEndTextEdit(): Fatal: Object edited doesn't have an ObjList!");
- if (pTEObj->getParentSdrObjListFromSdrObject()!=nullptr)
+ eRet = SdrEndTextEditKind::Deleted;
+ DBG_ASSERT(pTEObj->getParentSdrObjListFromSdrObject() != nullptr,
+ "SdrObjEditView::SdrEndTextEdit(): Fatal: Object edited doesn't have an "
+ "ObjList!");
+ if (pTEObj->getParentSdrObjListFromSdrObject() != nullptr)
{
pTEObj->getParentSdrObjListFromSdrObject()->RemoveObject(pTEObj->GetOrdNum());
CheckMarked(); // remove selection immediately...
@@ -1541,14 +1582,14 @@ SdrEndTextEditKind SdrObjEditView::SdrEndTextEdit(bool bDontDeleteReally)
}
else if (bDelObj)
{ // for Writer: the app has to do the deletion itself.
- eRet=SdrEndTextEditKind::ShouldBeDeleted;
+ eRet = SdrEndTextEditKind::ShouldBeDeleted;
}
- if( bUndo )
+ if (bUndo)
EndUndo(); // EndUndo after Remove, in case UndoStack is deleted immediately
// Switch on any TextAnimation again after TextEdit
- if(dynamic_cast<const SdrTextObj*>( pTEObj) != nullptr)
+ if (dynamic_cast<const SdrTextObj*>(pTEObj) != nullptr)
{
pTEObj->SetTextAnimationAllowed(true);
}
@@ -1558,39 +1599,42 @@ SdrEndTextEditKind SdrObjEditView::SdrEndTextEdit(bool bDontDeleteReally)
AdjustMarkHdl();
}
// delete all OutlinerViews
- for (sal_uIntPtr i=pTEOutliner->GetViewCount(); i>0;)
+ for (sal_uIntPtr i = pTEOutliner->GetViewCount(); i > 0;)
{
i--;
- OutlinerView* pOLV=pTEOutliner->GetView(i);
- sal_uInt16 nMorePix=pOLV->GetInvalidateMore() + 10;
- vcl::Window* pWin=pOLV->GetWindow();
+ OutlinerView* pOLV = pTEOutliner->GetView(i);
+ sal_uInt16 nMorePix = pOLV->GetInvalidateMore() + 10;
+ vcl::Window* pWin = pOLV->GetWindow();
tools::Rectangle aRect(pOLV->GetOutputArea());
pTEOutliner->RemoveView(i);
- if (!bTextEditDontDelete || i!=0)
+ if (!bTextEditDontDelete || i != 0)
{
// may not own the zeroth one
delete pOLV;
}
aRect.Union(aTextEditArea);
aRect.Union(aMinTextEditArea);
- aRect=pWin->LogicToPixel(aRect);
- aRect.AdjustLeft( -nMorePix );
- aRect.AdjustTop( -nMorePix );
- aRect.AdjustRight(nMorePix );
- aRect.AdjustBottom(nMorePix );
- aRect=pWin->PixelToLogic(aRect);
- InvalidateOneWin(*pWin,aRect);
+ aRect = pWin->LogicToPixel(aRect);
+ aRect.AdjustLeft(-nMorePix);
+ aRect.AdjustTop(-nMorePix);
+ aRect.AdjustRight(nMorePix);
+ aRect.AdjustBottom(nMorePix);
+ aRect = pWin->PixelToLogic(aRect);
+ InvalidateOneWin(*pWin, aRect);
pWin->SetFillColor();
pWin->SetLineColor(COL_BLACK);
}
// and now the Outliner itself
- if (!bTextEditDontDelete) delete pTEOutliner;
- else pTEOutliner->Clear();
- if (pTEWin!=nullptr) {
+ if (!bTextEditDontDelete)
+ delete pTEOutliner;
+ else
+ pTEOutliner->Clear();
+ if (pTEWin != nullptr)
+ {
pTEWin->SetCursor(pTECursorBuffer);
}
maHdlList.SetMoveOutside(false);
- if (eRet!=SdrEndTextEditKind::Unchanged)
+ if (eRet != SdrEndTextEditKind::Unchanged)
{
GetMarkedObjectListWriteAccess().SetNameDirty();
}
@@ -1603,17 +1647,15 @@ SdrEndTextEditKind SdrObjEditView::SdrEndTextEdit(bool bDontDeleteReally)
#endif
}
- if( pTEObj &&
- !pTEObj->getSdrModelFromSdrObject().isLocked() &&
- pTEObj->GetBroadcaster())
+ if (pTEObj && !pTEObj->getSdrModelFromSdrObject().isLocked() && pTEObj->GetBroadcaster())
{
SdrHint aHint(SdrHintKind::EndEdit, *pTEObj);
const_cast<SfxBroadcaster*>(pTEObj->GetBroadcaster())->Broadcast(aHint);
}
- if(pUndoEditUndoManager)
+ if (pUndoEditUndoManager)
{
- if(bNeedToUndoSavedRedoTextEdit)
+ if (bNeedToUndoSavedRedoTextEdit)
{
// undo the text edit action since it was created as part of an EndTextEdit
// callback from undo itself. This needs to be done after the call to
@@ -1629,46 +1671,42 @@ SdrEndTextEditKind SdrObjEditView::SdrEndTextEdit(bool bDontDeleteReally)
return eRet;
}
-
// info about TextEdit. Default is false.
-bool SdrObjEditView::IsTextEdit() const
-{
- return mxTextEditObj.is();
-}
+bool SdrObjEditView::IsTextEdit() const { return mxTextEditObj.is(); }
// info about TextEditPageView. Default is 0L.
-SdrPageView* SdrObjEditView::GetTextEditPageView() const
-{
- return pTextEditPV;
-}
-
+SdrPageView* SdrObjEditView::GetTextEditPageView() const { return pTextEditPV; }
-OutlinerView* SdrObjEditView::ImpFindOutlinerView(vcl::Window const * pWin) const
+OutlinerView* SdrObjEditView::ImpFindOutlinerView(vcl::Window const* pWin) const
{
- if (pWin==nullptr) return nullptr;
- if (pTextEditOutliner==nullptr) return nullptr;
- OutlinerView* pNewView=nullptr;
- sal_uIntPtr nWinCount=pTextEditOutliner->GetViewCount();
- for (sal_uIntPtr i=0; i<nWinCount && pNewView==nullptr; i++) {
- OutlinerView* pView=pTextEditOutliner->GetView(i);
- if (pView->GetWindow()==pWin) pNewView=pView;
+ if (pWin == nullptr)
+ return nullptr;
+ if (pTextEditOutliner == nullptr)
+ return nullptr;
+ OutlinerView* pNewView = nullptr;
+ sal_uIntPtr nWinCount = pTextEditOutliner->GetViewCount();
+ for (sal_uIntPtr i = 0; i < nWinCount && pNewView == nullptr; i++)
+ {
+ OutlinerView* pView = pTextEditOutliner->GetView(i);
+ if (pView->GetWindow() == pWin)
+ pNewView = pView;
}
return pNewView;
}
void SdrObjEditView::SetTextEditWin(vcl::Window* pWin)
{
- if(mxTextEditObj.is() && pWin!=nullptr && pWin!=pTextEditWin)
+ if (mxTextEditObj.is() && pWin != nullptr && pWin != pTextEditWin)
{
- OutlinerView* pNewView=ImpFindOutlinerView(pWin);
- if (pNewView!=nullptr && pNewView!=pTextEditOutlinerView)
+ OutlinerView* pNewView = ImpFindOutlinerView(pWin);
+ if (pNewView != nullptr && pNewView != pTextEditOutlinerView)
{
- if (pTextEditOutlinerView!=nullptr)
+ if (pTextEditOutlinerView != nullptr)
{
pTextEditOutlinerView->HideCursor();
}
- pTextEditOutlinerView=pNewView;
- pTextEditWin=pWin;
+ pTextEditOutlinerView = pNewView;
+ pTextEditWin = pWin;
pWin->GrabFocus(); // Make the cursor blink here as well
pNewView->ShowCursor();
ImpMakeTextCursorAreaVisible();
@@ -1678,25 +1716,27 @@ void SdrObjEditView::SetTextEditWin(vcl::Window* pWin)
bool SdrObjEditView::IsTextEditHit(const Point& rHit) const
{
- bool bOk=false;
- if(mxTextEditObj.is())
+ bool bOk = false;
+ if (mxTextEditObj.is())
{
tools::Rectangle aEditArea;
- OutlinerView* pOLV=pTextEditOutliner->GetView(0);
- if (pOLV!=nullptr)
+ OutlinerView* pOLV = pTextEditOutliner->GetView(0);
+ if (pOLV != nullptr)
{
aEditArea.Union(pOLV->GetOutputArea());
}
- bOk=aEditArea.IsInside(rHit);
+ bOk = aEditArea.IsInside(rHit);
if (bOk)
{ // check if any characters were actually hit
- Point aPnt(rHit); aPnt-=aEditArea.TopLeft();
+ Point aPnt(rHit);
+ aPnt -= aEditArea.TopLeft();
long nHitTol = 2000;
OutputDevice* pRef = pTextEditOutliner->GetRefDevice();
- if( pRef )
- nHitTol = OutputDevice::LogicToLogic( nHitTol, MapUnit::Map100thMM, pRef->GetMapMode().GetMapUnit() );
+ if (pRef)
+ nHitTol = OutputDevice::LogicToLogic(nHitTol, MapUnit::Map100thMM,
+ pRef->GetMapMode().GetMapUnit());
- bOk = pTextEditOutliner->IsTextPos( aPnt, static_cast<sal_uInt16>(nHitTol) );
+ bOk = pTextEditOutliner->IsTextPos(aPnt, static_cast<sal_uInt16>(nHitTol));
}
}
return bOk;
@@ -1704,26 +1744,27 @@ bool SdrObjEditView::IsTextEditHit(const Point& rHit) const
bool SdrObjEditView::IsTextEditFrameHit(const Point& rHit) const
{
- bool bOk=false;
- if(mxTextEditObj.is())
+ bool bOk = false;
+ if (mxTextEditObj.is())
{
SdrTextObj* pText = mxTextEditObj.get();
- OutlinerView* pOLV=pTextEditOutliner->GetView(0);
- if( pOLV )
+ OutlinerView* pOLV = pTextEditOutliner->GetView(0);
+ if (pOLV)
{
- vcl::Window* pWin=pOLV->GetWindow();
+ vcl::Window* pWin = pOLV->GetWindow();
if (pText != nullptr && pText->IsTextFrame() && pWin != nullptr)
{
- sal_uInt16 nPixSiz=pOLV->GetInvalidateMore();
+ sal_uInt16 nPixSiz = pOLV->GetInvalidateMore();
tools::Rectangle aEditArea(aMinTextEditArea);
aEditArea.Union(pOLV->GetOutputArea());
- if (!aEditArea.IsInside(rHit)) {
- Size aSiz(pWin->PixelToLogic(Size(nPixSiz,nPixSiz)));
- aEditArea.AdjustLeft( -(aSiz.Width()) );
- aEditArea.AdjustTop( -(aSiz.Height()) );
- aEditArea.AdjustRight(aSiz.Width() );
- aEditArea.AdjustBottom(aSiz.Height() );
- bOk=aEditArea.IsInside(rHit);
+ if (!aEditArea.IsInside(rHit))
+ {
+ Size aSiz(pWin->PixelToLogic(Size(nPixSiz, nPixSiz)));
+ aEditArea.AdjustLeft(-(aSiz.Width()));
+ aEditArea.AdjustTop(-(aSiz.Height()));
+ aEditArea.AdjustRight(aSiz.Width());
+ aEditArea.AdjustBottom(aSiz.Height());
+ bOk = aEditArea.IsInside(rHit);
}
}
}
@@ -1731,9 +1772,8 @@ bool SdrObjEditView::IsTextEditFrameHit(const Point& rHit) const
return bOk;
}
-TextChainCursorManager *SdrObjEditView::ImpHandleMotionThroughBoxesKeyInput(
- const KeyEvent& rKEvt,
- bool *bOutHandled)
+TextChainCursorManager* SdrObjEditView::ImpHandleMotionThroughBoxesKeyInput(const KeyEvent& rKEvt,
+ bool* bOutHandled)
{
*bOutHandled = false;
@@ -1744,8 +1784,9 @@ TextChainCursorManager *SdrObjEditView::ImpHandleMotionThroughBoxesKeyInput(
if (!pTextObj->GetNextLinkInChain() && !pTextObj->GetPrevLinkInChain())
return nullptr;
- TextChainCursorManager *pCursorManager = new TextChainCursorManager(this, pTextObj);
- if( pCursorManager->HandleKeyEvent(rKEvt) ) {
+ TextChainCursorManager* pCursorManager = new TextChainCursorManager(this, pTextObj);
+ if (pCursorManager->HandleKeyEvent(rKEvt))
+ {
// Possibly do other stuff here if necessary...
// XXX: Careful with the checks below (in KeyInput) for pWin and co. You should do them here I guess.
*bOutHandled = true;
@@ -1756,7 +1797,7 @@ TextChainCursorManager *SdrObjEditView::ImpHandleMotionThroughBoxesKeyInput(
bool SdrObjEditView::KeyInput(const KeyEvent& rKEvt, vcl::Window* pWin)
{
- if(pTextEditOutlinerView)
+ if (pTextEditOutlinerView)
{
/* Start special handling of keys within a chain */
// We possibly move to another box before any handling
@@ -1769,9 +1810,9 @@ bool SdrObjEditView::KeyInput(const KeyEvent& rKEvt, vcl::Window* pWin)
if (pTextEditOutlinerView->PostKeyEvent(rKEvt, pWin))
{
- if( mpModel )
+ if (mpModel)
{
- if( pTextEditOutliner && pTextEditOutliner->IsModified() )
+ if (pTextEditOutliner && pTextEditOutliner->IsModified())
mpModel->SetChanged();
}
@@ -1780,150 +1821,196 @@ bool SdrObjEditView::KeyInput(const KeyEvent& rKEvt, vcl::Window* pWin)
ImpMoveCursorAfterChainingEvent(xCursorManager.get());
/* End chaining processing */
- if (pWin!=nullptr && pWin!=pTextEditWin) SetTextEditWin(pWin);
+ if (pWin != nullptr && pWin != pTextEditWin)
+ SetTextEditWin(pWin);
#ifdef DBG_UTIL
- if (mpItemBrowser!=nullptr) mpItemBrowser->SetDirty();
+ if (mpItemBrowser != nullptr)
+ mpItemBrowser->SetDirty();
#endif
ImpMakeTextCursorAreaVisible();
return true;
}
}
- return SdrGlueEditView::KeyInput(rKEvt,pWin);
+ return SdrGlueEditView::KeyInput(rKEvt, pWin);
}
bool SdrObjEditView::MouseButtonDown(const MouseEvent& rMEvt, OutputDevice* pWin)
{
- if (pTextEditOutlinerView!=nullptr) {
- bool bPostIt=pTextEditOutliner->IsInSelectionMode();
- if (!bPostIt) {
+ if (pTextEditOutlinerView != nullptr)
+ {
+ bool bPostIt = pTextEditOutliner->IsInSelectionMode();
+ if (!bPostIt)
+ {
Point aPt(rMEvt.GetPosPixel());
- if (pWin!=nullptr) aPt=pWin->PixelToLogic(aPt);
- else if (pTextEditWin!=nullptr) aPt=pTextEditWin->PixelToLogic(aPt);
- bPostIt=IsTextEditHit(aPt);
+ if (pWin != nullptr)
+ aPt = pWin->PixelToLogic(aPt);
+ else if (pTextEditWin != nullptr)
+ aPt = pTextEditWin->PixelToLogic(aPt);
+ bPostIt = IsTextEditHit(aPt);
}
- if (bPostIt) {
+ if (bPostIt)
+ {
Point aPixPos(rMEvt.GetPosPixel());
if (pWin)
{
tools::Rectangle aR(pWin->LogicToPixel(pTextEditOutlinerView->GetOutputArea()));
- if (aPixPos.X()<aR.Left ()) aPixPos.setX(aR.Left () );
- if (aPixPos.X()>aR.Right ()) aPixPos.setX(aR.Right () );
- if (aPixPos.Y()<aR.Top ()) aPixPos.setY(aR.Top () );
- if (aPixPos.Y()>aR.Bottom()) aPixPos.setY(aR.Bottom() );
- }
- MouseEvent aMEvt(aPixPos,rMEvt.GetClicks(),rMEvt.GetMode(),
- rMEvt.GetButtons(),rMEvt.GetModifier());
- if (pTextEditOutlinerView->MouseButtonDown(aMEvt)) {
- if (pWin!=nullptr && pWin!=pTextEditWin && pWin->GetOutDevType() == OUTDEV_WINDOW)
+ if (aPixPos.X() < aR.Left())
+ aPixPos.setX(aR.Left());
+ if (aPixPos.X() > aR.Right())
+ aPixPos.setX(aR.Right());
+ if (aPixPos.Y() < aR.Top())
+ aPixPos.setY(aR.Top());
+ if (aPixPos.Y() > aR.Bottom())
+ aPixPos.setY(aR.Bottom());
+ }
+ MouseEvent aMEvt(aPixPos, rMEvt.GetClicks(), rMEvt.GetMode(), rMEvt.GetButtons(),
+ rMEvt.GetModifier());
+ if (pTextEditOutlinerView->MouseButtonDown(aMEvt))
+ {
+ if (pWin != nullptr && pWin != pTextEditWin
+ && pWin->GetOutDevType() == OUTDEV_WINDOW)
SetTextEditWin(static_cast<vcl::Window*>(pWin));
#ifdef DBG_UTIL
- if (mpItemBrowser!=nullptr) mpItemBrowser->SetDirty();
+ if (mpItemBrowser != nullptr)
+ mpItemBrowser->SetDirty();
#endif
ImpMakeTextCursorAreaVisible();
return true;
}
}
}
- return SdrGlueEditView::MouseButtonDown(rMEvt,pWin);
+ return SdrGlueEditView::MouseButtonDown(rMEvt, pWin);
}
bool SdrObjEditView::MouseButtonUp(const MouseEvent& rMEvt, OutputDevice* pWin)
{
- if (pTextEditOutlinerView!=nullptr) {
- bool bPostIt=pTextEditOutliner->IsInSelectionMode();
- if (!bPostIt) {
+ if (pTextEditOutlinerView != nullptr)
+ {
+ bool bPostIt = pTextEditOutliner->IsInSelectionMode();
+ if (!bPostIt)
+ {
Point aPt(rMEvt.GetPosPixel());
- if (pWin!=nullptr) aPt=pWin->PixelToLogic(aPt);
- else if (pTextEditWin!=nullptr) aPt=pTextEditWin->PixelToLogic(aPt);
- bPostIt=IsTextEditHit(aPt);
+ if (pWin != nullptr)
+ aPt = pWin->PixelToLogic(aPt);
+ else if (pTextEditWin != nullptr)
+ aPt = pTextEditWin->PixelToLogic(aPt);
+ bPostIt = IsTextEditHit(aPt);
}
- if (bPostIt && pWin) {
+ if (bPostIt && pWin)
+ {
Point aPixPos(rMEvt.GetPosPixel());
tools::Rectangle aR(pWin->LogicToPixel(pTextEditOutlinerView->GetOutputArea()));
- if (aPixPos.X()<aR.Left ()) aPixPos.setX(aR.Left () );
- if (aPixPos.X()>aR.Right ()) aPixPos.setX(aR.Right () );
- if (aPixPos.Y()<aR.Top ()) aPixPos.setY(aR.Top () );
- if (aPixPos.Y()>aR.Bottom()) aPixPos.setY(aR.Bottom() );
- MouseEvent aMEvt(aPixPos,rMEvt.GetClicks(),rMEvt.GetMode(),
- rMEvt.GetButtons(),rMEvt.GetModifier());
- if (pTextEditOutlinerView->MouseButtonUp(aMEvt)) {
+ if (aPixPos.X() < aR.Left())
+ aPixPos.setX(aR.Left());
+ if (aPixPos.X() > aR.Right())
+ aPixPos.setX(aR.Right());
+ if (aPixPos.Y() < aR.Top())
+ aPixPos.setY(aR.Top());
+ if (aPixPos.Y() > aR.Bottom())
+ aPixPos.setY(aR.Bottom());
+ MouseEvent aMEvt(aPixPos, rMEvt.GetClicks(), rMEvt.GetMode(), rMEvt.GetButtons(),
+ rMEvt.GetModifier());
+ if (pTextEditOutlinerView->MouseButtonUp(aMEvt))
+ {
#ifdef DBG_UTIL
- if (mpItemBrowser!=nullptr) mpItemBrowser->SetDirty();
+ if (mpItemBrowser != nullptr)
+ mpItemBrowser->SetDirty();
#endif
ImpMakeTextCursorAreaVisible();
return true;
}
}
}
- return SdrGlueEditView::MouseButtonUp(rMEvt,pWin);
+ return SdrGlueEditView::MouseButtonUp(rMEvt, pWin);
}
bool SdrObjEditView::MouseMove(const MouseEvent& rMEvt, OutputDevice* pWin)
{
- if (pTextEditOutlinerView!=nullptr) {
- bool bSelMode=pTextEditOutliner->IsInSelectionMode();
- bool bPostIt=bSelMode;
- if (!bPostIt) {
+ if (pTextEditOutlinerView != nullptr)
+ {
+ bool bSelMode = pTextEditOutliner->IsInSelectionMode();
+ bool bPostIt = bSelMode;
+ if (!bPostIt)
+ {
Point aPt(rMEvt.GetPosPixel());
if (pWin)
- aPt=pWin->PixelToLogic(aPt);
+ aPt = pWin->PixelToLogic(aPt);
else if (pTextEditWin)
- aPt=pTextEditWin->PixelToLogic(aPt);
- bPostIt=IsTextEditHit(aPt);
+ aPt = pTextEditWin->PixelToLogic(aPt);
+ bPostIt = IsTextEditHit(aPt);
}
- if (bPostIt) {
+ if (bPostIt)
+ {
Point aPixPos(rMEvt.GetPosPixel());
tools::Rectangle aR(pTextEditOutlinerView->GetOutputArea());
if (pWin)
aR = pWin->LogicToPixel(aR);
else if (pTextEditWin)
aR = pTextEditWin->LogicToPixel(aR);
- if (aPixPos.X()<aR.Left ()) aPixPos.setX(aR.Left () );
- if (aPixPos.X()>aR.Right ()) aPixPos.setX(aR.Right () );
- if (aPixPos.Y()<aR.Top ()) aPixPos.setY(aR.Top () );
- if (aPixPos.Y()>aR.Bottom()) aPixPos.setY(aR.Bottom() );
- MouseEvent aMEvt(aPixPos,rMEvt.GetClicks(),rMEvt.GetMode(),
- rMEvt.GetButtons(),rMEvt.GetModifier());
- if (pTextEditOutlinerView->MouseMove(aMEvt) && bSelMode) {
+ if (aPixPos.X() < aR.Left())
+ aPixPos.setX(aR.Left());
+ if (aPixPos.X() > aR.Right())
+ aPixPos.setX(aR.Right());
+ if (aPixPos.Y() < aR.Top())
+ aPixPos.setY(aR.Top());
+ if (aPixPos.Y() > aR.Bottom())
+ aPixPos.setY(aR.Bottom());
+ MouseEvent aMEvt(aPixPos, rMEvt.GetClicks(), rMEvt.GetMode(), rMEvt.GetButtons(),
+ rMEvt.GetModifier());
+ if (pTextEditOutlinerView->MouseMove(aMEvt) && bSelMode)
+ {
#ifdef DBG_UTIL
- if (mpItemBrowser!=nullptr) mpItemBrowser->SetDirty();
+ if (mpItemBrowser != nullptr)
+ mpItemBrowser->SetDirty();
#endif
ImpMakeTextCursorAreaVisible();
return true;
}
}
}
- return SdrGlueEditView::MouseMove(rMEvt,pWin);
+ return SdrGlueEditView::MouseMove(rMEvt, pWin);
}
bool SdrObjEditView::Command(const CommandEvent& rCEvt, vcl::Window* pWin)
{
// as long as OutlinerView returns a sal_Bool, it only gets CommandEventId::StartDrag
- if (pTextEditOutlinerView!=nullptr)
+ if (pTextEditOutlinerView != nullptr)
{
- if (rCEvt.GetCommand()==CommandEventId::StartDrag) {
- bool bPostIt=pTextEditOutliner->IsInSelectionMode() || !rCEvt.IsMouseEvent();
- if (!bPostIt && rCEvt.IsMouseEvent()) {
+ if (rCEvt.GetCommand() == CommandEventId::StartDrag)
+ {
+ bool bPostIt = pTextEditOutliner->IsInSelectionMode() || !rCEvt.IsMouseEvent();
+ if (!bPostIt && rCEvt.IsMouseEvent())
+ {
Point aPt(rCEvt.GetMousePosPixel());
- if (pWin!=nullptr) aPt=pWin->PixelToLogic(aPt);
- else if (pTextEditWin!=nullptr) aPt=pTextEditWin->PixelToLogic(aPt);
- bPostIt=IsTextEditHit(aPt);
+ if (pWin != nullptr)
+ aPt = pWin->PixelToLogic(aPt);
+ else if (pTextEditWin != nullptr)
+ aPt = pTextEditWin->PixelToLogic(aPt);
+ bPostIt = IsTextEditHit(aPt);
}
- if (bPostIt) {
+ if (bPostIt)
+ {
Point aPixPos(rCEvt.GetMousePosPixel());
- if (rCEvt.IsMouseEvent() && pWin) {
+ if (rCEvt.IsMouseEvent() && pWin)
+ {
tools::Rectangle aR(pWin->LogicToPixel(pTextEditOutlinerView->GetOutputArea()));
- if (aPixPos.X()<aR.Left ()) aPixPos.setX(aR.Left () );
- if (aPixPos.X()>aR.Right ()) aPixPos.setX(aR.Right () );
- if (aPixPos.Y()<aR.Top ()) aPixPos.setY(aR.Top () );
- if (aPixPos.Y()>aR.Bottom()) aPixPos.setY(aR.Bottom() );
+ if (aPixPos.X() < aR.Left())
+ aPixPos.setX(aR.Left());
+ if (aPixPos.X() > aR.Right())
+ aPixPos.setX(aR.Right());
+ if (aPixPos.Y() < aR.Top())
+ aPixPos.setY(aR.Top());
+ if (aPixPos.Y() > aR.Bottom())
+ aPixPos.setY(aR.Bottom());
}
- CommandEvent aCEvt(aPixPos,rCEvt.GetCommand(),rCEvt.IsMouseEvent());
+ CommandEvent aCEvt(aPixPos, rCEvt.GetCommand(), rCEvt.IsMouseEvent());
// Command is void at the OutlinerView, sadly
pTextEditOutlinerView->Command(aCEvt);
- if (pWin!=nullptr && pWin!=pTextEditWin) SetTextEditWin(pWin);
+ if (pWin != nullptr && pWin != pTextEditWin)
+ SetTextEditWin(pWin);
#ifdef DBG_UTIL
- if (mpItemBrowser!=nullptr) mpItemBrowser->SetDirty();
+ if (mpItemBrowser != nullptr)
+ mpItemBrowser->SetDirty();
#endif
ImpMakeTextCursorAreaVisible();
return true;
@@ -1935,36 +2022,36 @@ bool SdrObjEditView::Command(const CommandEvent& rCEvt, vcl::Window* pWin)
return true;
}
}
- return SdrGlueEditView::Command(rCEvt,pWin);
+ return SdrGlueEditView::Command(rCEvt, pWin);
}
-
bool SdrObjEditView::ImpIsTextEditAllSelected() const
{
- bool bRet=false;
- if (pTextEditOutliner!=nullptr && pTextEditOutlinerView!=nullptr)
+ bool bRet = false;
+ if (pTextEditOutliner != nullptr && pTextEditOutlinerView != nullptr)
{
- if(SdrTextObj::HasTextImpl( pTextEditOutliner.get() ) )
+ if (SdrTextObj::HasTextImpl(pTextEditOutliner.get()))
{
- const sal_Int32 nParaCnt=pTextEditOutliner->GetParagraphCount();
- Paragraph* pLastPara=pTextEditOutliner->GetParagraph( nParaCnt > 1 ? nParaCnt - 1 : 0 );
+ const sal_Int32 nParaCnt = pTextEditOutliner->GetParagraphCount();
+ Paragraph* pLastPara = pTextEditOutliner->GetParagraph(nParaCnt > 1 ? nParaCnt - 1 : 0);
ESelection aESel(pTextEditOutlinerView->GetSelection());
- if (aESel.nStartPara==0 && aESel.nStartPos==0 && aESel.nEndPara==(nParaCnt-1))
+ if (aESel.nStartPara == 0 && aESel.nStartPos == 0 && aESel.nEndPara == (nParaCnt - 1))
{
- if( pTextEditOutliner->GetText(pLastPara).getLength() == aESel.nEndPos )
+ if (pTextEditOutliner->GetText(pLastPara).getLength() == aESel.nEndPos)
bRet = true;
}
// in case the selection was done backwards
- if (!bRet && aESel.nEndPara==0 && aESel.nEndPos==0 && aESel.nStartPara==(nParaCnt-1))
+ if (!bRet && aESel.nEndPara == 0 && aESel.nEndPos == 0
+ && aESel.nStartPara == (nParaCnt - 1))
{
- if(pTextEditOutliner->GetText(pLastPara).getLength() == aESel.nStartPos)
+ if (pTextEditOutliner->GetText(pLastPara).getLength() == aESel.nStartPos)
bRet = true;
}
}
else
{
- bRet=true;
+ bRet = true;
}
}
return bRet;
@@ -1972,12 +2059,15 @@ bool SdrObjEditView::ImpIsTextEditAllSelected() const
void SdrObjEditView::ImpMakeTextCursorAreaVisible()
{
- if (pTextEditOutlinerView!=nullptr && pTextEditWin!=nullptr) {
- vcl::Cursor* pCsr=pTextEditWin->GetCursor();
- if (pCsr!=nullptr) {
+ if (pTextEditOutlinerView != nullptr && pTextEditWin != nullptr)
+ {
+ vcl::Cursor* pCsr = pTextEditWin->GetCursor();
+ if (pCsr != nullptr)
+ {
Size aSiz(pCsr->GetSize());
- if (aSiz.Width()!=0 && aSiz.Height()!=0) {
- MakeVisible(tools::Rectangle(pCsr->GetPos(),aSiz),*pTextEditWin);
+ if (aSiz.Width() != 0 && aSiz.Height() != 0)
+ {
+ MakeVisible(tools::Rectangle(pCsr->GetPos(), aSiz), *pTextEditWin);
}
}
}
@@ -1987,30 +2077,30 @@ SvtScriptType SdrObjEditView::GetScriptType() const
{
SvtScriptType nScriptType = SvtScriptType::NONE;
- if( IsTextEdit() )
+ if (IsTextEdit())
{
- if( mxTextEditObj->GetOutlinerParaObject() )
+ if (mxTextEditObj->GetOutlinerParaObject())
nScriptType = mxTextEditObj->GetOutlinerParaObject()->GetTextObject().GetScriptType();
- if( pTextEditOutlinerView )
+ if (pTextEditOutlinerView)
nScriptType = pTextEditOutlinerView->GetSelectedScriptType();
}
else
{
- const size_t nMarkCount( GetMarkedObjectCount() );
+ const size_t nMarkCount(GetMarkedObjectCount());
- for( size_t i = 0; i < nMarkCount; ++i )
+ for (size_t i = 0; i < nMarkCount; ++i)
{
- OutlinerParaObject* pParaObj = GetMarkedObjectByIndex( i )->GetOutlinerParaObject();
+ OutlinerParaObject* pParaObj = GetMarkedObjectByIndex(i)->GetOutlinerParaObject();
- if( pParaObj )
+ if (pParaObj)
{
nScriptType |= pParaObj->GetTextObject().GetScriptType();
}
}
}
- if( nScriptType == SvtScriptType::NONE )
+ if (nScriptType == SvtScriptType::NONE)
nScriptType = SvtScriptType::LATIN;
return nScriptType;
@@ -2018,29 +2108,31 @@ SvtScriptType SdrObjEditView::GetScriptType() const
void SdrObjEditView::GetAttributes(SfxItemSet& rTargetSet, bool bOnlyHardAttr) const
{
- if( mxSelectionController.is() )
- if( mxSelectionController->GetAttributes( rTargetSet, bOnlyHardAttr ) )
+ if (mxSelectionController.is())
+ if (mxSelectionController->GetAttributes(rTargetSet, bOnlyHardAttr))
return;
- if(IsTextEdit())
+ if (IsTextEdit())
{
- DBG_ASSERT(pTextEditOutlinerView!=nullptr,"SdrObjEditView::GetAttributes(): pTextEditOutlinerView=NULL");
- DBG_ASSERT(pTextEditOutliner!=nullptr,"SdrObjEditView::GetAttributes(): pTextEditOutliner=NULL");
+ DBG_ASSERT(pTextEditOutlinerView != nullptr,
+ "SdrObjEditView::GetAttributes(): pTextEditOutlinerView=NULL");
+ DBG_ASSERT(pTextEditOutliner != nullptr,
+ "SdrObjEditView::GetAttributes(): pTextEditOutliner=NULL");
// take care of bOnlyHardAttr(!)
- if(!bOnlyHardAttr && mxTextEditObj->GetStyleSheet())
+ if (!bOnlyHardAttr && mxTextEditObj->GetStyleSheet())
rTargetSet.Put(mxTextEditObj->GetStyleSheet()->GetItemSet());
// add object attributes
- rTargetSet.Put( mxTextEditObj->GetMergedItemSet() );
+ rTargetSet.Put(mxTextEditObj->GetMergedItemSet());
- if(pTextEditOutlinerView)
+ if (pTextEditOutlinerView)
{
// FALSE= regard InvalidItems as "holes," not as Default
rTargetSet.Put(pTextEditOutlinerView->GetAttribs(), false);
}
- if(GetMarkedObjectCount()==1 && GetMarkedObjectByIndex(0)==mxTextEditObj.get())
+ if (GetMarkedObjectCount() == 1 && GetMarkedObjectByIndex(0) == mxTextEditObj.get())
{
MergeNotPersistAttrFromMarked(rTargetSet);
}
@@ -2053,70 +2145,72 @@ void SdrObjEditView::GetAttributes(SfxItemSet& rTargetSet, bool bOnlyHardAttr) c
bool SdrObjEditView::SetAttributes(const SfxItemSet& rSet, bool bReplaceAll)
{
- bool bRet=false;
- bool bTextEdit=pTextEditOutlinerView!=nullptr && mxTextEditObj.is();
- bool bAllTextSelected=ImpIsTextEditAllSelected();
- const SfxItemSet* pSet=&rSet;
+ bool bRet = false;
+ bool bTextEdit = pTextEditOutlinerView != nullptr && mxTextEditObj.is();
+ bool bAllTextSelected = ImpIsTextEditAllSelected();
+ const SfxItemSet* pSet = &rSet;
if (!bTextEdit)
{
// no TextEdit active -> all Items to drawing object
- if( mxSelectionController.is() )
- bRet=mxSelectionController->SetAttributes(*pSet,bReplaceAll );
+ if (mxSelectionController.is())
+ bRet = mxSelectionController->SetAttributes(*pSet, bReplaceAll);
- if( !bRet )
+ if (!bRet)
{
- SdrGlueEditView::SetAttributes(*pSet,bReplaceAll);
- bRet=true;
+ SdrGlueEditView::SetAttributes(*pSet, bReplaceAll);
+ bRet = true;
}
}
else
{
#ifdef DBG_UTIL
{
- bool bHasEEFeatureItems=false;
+ bool bHasEEFeatureItems = false;
SfxItemIter aIter(rSet);
- const SfxPoolItem* pItem=aIter.FirstItem();
- while (!bHasEEFeatureItems && pItem!=nullptr)
+ const SfxPoolItem* pItem = aIter.FirstItem();
+ while (!bHasEEFeatureItems && pItem != nullptr)
{
if (!IsInvalidItem(pItem))
{
- sal_uInt16 nW=pItem->Which();
- if (nW>=EE_FEATURE_START && nW<=EE_FEATURE_END)
- bHasEEFeatureItems=true;
+ sal_uInt16 nW = pItem->Which();
+ if (nW >= EE_FEATURE_START && nW <= EE_FEATURE_END)
+ bHasEEFeatureItems = true;
}
- pItem=aIter.NextItem();
+ pItem = aIter.NextItem();
}
- if(bHasEEFeatureItems)
+ if (bHasEEFeatureItems)
{
- const OUString aMessage("SdrObjEditView::SetAttributes(): Setting EE_FEATURE items at the SdrView does not make sense! It only leads to overhead and unreadable documents.");
- std::unique_ptr<weld::MessageDialog> xInfoBox(Application::CreateMessageDialog(nullptr,
- VclMessageType::Info, VclButtonsType::Ok,
- aMessage));
+ const OUString aMessage("SdrObjEditView::SetAttributes(): Setting EE_FEATURE items "
+ "at the SdrView does not make sense! It only leads to "
+ "overhead and unreadable documents.");
+ std::unique_ptr<weld::MessageDialog> xInfoBox(Application::CreateMessageDialog(
+ nullptr, VclMessageType::Info, VclButtonsType::Ok, aMessage));
xInfoBox->run();
}
}
#endif
bool bOnlyEEItems;
- bool bNoEEItems=!SearchOutlinerItems(*pSet,bReplaceAll,&bOnlyEEItems);
+ bool bNoEEItems = !SearchOutlinerItems(*pSet, bReplaceAll, &bOnlyEEItems);
// everything selected? -> attributes to the border, too
// if no EEItems, attributes to the border only
if (bAllTextSelected || bNoEEItems)
{
- if( mxSelectionController.is() )
- bRet=mxSelectionController->SetAttributes(*pSet,bReplaceAll );
+ if (mxSelectionController.is())
+ bRet = mxSelectionController->SetAttributes(*pSet, bReplaceAll);
- if( !bRet )
+ if (!bRet)
{
const bool bUndo = IsUndoEnabled();
- if( bUndo )
+ if (bUndo)
{
BegUndo(ImpGetDescriptionString(STR_EditSetAttributes));
- AddUndo(GetModel()->GetSdrUndoFactory().CreateUndoGeoObject(*mxTextEditObj.get()));
+ AddUndo(
+ GetModel()->GetSdrUndoFactory().CreateUndoGeoObject(*mxTextEditObj.get()));
// If this is a text object also rescue the OutlinerParaObject since
// applying attributes to the object may change text layout when
@@ -2125,7 +2219,8 @@ bool SdrObjEditView::SetAttributes(const SfxItemSet& rSet, bool bReplaceAll)
// implementation itself.
bool bRescueText = mxTextEditObj.get();
- AddUndo(GetModel()->GetSdrUndoFactory().CreateUndoAttrObject(*mxTextEditObj.get(),false,!bNoEEItems || bRescueText));
+ AddUndo(GetModel()->GetSdrUndoFactory().CreateUndoAttrObject(
+ *mxTextEditObj.get(), false, !bNoEEItems || bRescueText));
EndUndo();
}
@@ -2139,47 +2234,51 @@ bool SdrObjEditView::SetAttributes(const SfxItemSet& rSet, bool bReplaceAll)
// Otherwise split Set, if necessary.
// Now we build an ItemSet aSet that doesn't contain EE_Items from
// *pSet (otherwise it would be a copy).
- std::unique_ptr<sal_uInt16[]> pNewWhichTable=RemoveWhichRange(pSet->GetRanges(),EE_ITEMS_START,EE_ITEMS_END);
- SfxItemSet aSet(mpModel->GetItemPool(),pNewWhichTable.get());
+ std::unique_ptr<sal_uInt16[]> pNewWhichTable
+ = RemoveWhichRange(pSet->GetRanges(), EE_ITEMS_START, EE_ITEMS_END);
+ SfxItemSet aSet(mpModel->GetItemPool(), pNewWhichTable.get());
pNewWhichTable.reset();
SfxWhichIter aIter(aSet);
- sal_uInt16 nWhich=aIter.FirstWhich();
- while (nWhich!=0)
+ sal_uInt16 nWhich = aIter.FirstWhich();
+ while (nWhich != 0)
{
const SfxPoolItem* pItem;
- SfxItemState eState=pSet->GetItemState(nWhich,false,&pItem);
- if (eState==SfxItemState::SET) aSet.Put(*pItem);
- nWhich=aIter.NextWhich();
+ SfxItemState eState = pSet->GetItemState(nWhich, false, &pItem);
+ if (eState == SfxItemState::SET)
+ aSet.Put(*pItem);
+ nWhich = aIter.NextWhich();
}
+ if (mxSelectionController.is())
+ bRet = mxSelectionController->SetAttributes(aSet, bReplaceAll);
- if( mxSelectionController.is() )
- bRet=mxSelectionController->SetAttributes(aSet,bReplaceAll );
-
- if( !bRet )
+ if (!bRet)
{
- if( IsUndoEnabled() )
+ if (IsUndoEnabled())
{
BegUndo(ImpGetDescriptionString(STR_EditSetAttributes));
- AddUndo(GetModel()->GetSdrUndoFactory().CreateUndoGeoObject(*mxTextEditObj.get()));
- AddUndo(GetModel()->GetSdrUndoFactory().CreateUndoAttrObject(*mxTextEditObj.get()));
+ AddUndo(
+ GetModel()->GetSdrUndoFactory().CreateUndoGeoObject(*mxTextEditObj.get()));
+ AddUndo(
+ GetModel()->GetSdrUndoFactory().CreateUndoAttrObject(*mxTextEditObj.get()));
EndUndo();
}
mxTextEditObj->SetMergedItemSetAndBroadcast(aSet, bReplaceAll);
- if (GetMarkedObjectCount()==1 && GetMarkedObjectByIndex(0)==mxTextEditObj.get())
+ if (GetMarkedObjectCount() == 1 && GetMarkedObjectByIndex(0) == mxTextEditObj.get())
{
SetNotPersistAttrToMarked(aSet);
}
}
FlushComeBackTimer();
}
- if(!bNoEEItems)
+ if (!bNoEEItems)
{
// and now the attributes to the EditEngine
- if (bReplaceAll) {
- pTextEditOutlinerView->RemoveAttribs( true );
+ if (bReplaceAll)
+ {
+ pTextEditOutlinerView->RemoveAttribs(true);
}
pTextEditOutlinerView->SetAttribs(rSet);
@@ -2188,13 +2287,13 @@ bool SdrObjEditView::SetAttributes(const SfxItemSet& rSet, bool bReplaceAll)
mpModel->SetChanged();
#ifdef DBG_UTIL
- if (mpItemBrowser!=nullptr)
+ if (mpItemBrowser != nullptr)
mpItemBrowser->SetDirty();
#endif
ImpMakeTextCursorAreaVisible();
}
- bRet=true;
+ bRet = true;
}
return bRet;
}
@@ -2203,13 +2302,13 @@ SfxStyleSheet* SdrObjEditView::GetStyleSheet() const
{
SfxStyleSheet* pSheet = nullptr;
- if( mxSelectionController.is() )
+ if (mxSelectionController.is())
{
- if( mxSelectionController->GetStyleSheet( pSheet ) )
+ if (mxSelectionController->GetStyleSheet(pSheet))
return pSheet;
}
- if ( pTextEditOutlinerView )
+ if (pTextEditOutlinerView)
{
pSheet = pTextEditOutlinerView->GetStyleSheet();
}
@@ -2222,36 +2321,35 @@ SfxStyleSheet* SdrObjEditView::GetStyleSheet() const
void SdrObjEditView::SetStyleSheet(SfxStyleSheet* pStyleSheet, bool bDontRemoveHardAttr)
{
- if( mxSelectionController.is() )
+ if (mxSelectionController.is())
{
- if( mxSelectionController->SetStyleSheet( pStyleSheet, bDontRemoveHardAttr ) )
+ if (mxSelectionController->SetStyleSheet(pStyleSheet, bDontRemoveHardAttr))
return;
}
// if we are currently in edit mode we must also set the stylesheet
// on all paragraphs in the Outliner for the edit view
- if( nullptr != pTextEditOutlinerView )
+ if (nullptr != pTextEditOutlinerView)
{
Outliner* pOutliner = pTextEditOutlinerView->GetOutliner();
const sal_Int32 nParaCount = pOutliner->GetParagraphCount();
- for( sal_Int32 nPara = 0; nPara < nParaCount; nPara++ )
+ for (sal_Int32 nPara = 0; nPara < nParaCount; nPara++)
{
- pOutliner->SetStyleSheet( nPara, pStyleSheet );
+ pOutliner->SetStyleSheet(nPara, pStyleSheet);
}
}
- SdrGlueEditView::SetStyleSheet(pStyleSheet,bDontRemoveHardAttr);
+ SdrGlueEditView::SetStyleSheet(pStyleSheet, bDontRemoveHardAttr);
}
-
-void SdrObjEditView::AddWindowToPaintView(OutputDevice* pNewWin, vcl::Window *pWindow)
+void SdrObjEditView::AddWindowToPaintView(OutputDevice* pNewWin, vcl::Window* pWindow)
{
SdrGlueEditView::AddWindowToPaintView(pNewWin, pWindow);
- if(mxTextEditObj.is() && !bTextEditOnlyOneView && pNewWin->GetOutDevType()==OUTDEV_WINDOW)
+ if (mxTextEditObj.is() && !bTextEditOnlyOneView && pNewWin->GetOutDevType() == OUTDEV_WINDOW)
{
- OutlinerView* pOutlView=ImpMakeOutlinerView(static_cast<vcl::Window*>(pNewWin),nullptr);
+ OutlinerView* pOutlView = ImpMakeOutlinerView(static_cast<vcl::Window*>(pNewWin), nullptr);
pTextEditOutliner->InsertView(pOutlView);
}
}
@@ -2260,12 +2358,14 @@ void SdrObjEditView::DeleteWindowFromPaintView(OutputDevice* pOldWin)
{
SdrGlueEditView::DeleteWindowFromPaintView(pOldWin);
- if(mxTextEditObj.is() && !bTextEditOnlyOneView && pOldWin->GetOutDevType()==OUTDEV_WINDOW)
+ if (mxTextEditObj.is() && !bTextEditOnlyOneView && pOldWin->GetOutDevType() == OUTDEV_WINDOW)
{
- for (sal_uIntPtr i=pTextEditOutliner->GetViewCount(); i>0;) {
+ for (sal_uIntPtr i = pTextEditOutliner->GetViewCount(); i > 0;)
+ {
i--;
- OutlinerView* pOLV=pTextEditOutliner->GetView(i);
- if (pOLV && pOLV->GetWindow()==static_cast<vcl::Window*>(pOldWin)) {
+ OutlinerView* pOLV = pTextEditOutliner->GetView(i);
+ if (pOLV && pOLV->GetWindow() == static_cast<vcl::Window*>(pOldWin))
+ {
pTextEditOutliner->RemoveView(i);
}
}
@@ -2276,95 +2376,102 @@ void SdrObjEditView::DeleteWindowFromPaintView(OutputDevice* pOldWin)
bool SdrObjEditView::IsTextEditInSelectionMode() const
{
- return pTextEditOutliner!=nullptr && pTextEditOutliner->IsInSelectionMode();
+ return pTextEditOutliner != nullptr && pTextEditOutliner->IsInSelectionMode();
}
-
// MacroMode
-
-void SdrObjEditView::BegMacroObj(const Point& rPnt, short nTol, SdrObject* pObj, SdrPageView* pPV, vcl::Window* pWin)
+void SdrObjEditView::BegMacroObj(const Point& rPnt, short nTol, SdrObject* pObj, SdrPageView* pPV,
+ vcl::Window* pWin)
{
BrkMacroObj();
- if (pObj!=nullptr && pPV!=nullptr && pWin!=nullptr && pObj->HasMacro()) {
- nTol=ImpGetHitTolLogic(nTol,nullptr);
- pMacroObj=pObj;
- pMacroPV=pPV;
- pMacroWin=pWin;
- bMacroDown=false;
- nMacroTol=sal_uInt16(nTol);
- aMacroDownPos=rPnt;
+ if (pObj != nullptr && pPV != nullptr && pWin != nullptr && pObj->HasMacro())
+ {
+ nTol = ImpGetHitTolLogic(nTol, nullptr);
+ pMacroObj = pObj;
+ pMacroPV = pPV;
+ pMacroWin = pWin;
+ bMacroDown = false;
+ nMacroTol = sal_uInt16(nTol);
+ aMacroDownPos = rPnt;
MovMacroObj(rPnt);
}
}
void SdrObjEditView::ImpMacroUp(const Point& rUpPos)
{
- if (pMacroObj!=nullptr && bMacroDown)
+ if (pMacroObj != nullptr && bMacroDown)
{
SdrObjMacroHitRec aHitRec;
- aHitRec.aPos=rUpPos;
- aHitRec.nTol=nMacroTol;
- aHitRec.pVisiLayer=&pMacroPV->GetVisibleLayers();
- aHitRec.pPageView=pMacroPV;
- pMacroObj->PaintMacro(*pMacroWin,tools::Rectangle(),aHitRec);
- bMacroDown=false;
+ aHitRec.aPos = rUpPos;
+ aHitRec.nTol = nMacroTol;
+ aHitRec.pVisiLayer = &pMacroPV->GetVisibleLayers();
+ aHitRec.pPageView = pMacroPV;
+ pMacroObj->PaintMacro(*pMacroWin, tools::Rectangle(), aHitRec);
+ bMacroDown = false;
}
}
void SdrObjEditView::ImpMacroDown(const Point& rDownPos)
{
- if (pMacroObj!=nullptr && !bMacroDown)
+ if (pMacroObj != nullptr && !bMacroDown)
{
SdrObjMacroHitRec aHitRec;
- aHitRec.aPos=rDownPos;
- aHitRec.nTol=nMacroTol;
- aHitRec.pVisiLayer=&pMacroPV->GetVisibleLayers();
- aHitRec.pPageView=pMacroPV;
- pMacroObj->PaintMacro(*pMacroWin,tools::Rectangle(),aHitRec);
- bMacroDown=true;
+ aHitRec.aPos = rDownPos;
+ aHitRec.nTol = nMacroTol;
+ aHitRec.pVisiLayer = &pMacroPV->GetVisibleLayers();
+ aHitRec.pPageView = pMacroPV;
+ pMacroObj->PaintMacro(*pMacroWin, tools::Rectangle(), aHitRec);
+ bMacroDown = true;
}
}
void SdrObjEditView::MovMacroObj(const Point& rPnt)
{
- if (pMacroObj!=nullptr) {
+ if (pMacroObj != nullptr)
+ {
SdrObjMacroHitRec aHitRec;
- aHitRec.aPos=rPnt;
- aHitRec.nTol=nMacroTol;
- aHitRec.pVisiLayer=&pMacroPV->GetVisibleLayers();
- aHitRec.pPageView=pMacroPV;
- bool bDown=pMacroObj->IsMacroHit(aHitRec);
- if (bDown) ImpMacroDown(rPnt);
- else ImpMacroUp(rPnt);
+ aHitRec.aPos = rPnt;
+ aHitRec.nTol = nMacroTol;
+ aHitRec.pVisiLayer = &pMacroPV->GetVisibleLayers();
+ aHitRec.pPageView = pMacroPV;
+ bool bDown = pMacroObj->IsMacroHit(aHitRec);
+ if (bDown)
+ ImpMacroDown(rPnt);
+ else
+ ImpMacroUp(rPnt);
}
}
void SdrObjEditView::BrkMacroObj()
{
- if (pMacroObj!=nullptr) {
+ if (pMacroObj != nullptr)
+ {
ImpMacroUp(aMacroDownPos);
- pMacroObj=nullptr;
- pMacroPV=nullptr;
- pMacroWin=nullptr;
+ pMacroObj = nullptr;
+ pMacroPV = nullptr;
+ pMacroWin = nullptr;
}
}
bool SdrObjEditView::EndMacroObj()
{
- if (pMacroObj!=nullptr && bMacroDown) {
+ if (pMacroObj != nullptr && bMacroDown)
+ {
ImpMacroUp(aMacroDownPos);
SdrObjMacroHitRec aHitRec;
- aHitRec.aPos=aMacroDownPos;
- aHitRec.nTol=nMacroTol;
- aHitRec.pVisiLayer=&pMacroPV->GetVisibleLayers();
- aHitRec.pPageView=pMacroPV;
- bool bRet=pMacroObj->DoMacro(aHitRec);
- pMacroObj=nullptr;
- pMacroPV=nullptr;
- pMacroWin=nullptr;
+ aHitRec.aPos = aMacroDownPos;
+ aHitRec.nTol = nMacroTol;
+ aHitRec.pVisiLayer = &pMacroPV->GetVisibleLayers();
+ aHitRec.pPageView = pMacroPV;
+ bool bRet = pMacroObj->DoMacro(aHitRec);
+ pMacroObj = nullptr;
+ pMacroPV = nullptr;
+ pMacroWin = nullptr;
return bRet;
- } else {
+ }
+ else
+ {
BrkMacroObj();
return false;
}
@@ -2372,24 +2479,27 @@ bool SdrObjEditView::EndMacroObj()
/** fills the given any with a XTextCursor for the current text selection.
Leaves the any untouched if there currently is no text selected */
-void SdrObjEditView::getTextSelection( css::uno::Any& rSelection )
+void SdrObjEditView::getTextSelection(css::uno::Any& rSelection)
{
- if( IsTextEdit() )
+ if (IsTextEdit())
{
OutlinerView* pOutlinerView = GetTextEditOutlinerView();
- if( pOutlinerView && pOutlinerView->HasSelection() )
+ if (pOutlinerView && pOutlinerView->HasSelection())
{
SdrObject* pObj = GetTextEditObject();
- if( pObj )
+ if (pObj)
{
- css::uno::Reference< css::text::XText > xText( pObj->getUnoShape(), css::uno::UNO_QUERY );
- if( xText.is() )
+ css::uno::Reference<css::text::XText> xText(pObj->getUnoShape(),
+ css::uno::UNO_QUERY);
+ if (xText.is())
{
- SvxUnoTextBase* pRange = comphelper::getUnoTunnelImplementation<SvxUnoTextBase>( xText );
- if( pRange )
+ SvxUnoTextBase* pRange
+ = comphelper::getUnoTunnelImplementation<SvxUnoTextBase>(xText);
+ if (pRange)
{
- rSelection <<= pRange->createTextCursorBySelection( pOutlinerView->GetSelection() );
+ rSelection
+ <<= pRange->createTextCursorBySelection(pOutlinerView->GetSelection());
}
}
}
@@ -2408,7 +2518,7 @@ void SdrObjEditView::MarkListHasChanged()
{
SdrGlueEditView::MarkListHasChanged();
- if( mxSelectionController.is() )
+ if (mxSelectionController.is())
{
mxLastSelectionController = mxSelectionController;
mxSelectionController->onSelectionHasChanged();
@@ -2416,21 +2526,21 @@ void SdrObjEditView::MarkListHasChanged()
mxSelectionController.clear();
- const SdrMarkList& rMarkList=GetMarkedObjectList();
- if( rMarkList.GetMarkCount() == 1 )
+ const SdrMarkList& rMarkList = GetMarkedObjectList();
+ if (rMarkList.GetMarkCount() == 1)
{
const SdrObject* pObj(rMarkList.GetMark(0)->GetMarkedSdrObj());
- SdrView* pView(dynamic_cast< SdrView* >(this));
+ SdrView* pView(dynamic_cast<SdrView*>(this));
// check for table
- if(pObj && pView && (pObj->GetObjInventor() == SdrInventor::Default ) && (pObj->GetObjIdentifier() == OBJ_TABLE))
+ if (pObj && pView && (pObj->GetObjInventor() == SdrInventor::Default)
+ && (pObj->GetObjIdentifier() == OBJ_TABLE))
{
mxSelectionController = sdr::table::CreateTableController(
- *pView,
- static_cast<const sdr::table::SdrTableObj&>(*pObj),
+ *pView, static_cast<const sdr::table::SdrTableObj&>(*pObj),
mxLastSelectionController);
- if( mxSelectionController.is() )
+ if (mxSelectionController.is())
{
mxLastSelectionController.clear();
mxSelectionController->onSelectionHasChanged();
@@ -2439,22 +2549,22 @@ void SdrObjEditView::MarkListHasChanged()
}
}
-IMPL_LINK( SdrObjEditView, EndPasteOrDropHdl, PasteOrDropInfos*, pInfo, void )
+IMPL_LINK(SdrObjEditView, EndPasteOrDropHdl, PasteOrDropInfos*, pInfo, void)
{
- OnEndPasteOrDrop( pInfo );
+ OnEndPasteOrDrop(pInfo);
}
-IMPL_LINK( SdrObjEditView, BeginPasteOrDropHdl, PasteOrDropInfos*, pInfo, void )
+IMPL_LINK(SdrObjEditView, BeginPasteOrDropHdl, PasteOrDropInfos*, pInfo, void)
{
- OnBeginPasteOrDrop( pInfo );
+ OnBeginPasteOrDrop(pInfo);
}
-void SdrObjEditView::OnBeginPasteOrDrop( PasteOrDropInfos* )
+void SdrObjEditView::OnBeginPasteOrDrop(PasteOrDropInfos*)
{
// applications can derive from these virtual methods to do something before a drop or paste operation
}
-void SdrObjEditView::OnEndPasteOrDrop( PasteOrDropInfos* )
+void SdrObjEditView::OnEndPasteOrDrop(PasteOrDropInfos*)
{
// applications can derive from these virtual methods to do something before a drop or paste operation
}
@@ -2462,40 +2572,44 @@ void SdrObjEditView::OnEndPasteOrDrop( PasteOrDropInfos* )
sal_uInt16 SdrObjEditView::GetSelectionLevel() const
{
sal_uInt16 nLevel = 0xFFFF;
- if( IsTextEdit() )
+ if (IsTextEdit())
{
- DBG_ASSERT(pTextEditOutlinerView!=nullptr,"SdrObjEditView::GetAttributes(): pTextEditOutlinerView=NULL");
- DBG_ASSERT(pTextEditOutliner!=nullptr,"SdrObjEditView::GetAttributes(): pTextEditOutliner=NULL");
- if( pTextEditOutlinerView )
+ DBG_ASSERT(pTextEditOutlinerView != nullptr,
+ "SdrObjEditView::GetAttributes(): pTextEditOutlinerView=NULL");
+ DBG_ASSERT(pTextEditOutliner != nullptr,
+ "SdrObjEditView::GetAttributes(): pTextEditOutliner=NULL");
+ if (pTextEditOutlinerView)
{
//start and end position
ESelection aSelect = pTextEditOutlinerView->GetSelection();
- sal_uInt16 nStartPara = ::std::min( aSelect.nStartPara, aSelect.nEndPara );
- sal_uInt16 nEndPara = ::std::max( aSelect.nStartPara, aSelect.nEndPara );
+ sal_uInt16 nStartPara = ::std::min(aSelect.nStartPara, aSelect.nEndPara);
+ sal_uInt16 nEndPara = ::std::max(aSelect.nStartPara, aSelect.nEndPara);
//get level from each paragraph
nLevel = 0;
- for( sal_uInt16 nPara = nStartPara; nPara <= nEndPara; nPara++ )
+ for (sal_uInt16 nPara = nStartPara; nPara <= nEndPara; nPara++)
{
- sal_uInt16 nParaDepth = 1 << static_cast<sal_uInt16>(pTextEditOutliner->GetDepth(nPara));
- if( !(nLevel & nParaDepth) )
+ sal_uInt16 nParaDepth
+ = 1 << static_cast<sal_uInt16>(pTextEditOutliner->GetDepth(nPara));
+ if (!(nLevel & nParaDepth))
nLevel += nParaDepth;
}
//reduce one level for Outliner Object
//if( nLevel > 0 && GetTextEditObject()->GetObjIdentifier() == OBJ_OUTLINETEXT )
// nLevel = nLevel >> 1;
//no bullet paragraph selected
- if( nLevel == 0)
+ if (nLevel == 0)
nLevel = 0xFFFF;
}
}
return nLevel;
}
-bool SdrObjEditView::SupportsFormatPaintbrush( SdrInventor nObjectInventor, sal_uInt16 nObjectIdentifier )
+bool SdrObjEditView::SupportsFormatPaintbrush(SdrInventor nObjectInventor,
+ sal_uInt16 nObjectIdentifier)
{
- if( nObjectInventor != SdrInventor::Default && nObjectInventor != SdrInventor::E3d )
+ if (nObjectInventor != SdrInventor::Default && nObjectInventor != SdrInventor::E3d)
return false;
- switch(nObjectIdentifier)
+ switch (nObjectIdentifier)
{
case OBJ_NONE:
case OBJ_GRUP:
@@ -2539,125 +2653,143 @@ bool SdrObjEditView::SupportsFormatPaintbrush( SdrInventor nObjectInventor, sal_
}
}
-static const sal_uInt16* GetFormatRangeImpl( bool bTextOnly )
+static const sal_uInt16* GetFormatRangeImpl(bool bTextOnly)
{
- static const sal_uInt16 gRanges[] = {
- SDRATTR_SHADOW_FIRST, SDRATTR_SHADOW_LAST,
- SDRATTR_GRAF_FIRST, SDRATTR_GRAF_LAST,
- SDRATTR_TABLE_FIRST, SDRATTR_TABLE_LAST,
- XATTR_LINE_FIRST, XATTR_LINE_LAST,
- XATTR_FILL_FIRST, XATTRSET_FILL,
- EE_PARA_START, EE_PARA_END, // text-only from here on
- EE_CHAR_START, EE_CHAR_END,
- SDRATTR_MISC_FIRST, SDRATTR_MISC_LAST, // table cell formats
- 0,0
- };
- return &gRanges[ bTextOnly ? 10 : 0];
+ static const sal_uInt16 gRanges[] = { SDRATTR_SHADOW_FIRST,
+ SDRATTR_SHADOW_LAST,
+ SDRATTR_GRAF_FIRST,
+ SDRATTR_GRAF_LAST,
+ SDRATTR_TABLE_FIRST,
+ SDRATTR_TABLE_LAST,
+ XATTR_LINE_FIRST,
+ XATTR_LINE_LAST,
+ XATTR_FILL_FIRST,
+ XATTRSET_FILL,
+ EE_PARA_START,
+ EE_PARA_END, // text-only from here on
+ EE_CHAR_START,
+ EE_CHAR_END,
+ SDRATTR_MISC_FIRST,
+ SDRATTR_MISC_LAST, // table cell formats
+ 0,
+ 0 };
+ return &gRanges[bTextOnly ? 10 : 0];
}
-void SdrObjEditView::TakeFormatPaintBrush( std::shared_ptr< SfxItemSet >& rFormatSet )
+void SdrObjEditView::TakeFormatPaintBrush(std::shared_ptr<SfxItemSet>& rFormatSet)
{
- if( mxSelectionController.is() && mxSelectionController->TakeFormatPaintBrush(rFormatSet) )
+ if (mxSelectionController.is() && mxSelectionController->TakeFormatPaintBrush(rFormatSet))
return;
const SdrMarkList& rMarkList = GetMarkedObjectList();
- if( rMarkList.GetMarkCount() > 0 )
+ if (rMarkList.GetMarkCount() > 0)
{
OutlinerView* pOLV = GetTextEditOutlinerView();
- rFormatSet.reset( new SfxItemSet( GetModel()->GetItemPool(), GetFormatRangeImpl( pOLV != nullptr ) ) );
- if( pOLV )
+ rFormatSet.reset(
+ new SfxItemSet(GetModel()->GetItemPool(), GetFormatRangeImpl(pOLV != nullptr)));
+ if (pOLV)
{
- rFormatSet->Put( pOLV->GetAttribs() );
+ rFormatSet->Put(pOLV->GetAttribs());
}
else
{
const bool bOnlyHardAttr = false;
- rFormatSet->Put( GetAttrFromMarked(bOnlyHardAttr) );
+ rFormatSet->Put(GetAttrFromMarked(bOnlyHardAttr));
}
// check for cloning from table cell, in which case we need to copy cell-specific formatting attributes
const SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
- if( pObj && (pObj->GetObjInventor() == SdrInventor::Default ) && (pObj->GetObjIdentifier() == OBJ_TABLE) )
+ if (pObj && (pObj->GetObjInventor() == SdrInventor::Default)
+ && (pObj->GetObjIdentifier() == OBJ_TABLE))
{
auto pTable = static_cast<const sdr::table::SdrTableObj*>(pObj);
- if (mxSelectionController.is() && pTable->getActiveCell().is()) {
+ if (mxSelectionController.is() && pTable->getActiveCell().is())
+ {
mxSelectionController->GetAttributes(*rFormatSet, false);
}
}
}
}
-static SfxItemSet CreatePaintSet( const sal_uInt16 *pRanges, SfxItemPool& rPool, const SfxItemSet& rSourceSet, const SfxItemSet& rTargetSet, bool bNoCharacterFormats, bool bNoParagraphFormats )
+static SfxItemSet CreatePaintSet(const sal_uInt16* pRanges, SfxItemPool& rPool,
+ const SfxItemSet& rSourceSet, const SfxItemSet& rTargetSet,
+ bool bNoCharacterFormats, bool bNoParagraphFormats)
{
- SfxItemSet aPaintSet( rPool, pRanges );
+ SfxItemSet aPaintSet(rPool, pRanges);
- while( *pRanges )
+ while (*pRanges)
{
sal_uInt16 nWhich = *pRanges++;
const sal_uInt16 nLastWhich = *pRanges++;
- if( bNoCharacterFormats && (nWhich == EE_CHAR_START) )
+ if (bNoCharacterFormats && (nWhich == EE_CHAR_START))
continue;
- if( bNoParagraphFormats && (nWhich == EE_PARA_START ) )
+ if (bNoParagraphFormats && (nWhich == EE_PARA_START))
continue;
- for( ; nWhich < nLastWhich; nWhich++ )
+ for (; nWhich < nLastWhich; nWhich++)
{
- const SfxPoolItem* pSourceItem = rSourceSet.GetItem( nWhich );
- const SfxPoolItem* pTargetItem = rTargetSet.GetItem( nWhich );
+ const SfxPoolItem* pSourceItem = rSourceSet.GetItem(nWhich);
+ const SfxPoolItem* pTargetItem = rTargetSet.GetItem(nWhich);
- if( (pSourceItem && !pTargetItem) || (pSourceItem && pTargetItem && *pSourceItem != *pTargetItem ) )
+ if ((pSourceItem && !pTargetItem)
+ || (pSourceItem && pTargetItem && *pSourceItem != *pTargetItem))
{
- aPaintSet.Put( *pSourceItem );
+ aPaintSet.Put(*pSourceItem);
}
}
}
return aPaintSet;
}
-void SdrObjEditView::ApplyFormatPaintBrushToText( SfxItemSet const & rFormatSet, SdrTextObj& rTextObj, SdrText* pText, bool bNoCharacterFormats, bool bNoParagraphFormats )
+void SdrObjEditView::ApplyFormatPaintBrushToText(SfxItemSet const& rFormatSet, SdrTextObj& rTextObj,
+ SdrText* pText, bool bNoCharacterFormats,
+ bool bNoParagraphFormats)
{
OutlinerParaObject* pParaObj = pText ? pText->GetOutlinerParaObject() : nullptr;
- if(pParaObj)
+ if (pParaObj)
{
SdrOutliner& rOutliner = rTextObj.ImpGetDrawOutliner();
rOutliner.SetText(*pParaObj);
sal_Int32 nParaCount(rOutliner.GetParagraphCount());
- if(nParaCount)
+ if (nParaCount)
{
- for(sal_Int32 nPara = 0; nPara < nParaCount; nPara++)
+ for (sal_Int32 nPara = 0; nPara < nParaCount; nPara++)
{
- if( !bNoCharacterFormats )
- rOutliner.RemoveCharAttribs( nPara );
+ if (!bNoCharacterFormats)
+ rOutliner.RemoveCharAttribs(nPara);
SfxItemSet aSet(rOutliner.GetParaAttribs(nPara));
- aSet.Put(CreatePaintSet( GetFormatRangeImpl(true), *aSet.GetPool(), rFormatSet, aSet, bNoCharacterFormats, bNoParagraphFormats ) );
+ aSet.Put(CreatePaintSet(GetFormatRangeImpl(true), *aSet.GetPool(), rFormatSet, aSet,
+ bNoCharacterFormats, bNoParagraphFormats));
rOutliner.SetParaAttribs(nPara, aSet);
}
std::unique_ptr<OutlinerParaObject> pTemp = rOutliner.CreateParaObject(0, nParaCount);
rOutliner.Clear();
- rTextObj.NbcSetOutlinerParaObjectForText(std::move(pTemp),pText);
+ rTextObj.NbcSetOutlinerParaObjectForText(std::move(pTemp), pText);
}
}
}
-void SdrObjEditView::ApplyFormatPaintBrush( SfxItemSet& rFormatSet, bool bNoCharacterFormats, bool bNoParagraphFormats )
+void SdrObjEditView::ApplyFormatPaintBrush(SfxItemSet& rFormatSet, bool bNoCharacterFormats,
+ bool bNoParagraphFormats)
{
- if( mxSelectionController.is() &&
- mxSelectionController->ApplyFormatPaintBrush( rFormatSet, bNoCharacterFormats, bNoParagraphFormats ) )
+ if (mxSelectionController.is()
+ && mxSelectionController->ApplyFormatPaintBrush(rFormatSet, bNoCharacterFormats,
+ bNoParagraphFormats))
{
return;
}
OutlinerView* pOLV = GetTextEditOutlinerView();
const SdrMarkList& rMarkList = GetMarkedObjectList();
- if( !pOLV )
+ if (!pOLV)
{
SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
const SfxItemSet& rShapeSet = pObj->GetMergedItemSet();
@@ -2670,9 +2802,9 @@ void SdrObjEditView::ApplyFormatPaintBrush( SfxItemSet& rFormatSet, bool bNoChar
const sal_uInt16* pRanges = rFormatSet.GetRanges();
bool bTextOnly = true;
- while( *pRanges )
+ while (*pRanges)
{
- if( (*pRanges != EE_PARA_START) && (*pRanges != EE_CHAR_START) )
+ if ((*pRanges != EE_PARA_START) && (*pRanges != EE_CHAR_START))
{
bTextOnly = false;
break;
@@ -2680,57 +2812,57 @@ void SdrObjEditView::ApplyFormatPaintBrush( SfxItemSet& rFormatSet, bool bNoChar
pRanges += 2;
}
- if( !bTextOnly )
+ if (!bTextOnly)
{
- SfxItemSet aPaintSet( CreatePaintSet(
- GetFormatRangeImpl(false), *rShapeSet.GetPool(),
- rFormatSet, rShapeSet,
- bNoCharacterFormats, bNoParagraphFormats ) );
- SetAttrToMarked(aPaintSet, false/*bReplaceAll*/);
+ SfxItemSet aPaintSet(CreatePaintSet(GetFormatRangeImpl(false), *rShapeSet.GetPool(),
+ rFormatSet, rShapeSet, bNoCharacterFormats,
+ bNoParagraphFormats));
+ SetAttrToMarked(aPaintSet, false /*bReplaceAll*/);
}
// now apply character and paragraph formatting to text, if the shape has any
SdrTextObj* pTextObj = dynamic_cast<SdrTextObj*>(pObj);
- if( pTextObj )
+ if (pTextObj)
{
sal_Int32 nText = pTextObj->getTextCount();
- while( --nText >= 0 )
+ while (--nText >= 0)
{
- SdrText* pText = pTextObj->getText( nText );
- ApplyFormatPaintBrushToText( rFormatSet, *pTextObj, pText, bNoCharacterFormats, bNoParagraphFormats );
+ SdrText* pText = pTextObj->getText(nText);
+ ApplyFormatPaintBrushToText(rFormatSet, *pTextObj, pText, bNoCharacterFormats,
+ bNoParagraphFormats);
}
}
}
else
{
::Outliner* pOutliner = pOLV->GetOutliner();
- if( pOutliner )
+ if (pOutliner)
{
const EditEngine& rEditEngine = pOutliner->GetEditEngine();
- ESelection aSel( pOLV->GetSelection() );
- if( !aSel.HasRange() )
- pOLV->SetSelection( rEditEngine.GetWord( aSel, css::i18n::WordType::DICTIONARY_WORD ) );
+ ESelection aSel(pOLV->GetSelection());
+ if (!aSel.HasRange())
+ pOLV->SetSelection(rEditEngine.GetWord(aSel, css::i18n::WordType::DICTIONARY_WORD));
const bool bRemoveParaAttribs = !bNoParagraphFormats;
- pOLV->RemoveAttribsKeepLanguages( bRemoveParaAttribs );
- SfxItemSet aSet( pOLV->GetAttribs() );
- SfxItemSet aPaintSet( CreatePaintSet(
- GetFormatRangeImpl(true), *aSet.GetPool(),
- rFormatSet, aSet,
- bNoCharacterFormats, bNoParagraphFormats ) );
- pOLV->SetAttribs( aPaintSet );
+ pOLV->RemoveAttribsKeepLanguages(bRemoveParaAttribs);
+ SfxItemSet aSet(pOLV->GetAttribs());
+ SfxItemSet aPaintSet(CreatePaintSet(GetFormatRangeImpl(true), *aSet.GetPool(),
+ rFormatSet, aSet, bNoCharacterFormats,
+ bNoParagraphFormats));
+ pOLV->SetAttribs(aPaintSet);
}
}
-
// check for cloning to table cell, in which case we need to copy cell-specific formatting attributes
SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
- if( pObj && (pObj->GetObjInventor() == SdrInventor::Default) && (pObj->GetObjIdentifier() == OBJ_TABLE) )
+ if (pObj && (pObj->GetObjInventor() == SdrInventor::Default)
+ && (pObj->GetObjIdentifier() == OBJ_TABLE))
{
auto pTable = static_cast<sdr::table::SdrTableObj*>(pObj);
- if (pTable->getActiveCell().is() && mxSelectionController.is()) {
+ if (pTable->getActiveCell().is() && mxSelectionController.is())
+ {
mxSelectionController->SetAttributes(rFormatSet, false);
}
}