diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-10-03 14:48:35 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-10-03 21:03:18 +0200 |
commit | 349d0e679a4ee296c703145afe73e65efc5d2bff (patch) | |
tree | 0366283ed5245f10315eae53e518bea7299d65b1 /include | |
parent | 19ec881034dbabbdc72779eb9382d0deb17ac569 (diff) |
Resolves: tdf#120277 special character dialog not appearing in Online
the magic smoke connecting the dialog to the viewshell was in
SfxModalDialog, so not inheriting from that drops the connection
add a SfxDialogController to enable setting up the connection
Change-Id: I29c45cd43e05295309fc647b039db0c6565ca0d1
Reviewed-on: https://gerrit.libreoffice.org/61304
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/sfx2/basedlgs.hxx | 14 | ||||
-rw-r--r-- | include/vcl/dialog.hxx | 2 | ||||
-rw-r--r-- | include/vcl/weld.hxx | 8 |
3 files changed, 21 insertions, 3 deletions
diff --git a/include/sfx2/basedlgs.hxx b/include/sfx2/basedlgs.hxx index 39f74dc024e8..bb861366f9d7 100644 --- a/include/sfx2/basedlgs.hxx +++ b/include/sfx2/basedlgs.hxx @@ -56,6 +56,7 @@ private: SAL_DLLPRIVATE void SetDialogData_Impl(); SAL_DLLPRIVATE void GetDialogData_Impl(); + DECL_DLLPRIVATE_LINK(InstallLOKNotifierHdl, void*, vcl::ILibreOfficeKitNotifier*); protected: SfxModalDialog(vcl::Window *pParent, const OUString& rID, const OUString& rUIXMLDescription); @@ -71,7 +72,6 @@ public: const SfxItemSet* GetOutputItemSet() const { return pOutputSet.get(); } const SfxItemSet* GetInputItemSet() const { return pInputSet; } - void StateChanged( StateChangedType nStateChange ) override; }; // class SfxModelessDialog -------------------------------------------------- @@ -87,6 +87,7 @@ class SFX2_DLLPUBLIC SfxModelessDialog: public ModelessDialog void Init(SfxBindings *pBindinx, SfxChildWindow *pCW); + DECL_DLLPRIVATE_LINK(InstallLOKNotifierHdl, void*, vcl::ILibreOfficeKitNotifier*); protected: SfxModelessDialog( SfxBindings*, SfxChildWindow*, vcl::Window*, const OUString& rID, const OUString& rUIXMLDescription ); @@ -105,7 +106,6 @@ public: { return *pBindings; } DECL_LINK(TimerHdl, Timer *, void); - }; // class SfxFloatingWindow -------------------------------------------------- @@ -190,7 +190,15 @@ private: std::unique_ptr<SingleTabDlgImpl> pImpl; }; -class SFX2_DLLPUBLIC SfxSingleTabDialogController : public weld::GenericDialogController +class SFX2_DLLPUBLIC SfxDialogController : public weld::GenericDialogController +{ +private: + DECL_DLLPRIVATE_LINK(InstallLOKNotifierHdl, void*, vcl::ILibreOfficeKitNotifier*); +public: + SfxDialogController(weld::Widget* pParent, const OUString& rUIFile, const OString& rDialogId); +}; + +class SFX2_DLLPUBLIC SfxSingleTabDialogController : public SfxDialogController { private: VclPtr<SfxTabPage> m_xSfxPage; diff --git a/include/vcl/dialog.hxx b/include/vcl/dialog.hxx index 1996ac8651e4..66d6e2bccd6f 100644 --- a/include/vcl/dialog.hxx +++ b/include/vcl/dialog.hxx @@ -179,6 +179,8 @@ public: void GrabFocusToFirstControl(); virtual void Resize() override; + void SetInstallLOKNotifierHdl(const Link<void*, vcl::ILibreOfficeKitNotifier*>& rLink); + void add_button(PushButton* pButton, int nResponse, bool bTransferOwnership); void set_default_response(int nResponse); vcl::Window* get_widget_for_response(int nResponse); diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx index 3d8b8fa2a049..e35befc64168 100644 --- a/include/vcl/weld.hxx +++ b/include/vcl/weld.hxx @@ -24,6 +24,11 @@ typedef css::uno::Reference<css::accessibility::XAccessible> a11yref; typedef css::uno::Reference<css::accessibility::XAccessibleRelationSet> a11yrelationset; +namespace vcl +{ +class ILibreOfficeKitNotifier; +} + namespace weld { class Container; @@ -232,6 +237,9 @@ public: virtual void set_default_response(int response) = 0; virtual Button* get_widget_for_response(int response) = 0; virtual Container* weld_content_area() = 0; + + virtual void SetInstallLOKNotifierHdl(const Link<void*, vcl::ILibreOfficeKitNotifier*>& rLink) + = 0; }; class VCL_DLLPUBLIC MessageDialog : virtual public Dialog |