From d661cb17610af93b1607025284f23187c6d2fc06 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Thu, 22 Aug 2019 11:15:57 +0100 Subject: weld chart CreationWizard MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I7ee88c1e1b0eca5c2510a4bbba8b60c0d8a4e3e8 Reviewed-on: https://gerrit.libreoffice.org/77954 Tested-by: Jenkins Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- vcl/UIConfig_vcl.mk | 1 + vcl/source/app/salvtables.cxx | 5 +++++ vcl/source/control/roadmapwizard.cxx | 6 +++--- vcl/source/control/wizardmachine.cxx | 4 ++-- vcl/uiconfig/ui/wizard.ui | 17 +++++++++++++++++ vcl/unx/gtk3/gtk3gtkinst.cxx | 17 +++++++++++++++-- 6 files changed, 43 insertions(+), 7 deletions(-) create mode 100644 vcl/uiconfig/ui/wizard.ui (limited to 'vcl') 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(WizardButtonFlags::FINISH))) @@ -892,7 +892,7 @@ namespace vcl bool WizardMachine::onFinish() { - return Finish( RET_OK ); + return Finish(static_cast(WizardButtonFlags::FINISH)); } IMPL_LINK_NOARG(WizardMachine, OnFinish, weld::Button&, void) diff --git a/vcl/uiconfig/ui/wizard.ui b/vcl/uiconfig/ui/wizard.ui new file mode 100644 index 000000000000..e1f68da9e66a --- /dev/null +++ b/vcl/uiconfig/ui/wizard.ui @@ -0,0 +1,17 @@ + + + + + + True + 6 + True + 0 + 0 + dialog + 0 + + + + + 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(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; -- cgit