summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2019-08-22 11:15:57 +0100
committerCaolán McNamara <caolanm@redhat.com>2019-08-22 18:26:41 +0200
commitd661cb17610af93b1607025284f23187c6d2fc06 (patch)
tree855cf44dd6d3cb6232b0aaa2087da770350d202a
parent38001018fa06f721cf87edae923b54ce9a5ab5a7 (diff)
weld chart CreationWizard
Change-Id: I7ee88c1e1b0eca5c2510a4bbba8b60c0d8a4e3e8 Reviewed-on: https://gerrit.libreoffice.org/77954 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--chart2/source/controller/dialogs/dlg_CreationWizard.cxx51
-rw-r--r--chart2/source/controller/dialogs/dlg_CreationWizard_UNO.cxx69
-rw-r--r--chart2/source/controller/dialogs/dlg_DataSource.cxx4
-rw-r--r--chart2/source/controller/dialogs/tp_DataSource.cxx24
-rw-r--r--chart2/source/controller/dialogs/tp_DataSource.hxx3
-rw-r--r--chart2/source/controller/dialogs/tp_RangeChooser.cxx24
-rw-r--r--chart2/source/controller/dialogs/tp_RangeChooser.hxx4
-rw-r--r--chart2/source/controller/inc/dlg_CreationWizard.hxx6
-rw-r--r--chart2/source/controller/inc/dlg_CreationWizard_UNO.hxx4
-rw-r--r--chart2/uiconfig/ui/tp_RangeChooser.ui1
-rw-r--r--chart2/uiconfig/ui/wizelementspage.ui4
-rw-r--r--dbaccess/UIConfig_dbaccess.mk1
-rw-r--r--dbaccess/source/ui/dlg/dbwizsetup.cxx9
-rw-r--r--dbaccess/source/ui/inc/dbwizsetup.hxx1
-rw-r--r--dbaccess/source/ui/uno/DBTypeWizDlgSetup.cxx5
-rw-r--r--include/vcl/roadmapwizard.hxx2
-rw-r--r--include/vcl/weld.hxx2
-rw-r--r--vcl/UIConfig_vcl.mk1
-rw-r--r--vcl/source/app/salvtables.cxx5
-rw-r--r--vcl/source/control/roadmapwizard.cxx6
-rw-r--r--vcl/source/control/wizardmachine.cxx4
-rw-r--r--vcl/uiconfig/ui/wizard.ui (renamed from dbaccess/uiconfig/ui/databasewizard.ui)5
-rw-r--r--vcl/unx/gtk3/gtk3gtkinst.cxx17
23 files changed, 112 insertions, 140 deletions
diff --git a/chart2/source/controller/dialogs/dlg_CreationWizard.cxx b/chart2/source/controller/dialogs/dlg_CreationWizard.cxx
index db54937be38c..58a744980556 100644
--- a/chart2/source/controller/dialogs/dlg_CreationWizard.cxx
+++ b/chart2/source/controller/dialogs/dlg_CreationWizard.cxx
@@ -22,6 +22,7 @@
#include <strings.hrc>
#include <helpids.h>
#include <ChartModel.hxx>
+#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
#include "tp_ChartType.hxx"
#include "tp_RangeChooser.hxx"
@@ -30,9 +31,6 @@
#include "ChartTypeTemplateProvider.hxx"
#include "DialogModel.hxx"
-#define CHART_WIZARD_PAGEWIDTH 250
-#define CHART_WIZARD_PAGEHEIGHT 170
-
using namespace css;
namespace chart
@@ -45,14 +43,14 @@ namespace chart
#define STATE_OBJECTS 3
#define STATE_LAST STATE_OBJECTS
-CreationWizard::CreationWizard(vcl::Window* pParent, const uno::Reference<frame::XModel>& xChartModel,
+CreationWizard::CreationWizard(weld::Window* pParent, const uno::Reference<frame::XModel>& xChartModel,
const uno::Reference<uno::XComponentContext>& xContext)
- : vcl::RoadmapWizard(pParent)
- , m_xChartModel(xChartModel,uno::UNO_QUERY)
- , m_xComponentContext(xContext)
- , m_pTemplateProvider(nullptr)
- , m_aTimerTriggeredControllerLock(xChartModel)
- , m_bCanTravel(true)
+ : vcl::RoadmapWizardMachine(pParent)
+ , m_xChartModel(xChartModel,uno::UNO_QUERY)
+ , m_xComponentContext(xContext)
+ , m_pTemplateProvider(nullptr)
+ , m_aTimerTriggeredControllerLock(xChartModel)
+ , m_bCanTravel(true)
{
m_pDialogModel.reset(new DialogModel(m_xChartModel, m_xComponentContext));
defaultButton(WizardButtonFlags::FINISH);
@@ -69,12 +67,6 @@ CreationWizard::CreationWizard(vcl::Window* pParent, const uno::Reference<frame:
declarePath(PATH_FULL, aPath);
SetRoadmapHelpId(HID_SCH_WIZARD_ROADMAP);
- SetRoadmapInteractive(true);
-
- Size aAdditionalRoadmapSize(LogicToPixel(Size(85, 0), MapMode(MapUnit::MapAppFont)));
- Size aSize(LogicToPixel(Size(CHART_WIZARD_PAGEWIDTH, CHART_WIZARD_PAGEHEIGHT), MapMode(MapUnit::MapAppFont)));
- aSize.AdjustWidth(aAdditionalRoadmapSize.Width() );
- SetSizePixel(aSize);
if (!m_pDialogModel->getModel().isDataFromSpreadsheet())
{
@@ -84,6 +76,16 @@ CreationWizard::CreationWizard(vcl::Window* pParent, const uno::Reference<frame:
// Call ActivatePage, to create and activate the first page
ActivatePage();
+
+ m_xAssistant->set_current_page(0);
+}
+
+short CreationWizard::run()
+{
+ int nRet = vcl::RoadmapWizardMachine::run();
+ if (nRet == static_cast<int>(WizardButtonFlags::FINISH))
+ return ui::dialogs::ExecutableDialogResults::OK;
+ return ui::dialogs::ExecutableDialogResults::CANCEL;
}
CreationWizard::~CreationWizard() = default;
@@ -91,12 +93,18 @@ CreationWizard::~CreationWizard() = default;
VclPtr<TabPage> CreationWizard::createPage(WizardState nState)
{
VclPtr<vcl::OWizardPage> pRet;
+
+ OString sIdent(OString::number(nState));
+ weld::Container* pPageContainer = m_xAssistant->append_page(sIdent);
+ // TODO eventually pass DialogController as distinct argument instead of bundling into TabPageParent
+ TabPageParent aParent(pPageContainer, this);
+
switch( nState )
{
case STATE_CHARTTYPE:
{
m_aTimerTriggeredControllerLock.startTimer();
- VclPtrInstance<ChartTypeTabPage> pChartTypeTabPage(this,m_xChartModel);
+ VclPtrInstance<ChartTypeTabPage> pChartTypeTabPage(aParent, m_xChartModel);
pRet = pChartTypeTabPage;
m_pTemplateProvider = pChartTypeTabPage;
if (m_pDialogModel)
@@ -106,18 +114,18 @@ VclPtr<TabPage> CreationWizard::createPage(WizardState nState)
case STATE_SIMPLE_RANGE:
{
m_aTimerTriggeredControllerLock.startTimer();
- pRet = VclPtr<RangeChooserTabPage>::Create(this, *m_pDialogModel, m_pTemplateProvider, this);
+ pRet = VclPtr<RangeChooserTabPage>::Create(aParent, *m_pDialogModel, m_pTemplateProvider, this);
}
break;
case STATE_DATA_SERIES:
{
m_aTimerTriggeredControllerLock.startTimer();
- pRet = VclPtr<DataSourceTabPage>::Create(this, *m_pDialogModel, m_pTemplateProvider, this);
+ pRet = VclPtr<DataSourceTabPage>::Create(aParent, *m_pDialogModel, m_pTemplateProvider, this);
}
break;
case STATE_OBJECTS:
{
- pRet = VclPtr<TitlesAndObjectsTabPage>::Create(this,m_xChartModel, m_xComponentContext);
+ pRet = VclPtr<TitlesAndObjectsTabPage>::Create(aParent, m_xChartModel, m_xComponentContext);
m_aTimerTriggeredControllerLock.startTimer();
}
break;
@@ -147,13 +155,14 @@ vcl::WizardTypes::WizardState CreationWizard::determineNextState( WizardState nC
++nNextState;
return (nNextState==STATE_LAST+1) ? WZS_INVALID_STATE : nNextState;
}
+
void CreationWizard::enterState(WizardState nState)
{
m_aTimerTriggeredControllerLock.startTimer();
enableButtons( WizardButtonFlags::PREVIOUS, nState > STATE_FIRST );
enableButtons( WizardButtonFlags::NEXT, nState < STATE_LAST );
if( isStateEnabled( nState ))
- vcl::RoadmapWizard::enterState(nState);
+ vcl::RoadmapWizardMachine::enterState(nState);
}
void CreationWizard::setInvalidPage( TabPage * /* pTabPage */ )
diff --git a/chart2/source/controller/dialogs/dlg_CreationWizard_UNO.cxx b/chart2/source/controller/dialogs/dlg_CreationWizard_UNO.cxx
index 9234a58bca78..ceca92791678 100644
--- a/chart2/source/controller/dialogs/dlg_CreationWizard_UNO.cxx
+++ b/chart2/source/controller/dialogs/dlg_CreationWizard_UNO.cxx
@@ -28,27 +28,29 @@
#include <com/sun/star/awt/Size.hpp>
#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/frame/Desktop.hpp>
+#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
#include <tools/diagnose_ex.h>
namespace chart
{
using namespace ::com::sun::star;
-CreationWizardUnoDlg::CreationWizardUnoDlg( const uno::Reference< uno::XComponentContext >& xContext )
- : OComponentHelper( m_aMutex )
- , m_xCC( xContext )
- , m_pDialog( nullptr )
- , m_bUnlockControllersOnExecute(false)
+CreationWizardUnoDlg::CreationWizardUnoDlg(const uno::Reference<uno::XComponentContext>& xContext)
+ : OComponentHelper(m_aMutex)
+ , m_xCC(xContext)
+ , m_bUnlockControllersOnExecute(false)
{
uno::Reference< frame::XDesktop2 > xDesktop = frame::Desktop::create(m_xCC);
uno::Reference< frame::XTerminateListener > xListener( this );
xDesktop->addTerminateListener( xListener );
}
+
CreationWizardUnoDlg::~CreationWizardUnoDlg()
{
SolarMutexGuard aSolarGuard;
- m_pDialog.disposeAndClear();
+ m_xDialog.reset();
}
+
// lang::XServiceInfo
OUString SAL_CALL CreationWizardUnoDlg::getImplementationName()
{
@@ -150,9 +152,8 @@ void SAL_CALL CreationWizardUnoDlg::setTitle( const OUString& /*rTitle*/ )
void CreationWizardUnoDlg::createDialogOnDemand()
{
SolarMutexGuard aSolarGuard;
- if( !m_pDialog )
+ if (!m_xDialog)
{
- vcl::Window* pParent = nullptr;
if( !m_xParentWindow.is() && m_xChartModel.is() )
{
uno::Reference< frame::XController > xController(
@@ -165,38 +166,26 @@ void CreationWizardUnoDlg::createDialogOnDemand()
m_xParentWindow = xFrame->getContainerWindow();
}
}
- if( m_xParentWindow.is() )
- {
- VCLXWindow* pImplementation = comphelper::getUnoTunnelImplementation<VCLXWindow>(m_xParentWindow);
- if (pImplementation)
- pParent = pImplementation->GetWindow().get();
- }
uno::Reference< XComponent > xComp( this );
if( m_xChartModel.is() )
{
- m_pDialog = VclPtr<CreationWizard>::Create( pParent, m_xChartModel, m_xCC );
- m_pDialog->AddEventListener( LINK( this, CreationWizardUnoDlg, DialogEventHdl ) );
+ m_xDialog = std::make_unique<CreationWizard>(Application::GetFrameWeld(m_xParentWindow), m_xChartModel, m_xCC);
}
}
}
-IMPL_LINK( CreationWizardUnoDlg, DialogEventHdl, VclWindowEvent&, rEvent, void )
-{
- if(rEvent.GetId() == VclEventId::ObjectDying)
- m_pDialog = nullptr;//avoid duplicate destruction of m_pDialog
-}
sal_Int16 SAL_CALL CreationWizardUnoDlg::execute( )
{
- sal_Int16 nRet = RET_CANCEL;
+ sal_Int16 nRet = ui::dialogs::ExecutableDialogResults::CANCEL;
{
SolarMutexGuard aSolarGuard;
createDialogOnDemand();
- if( !m_pDialog )
+ if (!m_xDialog)
return nRet;
TimerTriggeredControllerLock aTimerTriggeredControllerLock( m_xChartModel );
if( m_bUnlockControllersOnExecute && m_xChartModel.is() )
m_xChartModel->unlockControllers();
- nRet = m_pDialog->Execute();
+ nRet = m_xDialog->run();
}
return nRet;
}
@@ -228,7 +217,7 @@ void SAL_CALL CreationWizardUnoDlg::disposing()
m_xParentWindow.clear();
SolarMutexGuard aSolarGuard;
- m_pDialog.disposeAndClear();
+ m_xDialog.reset();
try
{
@@ -249,27 +238,15 @@ uno::Reference< beans::XPropertySetInfo > SAL_CALL CreationWizardUnoDlg::getProp
return nullptr;
}
-void SAL_CALL CreationWizardUnoDlg::setPropertyValue( const OUString& rPropertyName
- , const uno::Any& rValue )
+void SAL_CALL CreationWizardUnoDlg::setPropertyValue(const OUString& rPropertyName,
+ const uno::Any& rValue)
{
if( rPropertyName == "Position" )
{
- awt::Point aPos;
- if( ! (rValue >>= aPos) )
- throw lang::IllegalArgumentException( "Property 'Position' requires value of type awt::Point", nullptr, 0 );
-
- //set left upper outer corner relative to screen
- //pixels, screen position
SolarMutexGuard aSolarGuard;
createDialogOnDemand();
- if( m_pDialog )
- {
- m_pDialog->SetPosPixel( Point(0,0) );
- tools::Rectangle aRect( m_pDialog->GetWindowExtentsRelative( nullptr ) );
- Point aNewOuterPos( aPos.X - aRect.Left(), aPos.Y - aRect.Top() );
- m_pDialog->SetPosPixel( aNewOuterPos );
- }
+ //read only property, do nothing else
}
else if( rPropertyName == "Size")
{
@@ -293,10 +270,10 @@ uno::Any SAL_CALL CreationWizardUnoDlg::getPropertyValue( const OUString& rPrope
//pixels, screen position
SolarMutexGuard aSolarGuard;
createDialogOnDemand();
- if( m_pDialog )
+ if (m_xDialog)
{
- tools::Rectangle aRect( m_pDialog->GetWindowExtentsRelative( nullptr ) );
- awt::Point aPoint(aRect.Left(),aRect.Top());
+ Point aPos(m_xDialog->getDialog()->get_position());
+ awt::Point aPoint(aPos.X(), aPos.Y());
aRet <<= aPoint;
}
}
@@ -306,10 +283,10 @@ uno::Any SAL_CALL CreationWizardUnoDlg::getPropertyValue( const OUString& rPrope
//pixels, screen position
SolarMutexGuard aSolarGuard;
createDialogOnDemand();
- if( m_pDialog )
+ if (m_xDialog)
{
- tools::Rectangle aRect( m_pDialog->GetWindowExtentsRelative( nullptr ) );
- awt::Size aSize(aRect.GetWidth(),aRect.GetHeight());
+ Size aRect(m_xDialog->getDialog()->get_size());
+ awt::Size aSize(aRect.Width(), aRect.Height());
aRet <<= aSize;
}
}
diff --git a/chart2/source/controller/dialogs/dlg_DataSource.cxx b/chart2/source/controller/dialogs/dlg_DataSource.cxx
index 856420bcc245..4bd826466bff 100644
--- a/chart2/source/controller/dialogs/dlg_DataSource.cxx
+++ b/chart2/source/controller/dialogs/dlg_DataSource.cxx
@@ -92,10 +92,10 @@ DataSourceDialog::DataSourceDialog(weld::Window * pParent,
{
TabPageParent aRangeParent(m_xTabControl->get_page("range"), this);
m_pRangeChooserTabPage = VclPtr<RangeChooserTabPage>::Create(aRangeParent, *(m_apDialogModel.get()),
- m_apDocTemplateProvider.get(), nullptr, true /* bHideDescription */ );
+ m_apDocTemplateProvider.get(), true /* bHideDescription */ );
TabPageParent aSeriesParent(m_xTabControl->get_page("series"), this);
m_pDataSourceTabPage = VclPtr<DataSourceTabPage>::Create(aSeriesParent, *(m_apDialogModel.get()),
- m_apDocTemplateProvider.get(), nullptr, true /* bHideDescription */ );
+ m_apDocTemplateProvider.get(), true /* bHideDescription */ );
m_xTabControl->connect_enter_page(LINK(this, DataSourceDialog, ActivatePageHdl));
m_xTabControl->connect_leave_page(LINK(this, DataSourceDialog, DeactivatePageHdl));
ActivatePageHdl(m_xTabControl->get_current_page_ident());
diff --git a/chart2/source/controller/dialogs/tp_DataSource.cxx b/chart2/source/controller/dialogs/tp_DataSource.cxx
index 452b4f0b3603..e1ce453af530 100644
--- a/chart2/source/controller/dialogs/tp_DataSource.cxx
+++ b/chart2/source/controller/dialogs/tp_DataSource.cxx
@@ -110,15 +110,6 @@ OUString lcl_GetSequenceNameForLabel(const ::chart::SeriesEntry* pEntry)
return aResult;
}
-void lcl_enableRangeChoosing( bool bEnable, Dialog * pDialog )
-{
- if( pDialog )
- {
- pDialog->SetModalInputMode( !bEnable );
- pDialog->Show( !bEnable );
- }
-}
-
void lcl_enableRangeChoosing(bool bEnable, weld::DialogController* pDialog)
{
if (!pDialog)
@@ -169,17 +160,14 @@ namespace chart
DataSourceTabPage::DataSourceTabPage(TabPageParent pParent, DialogModel & rDialogModel,
ChartTypeTemplateProvider* pTemplateProvider,
- Dialog * pParentDialog,
bool bHideDescription /* = false */)
: ::vcl::OWizardPage(pParent, "modules/schart/ui/tp_DataSource.ui", "tp_DataSource")
, m_pTemplateProvider(pTemplateProvider)
, m_rDialogModel(rDialogModel)
, m_pCurrentRangeChoosingField( nullptr )
, m_bIsDirty( false )
- , m_pParentDialog( pParentDialog )
, m_pParentController(pParent.pController)
- , m_pTabPageNotifiable(pParentDialog ? dynamic_cast<TabPageNotifiable*>(pParentDialog)
- : dynamic_cast<TabPageNotifiable*>(m_pParentController))
+ , m_pTabPageNotifiable(dynamic_cast<TabPageNotifiable*>(m_pParentController))
, m_xFT_CAPTION(m_xBuilder->weld_label("FT_CAPTION_FOR_WIZARD"))
, m_xFT_SERIES(m_xBuilder->weld_label("FT_SERIES"))
, m_xLB_SERIES(m_xBuilder->weld_tree_view("LB_SERIES"))
@@ -247,13 +235,6 @@ void DataSourceTabPage::InsertRoleLBEntry(const OUString& rRole, const OUString&
DataSourceTabPage::~DataSourceTabPage()
{
- disposeOnce();
-}
-
-void DataSourceTabPage::dispose()
-{
- m_pParentDialog.clear();
- ::vcl::OWizardPage::dispose();
}
void DataSourceTabPage::ActivatePage()
@@ -548,7 +529,6 @@ IMPL_LINK_NOARG(DataSourceTabPage, MainRangeButtonClickedHdl, weld::Button&, voi
m_xLB_SERIES->get_text(nEntry));
}
- lcl_enableRangeChoosing( true, m_pParentDialog );
lcl_enableRangeChoosing( true, m_pParentController );
m_rDialogModel.getRangeSelectionHelper()->chooseRange( aSelectedRolesRange, aUIStr, *this );
}
@@ -565,7 +545,6 @@ IMPL_LINK_NOARG(DataSourceTabPage, CategoriesRangeButtonClickedHdl, weld::Button
return;
OUString aStr(SchResId(m_xFT_CATEGORIES->get_visible() ? STR_DATA_SELECT_RANGE_FOR_CATEGORIES : STR_DATA_SELECT_RANGE_FOR_DATALABELS));
- lcl_enableRangeChoosing(true, m_pParentDialog);
lcl_enableRangeChoosing(true, m_pParentController);
m_rDialogModel.getRangeSelectionHelper()->chooseRange(
m_rDialogModel.getCategoriesRange(), aStr, *this );
@@ -746,7 +725,6 @@ void DataSourceTabPage::listeningFinished(
m_pCurrentRangeChoosingField = nullptr;
updateControlState();
- lcl_enableRangeChoosing(false, m_pParentDialog);
lcl_enableRangeChoosing(false, m_pParentController);
}
diff --git a/chart2/source/controller/dialogs/tp_DataSource.hxx b/chart2/source/controller/dialogs/tp_DataSource.hxx
index 26698ce91821..5386ae1b4fba 100644
--- a/chart2/source/controller/dialogs/tp_DataSource.hxx
+++ b/chart2/source/controller/dialogs/tp_DataSource.hxx
@@ -54,7 +54,6 @@ public:
explicit DataSourceTabPage(TabPageParent pParent,
DialogModel & rDialogModel,
ChartTypeTemplateProvider* pTemplateProvider,
- Dialog * pParentDialog,
bool bHideDescription = false);
virtual ~DataSourceTabPage() override;
@@ -64,7 +63,6 @@ public:
private:
// OWizardPage
- virtual void dispose() override;
virtual bool commitPage( ::vcl::WizardTypes::CommitPageReason eReason ) override;
//TabPage
@@ -123,7 +121,6 @@ private:
weld::Entry* m_pCurrentRangeChoosingField;
bool m_bIsDirty;
- VclPtr<Dialog> m_pParentDialog;
weld::DialogController* m_pParentController;
TabPageNotifiable * m_pTabPageNotifiable;
diff --git a/chart2/source/controller/dialogs/tp_RangeChooser.cxx b/chart2/source/controller/dialogs/tp_RangeChooser.cxx
index 39bc4ebe4f78..e0f03383492b 100644
--- a/chart2/source/controller/dialogs/tp_RangeChooser.cxx
+++ b/chart2/source/controller/dialogs/tp_RangeChooser.cxx
@@ -40,15 +40,6 @@ namespace
}
}
- void lcl_enableRangeChoosing(bool bEnable, Dialog * pDialog)
- {
- if( pDialog )
- {
- pDialog->SetModalInputMode( !bEnable );
- pDialog->Show(!bEnable);
- }
- }
-
void lcl_enableRangeChoosing(bool bEnable, weld::DialogController* pDialog)
{
if (!pDialog)
@@ -69,17 +60,15 @@ using ::com::sun::star::uno::Sequence;
RangeChooserTabPage::RangeChooserTabPage(TabPageParent pParent, DialogModel & rDialogModel,
ChartTypeTemplateProvider* pTemplateProvider,
- Dialog* pParentDialog, bool bHideDescription /* = false */)
+ bool bHideDescription /* = false */)
: OWizardPage(pParent, "modules/schart/ui/tp_RangeChooser.ui", "tp_RangeChooser")
, m_nChangingControlCalls(0)
, m_bIsDirty(false)
, m_aLastValidRangeString()
, m_pTemplateProvider(pTemplateProvider)
, m_rDialogModel( rDialogModel )
- , m_pParentDialog(pParentDialog)
, m_pParentController(pParent.pController)
- , m_pTabPageNotifiable(pParentDialog ? dynamic_cast<TabPageNotifiable*>(pParentDialog)
- : dynamic_cast<TabPageNotifiable*>(m_pParentController))
+ , m_pTabPageNotifiable(dynamic_cast<TabPageNotifiable*>(m_pParentController))
, m_xFT_Caption(m_xBuilder->weld_label("FT_CAPTION_FOR_WIZARD"))
, m_xFT_Range(m_xBuilder->weld_label("FT_RANGE"))
, m_xED_Range(m_xBuilder->weld_entry("ED_RANGE"))
@@ -135,13 +124,6 @@ RangeChooserTabPage::RangeChooserTabPage(TabPageParent pParent, DialogModel & rD
RangeChooserTabPage::~RangeChooserTabPage()
{
- disposeOnce();
-}
-
-void RangeChooserTabPage::dispose()
-{
- m_pParentDialog.clear();
- OWizardPage::dispose();
}
void RangeChooserTabPage::ActivatePage()
@@ -358,7 +340,6 @@ IMPL_LINK_NOARG(RangeChooserTabPage, ChooseRangeHdl, weld::Button&, void)
OUString aRange = m_xED_Range->get_text();
OUString aTitle = m_xFTTitle->get_label();
- lcl_enableRangeChoosing( true, m_pParentDialog );
lcl_enableRangeChoosing( true, m_pParentController );
m_rDialogModel.getRangeSelectionHelper()->chooseRange( aRange, aTitle, *this );
}
@@ -385,7 +366,6 @@ void RangeChooserTabPage::listeningFinished( const OUString & rNewRange )
if( isValid())
changeDialogModelAccordingToControls();
- lcl_enableRangeChoosing( false, m_pParentDialog );
lcl_enableRangeChoosing( false, m_pParentController );
}
void RangeChooserTabPage::disposingRangeSelection()
diff --git a/chart2/source/controller/dialogs/tp_RangeChooser.hxx b/chart2/source/controller/dialogs/tp_RangeChooser.hxx
index 6bf8f28156e8..d630fc59f109 100644
--- a/chart2/source/controller/dialogs/tp_RangeChooser.hxx
+++ b/chart2/source/controller/dialogs/tp_RangeChooser.hxx
@@ -39,9 +39,8 @@ public:
RangeChooserTabPage(TabPageParent pParent, DialogModel & rDialogModel,
ChartTypeTemplateProvider* pTemplateProvider,
- Dialog * pParentDialog, bool bHideDescription = false);
+ bool bHideDescription = false);
virtual ~RangeChooserTabPage() override;
- virtual void dispose() override;
//RangeSelectionListenerParent
virtual void listeningFinished( const OUString & rNewRange ) override;
@@ -78,7 +77,6 @@ private:
ChartTypeTemplateProvider* m_pTemplateProvider;
DialogModel & m_rDialogModel;
- VclPtr<Dialog> m_pParentDialog;
weld::DialogController* m_pParentController;
TabPageNotifiable * m_pTabPageNotifiable;
diff --git a/chart2/source/controller/inc/dlg_CreationWizard.hxx b/chart2/source/controller/inc/dlg_CreationWizard.hxx
index 0f05f6243f14..8562d6365020 100644
--- a/chart2/source/controller/inc/dlg_CreationWizard.hxx
+++ b/chart2/source/controller/inc/dlg_CreationWizard.hxx
@@ -36,10 +36,10 @@ namespace chart
class DialogModel;
class ChartTypeTemplateProvider;
-class CreationWizard : public vcl::RoadmapWizard, public TabPageNotifiable
+class CreationWizard : public vcl::RoadmapWizardMachine, public TabPageNotifiable
{
public:
- CreationWizard(vcl::Window* pParent,
+ CreationWizard(weld::Window* pParent,
const css::uno::Reference<css::frame::XModel>& xChartModel,
const css::uno::Reference<css::uno::XComponentContext>& xContext);
@@ -50,6 +50,8 @@ public:
virtual void setInvalidPage(TabPage * pTabPage) override;
virtual void setValidPage(TabPage * pTabPage) override;
+ virtual short run() override;
+
protected:
virtual bool leaveState( WizardState _nState ) override;
virtual WizardState determineNextState(WizardState nCurrentState) const override;
diff --git a/chart2/source/controller/inc/dlg_CreationWizard_UNO.hxx b/chart2/source/controller/inc/dlg_CreationWizard_UNO.hxx
index a54adb5c6a5e..230cac85816d 100644
--- a/chart2/source/controller/inc/dlg_CreationWizard_UNO.hxx
+++ b/chart2/source/controller/inc/dlg_CreationWizard_UNO.hxx
@@ -92,8 +92,6 @@ public:
virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
- DECL_LINK( DialogEventHdl, VclWindowEvent&, void );
-
protected:
// ____ OComponentHelper ____
/// Called in dispose method after the listeners were notified.
@@ -107,7 +105,7 @@ private:
css::uno::Reference< css::uno::XComponentContext> m_xCC;
css::uno::Reference< css::awt::XWindow > m_xParentWindow;
- VclPtr<CreationWizard> m_pDialog;
+ std::unique_ptr<CreationWizard> m_xDialog;
bool m_bUnlockControllersOnExecute;
};
diff --git a/chart2/uiconfig/ui/tp_RangeChooser.ui b/chart2/uiconfig/ui/tp_RangeChooser.ui
index 2684913d3595..9a74a3d171b4 100644
--- a/chart2/uiconfig/ui/tp_RangeChooser.ui
+++ b/chart2/uiconfig/ui/tp_RangeChooser.ui
@@ -11,6 +11,7 @@
<object class="GtkGrid" id="tp_RangeChooser">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="hexpand">True</property>
<property name="border_width">6</property>
<child>
<object class="GtkGrid" id="box1">
diff --git a/chart2/uiconfig/ui/wizelementspage.ui b/chart2/uiconfig/ui/wizelementspage.ui
index b301b8258f1e..574907036d71 100644
--- a/chart2/uiconfig/ui/wizelementspage.ui
+++ b/chart2/uiconfig/ui/wizelementspage.ui
@@ -5,6 +5,7 @@
<object class="GtkBox" id="WizElementsPage">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="hexpand">True</property>
<property name="border_width">6</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
@@ -12,18 +13,21 @@
<object class="GtkFrame" id="frameAxes">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="hexpand">True</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child>
<object class="GtkAlignment" id="alignment1">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="hexpand">True</property>
<property name="top_padding">6</property>
<property name="left_padding">12</property>
<child>
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="hexpand">True</property>
<property name="column_spacing">18</property>
<child>
<object class="GtkGrid" id="grid4">
diff --git a/dbaccess/UIConfig_dbaccess.mk b/dbaccess/UIConfig_dbaccess.mk
index ff79be062c22..eacb9eb112c2 100644
--- a/dbaccess/UIConfig_dbaccess.mk
+++ b/dbaccess/UIConfig_dbaccess.mk
@@ -21,7 +21,6 @@ $(eval $(call gb_UIConfig_add_uifiles,dbaccess, \
dbaccess/uiconfig/ui/colwidthdialog \
dbaccess/uiconfig/ui/connectionpage \
dbaccess/uiconfig/ui/copytablepage \
- dbaccess/uiconfig/ui/databasewizard \
dbaccess/uiconfig/ui/dbaseindexdialog \
dbaccess/uiconfig/ui/dbasepage \
dbaccess/uiconfig/ui/dbwizconnectionpage \
diff --git a/dbaccess/source/ui/dlg/dbwizsetup.cxx b/dbaccess/source/ui/dlg/dbwizsetup.cxx
index e878a7d611eb..78ec885efa14 100644
--- a/dbaccess/source/ui/dlg/dbwizsetup.cxx
+++ b/dbaccess/source/ui/dlg/dbwizsetup.cxx
@@ -68,6 +68,7 @@
#include <com/sun/star/ucb/IOErrorCode.hpp>
#include <com/sun/star/task/InteractionHandler.hpp>
#include <com/sun/star/task/XInteractionHandler2.hpp>
+#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
#include <svl/filenotation.hxx>
@@ -173,6 +174,14 @@ ODbTypeWizDialogSetup::ODbTypeWizDialogSetup(weld::Window* _pParent
m_xAssistant->set_current_page(0);
}
+short ODbTypeWizDialogSetup::run()
+{
+ int nRet = vcl::RoadmapWizardMachine::run();
+ if (nRet == static_cast<int>(WizardButtonFlags::FINISH))
+ return ui::dialogs::ExecutableDialogResults::OK;
+ return ui::dialogs::ExecutableDialogResults::CANCEL;
+}
+
void ODbTypeWizDialogSetup::declareAuthDepPath( const OUString& _sURL, PathId _nPathId, const vcl::RoadmapWizardTypes::WizardPath& _rPaths)
{
bool bHasAuthentication = DataSourceMetaData::getAuthentication( _sURL ) != AuthNone;
diff --git a/dbaccess/source/ui/inc/dbwizsetup.hxx b/dbaccess/source/ui/inc/dbwizsetup.hxx
index 16969b467ee3..171c58bfbba1 100644
--- a/dbaccess/source/ui/inc/dbwizsetup.hxx
+++ b/dbaccess/source/ui/inc/dbwizsetup.hxx
@@ -118,6 +118,7 @@ public:
*/
bool IsTableWizardToBeStarted() const;
+ virtual short run() override;
private:
/// to override to create new pages
virtual VclPtr<TabPage> createPage(WizardState _nState) override;
diff --git a/dbaccess/source/ui/uno/DBTypeWizDlgSetup.cxx b/dbaccess/source/ui/uno/DBTypeWizDlgSetup.cxx
index 8361a2325cea..e372cbec082b 100644
--- a/dbaccess/source/ui/uno/DBTypeWizDlgSetup.cxx
+++ b/dbaccess/source/ui/uno/DBTypeWizDlgSetup.cxx
@@ -26,6 +26,7 @@
#include <com/sun/star/beans/PropertyAttribute.hpp>
#include <com/sun/star/sdb/XOfficeDatabaseDocument.hpp>
#include <com/sun/star/sdbc/XDataSource.hpp>
+#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
#include <comphelper/processfactory.hxx>
#include <vcl/svapp.hxx>
@@ -111,9 +112,9 @@ svt::OGenericUnoDialog::Dialog ODBTypeWizDialogSetup::createDialog(const css::un
return svt::OGenericUnoDialog::Dialog(std::make_unique<ODbTypeWizDialogSetup>(Application::GetFrameWeld(rParent), m_pDatasourceItems.get(), m_aContext, m_aInitialSelection));
}
-void ODBTypeWizDialogSetup::executedDialog(sal_Int16 _nExecutionResult)
+void ODBTypeWizDialogSetup::executedDialog(sal_Int16 nExecutionResult)
{
- if ( _nExecutionResult == RET_OK )
+ if (nExecutionResult == css::ui::dialogs::ExecutableDialogResults::OK)
{
const ODbTypeWizDialogSetup* pDialog = static_cast<ODbTypeWizDialogSetup*>(m_aDialog.m_xWeldDialog.get());
m_bOpenDatabase = pDialog->IsDatabaseDocumentToBeOpened();
diff --git a/include/vcl/roadmapwizard.hxx b/include/vcl/roadmapwizard.hxx
index df0632af5085..de70169fdbcc 100644
--- a/include/vcl/roadmapwizard.hxx
+++ b/include/vcl/roadmapwizard.hxx
@@ -230,8 +230,6 @@ namespace vcl
void SetRoadmapHelpId( const OString& _rId );
- void SetRoadmapInteractive( bool _bInteractive );
-
// returns whether a given state is enabled
bool isStateEnabled( WizardState _nState ) const;
diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx
index d4b688243c68..61deac2be88a 100644
--- a/include/vcl/weld.hxx
+++ b/include/vcl/weld.hxx
@@ -480,6 +480,8 @@ public:
virtual void set_page_sensitive(const OString& rIdent, bool bSensitive) = 0;
virtual weld::Container* append_page(const OString& rIdent) = 0;
+ virtual void set_page_side_help_id(const OString& rHelpId) = 0;
+
void connect_jump_page(const Link<const OString&, bool>& rLink) { m_aJumpPageHdl = rLink; }
};
diff --git a/vcl/UIConfig_vcl.mk b/vcl/UIConfig_vcl.mk
index 3184aaee5293..638fc9a537ae 100644
--- a/vcl/UIConfig_vcl.mk
+++ b/vcl/UIConfig_vcl.mk
@@ -11,6 +11,7 @@ $(eval $(call gb_UIConfig_UIConfig,vcl))
$(eval $(call gb_UIConfig_add_uifiles,vcl,\
vcl/uiconfig/ui/aboutbox \
+ vcl/uiconfig/ui/wizard \
vcl/uiconfig/ui/cupspassworddialog \
vcl/uiconfig/ui/editmenu \
vcl/uiconfig/ui/errornocontentdialog \
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index e0f3ad3f35c3..547bac4170c1 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -1653,6 +1653,11 @@ public:
}
}
+ virtual void set_page_side_help_id(const OString& rHelpId) override
+ {
+ m_xWizard->SetRoadmapHelpId(rHelpId);
+ }
+
weld::Button* weld_widget_for_response(int nResponse) override;
virtual ~SalInstanceAssistant() override
diff --git a/vcl/source/control/roadmapwizard.cxx b/vcl/source/control/roadmapwizard.cxx
index 2d29a71aa47a..66f098e31cb9 100644
--- a/vcl/source/control/roadmapwizard.cxx
+++ b/vcl/source/control/roadmapwizard.cxx
@@ -170,12 +170,12 @@ namespace vcl
m_pImpl->pRoadmap->SetHelpId( _rId );
}
- void RoadmapWizard::SetRoadmapInteractive( bool _bInteractive )
+ void RoadmapWizardMachine::SetRoadmapHelpId(const OString& rId)
{
- m_pImpl->pRoadmap->SetRoadmapInteractive( _bInteractive );
+ m_xAssistant->set_page_side_help_id(rId);
}
- void RoadmapWizardMachine::SetRoadmapInteractive( bool _bInteractive )
+ void RoadmapWizard::SetRoadmapInteractive( bool _bInteractive )
{
m_pImpl->pRoadmap->SetRoadmapInteractive( _bInteractive );
}
diff --git a/vcl/source/control/wizardmachine.cxx b/vcl/source/control/wizardmachine.cxx
index 8a1a92a707f2..8f291ce40c38 100644
--- a/vcl/source/control/wizardmachine.cxx
+++ b/vcl/source/control/wizardmachine.cxx
@@ -685,7 +685,7 @@ namespace vcl
}
WizardMachine::WizardMachine(weld::Window* pParent, WizardButtonFlags nButtonFlags)
- : AssistantController(pParent, "dbaccess/ui/databasewizard.ui", "DatabaseWizard")
+ : AssistantController(pParent, "vcl/ui/wizard.ui", "Wizard")
, m_nCurState(0)
, m_pFirstPage(nullptr)
, m_xFinish(m_xAssistant->weld_widget_for_response(static_cast<int>(WizardButtonFlags::FINISH)))
@@ -892,7 +892,7 @@ namespace vcl
bool WizardMachine::onFinish()
{
- return Finish( RET_OK );
+ return Finish(static_cast<int>(WizardButtonFlags::FINISH));
}
IMPL_LINK_NOARG(WizardMachine, OnFinish, weld::Button&, void)
diff --git a/dbaccess/uiconfig/ui/databasewizard.ui b/vcl/uiconfig/ui/wizard.ui
index 5f07332a825e..e1f68da9e66a 100644
--- a/dbaccess/uiconfig/ui/databasewizard.ui
+++ b/vcl/uiconfig/ui/wizard.ui
@@ -1,11 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.1 -->
-<interface domain="dba">
+<interface domain="vcl">
<requires lib="gtk+" version="3.20"/>
- <object class="GtkAssistant" id="DatabaseWizard">
+ <object class="GtkAssistant" id="Wizard">
<property name="can_focus">True</property>
<property name="border_width">6</property>
- <property name="title" translatable="yes" context="databasewizard|DatabaseWizard">Database Wizard</property>
<property name="modal">True</property>
<property name="default_width">0</property>
<property name="default_height">0</property>
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 45f6ae5a9813..4045e1c3c91c 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -3012,10 +3012,16 @@ struct DialogRunner
static void signal_response(GtkDialog*, gint nResponseId, gpointer data);
static void signal_cancel(GtkDialog*, gpointer data);
- static gboolean signal_delete(GtkDialog*, GdkEventAny*, gpointer data)
+ static gboolean signal_delete(GtkDialog* pDialog, GdkEventAny*, gpointer data)
{
DialogRunner* pThis = static_cast<DialogRunner*>(data);
- pThis->loop_quit();
+ if (GTK_IS_ASSISTANT(pThis->m_pDialog))
+ {
+ // An assistant isn't a dialog, but we want to treat it like one
+ signal_response(pDialog, GTK_RESPONSE_DELETE_EVENT, data);
+ }
+ else
+ pThis->loop_quit();
return true; /* Do not destroy */
}
@@ -3835,6 +3841,13 @@ public:
return m_aPages.back().get();
}
+ virtual void set_page_side_help_id(const OString& rHelpId) override
+ {
+ if (!m_pSidebar)
+ return;
+ ::set_help_id(m_pSidebar, rHelpId);
+ }
+
virtual GtkButton* get_widget_for_response(int nGtkResponse) override
{
GtkButton* pButton = nullptr;