cui/source/dialogs/AdditionsDialog.cxx | 11 +++++++++++ cui/source/inc/AdditionsDialog.hxx | 3 +++ 2 files changed, 14 insertions(+)
New commits: commit 490f430b2cb18513ae8292e6d1f608ba08e05215 Author: Yusuf Keten <ketenyu...@gmail.com> AuthorDate: Wed Jul 22 20:31:22 2020 +0300 Commit: Muhammet Kara <muhammet.k...@collabora.com> CommitDate: Thu Jul 23 08:01:17 2020 +0200 tdf#133026: Additions - Thread Execution Termination After press the close button, the search thread will be terminated after this patch. Change-Id: Ic79928bf0604203de9497c34cb18dbd76e3f376c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99250 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.k...@collabora.com> diff --git a/cui/source/dialogs/AdditionsDialog.cxx b/cui/source/dialogs/AdditionsDialog.cxx index 975fa57415fd..37e90c4ecb66 100644 --- a/cui/source/dialogs/AdditionsDialog.cxx +++ b/cui/source/dialogs/AdditionsDialog.cxx @@ -418,6 +418,7 @@ AdditionsDialog::AdditionsDialog(weld::Window* pParent, const OUString& sAdditio : GenericDialogController(pParent, "cui/ui/additionsdialog.ui", "AdditionsDialog") , m_aSearchDataTimer("SearchDataTimer") , m_xEntrySearch(m_xBuilder->weld_entry("entrySearch")) + , m_xButtonClose(m_xBuilder->weld_button("buttonClose")) , m_xMenuButtonSettings(m_xBuilder->weld_menu_button("buttonGear")) , m_xContentWindow(m_xBuilder->weld_scrolled_window("contentWindow")) , m_xContentGrid(m_xBuilder->weld_container("contentGrid")) @@ -430,6 +431,8 @@ AdditionsDialog::AdditionsDialog(weld::Window* pParent, const OUString& sAdditio m_xEntrySearch->connect_changed(LINK(this, AdditionsDialog, SearchUpdateHdl)); m_xEntrySearch->connect_focus_out(LINK(this, AdditionsDialog, FocusOut_Impl)); + m_xButtonClose->connect_clicked(LINK(this, AdditionsDialog, CloseButtonHdl)); + m_sTag = OUStringToOString(sAdditionsTag, RTL_TEXTENCODING_UTF8); OUString titlePrefix = CuiResId(RID_SVXSTR_ADDITIONS_DIALOG_TITLE_PREFIX); @@ -457,6 +460,7 @@ AdditionsDialog::~AdditionsDialog() { if (m_pSearchThread.is()) { + m_pSearchThread->StopExecution(); // Release the solar mutex, so the thread is not affected by the race // when it's after the m_bExecute check but before taking the solar // mutex. @@ -530,4 +534,11 @@ IMPL_LINK_NOARG(AdditionsDialog, FocusOut_Impl, weld::Widget&, void) } } +IMPL_LINK_NOARG(AdditionsDialog, CloseButtonHdl, weld::Button&, void) +{ + if (m_pSearchThread.is()) + m_pSearchThread->StopExecution(); + this->response(RET_CLOSE); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cui/source/inc/AdditionsDialog.hxx b/cui/source/inc/AdditionsDialog.hxx index be73c78d96d0..7f327b2a8c28 100644 --- a/cui/source/inc/AdditionsDialog.hxx +++ b/cui/source/inc/AdditionsDialog.hxx @@ -63,9 +63,12 @@ private: DECL_LINK(SearchUpdateHdl, weld::Entry&, void); DECL_LINK(ImplUpdateDataHdl, Timer*, void); DECL_LINK(FocusOut_Impl, weld::Widget&, void); + DECL_LINK(CloseButtonHdl, weld::Button&, void); public: std::unique_ptr<weld::Entry> m_xEntrySearch; + std::unique_ptr<weld::Button> m_xButtonClose; + std::unique_ptr<weld::MenuButton> m_xMenuButtonSettings; std::vector<AdditionsItem> m_aAdditionsItems; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits