summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2018-01-25 12:59:53 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2018-01-27 17:19:26 +0100
commitc95d91ee35ca09379a8a1d415ae77716ddeadaac (patch)
tree370b0ad6832f3aca2ee0e2ef375bb6f953e5d360 /svx
parent2d8f17565ebe867210f5769851d91b2e7b612a8f (diff)
improve subtyping when dealing with tools::WeakReference
tweak the templating to make it easier to declare a WeakReference that points to a subclass for a weak-capable class. Which lets us declare some fields with more specific types, and dump a lot of unnecessary casting. And make WeakBase be inherited from virtually, so we don't end up with weird states where two weak refernces could point to two different parts of the same object. Change-Id: I3213ea27e087038457b0761b5171c7bce96e71f3 Reviewed-on: https://gerrit.libreoffice.org/48650 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'svx')
-rw-r--r--svx/inc/sdr/primitive2d/sdrolecontentprimitive2d.hxx2
-rw-r--r--svx/inc/sdr/primitive2d/sdrtextprimitive2d.hxx2
-rw-r--r--svx/source/sdr/primitive2d/sdrolecontentprimitive2d.cxx2
-rw-r--r--svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx2
-rw-r--r--svx/source/svdraw/svdedxv.cxx57
-rw-r--r--svx/source/svdraw/svdetc.cxx2
-rw-r--r--svx/source/svdraw/svdoutl.cxx7
-rw-r--r--svx/source/svdraw/svdpage.cxx1
-rw-r--r--svx/source/table/tablecontroller.cxx54
-rw-r--r--svx/source/table/tableundo.cxx4
-rw-r--r--svx/source/table/tableundo.hxx2
11 files changed, 61 insertions, 74 deletions
diff --git a/svx/inc/sdr/primitive2d/sdrolecontentprimitive2d.hxx b/svx/inc/sdr/primitive2d/sdrolecontentprimitive2d.hxx
index 4658aca12515..98b74e69e6e3 100644
--- a/svx/inc/sdr/primitive2d/sdrolecontentprimitive2d.hxx
+++ b/svx/inc/sdr/primitive2d/sdrolecontentprimitive2d.hxx
@@ -37,7 +37,7 @@ namespace drawinglayer
class SdrOleContentPrimitive2D : public BufferedDecompositionPrimitive2D
{
private:
- tools::WeakReference<SdrObject> mpSdrOle2Obj;
+ tools::WeakReference<SdrOle2Obj> mpSdrOle2Obj;
basegfx::B2DHomMatrix maObjectTransform;
// #i104867# The GraphicVersion number to identify in operator== if
diff --git a/svx/inc/sdr/primitive2d/sdrtextprimitive2d.hxx b/svx/inc/sdr/primitive2d/sdrtextprimitive2d.hxx
index 3da7cc1b92ea..76327e5096ad 100644
--- a/svx/inc/sdr/primitive2d/sdrtextprimitive2d.hxx
+++ b/svx/inc/sdr/primitive2d/sdrtextprimitive2d.hxx
@@ -84,7 +84,7 @@ namespace drawinglayer
const OutlinerParaObject& rOutlinerParaObjectPtr);
// get data
- const SdrText* getSdrText() const { return mrSdrText.get(); }
+ const SdrText* getSdrText() const;
const OutlinerParaObject& getOutlinerParaObject() const { return maOutlinerParaObject; }
// compare operator
diff --git a/svx/source/sdr/primitive2d/sdrolecontentprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrolecontentprimitive2d.cxx
index fae9ccfdfc1e..a22b9172dbfb 100644
--- a/svx/source/sdr/primitive2d/sdrolecontentprimitive2d.cxx
+++ b/svx/source/sdr/primitive2d/sdrolecontentprimitive2d.cxx
@@ -35,7 +35,7 @@ namespace drawinglayer
{
void SdrOleContentPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*aViewInformation*/) const
{
- const SdrOle2Obj* pSource = (mpSdrOle2Obj.is() ? static_cast< SdrOle2Obj* >(mpSdrOle2Obj.get()) : nullptr);
+ const SdrOle2Obj* pSource = mpSdrOle2Obj.get();
bool bScaleContent(false);
Graphic aGraphic;
diff --git a/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx
index 176eb95e6d86..0cdd5d0216d2 100644
--- a/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx
+++ b/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx
@@ -119,6 +119,8 @@ namespace drawinglayer
|| rETO.HasField(SvxAuthorField::StaticClassId());
}
+ const SdrText* SdrTextPrimitive2D::getSdrText() const { return mrSdrText.get(); }
+
bool SdrTextPrimitive2D::operator==(const BasePrimitive2D& rPrimitive) const
{
if(BufferedDecompositionPrimitive2D::operator==(rPrimitive))
diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx
index 87454500d904..734008157212 100644
--- a/svx/source/svdraw/svdedxv.cxx
+++ b/svx/source/svdraw/svdedxv.cxx
@@ -241,7 +241,7 @@ void SdrObjEditView::ModelHasChanged()
if (mxTextEditObj.is() && !mxTextEditObj->IsInserted()) SdrEndTextEdit(); // object deleted
// TextEditObj changed?
if (IsTextEdit()) {
- SdrTextObj* pTextObj=dynamic_cast<SdrTextObj*>( mxTextEditObj.get() );
+ SdrTextObj* pTextObj= mxTextEditObj.get();
if (pTextObj!=nullptr) {
sal_uIntPtr nOutlViewCnt=pTextEditOutliner->GetViewCount();
bool bAreaChg=false;
@@ -699,7 +699,7 @@ void SdrObjEditView::TextEditDrawing(SdrPaintWindow& rPaintWindow) const
void SdrObjEditView::ImpPaintOutlinerView(OutlinerView& rOutlView, const tools::Rectangle& rRect, OutputDevice& rTargetDevice) const
{
- const SdrTextObj* pText = dynamic_cast<SdrTextObj*>( GetTextEditObject() );
+ const SdrTextObj* pText = GetTextEditObject();
bool bTextFrame(pText && pText->IsTextFrame());
bool bFitToSize(pTextEditOutliner->GetControlWord() & EEControlBits::STRETCHING);
bool bModifyMerk(pTextEditOutliner->IsModified());
@@ -764,7 +764,7 @@ void SdrObjEditView::ImpInvalidateOutlinerView(OutlinerView const & rOutlView) c
if(pWin)
{
- const SdrTextObj* pText = dynamic_cast<SdrTextObj*>( GetTextEditObject() );
+ const SdrTextObj* pText = GetTextEditObject();
bool bTextFrame(pText && pText->IsTextFrame());
bool bFitToSize(pText && pText->IsFitToSize());
@@ -811,7 +811,7 @@ OutlinerView* SdrObjEditView::ImpMakeOutlinerView(vcl::Window* pWin, OutlinerVie
{
// background
Color aBackground(GetTextEditBackgroundColor(*this));
- SdrTextObj* pText = dynamic_cast< SdrTextObj * >( mxTextEditObj.get() );
+ SdrTextObj* pText = mxTextEditObj.get();
bool bTextFrame=pText!=nullptr && pText->IsTextFrame();
bool bContourFrame=pText!=nullptr && pText->IsContourTextFrame();
// create OutlinerView
@@ -863,7 +863,7 @@ IMPL_LINK(SdrObjEditView,ImpOutlinerStatusEventHdl, EditStatus&, rEditStat, void
{
if(pTextEditOutliner )
{
- SdrTextObj* pTextObj = dynamic_cast< SdrTextObj * >( mxTextEditObj.get() );
+ SdrTextObj* pTextObj = mxTextEditObj.get();
if( pTextObj )
{
pTextObj->onEditOutlinerStatusEvent( &rEditStat );
@@ -875,7 +875,7 @@ void SdrObjEditView::ImpChainingEventHdl()
{
if(pTextEditOutliner )
{
- SdrTextObj* pTextObj = dynamic_cast< SdrTextObj * >( mxTextEditObj.get() );
+ SdrTextObj* pTextObj = mxTextEditObj.get();
OutlinerView* pOLV = GetTextEditOutlinerView();
if( pTextObj && pOLV)
{
@@ -935,7 +935,7 @@ void SdrObjEditView::ImpChainingEventHdl()
IMPL_LINK_NOARG(SdrObjEditView,ImpAfterCutOrPasteChainingEventHdl, LinkParamNone*, void)
{
- SdrTextObj* pTextObj = dynamic_cast< SdrTextObj * >( GetTextEditObject());
+ SdrTextObj* pTextObj = GetTextEditObject();
if (!pTextObj)
return;
ImpChainingEventHdl();
@@ -948,7 +948,7 @@ void SdrObjEditView::ImpMoveCursorAfterChainingEvent(TextChainCursorManager *pCu
if (!mxTextEditObj.is() || !pCursorManager)
return;
- SdrTextObj* pTextObj = dynamic_cast<SdrTextObj*>(mxTextEditObj.get());
+ SdrTextObj* pTextObj = mxTextEditObj.get();
// Check if it has links to move it to
if (!pTextObj || !pTextObj->IsChainable())
@@ -971,7 +971,7 @@ IMPL_LINK(SdrObjEditView,ImpOutlinerCalcFieldValueHdl,EditFieldInfo*,pFI,void)
bool bOk=false;
OUString& rStr=pFI->GetRepresentation();
rStr.clear();
- SdrTextObj* pTextObj = dynamic_cast< SdrTextObj* >( mxTextEditObj.get() );
+ SdrTextObj* pTextObj = mxTextEditObj.get();
if (pTextObj!=nullptr) {
Color* pTxtCol=nullptr;
Color* pFldCol=nullptr;
@@ -1012,7 +1012,7 @@ SdrUndoManager* SdrObjEditView::getSdrUndoManagerForEnhancedTextEdit() const
}
bool SdrObjEditView::SdrBeginTextEdit(
- SdrObject* pObj, SdrPageView* pPV, vcl::Window* pWin,
+ SdrObject* pObj_, SdrPageView* pPV, vcl::Window* pWin,
bool bIsNewObj, SdrOutliner* pGivenOutliner,
OutlinerView* pGivenOutlinerView,
bool bDontDeleteOutliner, bool bOnlyOneView,
@@ -1022,7 +1022,8 @@ bool SdrObjEditView::SdrBeginTextEdit(
// FIXME this encourages all sorts of bad habits and should be removed
SdrEndTextEdit();
- if( dynamic_cast< SdrTextObj* >( pObj ) == nullptr )
+ SdrTextObj* pObj = dynamic_cast< SdrTextObj* >( pObj_ );
+ if( !pObj )
return false; // currently only possible with text objects
if(bGrabFocus && pWin)
@@ -1037,14 +1038,8 @@ bool SdrObjEditView::SdrBeginTextEdit(
const sal_uInt32 nWinCount(PaintWindowCount());
sal_uInt32 i;
bool bBrk(false);
- // break, when no object given
- if(!pObj)
- {
- bBrk = true;
- }
-
- if(!bBrk && !pWin)
+ if(!pWin)
{
for(i = 0; i < nWinCount && !pWin; i++)
{
@@ -1074,13 +1069,10 @@ bool SdrObjEditView::SdrBeginTextEdit(
}
}
- if(pObj && pPV)
+ // no TextEdit on objects in locked Layer
+ if(pPV && pPV->GetLockedLayers().IsSet(pObj->GetLayer()))
{
- // no TextEdit on objects in locked Layer
- if(pPV->GetLockedLayers().IsSet(pObj->GetLayer()))
- {
- bBrk = true;
- }
+ bBrk = true;
}
if(pTextEditOutliner)
@@ -1113,11 +1105,11 @@ bool SdrObjEditView::SdrBeginTextEdit(
// It is just necessary to make the visualized page known. Set it.
pTextEditOutliner->setVisualizedPage(pPV->GetPage());
- pTextEditOutliner->SetTextObjNoInit( dynamic_cast< SdrTextObj* >( mxTextEditObj.get() ) );
+ pTextEditOutliner->SetTextObjNoInit( mxTextEditObj.get() );
if(mxTextEditObj->BegTextEdit(*pTextEditOutliner))
{
- SdrTextObj* pTextObj = dynamic_cast< SdrTextObj* >( mxTextEditObj.get() );
+ SdrTextObj* pTextObj = mxTextEditObj.get();
DBG_ASSERT( pTextObj, "svx::SdrObjEditView::BegTextEdit(), no text object?" );
if( !pTextObj )
return false;
@@ -1179,7 +1171,7 @@ bool SdrObjEditView::SdrBeginTextEdit(
const SvtOptionsDrawinglayer aSvtOptionsDrawinglayer;
const Color aHilightColor(aSvtOptionsDrawinglayer.getHilightColor());
- const SdrTextObj* pText = dynamic_cast<SdrTextObj*>(GetTextEditObject());
+ const SdrTextObj* pText = GetTextEditObject();
const bool bTextFrame(pText && pText->IsTextFrame());
const bool bFitToSize(pTextEditOutliner->GetControlWord() & EEControlBits::STRETCHING);
const bool bVisualizeSurroundingFrame(bTextFrame && !bFitToSize);
@@ -1358,7 +1350,7 @@ bool SdrObjEditView::SdrBeginTextEdit(
SdrEndTextEditKind SdrObjEditView::SdrEndTextEdit(bool bDontDeleteReally)
{
SdrEndTextEditKind eRet=SdrEndTextEditKind::Unchanged;
- SdrTextObj* pTEObj = dynamic_cast< SdrTextObj* >( mxTextEditObj.get() );
+ SdrTextObj* pTEObj = mxTextEditObj.get();
vcl::Window* pTEWin =pTextEditWin;
SdrOutliner* pTEOutliner =pTextEditOutliner;
OutlinerView* pTEOutlinerView=pTextEditOutlinerView;
@@ -1700,7 +1692,7 @@ bool SdrObjEditView::IsTextEditFrameHit(const Point& rHit) const
bool bOk=false;
if(mxTextEditObj.is())
{
- SdrTextObj* pText= dynamic_cast<SdrTextObj*>(mxTextEditObj.get());
+ SdrTextObj* pText = mxTextEditObj.get();
OutlinerView* pOLV=pTextEditOutliner->GetView(0);
if( pOLV )
{
@@ -1729,10 +1721,7 @@ TextChainCursorManager *SdrObjEditView::ImpHandleMotionThroughBoxesKeyInput(
{
*bOutHandled = false;
- if (!mxTextEditObj.is())
- return nullptr;
-
- SdrTextObj* pTextObj = dynamic_cast<SdrTextObj*>(mxTextEditObj.get());
+ SdrTextObj* pTextObj = mxTextEditObj.get();
if (!pTextObj)
return nullptr;
@@ -2117,7 +2106,7 @@ bool SdrObjEditView::SetAttributes(const SfxItemSet& rSet, bool bReplaceAll)
// multiple portions exist with multiple formats. If a OutlinerParaObject
// really exists and needs to be rescued is evaluated in the undo
// implementation itself.
- bool bRescueText = dynamic_cast< SdrTextObj* >(mxTextEditObj.get());
+ bool bRescueText = mxTextEditObj.get();
AddUndo(GetModel()->GetSdrUndoFactory().CreateUndoAttrObject(*mxTextEditObj.get(),false,!bNoEEItems || bRescueText));
EndUndo();
diff --git a/svx/source/svdraw/svdetc.cxx b/svx/source/svdraw/svdetc.cxx
index 807e31fc6da9..aa92b123be97 100644
--- a/svx/source/svdraw/svdetc.cxx
+++ b/svx/source/svdraw/svdetc.cxx
@@ -736,7 +736,7 @@ Color GetTextEditBackgroundColor(const SdrObjEditView& rView)
if(!rStyleSettings.GetHighContrastMode())
{
bool bFound(false);
- SdrTextObj* pText = dynamic_cast< SdrTextObj * >(rView.GetTextEditObject());
+ SdrTextObj* pText = rView.GetTextEditObject();
if(pText && pText->IsClosedObj())
{
diff --git a/svx/source/svdraw/svdoutl.cxx b/svx/source/svdraw/svdoutl.cxx
index 580dee39b174..5ed3a5d0a761 100644
--- a/svx/source/svdraw/svdoutl.cxx
+++ b/svx/source/svdraw/svdoutl.cxx
@@ -79,7 +79,7 @@ OUString SdrOutliner::CalcFieldValue(const SvxFieldItem& rField, sal_Int32 nPara
OUString aRet;
if(mpTextObj.is())
- bOk = static_cast< SdrTextObj* >( mpTextObj.get())->CalcFieldValue(rField, nPara, nPos, false, rpTxtColor, rpFldColor, aRet);
+ bOk = mpTextObj->CalcFieldValue(rField, nPara, nPos, false, rpTxtColor, rpFldColor, aRet);
if (!bOk)
aRet = Outliner::CalcFieldValue(rField, nPara, nPos, rpTxtColor, rpFldColor);
@@ -89,10 +89,7 @@ OUString SdrOutliner::CalcFieldValue(const SvxFieldItem& rField, sal_Int32 nPara
const SdrTextObj* SdrOutliner::GetTextObj() const
{
- if( mpTextObj.is() )
- return static_cast< SdrTextObj* >( mpTextObj.get() );
- else
- return nullptr;
+ return mpTextObj.get();
}
bool SdrOutliner::hasEditViewCallbacks() const
diff --git a/svx/source/svdraw/svdpage.cxx b/svx/source/svdraw/svdpage.cxx
index 2251699472eb..9ebaec292bc5 100644
--- a/svx/source/svdraw/svdpage.cxx
+++ b/svx/source/svdraw/svdpage.cxx
@@ -1169,7 +1169,6 @@ SdrPage::SdrPage(SdrModel& rNewModel, bool bMasterPage)
SdrPage::SdrPage(const SdrPage& rSrcPage)
: SdrObjList(rSrcPage.pModel, this),
- tools::WeakBase< SdrPage >(),
mpViewContact(nullptr),
mnWidth(rSrcPage.mnWidth),
mnHeight(rSrcPage.mnHeight),
diff --git a/svx/source/table/tablecontroller.cxx b/svx/source/table/tablecontroller.cxx
index 59dec64df181..f683569df3df 100644
--- a/svx/source/table/tablecontroller.cxx
+++ b/svx/source/table/tablecontroller.cxx
@@ -174,10 +174,10 @@ SvxTableController::SvxTableController( SdrObjEditView* pView, const SdrObject*
if( mxTableObj.is() )
{
- static_cast< const SdrTableObj* >( pObj )->getActiveCellPos( maCursorFirstPos );
+ mxTableObj->getActiveCellPos( maCursorFirstPos );
maCursorLastPos = maCursorFirstPos;
- Reference< XTable > xTable( static_cast< const SdrTableObj* >( pObj )->getTable() );
+ Reference< XTable > xTable( mxTableObj->getTable() );
if( xTable.is() )
{
mxModifyListener = new SvxTableControllerModifyListener( this );
@@ -198,7 +198,7 @@ SvxTableController::~SvxTableController()
if( mxModifyListener.is() && mxTableObj.get() )
{
- Reference< XTable > xTable( static_cast< SdrTableObj* >( mxTableObj.get() )->getTable() );
+ Reference< XTable > xTable( mxTableObj->getTable() );
if( xTable.is() )
{
xTable->removeModifyListener( mxModifyListener );
@@ -273,7 +273,7 @@ bool SvxTableController::onMouseButtonDown(const MouseEvent& rMEvt, vcl::Window*
if( !rMEvt.IsRight() && mpView->PickAnything(rMEvt,SdrMouseEventKind::BUTTONDOWN, aVEvt) == SdrHitKind::Handle )
return false;
- TableHitKind eHit = static_cast< SdrTableObj* >(mxTableObj.get())->CheckTableHit(pixelToLogic(rMEvt.GetPosPixel(), pWindow), maMouseDownPos.mnCol, maMouseDownPos.mnRow);
+ TableHitKind eHit = mxTableObj->CheckTableHit(pixelToLogic(rMEvt.GetPosPixel(), pWindow), maMouseDownPos.mnCol, maMouseDownPos.mnRow);
mbLeftButtonDown = (rMEvt.GetClicks() == 1) && rMEvt.IsLeft();
@@ -299,7 +299,7 @@ bool SvxTableController::onMouseButtonDown(const MouseEvent& rMEvt, vcl::Window*
}
else
{
- sdr::table::SdrTableObj* pTableObj = dynamic_cast< sdr::table::SdrTableObj* >( mxTableObj.get() );
+ sdr::table::SdrTableObj* pTableObj = mxTableObj.get();
if( !pWindow || !pTableObj || eHit == TableHitKind::NONE)
{
@@ -350,7 +350,7 @@ bool SvxTableController::onMouseMove(const MouseEvent& rMEvt, vcl::Window* pWind
if( !checkTableObject() )
return false;
- SdrTableObj* pTableObj = dynamic_cast< SdrTableObj* >( mxTableObj.get() );
+ SdrTableObj* pTableObj = mxTableObj.get();
CellPos aPos;
if (mbLeftButtonDown && pTableObj && pTableObj->CheckTableHit(pixelToLogic(rMEvt.GetPosPixel(), pWindow), aPos.mnCol, aPos.mnRow ) != TableHitKind::NONE)
{
@@ -380,7 +380,7 @@ void SvxTableController::onSelectionHasChanged()
{
bool bSelected = false;
- SdrTableObj* pTableObj = dynamic_cast< SdrTableObj* >( mxTableObj.get() );
+ SdrTableObj* pTableObj = mxTableObj.get();
if( pTableObj && pTableObj->IsTextEditActive() )
{
pTableObj->getActiveCellPos( maCursorFirstPos );
@@ -512,7 +512,7 @@ void SvxTableController::GetState( SfxItemSet& rSet )
void SvxTableController::onInsert( sal_uInt16 nSId, const SfxItemSet* pArgs )
{
- sdr::table::SdrTableObj* pTableObj = dynamic_cast< sdr::table::SdrTableObj* >( mxTableObj.get() );
+ sdr::table::SdrTableObj* pTableObj = mxTableObj.get();
if( !pTableObj )
return;
@@ -788,7 +788,7 @@ void SvxTableController::onInsert( sal_uInt16 nSId, const SfxItemSet* pArgs )
void SvxTableController::onDelete( sal_uInt16 nSId )
{
- sdr::table::SdrTableObj* pTableObj = dynamic_cast< sdr::table::SdrTableObj* >( mxTableObj.get() );
+ sdr::table::SdrTableObj* pTableObj = mxTableObj.get();
if( !pTableObj )
return;
@@ -893,7 +893,7 @@ namespace
void SvxTableController::onFormatTable( SfxRequest const & rReq )
{
- sdr::table::SdrTableObj* pTableObj = dynamic_cast< sdr::table::SdrTableObj* >( mxTableObj.get() );
+ sdr::table::SdrTableObj* pTableObj = mxTableObj.get();
if( !pTableObj )
return;
@@ -1033,7 +1033,7 @@ void SvxTableController::Execute( SfxRequest& rReq )
void SvxTableController::SetTableStyle( const SfxItemSet* pArgs )
{
- SdrTableObj* pTableObj = dynamic_cast< sdr::table::SdrTableObj* >( mxTableObj.get() );
+ SdrTableObj* pTableObj = mxTableObj.get();
SdrModel* pModel = pTableObj ? pTableObj->GetModel() : nullptr;
if( !pTableObj || !pModel || !pArgs || (SfxItemState::SET != pArgs->GetItemState(SID_TABLE_STYLE, false)) )
@@ -1116,7 +1116,7 @@ void SvxTableController::SetTableStyle( const SfxItemSet* pArgs )
void SvxTableController::SetTableStyleSettings( const SfxItemSet* pArgs )
{
- SdrTableObj* pTableObj = dynamic_cast< sdr::table::SdrTableObj* >( mxTableObj.get() );
+ SdrTableObj* pTableObj = mxTableObj.get();
SdrModel* pModel = pTableObj ? pTableObj->GetModel() : nullptr;
if( !pTableObj || !pModel )
@@ -1163,7 +1163,7 @@ void SvxTableController::SetTableStyleSettings( const SfxItemSet* pArgs )
void SvxTableController::SetVertical( sal_uInt16 nSId )
{
- SdrTableObj* pTableObj = dynamic_cast< sdr::table::SdrTableObj* >( mxTableObj.get() );
+ SdrTableObj* pTableObj = mxTableObj.get();
if( !mxTable.is() || !pTableObj )
return;
@@ -1222,7 +1222,7 @@ void SvxTableController::MergeMarkedCells()
{
CellPos aStart, aEnd;
getSelectedCells( aStart, aEnd );
- SdrTableObj* pTableObj = dynamic_cast< sdr::table::SdrTableObj* >( mxTableObj.get() );
+ SdrTableObj* pTableObj = mxTableObj.get();
if( pTableObj )
{
if( pTableObj->IsTextEditActive() )
@@ -1256,7 +1256,7 @@ void SvxTableController::SplitMarkedCells()
const sal_Int32 nColCount = mxTable->getColumnCount();
- SdrTableObj* pTableObj = dynamic_cast< SdrTableObj* >( mxTableObj.get() );
+ SdrTableObj* pTableObj = mxTableObj.get();
if( pTableObj )
{
if( pTableObj->IsTextEditActive() )
@@ -1293,7 +1293,7 @@ void SvxTableController::SplitMarkedCells()
void SvxTableController::DistributeColumns()
{
- SdrTableObj* pTableObj = dynamic_cast< SdrTableObj* >( mxTableObj.get() );
+ SdrTableObj* pTableObj = mxTableObj.get();
if( pTableObj )
{
const bool bUndo = mpModel && mpModel->IsUndoEnabled();
@@ -1314,7 +1314,7 @@ void SvxTableController::DistributeColumns()
void SvxTableController::DistributeRows()
{
- SdrTableObj* pTableObj = dynamic_cast< SdrTableObj* >( mxTableObj.get() );
+ SdrTableObj* pTableObj = mxTableObj.get();
if( pTableObj )
{
const bool bUndo = mpModel && mpModel->IsUndoEnabled();
@@ -1456,7 +1456,7 @@ SvxTableController::TblAction SvxTableController::getKeyboardAction(const KeyEve
TblAction nAction = TblAction::HandledByView;
- sdr::table::SdrTableObj* pTableObj = dynamic_cast< sdr::table::SdrTableObj* >( mxTableObj.get() );
+ sdr::table::SdrTableObj* pTableObj = mxTableObj.get();
if( !pTableObj )
return nAction;
@@ -1637,7 +1637,7 @@ SvxTableController::TblAction SvxTableController::getKeyboardAction(const KeyEve
bool SvxTableController::executeAction(TblAction nAction, bool bSelect, vcl::Window* pWindow)
{
- sdr::table::SdrTableObj* pTableObj = dynamic_cast< sdr::table::SdrTableObj* >( mxTableObj.get() );
+ sdr::table::SdrTableObj* pTableObj = mxTableObj.get();
if( !pTableObj )
return false;
@@ -1746,14 +1746,14 @@ bool SvxTableController::executeAction(TblAction nAction, bool bSelect, vcl::Win
void SvxTableController::gotoCell(const CellPos& rPos, bool bSelect, vcl::Window* pWindow, TblAction nAction /*= TblAction::NONE */)
{
- if( mxTableObj.is() && static_cast<SdrTableObj*>(mxTableObj.get())->IsTextEditActive() )
+ if( mxTableObj.is() && mxTableObj->IsTextEditActive() )
mpView->SdrEndTextEdit(true);
if( bSelect )
{
maCursorLastPos = rPos;
if( mxTableObj.is() )
- static_cast< SdrTableObj* >( mxTableObj.get() )->setActiveCell( rPos );
+ mxTableObj->setActiveCell( rPos );
if( !mbCellSelectionMode )
{
@@ -1857,7 +1857,7 @@ void SvxTableController::EditCell(const CellPos& rPos, vcl::Window* pWindow, Tbl
{
SdrPageView* pPV = mpView->GetSdrPageView();
- sdr::table::SdrTableObj* pTableObj = dynamic_cast< sdr::table::SdrTableObj* >( mxTableObj.get() );
+ sdr::table::SdrTableObj* pTableObj = mxTableObj.get();
if( pTableObj && pTableObj->GetPage() == pPV->GetPage() )
{
bool bEmptyOutliner = false;
@@ -2123,7 +2123,7 @@ void SvxTableController::updateSelectionOverlay()
destroySelectionOverlay();
if( mbCellSelectionMode )
{
- sdr::table::SdrTableObj* pTableObj = dynamic_cast< sdr::table::SdrTableObj* >( mxTableObj.get() );
+ sdr::table::SdrTableObj* pTableObj = mxTableObj.get();
if( pTableObj )
{
sdr::overlay::OverlayObjectCell::RangeVector aRanges;
@@ -2595,7 +2595,7 @@ bool SvxTableController::GetMarkedObjModel( SdrPage* pNewPage )
{
if( mxTableObj.is() && mbCellSelectionMode && pNewPage ) try
{
- sdr::table::SdrTableObj& rTableObj = *static_cast< sdr::table::SdrTableObj* >( mxTableObj.get() );
+ sdr::table::SdrTableObj& rTableObj = *mxTableObj.get();
CellPos aStart, aEnd;
getSelectedCells( aStart, aEnd );
@@ -3084,7 +3084,7 @@ bool SvxTableController::isColumnSelected( sal_Int32 nColumn )
bool SvxTableController::isRowHeader()
{
- SdrTableObj* pTableObj = dynamic_cast< sdr::table::SdrTableObj* >( mxTableObj.get() );
+ SdrTableObj* pTableObj = mxTableObj.get();
SdrModel* pModel = pTableObj ? pTableObj->GetModel() : nullptr;
if( !pTableObj || !pModel )
@@ -3097,7 +3097,7 @@ bool SvxTableController::isRowHeader()
bool SvxTableController::isColumnHeader()
{
- SdrTableObj* pTableObj = dynamic_cast< sdr::table::SdrTableObj* >( mxTableObj.get() );
+ SdrTableObj* pTableObj = mxTableObj.get();
SdrModel* pModel = pTableObj ? pTableObj->GetModel() : nullptr;
if( !pTableObj || !pModel )
@@ -3113,7 +3113,7 @@ bool SvxTableController::setCursorLogicPosition(const Point& rPosition, bool bPo
if (mxTableObj->GetObjIdentifier() != OBJ_TABLE)
return false;
- SdrTableObj* pTableObj = static_cast<SdrTableObj*>(mxTableObj.get());
+ SdrTableObj* pTableObj = mxTableObj.get();
CellPos aCellPos;
if (pTableObj->CheckTableHit(rPosition, aCellPos.mnCol, aCellPos.mnRow) != TableHitKind::NONE)
{
diff --git a/svx/source/table/tableundo.cxx b/svx/source/table/tableundo.cxx
index 27c93bd4b158..9a14948b1dfe 100644
--- a/svx/source/table/tableundo.cxx
+++ b/svx/source/table/tableundo.cxx
@@ -499,7 +499,7 @@ void TableStyleUndo::Redo()
void TableStyleUndo::setData( const Data& rData )
{
- SdrTableObj* pTableObj = dynamic_cast< SdrTableObj* >( mxObjRef.get() );
+ SdrTableObj* pTableObj = mxObjRef.get();
if( pTableObj )
{
pTableObj->setTableStyle( rData.mxTableStyle );
@@ -509,7 +509,7 @@ void TableStyleUndo::setData( const Data& rData )
void TableStyleUndo::getData( Data& rData )
{
- SdrTableObj* pTableObj = dynamic_cast< SdrTableObj* >( mxObjRef.get() );
+ SdrTableObj* pTableObj = mxObjRef.get();
if( pTableObj )
{
rData.maSettings = pTableObj->getTableStyleSettings();
diff --git a/svx/source/table/tableundo.hxx b/svx/source/table/tableundo.hxx
index dda6c8b57e91..60d661878a70 100644
--- a/svx/source/table/tableundo.hxx
+++ b/svx/source/table/tableundo.hxx
@@ -237,7 +237,7 @@ public:
virtual void Redo() override;
private:
- tools::WeakReference<SdrObject> mxObjRef;
+ tools::WeakReference<SdrTableObj> mxObjRef;
struct Data
{