diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2018-11-02 15:38:46 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2018-11-02 16:51:29 +0100 |
commit | 4b0db40ab4a05a0940096654e8d60ed04f0cd2e6 (patch) | |
tree | ab91ce13fccbe99ceb96c75a4987e51d3e7ecd4a /include | |
parent | d562ee86414c8946c3b650d6e917db3f729325d3 (diff) |
Revert "weld SwWordCountFloatDlg"
This reverts commit 26c375671aa362b2f59d84645784938677ae1719.
Conflicts:
vcl/qt5/Qt5Frame.cxx
It caused null pointer dereference during UITest_writer_tests, as seen at
<https://ci.libreoffice.org//job/lo_ubsan/1090/>:
> /sfx2/source/appl/childwin.cxx:654:18: runtime error: member call on null pointer of type 'vcl::Window'
> #0 0x2b97d4160fa3 in SfxChildWindow::SetWorkWindow_Impl(SfxWorkWindow*) /sfx2/source/appl/childwin.cxx:654:18
> #1 0x2b97d462ab86 in SfxWorkWindow::CreateChildWin_Impl(SfxChildWin_Impl*, bool) /sfx2/source/appl/workwin.cxx:1350:9
> #2 0x2b97d463e6bb in SfxWorkWindow::ToggleChildWindow_Impl(unsigned short, bool) /sfx2/source/appl/workwin.cxx:1837:21
> #3 0x2b97d6eae94d in SfxViewFrame::ToggleChildWindow(unsigned short) /sfx2/source/view/viewfrm.cxx:3080:9
> #4 0x2b987664316d in SwView::UpdateWordCount(SfxShell*, unsigned short) /sw/source/uibase/uiview/view1.cxx:212:9
> #5 0x2b9876126a5d in SwTextShell::Execute(SfxRequest&) /sw/source/uibase/shells/textsh1.cxx:1369:9
> #6 0x2b98760a2391 in SfxStubSwTextShellExecute(SfxShell*, SfxRequest&) /workdir/SdiTarget/sw/sdi/swslots.hxx:2974:1
> #7 0x2b97d49050f6 in SfxShell::CallExec(void (*)(SfxShell*, SfxRequest&), SfxRequest&) /include/sfx2/shell.hxx:207:35
> #8 0x2b97d48c27d0 in SfxDispatcher::Call_Impl(SfxShell&, SfxSlot const&, SfxRequest&, bool) /sfx2/source/control/dispatch.cxx:353:13
> #9 0x2b97d48de12d in SfxDispatcher::Execute_(SfxShell&, SfxSlot const&, SfxRequest&, SfxCallMode) /sfx2/source/control/dispatch.cxx:854:9
> #10 0x2b97d482ea34 in SfxBindings::Execute_Impl(SfxRequest&, SfxSlot const*, SfxShell*) /sfx2/source/control/bindings.cxx:1063:9
> #11 0x2b97d4e5cead in SfxDispatchController_Impl::dispatch(com::sun::star::util::URL const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XDispatchResultListener> const&) /sfx2/source/control/unoctitm.cxx:754:29
> #12 0x2b97d4e60b5e in SfxOfficeDispatch::dispatchWithNotification(com::sun::star::util::URL const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XDispatchResultListener> const&) /sfx2/source/control/unoctitm.cxx:239:9
> #13 0x2b97c6c10b19 in comphelper::dispatchCommand(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XDispatchResultListener> const&) /comphelper/source/misc/dispatchcommand.cxx:60:9
> #14 0x2b980472020c in UITest::executeCommand(rtl::OUString const&) /vcl/source/uitest/uitest.cxx:22:12
[...]
Change-Id: I276684a5617bfec3803b195af59c51735bfa470a
Diffstat (limited to 'include')
-rw-r--r-- | include/sfx2/basedlgs.hxx | 43 | ||||
-rw-r--r-- | include/sfx2/childwin.hxx | 8 | ||||
-rw-r--r-- | include/vcl/dialog.hxx | 7 | ||||
-rw-r--r-- | include/vcl/weld.hxx | 6 |
4 files changed, 13 insertions, 51 deletions
diff --git a/include/sfx2/basedlgs.hxx b/include/sfx2/basedlgs.hxx index 703998b3644a..79092bb744c5 100644 --- a/include/sfx2/basedlgs.hxx +++ b/include/sfx2/basedlgs.hxx @@ -107,41 +107,6 @@ public: DECL_LINK(TimerHdl, Timer *, void); }; -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 SfxModelessDialog_Impl; -class SFX2_DLLPUBLIC SfxModelessDialogController : public SfxDialogController -{ - SfxBindings* m_pBindings; - std::unique_ptr<SfxModelessDialog_Impl> m_xImpl; - - SfxModelessDialogController(SfxModelessDialogController&) = delete; - void operator =(SfxModelessDialogController&) = delete; - - void Init(SfxBindings *pBindinx, SfxChildWindow *pCW); - - DECL_DLLPRIVATE_LINK(FocusInHdl, weld::Widget&, void); - DECL_DLLPRIVATE_LINK(FocusOutHdl, weld::Widget&, void); -protected: - SfxModelessDialogController(SfxBindings*, SfxChildWindow* pChildWin, - weld::Window* pParent, const OUString& rUIXMLDescription, const OString& rID); - virtual ~SfxModelessDialogController() override; - -public: - virtual void FillInfo(SfxChildWinInfo&) const; - void Initialize (SfxChildWinInfo const * pInfo); - void Close(); - void DeInit(); - void EndDialog(); - SfxBindings& GetBindings() { return *m_pBindings; } -}; - // class SfxFloatingWindow -------------------------------------------------- class SfxFloatingWindow_Impl; class SFX2_DLLPUBLIC SfxFloatingWindow: public FloatingWindow @@ -223,6 +188,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); +}; + class SFX2_DLLPUBLIC SfxSingleTabDialogController : public SfxDialogController { private: diff --git a/include/sfx2/childwin.hxx b/include/sfx2/childwin.hxx index 9a12bf896071..8c46889e533f 100644 --- a/include/sfx2/childwin.hxx +++ b/include/sfx2/childwin.hxx @@ -143,10 +143,9 @@ public: class SFX2_DLLPUBLIC SfxChildWindow { - VclPtr<vcl::Window> pParent; // parent window ( Topwindow ) - sal_uInt16 const nType; // ChildWindow-Id + VclPtr<vcl::Window> pParent; // parent window ( Topwindow ) + sal_uInt16 const nType; // ChildWindow-Id VclPtr<vcl::Window> pWindow; // actual contents - std::shared_ptr<SfxModelessDialogController> xController; // actual contents SfxChildAlignment eChildAlignment; // Current css::drawing::Alignment std::unique_ptr< SfxChildWindow_Impl> pImpl; // Implementation data std::unique_ptr<SfxChildWindowContext> pContext; // With context-sensitive ChildWindows: @@ -162,9 +161,6 @@ public: void Destroy(); vcl::Window* GetWindow() const { return pWindow; } - void SetController(std::shared_ptr<SfxModelessDialogController> controller) { xController = controller; } - void ClearController() { xController.reset(); } - std::shared_ptr<SfxModelessDialogController>& GetController() { return xController; } vcl::Window* GetParent() const { return pParent; } SfxChildAlignment GetAlignment() const diff --git a/include/vcl/dialog.hxx b/include/vcl/dialog.hxx index b6d7bbdb110e..c5a3997566ff 100644 --- a/include/vcl/dialog.hxx +++ b/include/vcl/dialog.hxx @@ -139,7 +139,7 @@ public: virtual FactoryFunction GetUITestFactory() const override; private: - bool ImplStartExecute(); + bool ImplStartExecuteModal(); static void ImplEndExecuteModal(); void ImplSetModalInputMode(bool bModal); public: @@ -174,9 +174,6 @@ public: void GrabFocusToFirstControl(); virtual void Resize() override; - void Activate() override; - - void SetInstallLOKNotifierHdl(const Link<void*, vcl::ILibreOfficeKitNotifier*>& rLink); void add_button(PushButton* pButton, int nResponse, bool bTransferOwnership); @@ -191,6 +188,8 @@ class VCL_DLLPUBLIC ModelessDialog : public Dialog public: explicit ModelessDialog( vcl::Window* pParent, const OUString& rID, const OUString& rUIXMLDescription, Dialog::InitFlag eFlag = Dialog::InitFlag::Default ); + + void Activate() override; }; class VCL_DLLPUBLIC ModalDialog : public Dialog diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx index fdb0cba3379e..7fcd7b884a52 100644 --- a/include/vcl/weld.hxx +++ b/include/vcl/weld.hxx @@ -196,14 +196,8 @@ public: virtual void set_busy_cursor(bool bBusy) = 0; virtual void window_move(int x, int y) = 0; virtual void set_modal(bool bModal) = 0; - virtual bool get_modal() const = 0; virtual bool get_extents_relative_to(Window& rRelative, int& x, int& y, int& width, int& height) = 0; - virtual bool get_resizable() const = 0; - virtual Size get_size() const = 0; - virtual Point get_position() const = 0; - virtual void set_window_state(const OString& rStr) = 0; - virtual OString get_window_state(WindowStateMask nMask) const = 0; virtual css::uno::Reference<css::awt::XWindow> GetXWindow() = 0; |