summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chart2/source/controller/dialogs/dlg_CreationWizard_UNO.cxx57
-rw-r--r--chart2/source/controller/inc/dlg_CreationWizard_UNO.hxx18
-rw-r--r--sc/source/ui/drawfunc/fuins2.cxx132
-rw-r--r--sc/source/ui/inc/fuinsert.hxx14
-rw-r--r--sc/source/ui/inc/tabvwsh.hxx3
-rw-r--r--sc/source/ui/view/tabvwsh4.cxx1
-rw-r--r--sc/source/ui/view/tabvwshb.cxx2
-rw-r--r--sw/source/uibase/inc/chartins.hxx8
-rw-r--r--sw/source/uibase/inc/textsh.hxx3
-rw-r--r--sw/source/uibase/shells/textsh.cxx23
-rw-r--r--sw/source/uibase/table/chartins.cxx32
-rw-r--r--vcl/source/control/wizardmachine.cxx3
12 files changed, 109 insertions, 187 deletions
diff --git a/chart2/source/controller/dialogs/dlg_CreationWizard_UNO.cxx b/chart2/source/controller/dialogs/dlg_CreationWizard_UNO.cxx
index 4d959b335252..7735c1757e1f 100644
--- a/chart2/source/controller/dialogs/dlg_CreationWizard_UNO.cxx
+++ b/chart2/source/controller/dialogs/dlg_CreationWizard_UNO.cxx
@@ -29,8 +29,6 @@
#include <com/sun/star/frame/Desktop.hpp>
#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
#include <tools/diagnose_ex.h>
-#include <comphelper/lok.hxx>
-#include <sfx2/viewsh.hxx>
namespace chart
{
@@ -49,7 +47,6 @@ CreationWizardUnoDlg::CreationWizardUnoDlg(const uno::Reference<uno::XComponentC
CreationWizardUnoDlg::~CreationWizardUnoDlg()
{
SolarMutexGuard aSolarGuard;
- m_xDlgClosedListener.clear();
m_xDialog.reset();
}
@@ -84,9 +81,9 @@ void SAL_CALL CreationWizardUnoDlg::release() throw ()
}
uno::Any SAL_CALL CreationWizardUnoDlg::queryAggregation( uno::Type const & rType )
{
- if (rType == cppu::UnoType<ui::dialogs::XAsynchronousExecutableDialog>::get())
+ if (rType == cppu::UnoType<ui::dialogs::XExecutableDialog>::get())
{
- void * p = static_cast< ui::dialogs::XAsynchronousExecutableDialog * >( this );
+ void * p = static_cast< ui::dialogs::XExecutableDialog * >( this );
return uno::Any( &p, rType );
}
else if (rType == cppu::UnoType<lang::XServiceInfo>::get())
@@ -121,8 +118,9 @@ uno::Sequence< uno::Type > CreationWizardUnoDlg::getTypes()
cppu::UnoType<lang::XServiceInfo>::get(),
cppu::UnoType<lang::XInitialization>::get(),
cppu::UnoType<frame::XTerminateListener>::get(),
- cppu::UnoType<ui::dialogs::XAsynchronousExecutableDialog>::get(),
+ cppu::UnoType<ui::dialogs::XExecutableDialog>::get(),
cppu::UnoType<beans::XPropertySet>::get() };
+
return aTypeList;
}
@@ -147,7 +145,7 @@ void SAL_CALL CreationWizardUnoDlg::disposing( const lang::EventObject& /*Source
//Listener should deregister himself and release all references to the closing object.
}
-void SAL_CALL CreationWizardUnoDlg::setDialogTitle( const OUString& /*rTitle*/ )
+void SAL_CALL CreationWizardUnoDlg::setTitle( const OUString& /*rTitle*/ )
{
}
void CreationWizardUnoDlg::createDialogOnDemand()
@@ -170,42 +168,25 @@ void CreationWizardUnoDlg::createDialogOnDemand()
uno::Reference< XComponent > xKeepAlive( this );
if( m_xChartModel.is() )
{
- m_xDialog = std::make_shared<CreationWizard>(Application::GetFrameWeld(m_xParentWindow), m_xChartModel, m_xCC);
+ m_xDialog = std::make_unique<CreationWizard>(Application::GetFrameWeld(m_xParentWindow), m_xChartModel, m_xCC);
}
}
}
-IMPL_STATIC_LINK_NOARG(CreationWizardUnoDlg, InstallLOKNotifierHdl, void*, vcl::ILibreOfficeKitNotifier*)
-{
- return SfxViewShell::Current();
-}
-
-void SAL_CALL CreationWizardUnoDlg::startExecuteModal( const css::uno::Reference<css::ui::dialogs::XDialogClosedListener>& xListener )
+sal_Int16 SAL_CALL CreationWizardUnoDlg::execute( )
{
- SolarMutexGuard aSolarGuard;
- m_xDlgClosedListener = xListener;
- createDialogOnDemand();
-
- if( !m_xDialog )
- return;
-
- m_xDialog->getDialog()->SetInstallLOKNotifierHdl(
- LINK(this, CreationWizardUnoDlg, InstallLOKNotifierHdl));
-
- TimerTriggeredControllerLock aTimerTriggeredControllerLock( m_xChartModel );
- if( m_bUnlockControllersOnExecute && m_xChartModel.is() )
- m_xChartModel->unlockControllers();
-
- rtl::Reference<CreationWizardUnoDlg> xThat(this);
- weld::DialogController::runAsync(m_xDialog, [xThat](sal_Int32 nResult){
- if( xThat->m_xDlgClosedListener.is() )
- {
- // Notify UNO listener to perform correct action depending on the result
- css::ui::dialogs::DialogClosedEvent aEvent( *xThat, nResult );
- xThat->m_xDlgClosedListener->dialogClosed( aEvent );
- xThat->m_xDlgClosedListener.clear();
- }
- });
+ sal_Int16 nRet = ui::dialogs::ExecutableDialogResults::CANCEL;
+ {
+ SolarMutexGuard aSolarGuard;
+ createDialogOnDemand();
+ if (!m_xDialog)
+ return nRet;
+ TimerTriggeredControllerLock aTimerTriggeredControllerLock( m_xChartModel );
+ if( m_bUnlockControllersOnExecute && m_xChartModel.is() )
+ m_xChartModel->unlockControllers();
+ nRet = m_xDialog->run();
+ }
+ return nRet;
}
void SAL_CALL CreationWizardUnoDlg::initialize( const uno::Sequence< uno::Any >& aArguments )
diff --git a/chart2/source/controller/inc/dlg_CreationWizard_UNO.hxx b/chart2/source/controller/inc/dlg_CreationWizard_UNO.hxx
index a7e67519d678..c3ebb615db32 100644
--- a/chart2/source/controller/inc/dlg_CreationWizard_UNO.hxx
+++ b/chart2/source/controller/inc/dlg_CreationWizard_UNO.hxx
@@ -26,13 +26,9 @@
#include <com/sun/star/frame/XTerminateListener.hpp>
#include <com/sun/star/lang/XInitialization.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include <com/sun/star/ui/dialogs/XAsynchronousExecutableDialog.hpp>
+#include <com/sun/star/ui/dialogs/XExecutableDialog.hpp>
#include "dlg_CreationWizard.hxx"
-#include <tools/link.hxx>
-#include <vcl/vclptr.hxx>
-#include <vcl/vclevent.hxx>
namespace com { namespace sun { namespace star { namespace awt { class XWindow; } } } }
namespace com { namespace sun { namespace star { namespace frame { class XModel; } } } }
@@ -45,7 +41,7 @@ namespace chart
class CreationWizardUnoDlg : public MutexContainer
, public ::cppu::OComponentHelper
- , public css::ui::dialogs::XAsynchronousExecutableDialog
+ , public css::ui::dialogs::XExecutableDialog
, public css::lang::XServiceInfo
, public css::lang::XInitialization
, public css::frame::XTerminateListener
@@ -72,9 +68,9 @@ public:
virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
- // XAsynchronousExecutableDialog
- virtual void SAL_CALL setDialogTitle( const OUString& aTitle ) override;
- virtual void SAL_CALL startExecuteModal( const css::uno::Reference<css::ui::dialogs::XDialogClosedListener>& xListener ) override;
+ // XExecutableDialog
+ virtual void SAL_CALL setTitle( const OUString& aTitle ) override;
+ virtual sal_Int16 SAL_CALL execute( ) override;
// XInitialization
virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& aArguments ) override;
@@ -101,15 +97,13 @@ protected:
private:
void createDialogOnDemand();
- DECL_STATIC_LINK(CreationWizardUnoDlg, InstallLOKNotifierHdl, void*, vcl::ILibreOfficeKitNotifier*);
private:
css::uno::Reference< css::frame::XModel > m_xChartModel;
css::uno::Reference< css::uno::XComponentContext> m_xCC;
css::uno::Reference< css::awt::XWindow > m_xParentWindow;
- css::uno::Reference< css::ui::dialogs::XDialogClosedListener > m_xDlgClosedListener;
- std::shared_ptr<CreationWizard> m_xDialog;
+ std::unique_ptr<CreationWizard> m_xDialog;
bool m_bUnlockControllersOnExecute;
};
diff --git a/sc/source/ui/drawfunc/fuins2.cxx b/sc/source/ui/drawfunc/fuins2.cxx
index d926a1eb7258..80753e59c3cd 100644
--- a/sc/source/ui/drawfunc/fuins2.cxx
+++ b/sc/source/ui/drawfunc/fuins2.cxx
@@ -53,12 +53,10 @@
#include <com/sun/star/chart2/XChartDocument.hpp>
#include <com/sun/star/ui/dialogs/XExecutableDialog.hpp>
#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
-#include <com/sun/star/ui/dialogs/XDialogClosedListener.hpp>
#include <com/sun/star/lang/XInitialization.hpp>
#include <com/sun/star/frame/XModel.hpp>
#include <com/sun/star/chart/ChartDataRowSource.hpp>
#include <cppuhelper/bootstrap.hxx>
-#include <svtools/dialogclosedlistener.hxx>
#include <PivotTableDataProvider.hxx>
#include <chart2uno.hxx>
@@ -400,58 +398,8 @@ FuInsertOLE::FuInsertOLE(ScTabViewShell& rViewSh, vcl::Window* pWin, ScDrawView*
rReq.Ignore();
}
-IMPL_LINK( FuInsertChart, DialogClosedHdl, css::ui::dialogs::DialogClosedEvent*, pEvent, void )
-{
- bool bAddUndo = true;
-
- if( pEvent->DialogResult == ui::dialogs::ExecutableDialogResults::CANCEL )
- {
- // leave OLE inplace mode and unmark
- OSL_ASSERT( pView );
- rViewShell.DeactivateOle();
- pView->UnMarkAll();
-
- // old page view pointer is invalid after switching sheets
- SdrPageView* pPV = pView->GetSdrPageView();
-
- // remove the chart
- OSL_ASSERT( pPV );
- SdrPage * pPage( pPV->GetPage());
- OSL_ASSERT( pPage );
- OSL_ASSERT( m_pInsertedObject );
- if( pPage )
- {
- // Remove the OLE2 object from the sdr page.
- SdrObject* pRemoved = pPage->RemoveObject( m_pInsertedObject->GetOrdNum() );
- OSL_ASSERT( pRemoved == m_pInsertedObject );
- SdrObject::Free( pRemoved );
- }
-
- bAddUndo = false;
-
- // leave the draw shell
- rViewShell.SetDrawShell( false );
-
- // reset marked cell area
- ScMarkData aMark = rViewShell.GetViewData().GetMarkData();
- rViewShell.GetViewData().GetViewShell()->SetMarkData(aMark);
- }
- else
- {
- OSL_ASSERT( pEvent->DialogResult == ui::dialogs::ExecutableDialogResults::OK );
- //@todo maybe move chart to different table
- }
-
- if ( bAddUndo )
- {
- // add undo action the same way as in SdrEditView::InsertObjectAtView
- // (using UndoActionHdl etc.)
- pView->AddUndo(std::make_unique<SdrUndoNewObj>(*m_pInsertedObject));
- }
-}
-
FuInsertChart::FuInsertChart(ScTabViewShell& rViewSh, vcl::Window* pWin, ScDrawView* pViewP,
- SdrModel* pDoc, SfxRequest& rReq)
+ SdrModel* pDoc, SfxRequest& rReq)
: FuPoor(rViewSh, pWin, pViewP, pDoc, rReq)
{
const SfxItemSet* pReqArgs = rReq.GetArgs();
@@ -635,7 +583,7 @@ FuInsertChart::FuInsertChart(ScTabViewShell& rViewSh, vcl::Window* pWin, ScDrawV
Point aStart = rViewSh.GetChartInsertPos( aSize, aPositionRange );
tools::Rectangle aRect (aStart, aSize);
- m_pInsertedObject = new SdrOle2Obj(
+ SdrOle2Obj* pObj = new SdrOle2Obj(
*pDoc, // TTTT should be reference
svt::EmbeddedObjectRef(xObj, nAspect),
aName,
@@ -649,10 +597,11 @@ FuInsertChart::FuInsertChart(ScTabViewShell& rViewSh, vcl::Window* pWin, ScDrawV
// pView->InsertObjectAtView(pObj, *pPV);//this call leads to an immediate redraw and asks the chart for a visual representation
// use the page instead of the view to insert, so no undo action is created yet
- SdrPage* m_pPage = pPV->GetPage();
- m_pPage->InsertObject( m_pInsertedObject );
+ SdrPage* pInsPage = pPV->GetPage();
+ pInsPage->InsertObject( pObj );
pView->UnmarkAllObj();
- pView->MarkObj( m_pInsertedObject, pPV );
+ pView->MarkObj( pObj, pPV );
+ bool bAddUndo = true; // add undo action later, unless the dialog is canceled
if (rReq.IsAPI())
{
@@ -665,7 +614,7 @@ FuInsertChart::FuInsertChart(ScTabViewShell& rViewSh, vcl::Window* pWin, ScDrawV
// only activate object if not called via API (e.g. macro)
if (!comphelper::LibreOfficeKit::isActive())
- rViewShell.ActivateObject(m_pInsertedObject, embed::EmbedVerbs::MS_OLEVERB_SHOW);
+ rViewShell.ActivateObject(pObj, embed::EmbedVerbs::MS_OLEVERB_SHOW);
//open wizard
//@todo get context from calc if that has one
@@ -676,11 +625,11 @@ FuInsertChart::FuInsertChart(ScTabViewShell& rViewSh, vcl::Window* pWin, ScDrawV
uno::Reference< lang::XMultiComponentFactory > xMCF( xContext->getServiceManager() );
if(xMCF.is())
{
- m_xDialog = uno::Reference< ui::dialogs::XAsynchronousExecutableDialog >(
+ uno::Reference< ui::dialogs::XExecutableDialog > xDialog(
xMCF->createInstanceWithContext(
"com.sun.star.comp.chart2.WizardDialog"
, xContext), uno::UNO_QUERY);
- uno::Reference< lang::XInitialization > xInit( m_xDialog, uno::UNO_QUERY );
+ uno::Reference< lang::XInitialization > xInit( xDialog, uno::UNO_QUERY );
if( xChartModel.is() && xInit.is() )
{
uno::Sequence<uno::Any> aSeq(comphelper::InitAnyPropertySequence(
@@ -691,7 +640,7 @@ FuInsertChart::FuInsertChart(ScTabViewShell& rViewSh, vcl::Window* pWin, ScDrawV
xInit->initialize( aSeq );
// try to set the dialog's position so it doesn't hide the chart
- uno::Reference < beans::XPropertySet > xDialogProps( m_xDialog, uno::UNO_QUERY );
+ uno::Reference < beans::XPropertySet > xDialogProps( xDialog, uno::UNO_QUERY );
if ( xDialogProps.is() )
{
try
@@ -721,21 +670,62 @@ FuInsertChart::FuInsertChart(ScTabViewShell& rViewSh, vcl::Window* pWin, ScDrawV
}
}
- ::svt::DialogClosedListener* pListener = new ::svt::DialogClosedListener();
- pListener->SetDialogClosedLink( LINK( this, FuInsertChart, DialogClosedHdl ) );
- css::uno::Reference<css::ui::dialogs::XDialogClosedListener> xListener( pListener );
+ sal_Int16 nDialogRet = xDialog->execute();
+ if( nDialogRet == ui::dialogs::ExecutableDialogResults::CANCEL )
+ {
+ // leave OLE inplace mode and unmark
+ OSL_ASSERT( pView );
+ rViewShell.DeactivateOle();
+ pView->UnmarkAll();
+
+ // old page view pointer is invalid after switching sheets
+ pPV = pView->GetSdrPageView();
+
+ // remove the chart
+ OSL_ASSERT( pPV );
+ SdrPage * pPage( pPV->GetPage());
+ OSL_ASSERT( pPage );
+ OSL_ASSERT( pObj );
+ if( pPage )
+ {
+ // Remove the OLE2 object from the sdr page.
+ SdrObject* pRemoved = pPage->RemoveObject(pObj->GetOrdNum());
+ OSL_ASSERT(pRemoved == pObj);
+ SdrObject::Free(pRemoved); // Don't forget to free it.
+ }
- m_xDialog->startExecuteModal( xListener );
- }
- else
- {
- uno::Reference< lang::XComponent > xComponent( m_xDialog, uno::UNO_QUERY );
- if( xComponent.is())
- xComponent->dispose();
+ bAddUndo = false; // don't create the undo action for inserting
+
+ // leave the draw shell
+ rViewShell.SetDrawShell( false );
+
+ // reset marked cell area
+
+ rViewSh.GetViewData().GetViewShell()->SetMarkData(aMark);
+ }
+ else
+ {
+ OSL_ASSERT( nDialogRet == ui::dialogs::ExecutableDialogResults::OK );
+ //@todo maybe move chart to different table
+ }
}
+ uno::Reference< lang::XComponent > xComponent( xDialog, uno::UNO_QUERY );
+ if( xComponent.is())
+ xComponent->dispose();
}
}
}
+ else if( xChartModel.is() )
+ xChartModel->unlockControllers();
+
+ if ( bAddUndo )
+ {
+ // add undo action the same way as in SdrEditView::InsertObjectAtView
+ // (using UndoActionHdl etc.)
+ pView->AddUndo(std::make_unique<SdrUndoNewObj>(*pObj));
+ }
+
+ // BM/IHA --
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/inc/fuinsert.hxx b/sc/source/ui/inc/fuinsert.hxx
index cfad23933836..863aa6d88cb1 100644
--- a/sc/source/ui/inc/fuinsert.hxx
+++ b/sc/source/ui/inc/fuinsert.hxx
@@ -22,9 +22,6 @@
#include "fupoor.hxx"
#include <scdllapi.h>
-#include <svx/svdoole2.hxx>
-#include <com/sun/star/ui/dialogs/DialogClosedEvent.hpp>
-#include <com/sun/star/ui/dialogs/XAsynchronousExecutableDialog.hpp>
class FuInsertGraphic : public FuPoor
{
@@ -43,14 +40,9 @@ public:
class FuInsertChart : public FuPoor
{
- css::uno::Reference<css::ui::dialogs::XAsynchronousExecutableDialog> m_xDialog;
- SdrOle2Obj* m_pInsertedObject;
-
- DECL_LINK( DialogClosedHdl, css::ui::dialogs::DialogClosedEvent*, void );
-
- public:
- FuInsertChart( ScTabViewShell& pViewSh, vcl::Window* pWin, ScDrawView* pView,
- SdrModel* pDoc, SfxRequest& rReq);
+public:
+ FuInsertChart(ScTabViewShell& rViewSh, vcl::Window* pWin, ScDrawView* pView,
+ SdrModel* pDoc, SfxRequest& rReq);
};
class FuInsertMedia : public FuPoor
diff --git a/sc/source/ui/inc/tabvwsh.hxx b/sc/source/ui/inc/tabvwsh.hxx
index df33dac2c00e..210cf689d2c1 100644
--- a/sc/source/ui/inc/tabvwsh.hxx
+++ b/sc/source/ui/inc/tabvwsh.hxx
@@ -59,7 +59,6 @@ class ScPageBreakShell;
class ScDPObject;
class ScNavigatorSettings;
class ScRangeName;
-class FuInsertChart;
struct ScHeaderFieldData;
@@ -98,7 +97,6 @@ private:
sal_uInt16 nDrawSfxId;
sal_uInt16 nFormSfxId;
OUString sDrawCustom; // current custom shape type
-
std::unique_ptr<ScDrawShell> pDrawShell;
std::unique_ptr<ScDrawTextObjectBar> pDrawTextShell;
std::unique_ptr<ScEditShell> pEditShell;
@@ -113,7 +111,6 @@ private:
std::unique_ptr<ScPageBreakShell> pPageBreakShell;
std::unique_ptr<svx::ExtrusionBar> pExtrusionBarShell;
std::unique_ptr<svx::FontworkBar> pFontworkBarShell;
- std::unique_ptr<FuInsertChart> pFuInsertChart;
std::unique_ptr<FmFormShell> pFormShell;
diff --git a/sc/source/ui/view/tabvwsh4.cxx b/sc/source/ui/view/tabvwsh4.cxx
index e190b3fdb684..f4f61330b4fb 100644
--- a/sc/source/ui/view/tabvwsh4.cxx
+++ b/sc/source/ui/view/tabvwsh4.cxx
@@ -56,7 +56,6 @@
#include <inputwin.hxx>
#include <dbdata.hxx>
#include <reffact.hxx>
-#include <fuinsert.hxx>
#include <viewuno.hxx>
#include <dispuno.hxx>
#include <chgtrack.hxx>
diff --git a/sc/source/ui/view/tabvwshb.cxx b/sc/source/ui/view/tabvwshb.cxx
index 6b4f3b4a8045..545fce092934 100644
--- a/sc/source/ui/view/tabvwshb.cxx
+++ b/sc/source/ui/view/tabvwshb.cxx
@@ -333,7 +333,7 @@ void ScTabViewShell::ExecDrawIns(SfxRequest& rReq)
break;
case SID_INSERT_DIAGRAM:
- pFuInsertChart.reset(new FuInsertChart(*this, pWin, pView, pDrModel, rReq));
+ FuInsertChart(*this, pWin, pView, pDrModel, rReq);
break;
case SID_INSERT_OBJECT:
diff --git a/sw/source/uibase/inc/chartins.hxx b/sw/source/uibase/inc/chartins.hxx
index d258053ae985..383e0fda1a58 100644
--- a/sw/source/uibase/inc/chartins.hxx
+++ b/sw/source/uibase/inc/chartins.hxx
@@ -20,17 +20,11 @@
#define INCLUDED_SW_SOURCE_UIBASE_INC_CHARTINS_HXX
#include <tools/gen.hxx>
-#include <com/sun/star/ui/dialogs/DialogClosedEvent.hpp>
namespace vcl { class Window; }
Point SwGetChartDialogPos( const vcl::Window *pParentWin, const Size& rDialogSize, const tools::Rectangle& rLogicChart );
-
-class SwInsertChart
-{
-public:
- SwInsertChart( const Link<css::ui::dialogs::DialogClosedEvent*,void>& rLink );
-};
+void SwInsertChart();
#endif // INCLUDED_SW_SOURCE_UIBASE_INC_CHARTINS_HXX
diff --git a/sw/source/uibase/inc/textsh.hxx b/sw/source/uibase/inc/textsh.hxx
index 849bffcf4f2b..9ec521afe647 100644
--- a/sw/source/uibase/inc/textsh.hxx
+++ b/sw/source/uibase/inc/textsh.hxx
@@ -22,13 +22,11 @@
#include "basesh.hxx"
#include <unotools/caserotate.hxx>
-#include <com/sun/star/ui/dialogs/DialogClosedEvent.hpp>
class AbstractSvxPostItDialog;
class SwFieldMgr;
class SwFlyFrameAttrMgr;
class SvxHyperlinkItem;
-class SwInsertChart;
class SW_DLLPUBLIC SwTextShell: public SwBaseShell
{
@@ -48,7 +46,6 @@ private:
public:
DECL_LINK( RedlineNextHdl, AbstractSvxPostItDialog&, void );
DECL_LINK( RedlinePrevHdl, AbstractSvxPostItDialog&, void );
- DECL_STATIC_LINK( SwTextShell, DialogClosedHdl, css::ui::dialogs::DialogClosedEvent*, void );
void Execute(SfxRequest &);
void GetState(SfxItemSet &);
diff --git a/sw/source/uibase/shells/textsh.cxx b/sw/source/uibase/shells/textsh.cxx
index c16dcf1a7cfc..ef1341d078bc 100644
--- a/sw/source/uibase/shells/textsh.cxx
+++ b/sw/source/uibase/shells/textsh.cxx
@@ -87,30 +87,9 @@ using namespace ::com::sun::star;
#include <drawdoc.hxx>
#include <svtools/embedhlp.hxx>
#include <sfx2/event.hxx>
-#include <com/sun/star/ui/dialogs/DialogClosedEvent.hpp>
-#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
-#include <IDocumentUndoRedo.hxx>
SFX_IMPL_INTERFACE(SwTextShell, SwBaseShell)
-IMPL_STATIC_LINK( SwTextShell, DialogClosedHdl, css::ui::dialogs::DialogClosedEvent*, pEvent, void )
-{
- SwView* pView = ::GetActiveView();
- SwWrtShell& rWrtShell = pView->GetWrtShell();
-
- sal_Int16 nDialogRet = pEvent->DialogResult;
- if( nDialogRet == ui::dialogs::ExecutableDialogResults::CANCEL )
- {
- rWrtShell.Undo();
- rWrtShell.GetIDocumentUndoRedo().ClearRedo();
- }
- else
- {
- OSL_ENSURE( nDialogRet == ui::dialogs::ExecutableDialogResults::OK,
- "dialog execution failed" );
- }
-}
-
void SwTextShell::InitInterface_Impl()
{
GetStaticInterface()->RegisterPopupMenu("text");
@@ -324,7 +303,7 @@ void SwTextShell::ExecInsert(SfxRequest &rReq)
break;
if(!rReq.IsAPI())
{
- SwInsertChart( LINK( this, SwTextShell, DialogClosedHdl ) );
+ SwInsertChart();
}
else
{
diff --git a/sw/source/uibase/table/chartins.cxx b/sw/source/uibase/table/chartins.cxx
index 51289c19e983..b9e5f1e5103b 100644
--- a/sw/source/uibase/table/chartins.cxx
+++ b/sw/source/uibase/table/chartins.cxx
@@ -41,12 +41,11 @@
#include <com/sun/star/awt/Point.hpp>
#include <com/sun/star/awt/Size.hpp>
#include <com/sun/star/awt/XWindow.hpp>
-#include <svtools/dialogclosedlistener.hxx>
#include <com/sun/star/chart2/data/XDataProvider.hpp>
#include <com/sun/star/frame/XModel.hpp>
#include <com/sun/star/lang/XInitialization.hpp>
#include <com/sun/star/lang/XMultiComponentFactory.hpp>
-#include <com/sun/star/ui/dialogs/XAsynchronousExecutableDialog.hpp>
+#include <com/sun/star/ui/dialogs/XExecutableDialog.hpp>
#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
using namespace ::com::sun::star;
@@ -123,7 +122,7 @@ Point SwGetChartDialogPos( const vcl::Window *pParentWin, const Size& rDialogSiz
return aRet;
}
-SwInsertChart::SwInsertChart( const Link<css::ui::dialogs::DialogClosedEvent*, void>& rLink )
+void SwInsertChart()
{
SwView *pView = ::GetActiveView();
@@ -163,7 +162,7 @@ SwInsertChart::SwInsertChart( const Link<css::ui::dialogs::DialogClosedEvent*, v
uno::Reference< lang::XMultiComponentFactory > xMCF( xContext->getServiceManager() );
if(xMCF.is())
{
- uno::Reference< ui::dialogs::XAsynchronousExecutableDialog > xDialog(
+ uno::Reference< ui::dialogs::XExecutableDialog > xDialog(
xMCF->createInstanceWithContext(
"com.sun.star.comp.chart2.WizardDialog", xContext),
uno::UNO_QUERY);
@@ -209,18 +208,21 @@ SwInsertChart::SwInsertChart( const Link<css::ui::dialogs::DialogClosedEvent*, v
}
}
- ::svt::DialogClosedListener* pListener = new ::svt::DialogClosedListener();
- pListener->SetDialogClosedLink( rLink );
- css::uno::Reference<css::ui::dialogs::XDialogClosedListener> xListener( pListener );
-
- xDialog->startExecuteModal( xListener );
- }
- else
- {
- uno::Reference< lang::XComponent > xComponent( xDialog, uno::UNO_QUERY );
- if( xComponent.is())
- xComponent->dispose();
+ sal_Int16 nDialogRet = xDialog->execute();
+ if( nDialogRet == ui::dialogs::ExecutableDialogResults::CANCEL )
+ {
+ rWrtShell.Undo();
+ rWrtShell.GetIDocumentUndoRedo().ClearRedo();
+ }
+ else
+ {
+ OSL_ENSURE( nDialogRet == ui::dialogs::ExecutableDialogResults::OK,
+ "dialog execution failed" );
+ }
}
+ uno::Reference< lang::XComponent > xComponent( xDialog, uno::UNO_QUERY );
+ if( xComponent.is())
+ xComponent->dispose();
}
}
}
diff --git a/vcl/source/control/wizardmachine.cxx b/vcl/source/control/wizardmachine.cxx
index 2e5d48458d1c..c9e323620332 100644
--- a/vcl/source/control/wizardmachine.cxx
+++ b/vcl/source/control/wizardmachine.cxx
@@ -1387,9 +1387,6 @@ namespace vcl
void WizardMachine::resumeTraveling( AccessGuard )
{
- if (!m_pImpl)
- return;
-
DBG_ASSERT( m_pImpl->m_bTravelingSuspended, "WizardMachine::resumeTraveling: nothing to resume!" );
m_pImpl->m_bTravelingSuspended = false;
}