compilerplugins/clang/constantparam.numbers.results | 4 include/sfx2/tbxctrl.hxx | 57 ----- sfx2/source/appl/module.cxx | 1 sfx2/source/control/bindings.cxx | 2 sfx2/source/toolbox/tbxitem.cxx | 228 -------------------- 5 files changed, 3 insertions(+), 289 deletions(-)
New commits: commit 32c8e953662fa2cdbcf2a43f7c217f75b5a808c8 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Wed Jan 15 19:36:29 2020 +0000 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Wed Jan 15 22:12:17 2020 +0100 SfxPopupWindow is now unused Change-Id: Idd4f2854eb0746a0648df30a5815bfaf8ef6a9ef Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86879 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/compilerplugins/clang/constantparam.numbers.results b/compilerplugins/clang/constantparam.numbers.results index ef6f9ae21d47..876f8da673f5 100644 --- a/compilerplugins/clang/constantparam.numbers.results +++ b/compilerplugins/clang/constantparam.numbers.results @@ -822,10 +822,6 @@ include/sfx2/tabdlg.hxx:46 void SfxTabDialogItem::SfxTabDialogItem(unsigned short,const class SfxItemSet &) unsigned short nId 11022 -include/sfx2/tbxctrl.hxx:88 - void SfxPopupWindow::SfxPopupWindow(unsigned short,class vcl::Window *,const class com::sun::star::uno::Reference<class com::sun::star::frame::XFrame> &,long) - long nBits - 1610612810 include/sfx2/templatelocalview.hxx:228 class BitmapEx SfxTemplateLocalView::fetchThumbnail(const class rtl::OUString &,long,long) long height diff --git a/include/sfx2/tbxctrl.hxx b/include/sfx2/tbxctrl.hxx index 5503aaae997d..f12878564e87 100644 --- a/include/sfx2/tbxctrl.hxx +++ b/include/sfx2/tbxctrl.hxx @@ -24,9 +24,9 @@ #include <sfx2/dllapi.h> #include <sal/types.h> #include <svl/poolitem.hxx> -#include <vcl/floatwin.hxx> #include <svtools/toolboxcontroller.hxx> #include <rtl/ref.hxx> +#include <vcl/window.hxx> namespace com::sun::star::frame { class XDispatchProvider; } namespace com::sun::star::frame { class XFrame; } @@ -53,54 +53,6 @@ struct SfxTbxCtrlFactory }; -/* Floating windows that can be torn from tool boxes should be derived from - this class. Since it is also derived from SfxControllerItem, its instances - will also receive the StateChanged calls. -*/ -class SfxFrameStatusListener; -class SFX2_DLLPUBLIC SfxPopupWindow: public FloatingWindow -{ -friend class SfxFrameStatusListener; - bool m_bFloating; - Link<SfxPopupWindow*,void> m_aDeleteLink; - sal_uInt16 const m_nId; - css::uno::Reference< css::frame::XFrame > const m_xFrame; - rtl::Reference<SfxFrameStatusListener> m_xStatusListener; - -private: - SfxPopupWindow(SfxPopupWindow const &) = delete; - SfxPopupWindow& operator =(SfxPopupWindow const &) = delete; - void Delete(); - -protected: - virtual void PopupModeEnd() override; - virtual bool Close() override; - - sal_uInt16 GetId() const { return m_nId; } - const css::uno::Reference< css::frame::XFrame >& GetFrame() const { return m_xFrame; } - - void AddStatusListener( const OUString& rCommandURL ); - - virtual void statusChanged( const css::frame::FeatureStateEvent& rEvent ); - -public: - SfxPopupWindow(sal_uInt16 nId, vcl::Window *pParent, - const css::uno::Reference< css::frame::XFrame >& rFrame, - WinBits nBits ); - SfxPopupWindow(sal_uInt16 nId, vcl::Window *pParent, - const OString& rID, const OUString& rUIXMLDescription, - const css::uno::Reference<css::frame::XFrame> &rFrame = - css::uno::Reference<css::frame::XFrame>()); - virtual ~SfxPopupWindow() override; - virtual void dispose() override; - - SAL_DLLPRIVATE void SetDeleteLink_Impl( const Link<SfxPopupWindow*,void>& rLink ) - { - m_aDeleteLink = rLink; - } -}; - - #define SFX_DECL_TOOLBOX_CONTROL() \ static SfxToolBoxControl* CreateImpl( sal_uInt16 nSlotId, sal_uInt16 nId, ToolBox &rTbx ); \ static void RegisterControl(sal_uInt16 nSlotId = 0, SfxModule *pMod=nullptr) @@ -117,15 +69,11 @@ public: struct SfxToolBoxControl_Impl; class SFX2_DLLPUBLIC SfxToolBoxControl: public svt::ToolboxController { -friend class SfxPopupWindow; friend struct SfxTbxCtrlFactory; std::unique_ptr< SfxToolBoxControl_Impl> pImpl; protected: - DECL_LINK( PopupModeEndHdl, FloatingWindow*, void ); - DECL_LINK( ClosePopupWindow, SfxPopupWindow *, void ); - // old SfxToolBoxControl methods virtual void StateChanged( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ); virtual void Select( sal_uInt16 nSelectModifier ); @@ -135,9 +83,6 @@ protected: virtual void CreatePopupWindow(); virtual VclPtr<vcl::Window> CreateItemWindow( vcl::Window *pParent ); - // Must be called by subclass to set a new popup window instance - void SetPopupWindow( SfxPopupWindow* pWindow ); - public: // XComponent virtual void SAL_CALL dispose() override; diff --git a/sfx2/source/appl/module.cxx b/sfx2/source/appl/module.cxx index 693f584ac326..0825c2430754 100644 --- a/sfx2/source/appl/module.cxx +++ b/sfx2/source/appl/module.cxx @@ -30,6 +30,7 @@ #include <sfx2/sfxsids.hrc> #include <svl/intitem.hxx> #include <tools/diagnose_ex.h> +#include <unotools/resmgr.hxx> #include <sal/log.hxx> #define ShellClass_SfxModule diff --git a/sfx2/source/control/bindings.cxx b/sfx2/source/control/bindings.cxx index e29d51ac294f..b3e630fd73bd 100644 --- a/sfx2/source/control/bindings.cxx +++ b/sfx2/source/control/bindings.cxx @@ -184,7 +184,7 @@ SfxBindings::~SfxBindings() void SfxBindings::DeleteControllers_Impl() { - // in the first round delete SfxPopupWindows + // in the first round delete Controllers std::size_t nCount = pImpl->pCaches.size(); std::size_t nCache; for ( nCache = 0; nCache < nCount; ++nCache ) diff --git a/sfx2/source/toolbox/tbxitem.cxx b/sfx2/source/toolbox/tbxitem.cxx index 04cc9dee983c..28813ad2f04b 100644 --- a/sfx2/source/toolbox/tbxitem.cxx +++ b/sfx2/source/toolbox/tbxitem.cxx @@ -96,29 +96,6 @@ using namespace ::com::sun::star::ui; SFX_IMPL_TOOLBOX_CONTROL_ARG(SfxToolBoxControl, SfxStringItem, true); -static vcl::Window* GetTopMostParentSystemWindow( vcl::Window* pWindow ) -{ - OSL_ASSERT( pWindow ); - if ( pWindow ) - { - // ->manually search topmost system window - // required because their might be another system window between this and the top window - pWindow = pWindow->GetParent(); - SystemWindow* pTopMostSysWin = nullptr; - while ( pWindow ) - { - if ( pWindow->IsSystemWindow() ) - pTopMostSysWin = static_cast<SystemWindow*>(pWindow); - pWindow = pWindow->GetParent(); - } - pWindow = pTopMostSysWin; - OSL_ASSERT( pWindow ); - return pWindow; - } - - return nullptr; -} - svt::ToolboxController* SfxToolBoxControllerFactory( const Reference< XFrame >& rFrame, ToolBox* pToolbox, unsigned short nID, const OUString& aCommandURL ) { SolarMutexGuard aGuard; @@ -178,26 +155,8 @@ struct SfxToolBoxControl_Impl bool bShowString; sal_uInt16 nTbxId; sal_uInt16 nSlotId; - VclPtr<SfxPopupWindow> mpFloatingWindow; - VclPtr<SfxPopupWindow> mpPopupWindow; - DECL_LINK( WindowEventListener, VclWindowEvent&, void ); }; -IMPL_LINK( SfxToolBoxControl_Impl, WindowEventListener, VclWindowEvent&, rEvent, void ) -{ - if ( ( rEvent.GetId() == VclEventId::WindowMove ) || - ( rEvent.GetId() == VclEventId::WindowActivate )) - { - vcl::Window* pWindow( rEvent.GetWindow() ); - if (( pWindow == mpFloatingWindow ) && - ( mpPopupWindow != nullptr )) - { - mpPopupWindow.disposeAndClear(); - } - } -} - - SfxToolBoxControl::SfxToolBoxControl( sal_uInt16 nSlotID, sal_uInt16 nID, @@ -209,8 +168,6 @@ SfxToolBoxControl::SfxToolBoxControl( pImpl->bShowString = bShowStringItems; pImpl->nTbxId = nID; pImpl->nSlotId = nSlotID; - pImpl->mpFloatingWindow = nullptr; - pImpl->mpPopupWindow = nullptr; } @@ -245,10 +202,6 @@ void SAL_CALL SfxToolBoxControl::dispose() VclPtr< vcl::Window > pWindow = pImpl->pBox->GetItemWindow( pImpl->nTbxId ); pImpl->pBox->SetItemWindow( pImpl->nTbxId, nullptr ); pWindow.disposeAndClear(); - - // Delete my popup windows - pImpl->mpFloatingWindow.disposeAndClear(); - pImpl->mpPopupWindow.disposeAndClear(); } @@ -557,45 +510,6 @@ Reference< css::awt::XWindow > SAL_CALL SfxToolBoxControl::createItemWindow( con return VCLUnoHelper::GetInterface( CreateItemWindow( VCLUnoHelper::GetWindow( rParent ))); } -void SfxToolBoxControl::SetPopupWindow( SfxPopupWindow* pWindow ) -{ - pImpl->mpPopupWindow = pWindow; - pImpl->mpPopupWindow->SetPopupModeEndHdl( LINK( this, SfxToolBoxControl, PopupModeEndHdl )); - pImpl->mpPopupWindow->SetDeleteLink_Impl( LINK( this, SfxToolBoxControl, ClosePopupWindow )); -} - - -IMPL_LINK_NOARG(SfxToolBoxControl, PopupModeEndHdl, FloatingWindow*, void) -{ - if ( pImpl->mpPopupWindow->IsVisible() ) - { - // Replace floating window with popup window and destroy - // floating window instance. - pImpl->mpFloatingWindow.disposeAndClear(); - pImpl->mpFloatingWindow = pImpl->mpPopupWindow; - pImpl->mpPopupWindow.clear(); - // We also need to know when the user tries to use the - // floating window. - pImpl->mpFloatingWindow->AddEventListener( LINK( pImpl.get(), SfxToolBoxControl_Impl, WindowEventListener )); - } - else - { - // Popup window has been closed by the user. No replacement, instance - // will destroy itself. - pImpl->mpPopupWindow.clear(); - } -} - - -IMPL_LINK( SfxToolBoxControl, ClosePopupWindow, SfxPopupWindow *, pWindow, void ) -{ - if ( pWindow == pImpl->mpFloatingWindow ) - pImpl->mpFloatingWindow = nullptr; - else - pImpl->mpPopupWindow = nullptr; -} - - void SfxToolBoxControl::StateChanged ( sal_uInt16 nId, @@ -675,146 +589,4 @@ VclPtr<vcl::Window> SfxToolBoxControl::CreateItemWindow( vcl::Window * ) return VclPtr<vcl::Window>(); } -class SfxFrameStatusListener : public svt::FrameStatusListener -{ - public: - SfxFrameStatusListener( const css::uno::Reference< css::uno::XComponentContext >& rxContext, - const css::uno::Reference< css::frame::XFrame >& xFrame, - SfxPopupWindow* pCallee ); - - // XStatusListener - virtual void SAL_CALL statusChanged( const css::frame::FeatureStateEvent& Event ) override; - - private: - VclPtr<SfxPopupWindow> m_pCallee; -}; -SfxFrameStatusListener::SfxFrameStatusListener( - const Reference< XComponentContext >& rxContext, - const Reference< XFrame >& xFrame, - SfxPopupWindow* pCallee ) : - svt::FrameStatusListener( rxContext, xFrame ), - m_pCallee( pCallee ) -{ -} - -// XStatusListener -void SAL_CALL SfxFrameStatusListener::statusChanged( const css::frame::FeatureStateEvent& rEvent ) -{ - m_pCallee->statusChanged( rEvent ); -} - -SfxPopupWindow::SfxPopupWindow( - sal_uInt16 nId, - vcl::Window* pParentWindow, - const Reference< XFrame >& rFrame, - WinBits nBits ) : - FloatingWindow( pParentWindow, nBits ) - , m_bFloating( false ) - , m_nId( nId ) - , m_xFrame( rFrame ) -{ - vcl::Window* pWindow = GetTopMostParentSystemWindow( this ); - if ( pWindow ) - static_cast<SystemWindow *>(pWindow)->GetTaskPaneList()->AddWindow( this ); -} - -SfxPopupWindow::SfxPopupWindow( - sal_uInt16 nId, - vcl::Window* pParentWindow, - const OString& rID, const OUString& rUIXMLDescription, - const Reference< XFrame >& rFrame ) : - FloatingWindow( pParentWindow, rID, rUIXMLDescription, rFrame) - , m_bFloating( false ) - , m_nId( nId ) - , m_xFrame( rFrame ) -{ - vcl::Window* pWindow = GetTopMostParentSystemWindow( this ); - if ( pWindow ) - static_cast<SystemWindow *>(pWindow)->GetTaskPaneList()->AddWindow( this ); -} - -SfxPopupWindow::~SfxPopupWindow() -{ - disposeOnce(); -} - -void SfxPopupWindow::dispose() -{ - if ( m_xStatusListener.is() ) - { - m_xStatusListener->dispose(); - m_xStatusListener.clear(); - } - - vcl::Window* pWindow = GetTopMostParentSystemWindow( this ); - if ( pWindow ) - static_cast<SystemWindow *>(pWindow)->GetTaskPaneList()->RemoveWindow( this ); - FloatingWindow::dispose(); -} - - -void SfxPopupWindow::AddStatusListener( const OUString& rCommandURL ) -{ - if ( !m_xStatusListener.is() ) - { - m_xStatusListener = new SfxFrameStatusListener( - ::comphelper::getProcessComponentContext(), - m_xFrame, - this ); - } - if ( m_xStatusListener.is() ) - m_xStatusListener->addStatusListener( rCommandURL ); -} - - -bool SfxPopupWindow::Close() -{ - m_bFloating = false; - FloatingWindow::Close(); - - Delete(); - return true; -} - - -void SfxPopupWindow::PopupModeEnd() -{ - //! to allow PopupModeEndHdl to be called - FloatingWindow::PopupModeEnd(); - - if ( IsVisible() ) - { - // was teared-off - if ( m_bFloating ) - { - Hide(); - Delete(); - } - m_bFloating = true; - } - else - Close(); -} - - -void SfxPopupWindow::statusChanged( const css::frame::FeatureStateEvent& rEvent ) -{ - if ( !rEvent.IsEnabled ) - { - Hide(); - } - else if ( m_bFloating ) - { - Show( true, ShowFlags::NoFocusChange | ShowFlags::NoActivate ); - } -} - - -void SfxPopupWindow::Delete() -{ - VclPtr<SfxPopupWindow> xThis(this); - m_aDeleteLink.Call( this ); - disposeOnce(); -} - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits