diff options
Diffstat (limited to 'svx/source/form/fmvwimp.cxx')
-rw-r--r-- | svx/source/form/fmvwimp.cxx | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/svx/source/form/fmvwimp.cxx b/svx/source/form/fmvwimp.cxx index cbf975fe0a2d..30dd8add1b1d 100644 --- a/svx/source/form/fmvwimp.cxx +++ b/svx/source/form/fmvwimp.cxx @@ -1350,7 +1350,7 @@ SdrObject* FmXFormView::implCreateFieldControl( const svx::ODataAccessDescriptor if ( bCheckbox ) return pControl; - SdrObjGroup* pGroup = new SdrObjGroup(); + SdrObjGroup* pGroup = new SdrObjGroup(getView()->getSdrModelFromSdrView()); SdrObjList* pObjList = pGroup->GetSubList(); pObjList->InsertObject( pLabel ); pObjList->InsertObject( pControl ); @@ -1462,7 +1462,7 @@ SdrObject* FmXFormView::implCreateXFormsControl( const svx::OXFormsDescriptor &_ // group objects - SdrObjGroup* pGroup = new SdrObjGroup(); + SdrObjGroup* pGroup = new SdrObjGroup(getView()->getSdrModelFromSdrView()); SdrObjList* pObjList = pGroup->GetSubList(); pObjList->InsertObject(pLabel); pObjList->InsertObject(pControl); @@ -1476,7 +1476,11 @@ SdrObject* FmXFormView::implCreateXFormsControl( const svx::OXFormsDescriptor &_ const MapMode eSourceMode(MapUnit::Map100thMM); const sal_uInt16 nObjID = OBJ_FM_BUTTON; ::Size controlSize(4000, 500); - FmFormObj *pControl = static_cast<FmFormObj*>(SdrObjFactory::MakeNewObject( SdrInventor::FmForm, nObjID, nullptr )); + FmFormObj *pControl = static_cast<FmFormObj*>( + SdrObjFactory::MakeNewObject( + getView()->getSdrModelFromSdrView(), + SdrInventor::FmForm, + nObjID)); controlSize.setWidth( long(controlSize.Width() * eTargetMode.GetScaleX()) ); controlSize.setHeight( long(controlSize.Height() * eTargetMode.GetScaleY()) ); ::Point controlPos( OutputDevice::LogicToLogic( ::Point( controlSize.Width(), 0 ), eSourceMode, eTargetMode ) ); @@ -1576,11 +1580,18 @@ bool FmXFormView::createControlLabelPair( OutputDevice const & _rOutDev, sal_Int // the label ::std::unique_ptr< SdrUnoObj > pLabel; Reference< XPropertySet > xLabelModel; + if ( bNeedLabel ) { pLabel.reset( dynamic_cast< SdrUnoObj* >( - SdrObjFactory::MakeNewObject( _nInventor, _nLabelObjectID, _pLabelPage, _pModel ) ) ); + SdrObjFactory::MakeNewObject( + *_pModel, + _nInventor, + _nLabelObjectID, + _pLabelPage))); + OSL_ENSURE( pLabel.get(), "FmXFormView::createControlLabelPair: could not create the label!" ); + if ( !pLabel.get() ) return false; @@ -1606,8 +1617,14 @@ bool FmXFormView::createControlLabelPair( OutputDevice const & _rOutDev, sal_Int // the control ::std::unique_ptr< SdrUnoObj > pControl( dynamic_cast< SdrUnoObj* >( - SdrObjFactory::MakeNewObject( _nInventor, _nControlObjectID, _pControlPage, _pModel ) ) ); + SdrObjFactory::MakeNewObject( + *_pModel, + _nInventor, + _nControlObjectID, + _pControlPage))); + OSL_ENSURE( pControl.get(), "FmXFormView::createControlLabelPair: could not create the control!" ); + if ( !pControl.get() ) return false; |