summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-04-15 11:02:16 +0100
committerMichael Stahl <michael.stahl@cib.de>2020-04-16 12:43:46 +0200
commit53e3446dd29cb74642800124a372d696f19a6828 (patch)
tree80cb95b3c3cdf0b0e43fdf65b76ad19a8369e713 /svx
parentd1655a9a565dd629741c7dd3b0462a7900f067e3 (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.cxx44
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();