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