[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.4' - include/sfx2 sfx2/source sw/source

Mike Kaganski (via logerrit) logerrit at kemper.freedesktop.org
Tue Mar 16 09:48:47 UTC 2021


 include/sfx2/tabdlg.hxx       |    2 ++
 sfx2/source/dialog/tabdlg.cxx |    7 ++++++-
 sw/source/ui/fldui/flddb.cxx  |    4 ++++
 sw/source/ui/fldui/flddb.hxx  |    1 +
 4 files changed, 13 insertions(+), 1 deletion(-)

New commits:
commit 65941fd266d555c513f37e3ddec616cf769ffab3
Author:     Mike Kaganski <mike.kaganski at collabora.com>
AuthorDate: Sun Mar 14 14:42:15 2021 +0300
Commit:     Miklos Vajna <vmiklos at collabora.com>
CommitDate: Tue Mar 16 10:48:11 2021 +0100

    tdf#141011: Postpone SwFieldDBPage::Reset to tab activation
    
    This way, it will only ask for password when dialog is switched to that tab.
    
    Change-Id: Ie2a453b0b6867ceb1ef3728a8565de4f6cbf4757
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112469
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>
    (cherry picked from commit 0adf52a644aaf85ba2bd666147c62c134234ffbb)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112422
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.com>

diff --git a/include/sfx2/tabdlg.hxx b/include/sfx2/tabdlg.hxx
index 325bfb8b4b4b..d5522a0cd253 100644
--- a/include/sfx2/tabdlg.hxx
+++ b/include/sfx2/tabdlg.hxx
@@ -205,6 +205,8 @@ public:
 
     virtual bool        FillItemSet( SfxItemSet* );
     virtual void        Reset( const SfxItemSet* );
+    // Allows to postpone some initialization to the first activation
+    virtual bool        DeferResetToFirstActivation();
 
     bool                HasExchangeSupport() const
                             { return bHasExchangeSupport; }
diff --git a/sfx2/source/dialog/tabdlg.cxx b/sfx2/source/dialog/tabdlg.cxx
index 8a69523c0e8d..d7b75e2667fa 100644
--- a/sfx2/source/dialog/tabdlg.cxx
+++ b/sfx2/source/dialog/tabdlg.cxx
@@ -174,6 +174,8 @@ void SfxTabPage::Reset( const SfxItemSet* )
 {
 }
 
+bool SfxTabPage::DeferResetToFirstActivation() { return false; }
+
 void SfxTabPage::ActivatePage( const SfxItemSet& )
 /*  [Description]
 
@@ -925,7 +927,10 @@ void SfxTabDialogController::CreatePages()
         pDataObject->xTabPage->SetUserData(sUserData);
 
         PageCreated(pDataObject->sId, *pDataObject->xTabPage);
-        pDataObject->xTabPage->Reset(m_pSet.get());
+        if (pDataObject->xTabPage->DeferResetToFirstActivation())
+            pDataObject->bRefresh = true; // Reset will be called in ActivatePageHdl
+        else
+            pDataObject->xTabPage->Reset(m_pSet.get());
     }
 }
 
diff --git a/sw/source/ui/fldui/flddb.cxx b/sw/source/ui/fldui/flddb.cxx
index 01b9065cd36e..7cdf4d73d4d4 100644
--- a/sw/source/ui/fldui/flddb.cxx
+++ b/sw/source/ui/fldui/flddb.cxx
@@ -182,6 +182,10 @@ void SwFieldDBPage::Reset(const SfxItemSet*)
     }
 }
 
+// SwFieldDBPage may ask for password to select current document's data source,
+// so only do that when activating the page, not when dialog is creating all pages
+bool SwFieldDBPage::DeferResetToFirstActivation() { return true; }
+
 bool SwFieldDBPage::FillItemSet(SfxItemSet* )
 {
     OUString sTableName;
diff --git a/sw/source/ui/fldui/flddb.hxx b/sw/source/ui/fldui/flddb.hxx
index e507fcb86ee0..b25c38699234 100644
--- a/sw/source/ui/fldui/flddb.hxx
+++ b/sw/source/ui/fldui/flddb.hxx
@@ -70,6 +70,7 @@ public:
 
     virtual bool        FillItemSet( SfxItemSet* rSet ) override;
     virtual void        Reset( const SfxItemSet* rSet ) override;
+    virtual bool        DeferResetToFirstActivation() override;
 
     virtual void        FillUserData() override;
     void                ActivateMailMergeAddress();


More information about the Libreoffice-commits mailing list