include/svx/gallery1.hxx                              |    8 +++----
 include/svx/gallerybinaryengineentry.hxx              |   20 ++++++++++++------
 svx/qa/unit/gallery/test_gallery.cxx                  |    2 -
 svx/source/gallery2/gallery1.cxx                      |   10 +++------
 svx/source/gallery2/gallerybinaryengineentry.cxx      |   18 +++++++++++++---
 svx/source/gallery2/gallerybinarystoragelocations.cxx |   10 ++++-----
 svx/source/gallery2/galtheme.cxx                      |    2 -
 7 files changed, 44 insertions(+), 26 deletions(-)

New commits:
commit 0e3b72ac75d9f9c70fe6e74e83a43ffa2635c777
Author:     Aditya <adityasahu1...@gmail.com>
AuthorDate: Fri Aug 28 20:39:41 2020 +0530
Commit:     Tomaž Vajngerl <qui...@gmail.com>
CommitDate: Sun Sep 6 12:44:41 2020 +0200

    svx refactoring: Remove GalleryStorageLocations from GalleryThemeEntry
    
    Change-Id: I3955a66b7ec4f463264dbb5db6209bbb667bf2b8
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101557
    Tested-by: Jenkins
    Reviewed-by: Tomaž Vajngerl <qui...@gmail.com>

diff --git a/include/svx/gallery1.hxx b/include/svx/gallery1.hxx
index 81d22ac1e5ae..36f25a292877 100644
--- a/include/svx/gallery1.hxx
+++ b/include/svx/gallery1.hxx
@@ -39,7 +39,6 @@ class GalleryThemeEntry
 private:
 
     std::unique_ptr<GalleryBinaryEngineEntry>     mpGalleryStorageEngineEntry;
-    std::unique_ptr<GalleryStorageLocations>      mpGalleryStorageLocations;
     OUString                aName;
     sal_uInt32              nId;
     bool                    bReadOnly;
@@ -53,11 +52,10 @@ public:
                                                bool bReadOnly, bool bNewFile,
                                                sal_uInt32 nId, bool 
bThemeNameFromResource );
 
-    std::unique_ptr<GalleryBinaryEngineEntry> 
createGalleryStorageEngineEntry();
+    static std::unique_ptr<GalleryBinaryEngineEntry> 
createGalleryStorageEngineEntry();
     const std::unique_ptr<GalleryBinaryEngineEntry>& 
getGalleryStorageEngineEntry() const { return mpGalleryStorageEngineEntry; }
 
-    static std::unique_ptr<GalleryStorageLocations> 
createGalleryStorageLocations();
-    const std::unique_ptr<GalleryStorageLocations>& 
getGalleryStorageLocations() const { return mpGalleryStorageLocations; }
+    GalleryStorageLocations& getGalleryStorageLocations() const { return 
*mpGalleryStorageEngineEntry->getGalleryStorageLocations(); }
 
     const OUString&         GetThemeName() const { return aName; }
 
@@ -79,6 +77,8 @@ public:
     void removeTheme();
 
     std::unique_ptr<GalleryTheme> getCachedTheme(Gallery* pGallery) const;
+
+    void setStorageLocations(INetURLObject& rURL);
 };
 
 class SfxListener;
diff --git a/include/svx/gallerybinaryengineentry.hxx 
b/include/svx/gallerybinaryengineentry.hxx
index 8039661e4dec..b0f8d7a447b3 100644
--- a/include/svx/gallerybinaryengineentry.hxx
+++ b/include/svx/gallerybinaryengineentry.hxx
@@ -32,24 +32,32 @@ class GalleryBinaryStorageLocations;
 class GalleryBinaryEngineEntry : public GalleryFileStorageEntry
 {
 private:
-    GalleryBinaryStorageLocations& m_rGalleryStorageLocations;
+    std::unique_ptr<GalleryBinaryStorageLocations> mpGalleryStorageLocations;
 
 public:
-    GalleryBinaryEngineEntry(GalleryBinaryStorageLocations& 
rGalleryStorageLocations);
+    GalleryBinaryEngineEntry();
     static void CreateUniqueURL(const INetURLObject& rBaseURL, INetURLObject& 
aURL);
 
     OUString ReadStrFromIni(const OUString& aKeyName);
 
-    const INetURLObject& GetThmURL() const { return 
m_rGalleryStorageLocations.GetThmURL(); }
-    const INetURLObject& GetSdgURL() const { return 
m_rGalleryStorageLocations.GetSdgURL(); }
-    const INetURLObject& GetSdvURL() const { return 
m_rGalleryStorageLocations.GetSdvURL(); }
-    const INetURLObject& GetStrURL() const { return 
m_rGalleryStorageLocations.GetStrURL(); }
+    const INetURLObject& GetThmURL() const { return 
mpGalleryStorageLocations->GetThmURL(); }
+    const INetURLObject& GetSdgURL() const { return 
mpGalleryStorageLocations->GetSdgURL(); }
+    const INetURLObject& GetSdvURL() const { return 
mpGalleryStorageLocations->GetSdvURL(); }
+    const INetURLObject& GetStrURL() const { return 
mpGalleryStorageLocations->GetStrURL(); }
+
+    static std::unique_ptr<GalleryBinaryStorageLocations> 
createGalleryStorageLocations();
+    const std::unique_ptr<GalleryBinaryStorageLocations>& 
getGalleryStorageLocations() const
+    {
+        return mpGalleryStorageLocations;
+    }
 
     static GalleryThemeEntry* CreateThemeEntry(const INetURLObject& rURL, bool 
bReadOnly);
 
     void removeTheme();
 
     std::unique_ptr<GalleryTheme>& 
getCachedTheme(std::unique_ptr<GalleryTheme>& pNewTheme);
+
+    void setStorageLocations(INetURLObject& rURL);
 };
 
 SvStream& ReadGalleryTheme(SvStream& rIn, GalleryTheme& rTheme);
diff --git a/svx/qa/unit/gallery/test_gallery.cxx 
b/svx/qa/unit/gallery/test_gallery.cxx
index 83ccf600ed36..d9ae9150ceb1 100644
--- a/svx/qa/unit/gallery/test_gallery.cxx
+++ b/svx/qa/unit/gallery/test_gallery.cxx
@@ -258,7 +258,7 @@ void GalleryObjTest::TestGalleryThemeEntry()
 
     // Check URLs
     GalleryBinaryStorageLocations& aGalleryBinaryStorageLocations
-        = 
dynamic_cast<GalleryBinaryStorageLocations&>(*mpThemeEntry->getGalleryStorageLocations());
+        = 
dynamic_cast<GalleryBinaryStorageLocations&>(mpThemeEntry->getGalleryStorageLocations());
     INetURLObject aURL(aGalleryURL);
     aURL.Append(myThemeName);
     INetURLObject aThemeURL(aURL), aSdvURL(aURL), aSdgURL(aURL), aStrURL(aURL);
diff --git a/svx/source/gallery2/gallery1.cxx b/svx/source/gallery2/gallery1.cxx
index aaa6b47ed918..d0a2da1836d7 100644
--- a/svx/source/gallery2/gallery1.cxx
+++ b/svx/source/gallery2/gallery1.cxx
@@ -122,9 +122,8 @@ GalleryThemeEntry::GalleryThemeEntry( bool bCreateUniqueURL,
     {
         GalleryBinaryEngineEntry::CreateUniqueURL(rBaseURL,aURL);
     }
-    mpGalleryStorageLocations = createGalleryStorageLocations();
     mpGalleryStorageEngineEntry = createGalleryStorageEngineEntry();
-    mpGalleryStorageLocations->SetStorageLocations(aURL);
+    setStorageLocations(aURL);
 
     SetModified( _bNewFile );
 
@@ -164,14 +163,13 @@ GalleryThemeEntry::GalleryThemeEntry( bool 
bCreateUniqueURL,
 
 std::unique_ptr<GalleryBinaryEngineEntry> 
GalleryThemeEntry::createGalleryStorageEngineEntry()
 {
-    std::unique_ptr<GalleryBinaryEngineEntry> pGalleryBinaryEngineEntry = 
std::make_unique<GalleryBinaryEngineEntry>(dynamic_cast<GalleryBinaryStorageLocations&>(*mpGalleryStorageLocations));
+    std::unique_ptr<GalleryBinaryEngineEntry> pGalleryBinaryEngineEntry = 
std::make_unique<GalleryBinaryEngineEntry>();
     return pGalleryBinaryEngineEntry;
 }
 
-std::unique_ptr<GalleryStorageLocations> 
GalleryThemeEntry::createGalleryStorageLocations()
+void GalleryThemeEntry::setStorageLocations(INetURLObject& rURL)
 {
-    std::unique_ptr<GalleryStorageLocations> pGalleryStorageLocations = 
std::make_unique<GalleryBinaryStorageLocations>();
-    return pGalleryStorageLocations;
+    mpGalleryStorageEngineEntry->setStorageLocations(rURL);
 }
 
 void GalleryTheme::InsertAllThemes(weld::ComboBox& rListBox)
diff --git a/svx/source/gallery2/gallerybinaryengineentry.cxx 
b/svx/source/gallery2/gallerybinaryengineentry.cxx
index 1d669576dc98..5c7c81fb5790 100644
--- a/svx/source/gallery2/gallerybinaryengineentry.cxx
+++ b/svx/source/gallery2/gallerybinaryengineentry.cxx
@@ -41,10 +41,22 @@ static bool FileExists(const INetURLObject& rURL, const 
OUString& rExt)
     return FileExists(aURL);
 }
 
-GalleryBinaryEngineEntry::GalleryBinaryEngineEntry(
-    GalleryBinaryStorageLocations& rGalleryStorageLocations)
-    : m_rGalleryStorageLocations(rGalleryStorageLocations)
+GalleryBinaryEngineEntry::GalleryBinaryEngineEntry()
 {
+    mpGalleryStorageLocations = createGalleryStorageLocations();
+}
+
+std::unique_ptr<GalleryBinaryStorageLocations>
+GalleryBinaryEngineEntry::createGalleryStorageLocations()
+{
+    std::unique_ptr<GalleryBinaryStorageLocations> pGalleryStorageLocations
+        = std::make_unique<GalleryBinaryStorageLocations>();
+    return pGalleryStorageLocations;
+}
+
+void GalleryBinaryEngineEntry::setStorageLocations(INetURLObject& rURL)
+{
+    mpGalleryStorageLocations->SetStorageLocations(rURL);
 }
 
 void GalleryBinaryEngineEntry::CreateUniqueURL(const INetURLObject& rBaseURL, 
INetURLObject& aURL)
diff --git a/svx/source/gallery2/gallerybinarystoragelocations.cxx 
b/svx/source/gallery2/gallerybinarystoragelocations.cxx
index cefb79d543a9..e8aaf88b1fee 100644
--- a/svx/source/gallery2/gallerybinarystoragelocations.cxx
+++ b/svx/source/gallery2/gallerybinarystoragelocations.cxx
@@ -64,12 +64,12 @@ void 
GalleryBinaryStorageLocations::SetStrExtension(INetURLObject& aURL)
     maStrURL = ImplGetURLIgnoreCase(aURL);
 }
 
-void GalleryBinaryStorageLocations::SetStorageLocations(INetURLObject& aURL)
+void GalleryBinaryStorageLocations::SetStorageLocations(INetURLObject& rURL)
 {
-    SetThmExtension(aURL);
-    SetSdgExtension(aURL);
-    SetSdvExtension(aURL);
-    SetStrExtension(aURL);
+    SetThmExtension(rURL);
+    SetSdgExtension(rURL);
+    SetSdvExtension(rURL);
+    SetStrExtension(rURL);
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/gallery2/galtheme.cxx b/svx/source/gallery2/galtheme.cxx
index c0fb25b430ce..69a09b84c2ee 100644
--- a/svx/source/gallery2/galtheme.cxx
+++ b/svx/source/gallery2/galtheme.cxx
@@ -96,7 +96,7 @@ void GalleryTheme::SetDestDir(const OUString& rDestDir, bool 
bRelative)
 
 std::unique_ptr<GalleryBinaryEngine> 
GalleryTheme::createGalleryStorageEngine(bool bReadOnly)
 {
-    std::unique_ptr<GalleryBinaryEngine> pGalleryBinaryEngine = 
std::make_unique<GalleryBinaryEngine>(dynamic_cast<GalleryBinaryStorageLocations&>(*pThm->getGalleryStorageLocations()),
 maGalleryObjectCollection, bReadOnly);
+    std::unique_ptr<GalleryBinaryEngine> pGalleryBinaryEngine = 
std::make_unique<GalleryBinaryEngine>(dynamic_cast<GalleryBinaryStorageLocations&>(pThm->getGalleryStorageLocations()),
 maGalleryObjectCollection, bReadOnly);
     return pGalleryBinaryEngine;
 }
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to