diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-04-15 11:02:16 +0100 |
---|---|---|
committer | Michael Stahl <michael.stahl@cib.de> | 2020-04-16 12:43:46 +0200 |
commit | 53e3446dd29cb74642800124a372d696f19a6828 (patch) | |
tree | 80cb95b3c3cdf0b0e43fdf65b76ad19a8369e713 /svx | |
parent | d1655a9a565dd629741c7dd3b0462a7900f067e3 (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/+/92288
Reviewed-by: Michael Stahl <michael.stahl@cib.de>
Tested-by: Jenkins
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 c81fa7a2dc29..89579cd7110b 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(); |