[Libreoffice-commits] core.git: Branch 'libreoffice-6-1' - filter/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Tue Dec 18 08:57:13 UTC 2018


 filter/source/xsltdialog/xmlfilterdialogcomponent.cxx |   26 ++++++++++--------
 filter/source/xsltdialog/xmlfiltersettingsdialog.cxx  |    4 --
 filter/source/xsltdialog/xmlfiltersettingsdialog.hxx  |    2 -
 3 files changed, 17 insertions(+), 15 deletions(-)

New commits:
commit 2421b42c006e1a9c9059c8a256685d2124f4e396
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Mon Dec 17 16:53:35 2018 +0000
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Tue Dec 18 09:56:50 2018 +0100

    Resolves: tdf#122153 keep Execute for modal dialogs
    
    and not modeless ones
    
    cause you get one main loop running inside another, and everything
    is running inside the modeless dialog main loop until it exits.
    
    Change-Id: I45e92380288727669e287b62e84b815d5dc1960c
    Reviewed-on: https://gerrit.libreoffice.org/65282
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>
    (cherry picked from commit c821da3ecc3c309be2ec2db204a4c853b53fa979)
    Reviewed-on: https://gerrit.libreoffice.org/65292

diff --git a/filter/source/xsltdialog/xmlfilterdialogcomponent.cxx b/filter/source/xsltdialog/xmlfilterdialogcomponent.cxx
index 0e55cd318141..31e69c3ec0e9 100644
--- a/filter/source/xsltdialog/xmlfilterdialogcomponent.cxx
+++ b/filter/source/xsltdialog/xmlfilterdialogcomponent.cxx
@@ -265,7 +265,6 @@ void SAL_CALL XMLFilterDialogComponent::queryTermination( const EventObject& /*
         mpDialog->Close();
 }
 
-
 void SAL_CALL XMLFilterDialogComponent::notifyTermination( const EventObject& /* Event */ )
 {
     // we are going down, so dispose us!
@@ -276,35 +275,41 @@ void SAL_CALL XMLFilterDialogComponent::disposing( const EventObject& /* Source
 {
 }
 
-
 void SAL_CALL XMLFilterDialogComponent::setTitle( const OUString& /* _rTitle */ )
 {
 }
 
-
-sal_Int16 SAL_CALL XMLFilterDialogComponent::execute(  )
+sal_Int16 SAL_CALL XMLFilterDialogComponent::execute()
 {
     ::SolarMutexGuard aGuard;
 
-    if( nullptr == mpDialog )
+    bool bLaunch = false;
+    if (!mpDialog)
     {
         Reference< XComponent > xComp( this );
         if (mxParent.is())
             mpDialog = VclPtr<XMLFilterSettingsDialog>::Create(VCLUnoHelper::GetWindow(mxParent), mxContext);
         else
             mpDialog = VclPtr<XMLFilterSettingsDialog>::Create(nullptr, mxContext, Dialog::InitFlag::NoParent);
-        mpDialog->Execute();
+        bLaunch = true;
     }
-    else if( !mpDialog->IsVisible() )
+
+    mpDialog->UpdateWindow();
+
+    if (!bLaunch)
     {
-        mpDialog->Execute();
+        mpDialog->ToTop();
+        return 0;
     }
-    mpDialog->ToTop();
+
+    mpDialog->StartExecuteAsync([this](sal_Int32)
+    {
+        mpDialog.reset();
+    });
 
     return 0;
 }
 
-
 void SAL_CALL XMLFilterDialogComponent::initialize( const Sequence< Any >& aArguments )
 {
     for(const Any& rArgument : aArguments)
@@ -320,7 +325,6 @@ void SAL_CALL XMLFilterDialogComponent::initialize( const Sequence< Any >& aArgu
     }
 }
 
-
 extern "C"
 {
 SAL_DLLPUBLIC_EXPORT void * xsltdlg_component_getFactory(
diff --git a/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx b/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
index 5ef80ab68062..d54ee2376305 100644
--- a/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
+++ b/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
@@ -177,15 +177,13 @@ IMPL_LINK_NOARG(XMLFilterSettingsDialog, DoubleClickHdl_Impl, SvTreeListBox*, bo
     return false;
 }
 
-short XMLFilterSettingsDialog::Execute()
+void XMLFilterSettingsDialog::UpdateWindow()
 {
     m_pCtrlFilterList->GrabFocus();
     disposeFilterList();
     m_pFilterListBox->Clear();
     initFilterList();
     updateStates();
-
-    return ModelessDialog::Execute();
 }
 
 void XMLFilterSettingsDialog::updateStates()
diff --git a/filter/source/xsltdialog/xmlfiltersettingsdialog.hxx b/filter/source/xsltdialog/xmlfiltersettingsdialog.hxx
index 072c5d4542a5..7ca7d432582d 100644
--- a/filter/source/xsltdialog/xmlfiltersettingsdialog.hxx
+++ b/filter/source/xsltdialog/xmlfiltersettingsdialog.hxx
@@ -92,7 +92,7 @@ public:
     DECL_LINK(SelectionChangedHdl_Impl, SvTreeListBox*, void );
     DECL_LINK(DoubleClickHdl_Impl, SvTreeListBox*, bool );
 
-    virtual short Execute() override;
+    void    UpdateWindow();
 
     void    onNew();
     void    onEdit();


More information about the Libreoffice-commits mailing list