sw/source/uibase/app/apphdl.cxx |   17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

New commits:
commit 1ae5f5274011e42dfa85dca5f472ff8bbeecaa4e
Author:     Mike Kaganski <mike.kagan...@collabora.com>
AuthorDate: Thu Dec 6 23:36:04 2018 +0300
Commit:     Thorsten Behrens <thorsten.behr...@cib.de>
CommitDate: Wed Dec 12 00:46:22 2018 +0100

    tdf#121606: displaying Mail Merge toolbar shouldn't activate connection
    
    At least I think so. Thus now the code that queries the state of the
    toolbar controls only queries dataset if connection is active.
    
    Operating the navigation buttons (next/prev) will, naturally, activate
    connection if not yet active. This should also enable the other controls
    that may be initially disabled: create/save/print/email documents. Thus,
    the navigation controls also check if they have activated the connection,
    and invalidate said document creation controls state. Possibly there's a
    better place for the invalidation of the controls, but I was unable to
    find one.
    
    Regression after commit 5c2c5ff01c23e4f7a8947746afc13a46cbef5bec
    
    Change-Id: I76f895c871718c9c761339ba03963baf6837b592
    Reviewed-on: https://gerrit.libreoffice.org/64738
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>
    (cherry picked from commit 60714a814847f6d10f00aa6809a3896a48741e0b)
    Reviewed-on: https://gerrit.libreoffice.org/64746
    Reviewed-by: Katarina Behrens <katarina.behr...@cib.de>
    (cherry picked from commit b27a9058c706d70adddc71544b74b1f9607185bb)
    Reviewed-on: https://gerrit.libreoffice.org/64959
    Reviewed-by: Thorsten Behrens <thorsten.behr...@cib.de>

diff --git a/sw/source/uibase/app/apphdl.cxx b/sw/source/uibase/app/apphdl.cxx
index 8bd7c3b62a63..5ffb6f06c4ca 100644
--- a/sw/source/uibase/app/apphdl.cxx
+++ b/sw/source/uibase/app/apphdl.cxx
@@ -187,7 +187,8 @@ void SwModule::StateOther(SfxItemSet &rSet)
                     xConfigItem = pView->GetMailMergeConfigItem();
                 if (!xConfigItem)
                     rSet.DisableItem(nWhich);
-                else
+                else if (xConfigItem->GetConnection().is()
+                         && !xConfigItem->GetConnection()->isClosed())
                 {
                     bool bFirst, bLast;
                     bool bValid = xConfigItem->IsResultSetFirstLast(bFirst, 
bLast);
@@ -240,6 +241,8 @@ void SwModule::StateOther(SfxItemSet &rSet)
                 // #i51949# hide e-Mail option if e-Mail is not supported
                 // #i63267# printing might be disabled
                 if (!xConfigItem ||
+                    !xConfigItem->GetConnection().is() ||
+                    xConfigItem->GetConnection()->isClosed() ||
                     !xConfigItem->GetResultSet().is() ||
                     xConfigItem->GetCurrentDBData().sDataSource.isEmpty() ||
                     xConfigItem->GetCurrentDBData().sCommand.isEmpty() ||
@@ -778,6 +781,9 @@ void SwModule::ExecOther(SfxRequest& rReq)
             if (!xConfigItem)
                 return;
 
+            const bool bHadConnection
+                = xConfigItem->GetConnection().is() && 
!xConfigItem->GetConnection()->isClosed();
+
             sal_Int32 nPos = xConfigItem->GetResultSetPosition();
             switch (nWhich)
             {
@@ -815,6 +821,15 @@ void SwModule::ExecOther(SfxRequest& rReq)
             rBindings.Invalidate(FN_MAILMERGE_LAST_ENTRY);
             rBindings.Invalidate(FN_MAILMERGE_CURRENT_ENTRY);
             rBindings.Invalidate(FN_MAILMERGE_EXCLUDE_ENTRY);
+            if (!bHadConnection && xConfigItem->GetConnection().is()
+                && !xConfigItem->GetConnection()->isClosed())
+            {
+                // The connection has been activated. Update controls that 
were disabled
+                rBindings.Invalidate(FN_MAILMERGE_CREATE_DOCUMENTS);
+                rBindings.Invalidate(FN_MAILMERGE_SAVE_DOCUMENTS);
+                rBindings.Invalidate(FN_MAILMERGE_PRINT_DOCUMENTS);
+                rBindings.Invalidate(FN_MAILMERGE_EMAIL_DOCUMENTS);
+            }
             rBindings.Update();
         }
         break;
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to