diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-10-03 14:48:35 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2018-10-31 10:27:12 +0100 |
commit | 12ed60bc8cc391811b9447300b0d06bba8e18975 (patch) | |
tree | 3a9bd7a73ae05b281e2447ca3e5a85eca8489751 /include | |
parent | 4ca51f7f34c820873fe423c132d97cabf846f59e (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/61311
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'include')
-rw-r--r-- | include/sfx2/basedlgs.hxx | 12 | ||||
-rw-r--r-- | include/vcl/dialog.hxx | 2 | ||||
-rw-r--r-- | include/vcl/weld.hxx | 8 |
3 files changed, 21 insertions, 1 deletions
diff --git a/include/sfx2/basedlgs.hxx b/include/sfx2/basedlgs.hxx index 58657fc58e8b..14bdad25b075 100644 --- a/include/sfx2/basedlgs.hxx +++ b/include/sfx2/basedlgs.hxx @@ -27,6 +27,7 @@ #include <vcl/dialog.hxx> #include <vcl/floatwin.hxx> #include <vcl/timer.hxx> +#include <vcl/weld.hxx> class TabPage; class SfxTabPage; @@ -55,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); @@ -86,6 +88,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 ); @@ -104,7 +107,6 @@ public: { return *pBindings; } DECL_LINK(TimerHdl, Timer *, void); - }; // class SfxFloatingWindow -------------------------------------------------- @@ -189,6 +191,14 @@ private: std::unique_ptr<SingleTabDlgImpl> pImpl; }; +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); +}; + #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/dialog.hxx b/include/vcl/dialog.hxx index 36f88b8feb45..8c952c9b668a 100644 --- a/include/vcl/dialog.hxx +++ b/include/vcl/dialog.hxx @@ -176,6 +176,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 17f2b5119049..98f2b7394a7d 100644 --- a/include/vcl/weld.hxx +++ b/include/vcl/weld.hxx @@ -23,6 +23,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; @@ -225,6 +230,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 |