diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-04-15 11:02:16 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-04-16 09:41:40 +0200 |
commit | 5d663bcb1dde4b8aeaa7b593a54099f7fad90c08 (patch) | |
tree | 396d76ff09d54a112380084a4182dbe22cefa2df /svx | |
parent | aeac363fcfd94e1c2fbfd877aa5018ba06811165 (diff) |
Resolves: tdf#122491 ClassificationDialog::run() is not called
when using DialogController::runAsync so the custom override
isn't called so the special setup and save-on-ok aren't called.
move the setup into the ctor seeing as the dialog is only run once
after ctoring and add a OK handling that does the on-ok setting save and
have setupValues call readIn on "m_aInitialValues" because that
gets called after the ctor
Change-Id: I8183fc4b0f5de2844562c971c86d655f2d4920ff
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92251
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'svx')
-rw-r--r-- | svx/source/dialog/ClassificationDialog.cxx | 44 |
1 files changed, 21 insertions, 23 deletions
diff --git a/svx/source/dialog/ClassificationDialog.cxx b/svx/source/dialog/ClassificationDialog.cxx index 3d0f3dc8cdc8..25144cc8e4a6 100644 --- a/svx/source/dialog/ClassificationDialog.cxx +++ b/svx/source/dialog/ClassificationDialog.cxx @@ -178,6 +178,7 @@ ClassificationDialog::ClassificationDialog(weld::Window* pParent, const bool bPe , m_xEditWindow(new ClassificationEditView) , m_xEditWindowWeld(new weld::CustomWeld(*m_xBuilder, "classificationEditWindow", *m_xEditWindow)) { + m_xOkButton->connect_clicked(LINK(this, ClassificationDialog, OkHdl)); m_xSignButton->connect_clicked(LINK(this, ClassificationDialog, ButtonClicked)); m_xSignButton->set_visible(m_bPerParagraph); @@ -242,25 +243,9 @@ ClassificationDialog::ClassificationDialog(weld::Window* pParent, const bool bPe m_nAsyncExpandEvent = nullptr; m_xEditWindow->SetModifyHdl(LINK(this, ClassificationDialog, EditWindowModifiedHdl)); -} - -//do it async so gtk has a chance to shrink it to best size, otherwise its larger than min -IMPL_LINK_NOARG(ClassificationDialog, OnAsyncExpandHdl, void*, void) -{ - m_nAsyncExpandEvent = nullptr; - m_xIntellectualPropertyExpander->set_expanded(true); -} - -ClassificationDialog::~ClassificationDialog() -{ - if (m_nAsyncExpandEvent) - Application::RemoveUserEvent(m_nAsyncExpandEvent); -} -short ClassificationDialog::run() -{ readRecentlyUsed(); - readIn(m_aInitialValues); + toggleWidgetsDependingOnCategory(); int nNumber = 1; if (m_aRecentlyUsedValuesCollection.empty()) @@ -278,13 +263,19 @@ short ClassificationDialog::run() m_xRecentlyUsedListBox->append_text(rDescription); } } +} - short nResult = GenericDialogController::run(); - if (nResult == RET_OK) - { - writeRecentlyUsed(); - } - return nResult; +//do it async so gtk has a chance to shrink it to best size, otherwise its larger than min +IMPL_LINK_NOARG(ClassificationDialog, OnAsyncExpandHdl, void*, void) +{ + m_nAsyncExpandEvent = nullptr; + m_xIntellectualPropertyExpander->set_expanded(true); +} + +ClassificationDialog::~ClassificationDialog() +{ + if (m_nAsyncExpandEvent) + Application::RemoveUserEvent(m_nAsyncExpandEvent); } void ClassificationDialog::insertCategoryField(sal_Int32 nID) @@ -304,6 +295,7 @@ void ClassificationDialog::insertField(ClassificationType eType, OUString const void ClassificationDialog::setupValues(std::vector<ClassificationResult> const & rInput) { m_aInitialValues = rInput; + readIn(m_aInitialValues); } void ClassificationDialog::readRecentlyUsed() @@ -673,6 +665,12 @@ IMPL_LINK(ClassificationDialog, ButtonClicked, weld::Button&, rButton, void) } } +IMPL_LINK_NOARG(ClassificationDialog, OkHdl, weld::Button&, void) +{ + writeRecentlyUsed(); + m_xDialog->response(RET_OK); +} + IMPL_LINK_NOARG(ClassificationDialog, SelectToolboxHdl, weld::ToggleButton&, void) { m_xEditWindow->InvertSelectionWeight(); |