weld SvxTransformTabDialog
Change-Id: Ib6dabd04e3f834b61363d5a620de7f0219a1e644
Reviewed-on: https://gerrit.libreoffice.org/55012
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/chart2/source/controller/main/ChartController_Position.cxx b/chart2/source/controller/main/ChartController_Position.cxx
index 37b0ef9..2304bb7 100644
--- a/chart2/source/controller/main/ChartController_Position.cxx
+++ b/chart2/source/controller/main/ChartController_Position.cxx
@@ -136,8 +136,9 @@ void ChartController::executeDispatch_PositionAndSize()
SolarMutexGuard aGuard;
SvxAbstractDialogFactory * pFact = SvxAbstractDialogFactory::Create();
OSL_ENSURE( pFact, "No dialog factory" );
vcl::Window* pWin = GetChartWindow();
ScopedVclPtr<SfxAbstractTabDialog> pDlg(pFact->CreateSchTransformTabDialog(
GetChartWindow(), &aItemSet, pSdrView, bResizePossible ));
pWin ? pWin->GetFrameWeld() : nullptr, &aItemSet, pSdrView, bResizePossible));
OSL_ENSURE( pDlg, "Couldn't create SchTransformTabDialog" );
if( pDlg->Execute() == RET_OK )
diff --git a/chart2/source/controller/main/ShapeController.cxx b/chart2/source/controller/main/ShapeController.cxx
index 1b6a89b..80203f1 100644
--- a/chart2/source/controller/main/ShapeController.cxx
+++ b/chart2/source/controller/main/ShapeController.cxx
@@ -399,7 +399,7 @@ void ShapeController::executeDispatch_TransformDialog()
if ( pFact )
{
ScopedVclPtr< SfxAbstractTabDialog > pDlg(
pFact->CreateSvxTransformTabDialog( pChartWindow, &aGeoAttr, pDrawViewWrapper ) );
pFact->CreateSvxTransformTabDialog(pChartWindow ? pChartWindow->GetFrameWeld() : nullptr, &aGeoAttr, pDrawViewWrapper));
if ( pDlg.get() && ( pDlg->Execute() == RET_OK ) )
{
const SfxItemSet* pOutAttr = pDlg->GetOutputItemSet();
diff --git a/cui/source/factory/dlgfact.cxx b/cui/source/factory/dlgfact.cxx
index a5c76ef..05c404a 100644
--- a/cui/source/factory/dlgfact.cxx
+++ b/cui/source/factory/dlgfact.cxx
@@ -130,7 +130,16 @@ short AbstractSvxSearchSimilarityDialog_Impl::Execute()
return m_xDlg->run();
}
IMPL_ABSTDLG_BASE(AbstractSvxTransformTabDialog_Impl);
short AbstractSvxTransformTabDialog_Impl::Execute()
{
return m_xDlg->execute();
}
bool AbstractSvxTransformTabDialog_Impl::StartExecuteAsync(AsyncContext &rCtx)
{
return SfxTabDialogController::runAsync(m_xDlg, rCtx.maEndDialogFn);
}
IMPL_ABSTDLG_BASE(AbstractSvxCaptionDialog_Impl);
IMPL_ABSTDLG_BASE(AbstractSvxJSearchOptionsDialog_Impl);
@@ -579,31 +588,33 @@ bool AbstractSvxSearchSimilarityDialog_Impl::IsRelaxed()
// AbstractSvxTransformTabDialog implementations just forwards everything to the dialog
void AbstractSvxTransformTabDialog_Impl::SetCurPageId( const OString& rName )
{
pDlg->SetCurPageId( rName );
m_xDlg->SetCurPageId( rName );
}
const SfxItemSet* AbstractSvxTransformTabDialog_Impl::GetOutputItemSet() const
{
return pDlg->GetOutputItemSet();
return m_xDlg->GetOutputItemSet();
}
const sal_uInt16* AbstractSvxTransformTabDialog_Impl::GetInputRanges(const SfxItemPool& pItem )
{
return pDlg->GetInputRanges( pItem );
return m_xDlg->GetInputRanges( pItem );
}
void AbstractSvxTransformTabDialog_Impl::SetInputSet( const SfxItemSet* pInSet )
{
pDlg->SetInputSet( pInSet );
m_xDlg->SetInputSet( pInSet );
}
//From class Window.
void AbstractSvxTransformTabDialog_Impl::SetText( const OUString& rStr )
{
pDlg->SetText( rStr );
m_xDlg->set_title(rStr);
}
void AbstractSvxTransformTabDialog_Impl::SetValidateFramePosLink( const Link<SvxSwFrameValidation&,void>& rLink )
{
pDlg->SetValidateFramePosLink( rLink );
m_xDlg->SetValidateFramePosLink( rLink );
}
// AbstractSvxCaptionDialog implementations just forwards everything to the dialog
@@ -1151,25 +1162,24 @@ VclPtr<SfxAbstractTabDialog> AbstractDialogFactory_Impl::CreateSvxBorderBackgrou
return VclPtr<CuiAbstractTabDialog_Impl>::Create(pDlg);
}
VclPtr<AbstractSvxTransformTabDialog> AbstractDialogFactory_Impl::CreateSvxTransformTabDialog( vcl::Window* pParent,
const SfxItemSet* pAttr,
const SdrView* pView,
SvxAnchorIds nAnchorTypes )
VclPtr<AbstractSvxTransformTabDialog> AbstractDialogFactory_Impl::CreateSvxTransformTabDialog(weld::Window* pParent,
const SfxItemSet* pAttr,
const SdrView* pView,
SvxAnchorIds nAnchorTypes)
{
VclPtrInstance<SvxTransformTabDialog> pDlg( pParent, pAttr,pView, nAnchorTypes);
return VclPtr<AbstractSvxTransformTabDialog_Impl>::Create( pDlg );
return VclPtr<AbstractSvxTransformTabDialog_Impl>::Create(new SvxTransformTabDialog(pParent, pAttr,pView, nAnchorTypes));
}
VclPtr<SfxAbstractTabDialog> AbstractDialogFactory_Impl::CreateSchTransformTabDialog( vcl::Window* pParent,
const SfxItemSet* pAttr,
const SdrView* pSdrView,
bool bSizeTabPage
)
VclPtr<SfxAbstractTabDialog> AbstractDialogFactory_Impl::CreateSchTransformTabDialog(weld::Window* pParent,
const SfxItemSet* pAttr,
const SdrView* pSdrView,
bool bSizeTabPage)
{
VclPtrInstance<SvxTransformTabDialog> pDlg( pParent, pAttr,pSdrView, bSizeTabPage ? SvxAnchorIds::NoProtect : SvxAnchorIds::NoProtect|SvxAnchorIds::NoResize);
SvxTransformTabDialog* pDlg = new SvxTransformTabDialog(pParent, pAttr, pSdrView,
bSizeTabPage ? SvxAnchorIds::NoProtect : SvxAnchorIds::NoProtect|SvxAnchorIds::NoResize);
pDlg->RemoveTabPage( "RID_SVXPAGE_ANGLE" );
pDlg->RemoveTabPage( "RID_SVXPAGE_SLANT" );
return VclPtr<CuiAbstractTabDialog_Impl>::Create( pDlg );
return VclPtr<CuiAbstractTabController_Impl>::Create(pDlg);
}
VclPtr<AbstractSvxJSearchOptionsDialog> AbstractDialogFactory_Impl::CreateSvxJSearchOptionsDialog( vcl::Window* pParent,
diff --git a/cui/source/factory/dlgfact.hxx b/cui/source/factory/dlgfact.hxx
index 3c4e3da..abb202f 100644
--- a/cui/source/factory/dlgfact.hxx
+++ b/cui/source/factory/dlgfact.hxx
@@ -304,7 +304,15 @@ class AbstractSvxJSearchOptionsDialog_Impl :public AbstractSvxJSearchOptionsDial
class AbstractSvxTransformTabDialog_Impl : public AbstractSvxTransformTabDialog
{
DECL_ABSTDLG_BASE(AbstractSvxTransformTabDialog_Impl,SvxTransformTabDialog)
protected:
std::shared_ptr<SvxTransformTabDialog> m_xDlg;
public:
explicit AbstractSvxTransformTabDialog_Impl(SvxTransformTabDialog* p)
: m_xDlg(p)
{
}
virtual short Execute() override;
virtual bool StartExecuteAsync(AsyncContext &rCtx) override;
virtual void SetValidateFramePosLink( const Link<SvxSwFrameValidation&,void>& rLink ) override;
virtual void SetCurPageId( const OString& rName ) override;
virtual const SfxItemSet* GetOutputItemSet() const override;
@@ -664,15 +672,14 @@ public:
const SfxItemSet& rCoreSet,
bool bEnableDrawingLayerFillStyles) override;
virtual VclPtr<AbstractSvxTransformTabDialog> CreateSvxTransformTabDialog( vcl::Window* pParent,
const SfxItemSet* pAttr,
const SdrView* pView,
SvxAnchorIds nAnchorTypes = SvxAnchorIds::NONE) override ;
virtual VclPtr<SfxAbstractTabDialog> CreateSchTransformTabDialog( vcl::Window* pParent,
const SfxItemSet* pAttr,
const SdrView* pSdrView,
bool bSizeTabPage
) override;
virtual VclPtr<AbstractSvxTransformTabDialog> CreateSvxTransformTabDialog(weld::Window* pParent,
const SfxItemSet* pAttr,
const SdrView* pView,
SvxAnchorIds nAnchorTypes = SvxAnchorIds::NONE) override ;
virtual VclPtr<SfxAbstractTabDialog> CreateSchTransformTabDialog(weld::Window* pParent,
const SfxItemSet* pAttr,
const SdrView* pSdrView,
bool bSizeTabPage) override;
virtual VclPtr<AbstractSpellDialog> CreateSvxSpellDialog(
vcl::Window* pParent,
SfxBindings* pBindings,
diff --git a/cui/source/inc/transfrm.hxx b/cui/source/inc/transfrm.hxx
index 9dccd26..d4f9be4 100644
--- a/cui/source/inc/transfrm.hxx
+++ b/cui/source/inc/transfrm.hxx
@@ -37,28 +37,23 @@ class SdrView;
\************************************************************************/
struct SvxSwFrameValidation;
class SvxTransformTabDialog : public SfxTabDialog
class SvxTransformTabDialog : public SfxTabDialogController
{
sal_uInt16 nPosSize;
sal_uInt16 nSWPosSize;
sal_uInt16 nRotation;
sal_uInt16 nSlant;
private:
const SdrView* pView;
SvxAnchorIds nAnchorCtrls;
Link<SvxSwFrameValidation&,void> aValidateLink;
virtual void PageCreated( sal_uInt16 nId, SfxTabPage &rPage ) override;
virtual void PageCreated(const OString& rId, SfxTabPage &rPage) override;
public:
SvxTransformTabDialog(weld::Window* pParent, const SfxItemSet* pAttr,
const SdrView* pView,
SvxAnchorIds nAnchorTypes);
SvxTransformTabDialog( vcl::Window* pParent, const SfxItemSet* pAttr,
const SdrView* pView,
SvxAnchorIds nAnchorTypes);
//link for the Writer to validate positions
void SetValidateFramePosLink( const Link<SvxSwFrameValidation&,void>& rLink );
//link for the Writer to validate positions
void SetValidateFramePosLink( const Link<SvxSwFrameValidation&,void>& rLink );
};
/*************************************************************************
diff --git a/cui/source/tabpages/transfrm.cxx b/cui/source/tabpages/transfrm.cxx
index cf3bc44..6cfe85e 100644
--- a/cui/source/tabpages/transfrm.cxx
+++ b/cui/source/tabpages/transfrm.cxx
@@ -86,14 +86,9 @@ const sal_uInt16 SvxSlantTabPage::pSlantRanges[] =
|*
\************************************************************************/
SvxTransformTabDialog::SvxTransformTabDialog( vcl::Window* pParent, const SfxItemSet* pAttr,
const SdrView* pSdrView, SvxAnchorIds nAnchorTypes )
: SfxTabDialog( pParent
,"PositionAndSizeDialog"
,"cui/ui/positionsizedialog.ui"
, pAttr )
, nPosSize(0)
, nSWPosSize(0)
SvxTransformTabDialog::SvxTransformTabDialog(weld::Window* pParent, const SfxItemSet* pAttr,
const SdrView* pSdrView, SvxAnchorIds nAnchorTypes)
: SfxTabDialogController(pParent, "cui/ui/positionsizedialog.ui", "PositionAndSizeDialog", pAttr)
, pView(pSdrView)
, nAnchorCtrls(nAnchorTypes)
{
@@ -102,66 +97,63 @@ SvxTransformTabDialog::SvxTransformTabDialog( vcl::Window* pParent, const SfxIte
//different positioning page in Writer
if(nAnchorCtrls & (SvxAnchorIds::Paragraph | SvxAnchorIds::Character | SvxAnchorIds::Page | SvxAnchorIds::Fly))
{
nSWPosSize = AddTabPage("RID_SVXPAGE_SWPOSSIZE", SvxSwPosSizeTabPage::Create, SvxSwPosSizeTabPage::GetRanges);
AddTabPage("RID_SVXPAGE_SWPOSSIZE", SvxSwPosSizeTabPage::Create, SvxSwPosSizeTabPage::GetRanges);
RemoveTabPage("RID_SVXPAGE_POSITION_SIZE");
}
else
{
nPosSize = AddTabPage("RID_SVXPAGE_POSITION_SIZE", SvxPositionSizeTabPage::Create, SvxPositionSizeTabPage::GetRanges);
AddTabPage("RID_SVXPAGE_POSITION_SIZE", SvxPositionSizeTabPage::Create, SvxPositionSizeTabPage::GetRanges);
RemoveTabPage("RID_SVXPAGE_SWPOSSIZE");
}
nRotation = AddTabPage("RID_SVXPAGE_ANGLE", SvxAngleTabPage::Create, SvxAngleTabPage::GetRanges);
nSlant = AddTabPage("RID_SVXPAGE_SLANT", SvxSlantTabPage::Create, SvxSlantTabPage::GetRanges);
AddTabPage("RID_SVXPAGE_ANGLE", SvxAngleTabPage::Create, SvxAngleTabPage::GetRanges);
AddTabPage("RID_SVXPAGE_SLANT", SvxSlantTabPage::Create, SvxSlantTabPage::GetRanges);
}
void SvxTransformTabDialog::PageCreated(sal_uInt16 nId, SfxTabPage &rPage)
void SvxTransformTabDialog::PageCreated(const OString& rId, SfxTabPage &rPage)
{
if (nId==nPosSize)
if (rId == "RID_SVXPAGE_POSITION_SIZE")
{
SvxPositionSizeTabPage& rSvxPos = static_cast<SvxPositionSizeTabPage&>(rPage);
rSvxPos.SetView(pView);
rSvxPos.Construct();
if(nAnchorCtrls & SvxAnchorIds::NoResize)
{
SvxPositionSizeTabPage& rSvxPos = static_cast<SvxPositionSizeTabPage&>(rPage);
rSvxPos.SetView(pView);
rSvxPos.Construct();
if(nAnchorCtrls & SvxAnchorIds::NoResize)
{
rSvxPos.DisableResize();
}
if(nAnchorCtrls & SvxAnchorIds::NoProtect)
{
rSvxPos.DisableProtect();
rSvxPos.UpdateControlStates();
}
}
else if (nId == nSWPosSize)
{
SvxSwPosSizeTabPage& rSwPos = static_cast<SvxSwPosSizeTabPage&>(rPage);
rSwPos.EnableAnchorTypes(nAnchorCtrls);
rSwPos.SetValidateFramePosLink(aValidateLink);
rSwPos.SetView(pView);
rSvxPos.DisableResize();
}
else if( nId == nRotation)
if(nAnchorCtrls & SvxAnchorIds::NoProtect)
{
SvxAngleTabPage& rSvxAng = static_cast<SvxAngleTabPage&>(rPage);
rSvxAng.SetView( pView );
rSvxAng.Construct();
rSvxPos.DisableProtect();
rSvxPos.UpdateControlStates();
}
}
else if (rId == "RID_SVXPAGE_SWPOSSIZE")
{
SvxSwPosSizeTabPage& rSwPos = static_cast<SvxSwPosSizeTabPage&>(rPage);
else if (nId == nSlant)
{
SvxSlantTabPage& rSvxSlnt = static_cast<SvxSlantTabPage&>(rPage);
rSwPos.EnableAnchorTypes(nAnchorCtrls);
rSwPos.SetValidateFramePosLink(aValidateLink);
rSwPos.SetView(pView);
}
else if (rId == "RID_SVXPAGE_ANGLE")
{
SvxAngleTabPage& rSvxAng = static_cast<SvxAngleTabPage&>(rPage);
rSvxSlnt.SetView( pView );
rSvxSlnt.Construct();
}
rSvxAng.SetView( pView );
rSvxAng.Construct();
}
else if (rId == "RID_SVXPAGE_SLANT")
{
SvxSlantTabPage& rSvxSlnt = static_cast<SvxSlantTabPage&>(rPage);
rSvxSlnt.SetView( pView );
rSvxSlnt.Construct();
}
}
void SvxTransformTabDialog::SetValidateFramePosLink(const Link<SvxSwFrameValidation&,void>& rLink)
{
aValidateLink = rLink;
diff --git a/cui/uiconfig/ui/positionsizedialog.ui b/cui/uiconfig/ui/positionsizedialog.ui
index 658d5d0..8b27631 100644
--- a/cui/uiconfig/ui/positionsizedialog.ui
+++ b/cui/uiconfig/ui/positionsizedialog.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.20.0 -->
<!-- Generated with glade 3.22.1 -->
<interface domain="cui">
<requires lib="gtk+" version="3.18"/>
<object class="GtkDialog" id="PositionAndSizeDialog">
@@ -8,7 +8,12 @@
<property name="title" translatable="yes" context="positionsizedialog|PositionAndSizeDialog">Position and Size</property>
<property name="resizable">False</property>
<property name="modal">True</property>
<property name="default_width">0</property>
<property name="default_height">0</property>
<property name="type_hint">dialog</property>
<child>
<placeholder/>
</child>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
<property name="can_focus">False</property>
@@ -19,6 +24,20 @@
<property name="can_focus">False</property>
<property name="layout_style">end</property>
<child>
<object class="GtkButton" id="reset">
<property name="label">gtk-revert-to-saved</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="ok">
<property name="label">gtk-ok</property>
<property name="visible">True</property>
@@ -31,7 +50,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
<property name="position">1</property>
</packing>
</child>
<child>
@@ -45,7 +64,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
<property name="position">2</property>
</packing>
</child>
<child>
@@ -59,22 +78,8 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
<property name="secondary">True</property>
</packing>
</child>
<child>
<object class="GtkButton" id="reset">
<property name="label">gtk-revert-to-saved</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
<property name="secondary">True</property>
</packing>
</child>
</object>
@@ -98,6 +103,30 @@
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
</object>
</child>
<child type="tab">
@@ -117,6 +146,30 @@
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="position">1</property>
@@ -140,6 +193,30 @@
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="position">2</property>
@@ -163,6 +240,30 @@
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="position">3</property>
@@ -189,10 +290,10 @@
</object>
</child>
<action-widgets>
<action-widget response="0">reset</action-widget>
<action-widget response="-5">ok</action-widget>
<action-widget response="-6">cancel</action-widget>
<action-widget response="-11">help</action-widget>
<action-widget response="0">reset</action-widget>
</action-widgets>
</object>
</interface>
diff --git a/include/sfx2/tabdlg.hxx b/include/sfx2/tabdlg.hxx
index a83573d..3cb8571 100644
--- a/include/sfx2/tabdlg.hxx
+++ b/include/sfx2/tabdlg.hxx
@@ -299,6 +299,8 @@ public:
void RemoveResetButton();
short execute();
static bool runAsync(const std::shared_ptr<SfxTabDialogController>& rController,
const std::function<void(sal_Int32)>&);
const SfxItemSet* GetExampleSet() const { return m_xExampleSet.get(); }
diff --git a/include/svx/svxdlg.hxx b/include/svx/svxdlg.hxx
index 44bc03f..d1bd463 100644
--- a/include/svx/svxdlg.hxx
+++ b/include/svx/svxdlg.hxx
@@ -384,15 +384,14 @@ public:
const SfxItemSet& rCoreSet,
bool bEnableDrawingLayerFillStyles) = 0;
virtual VclPtr<AbstractSvxTransformTabDialog> CreateSvxTransformTabDialog( vcl::Window* pParent,
const SfxItemSet* pAttr,
const SdrView* pView,
SvxAnchorIds nAnchorTypes = SvxAnchorIds::NONE) = 0;
virtual VclPtr<SfxAbstractTabDialog> CreateSchTransformTabDialog( vcl::Window* pParent,
const SfxItemSet* pAttr,
const SdrView* pSdrView,
bool bSizeTabPage
)=0;
virtual VclPtr<AbstractSvxTransformTabDialog> CreateSvxTransformTabDialog(weld::Window* pParent,
const SfxItemSet* pAttr,
const SdrView* pView,
SvxAnchorIds nAnchorTypes = SvxAnchorIds::NONE) = 0;
virtual VclPtr<SfxAbstractTabDialog> CreateSchTransformTabDialog(weld::Window* pParent,
const SfxItemSet* pAttr,
const SdrView* pSdrView,
bool bSizeTabPage) = 0;
virtual VclPtr<AbstractSvxJSearchOptionsDialog> CreateSvxJSearchOptionsDialog( vcl::Window* pParent,
const SfxItemSet& rOptionsSet,
TransliterationFlags nInitialFlags )=0;
diff --git a/sc/source/ui/drawfunc/drawsh.cxx b/sc/source/ui/drawfunc/drawsh.cxx
index ab1b08a..62dea38 100644
--- a/sc/source/ui/drawfunc/drawsh.cxx
+++ b/sc/source/ui/drawfunc/drawsh.cxx
@@ -285,7 +285,7 @@ void ScDrawShell::ExecDrawAttr( SfxRequest& rReq )
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
if(pFact)
{
ScopedVclPtr<SfxAbstractTabDialog> pDlg(pFact->CreateSvxTransformTabDialog( pWin, &aNewAttr,pView ));
ScopedVclPtr<SfxAbstractTabDialog> pDlg(pFact->CreateSvxTransformTabDialog(pWin ? pWin->GetFrameWeld() : nullptr, &aNewAttr, pView));
OSL_ENSURE(pDlg, "Dialog creation failed!");
if (pDlg->Execute() == RET_OK)
{
diff --git a/sd/source/ui/func/futransf.cxx b/sd/source/ui/func/futransf.cxx
index 00193fe..28babc1 100644
--- a/sd/source/ui/func/futransf.cxx
+++ b/sd/source/ui/func/futransf.cxx
@@ -81,6 +81,7 @@ void FuTransform::DoExecute( SfxRequest& rReq )
SfxItemSet aSet( mpView->GetGeoAttrFromMarked() );
VclPtr<SfxAbstractTabDialog> pDlg;
bool bWelded = false;
const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
if( rMarkList.GetMarkCount() == 1 &&
@@ -109,7 +110,8 @@ void FuTransform::DoExecute( SfxRequest& rReq )
if (!pFact)
return;
pDlg.reset(pFact->CreateSvxTransformTabDialog(mpViewShell->GetActiveWindow(), &aSet, mpView));
pDlg.reset(pFact->CreateSvxTransformTabDialog(mpViewShell->GetFrameWeld(), &aSet, mpView));
bWelded = true;
}
if (!pDlg)
@@ -128,6 +130,8 @@ void FuTransform::DoExecute( SfxRequest& rReq )
// deferred until the dialog ends
mpViewShell->Invalidate(SID_RULER_OBJECT);
mpViewShell->Cancel();
if (bWelded)
pDlg->disposeOnce();
});
}
diff --git a/sfx2/source/dialog/tabdlg.cxx b/sfx2/source/dialog/tabdlg.cxx
index 5ccfb37..78ba325 100644
--- a/sfx2/source/dialog/tabdlg.cxx
+++ b/sfx2/source/dialog/tabdlg.cxx
@@ -2038,6 +2038,13 @@ short SfxTabDialogController::execute()
return m_xDialog->run();
}
bool SfxTabDialogController::runAsync(const std::shared_ptr<SfxTabDialogController>& rController,
const std::function<void(sal_Int32)>& rFunc)
{
rController->Start_Impl();
return weld::DialogController::runAsync(rController, rFunc);
}
void SfxTabDialogController::SetInputSet( const SfxItemSet* pInSet )
/* [Description]
diff --git a/svx/source/dialog/dialcontrol.cxx b/svx/source/dialog/dialcontrol.cxx
index e62fe13..bdde705 100644
--- a/svx/source/dialog/dialcontrol.cxx
+++ b/svx/source/dialog/dialcontrol.cxx
@@ -141,7 +141,7 @@ const Color& DialControlBmp::GetButtonFillColor( bool bMain ) const
void DialControlBmp::Init()
{
SetSettings(mrParent.GetSettings());
SetBackground();
SetBackground(GetBackgroundColor());
}
void DialControlBmp::SetSize( const Size& rSize )
@@ -567,8 +567,6 @@ void SvxDialControl::Resize()
void SvxDialControl::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle&)
{
Point aPos;
rRenderContext.SetBackground();
rRenderContext.Erase();
rRenderContext.DrawBitmapEx(aPos, mpImpl->mxBmpBuffered->GetBitmapEx(aPos, mpImpl->maWinSize));
}
diff --git a/sw/source/uibase/shells/drwbassh.cxx b/sw/source/uibase/shells/drwbassh.cxx
index 0aef51b..ca3cd38 100644
--- a/sw/source/uibase/shells/drwbassh.cxx
+++ b/sw/source/uibase/shells/drwbassh.cxx
@@ -199,7 +199,7 @@ void SwDrawBaseShell::Execute(SfxRequest const &rReq)
{
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
VclPtr<AbstractSvxTransformTabDialog> pTransform =
pFact->CreateSvxTransformTabDialog( nullptr, nullptr, pSdrView, nAllowedAnchors );
pFact->CreateSvxTransformTabDialog(rReq.GetFrameWeld(), nullptr, pSdrView, nAllowedAnchors);
pDlg.disposeAndReset(pTransform);
pTransform->SetValidateFramePosLink( LINK(this, SwDrawBaseShell, ValidatePosition) );
}