summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-04-15 11:02:16 +0100
committerCaolán McNamara <caolanm@redhat.com>2020-04-16 09:41:40 +0200
commit5d663bcb1dde4b8aeaa7b593a54099f7fad90c08 (patch)
tree396d76ff09d54a112380084a4182dbe22cefa2df /svx
parentaeac363fcfd94e1c2fbfd877aa5018ba06811165 (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.cxx44
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();