diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-11-28 11:12:55 +0000 |
---|---|---|
committer | Xisco Faulí <xiscofauli@libreoffice.org> | 2018-11-29 16:47:09 +0100 |
commit | d559d7085f8c160c9946ef3eb49250aa12358968 (patch) | |
tree | e33ab7e068721cbeddd0eb5acccd3eb07279f6ef /desktop/source/deployment/gui/dp_gui_dialog2.hxx | |
parent | 811d39b4ed3487ac6eb81d04de70f9845fec32db (diff) |
Resolves: tdf#121746 block toplevels from closing...
while the extension manager is querying via a dialog. Reuse
the isBusy for this.
Change-Id: I97572404ae296e87fd44711bf1e978bd5bad6280
Reviewed-on: https://gerrit.libreoffice.org/64162
Tested-by: Jenkins
Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
Diffstat (limited to 'desktop/source/deployment/gui/dp_gui_dialog2.hxx')
-rw-r--r-- | desktop/source/deployment/gui/dp_gui_dialog2.hxx | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/desktop/source/deployment/gui/dp_gui_dialog2.hxx b/desktop/source/deployment/gui/dp_gui_dialog2.hxx index 293f83539ccf..dd0dc8bb8160 100644 --- a/desktop/source/deployment/gui/dp_gui_dialog2.hxx +++ b/desktop/source/deployment/gui/dp_gui_dialog2.hxx @@ -58,18 +58,18 @@ class TheExtensionManager; class DialogHelper { css::uno::Reference< css::uno::XComponentContext > m_xContext; - VclPtr<Dialog> m_pVCLWindow; + VclPtr<Dialog> m_xVCLWindow; ImplSVEvent * m_nEventID; - bool m_bIsBusy; + int m_nBusy; public: DialogHelper( const css::uno::Reference< css::uno::XComponentContext > &, Dialog *pWindow ); virtual ~DialogHelper(); - void openWebBrowser( const OUString & sURL, const OUString & sTitle ) const; - Dialog* getWindow() const { return m_pVCLWindow; }; - weld::Window* getFrameWeld() const { return m_pVCLWindow ? m_pVCLWindow->GetFrameWeld() : nullptr; } + void openWebBrowser(const OUString& rURL, const OUString& rTitle); + Dialog* getWindow() const { return m_xVCLWindow; }; + weld::Window* getFrameWeld() const { return m_xVCLWindow ? m_xVCLWindow->GetFrameWeld() : nullptr; } void PostUserEvent( const Link<void*,void>& rLink, void* pCaller ); void clearEventID() { m_nEventID = nullptr; } @@ -86,15 +86,16 @@ public: virtual void checkEntries() = 0; static bool IsSharedPkgMgr( const css::uno::Reference< css::deployment::XPackage > &); - static bool continueOnSharedExtension( const css::uno::Reference< css::deployment::XPackage > &, + bool continueOnSharedExtension( const css::uno::Reference< css::deployment::XPackage > &, weld::Widget* pParent, const char* pResID, bool &bHadWarning ); - void setBusy( const bool bBusy ) { m_bIsBusy = bBusy; } - bool isBusy() const { return m_bIsBusy; } - bool installExtensionWarn( const OUString &rExtensionURL ) const; - bool installForAllUsers( bool &bInstallForAll ) const; + void incBusy(); + void decBusy(); + bool isBusy() const { return m_nBusy > 0; } + bool installExtensionWarn(const OUString &rExtensionURL); + bool installForAllUsers(bool &bInstallForAll); }; @@ -134,7 +135,7 @@ class ExtMgrDialog : public ModelessDialog, css::uno::Reference< css::task::XAbortChannel > m_xAbortChannel; - bool removeExtensionWarn( const OUString &rExtensionTitle ) const; + bool removeExtensionWarn(const OUString &rExtensionTitle); DECL_LINK( HandleOptionsBtn, Button*, void ); DECL_LINK( HandleAddBtn, Button*, void ); |