docmodel/source/theme/Theme.cxx               |   18 ++++--------------
 docmodel/source/uno/UnoTheme.cxx              |    2 +-
 include/docmodel/theme/Theme.hxx              |    8 ++++----
 oox/qa/unit/drawingml.cxx                     |    4 ++--
 oox/source/drawingml/themeelementscontext.cxx |    4 ++--
 oox/source/export/ThemeExport.cxx             |    4 ++--
 sd/qa/filter/eppt/eppt.cxx                    |    6 +++---
 sd/qa/unit/uiimpress.cxx                      |    4 ++--
 svx/source/dialog/ThemeDialog.cxx             |    2 +-
 svx/source/svdraw/svdmodel.cxx                |    4 ++--
 svx/source/svdraw/svdpage.cxx                 |    8 ++++----
 sw/qa/core/theme/ThemeTest.cxx                |    4 ++--
 sw/source/core/model/ThemeColorChanger.cxx    |   10 +++++-----
 sw/source/filter/xml/xmlfmte.cxx              |    2 +-
 xmloff/inc/XMLThemeContext.hxx                |    4 ++--
 xmloff/qa/unit/draw.cxx                       |    8 ++++----
 xmloff/qa/unit/text.cxx                       |    4 ++--
 xmloff/source/draw/sdxmlexp.cxx               |    2 +-
 xmloff/source/style/XMLThemeContext.cxx       |   12 ++++++------
 19 files changed, 50 insertions(+), 60 deletions(-)

New commits:
commit 8bafae3656f7a0a6b74bb0985403a96f9a3f61be
Author:     Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
AuthorDate: Wed May 3 22:58:47 2023 +0900
Commit:     Tomaž Vajngerl <qui...@gmail.com>
CommitDate: Tue May 9 08:25:53 2023 +0200

    change model::ColorSet to be stored in a shared_ptr in model::Theme
    
    Change-Id: Ic3067f1681c047cd944e64179c568f4e972e0c95
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151447
    Tested-by: Jenkins
    Reviewed-by: Tomaž Vajngerl <qui...@gmail.com>

diff --git a/docmodel/source/theme/Theme.cxx b/docmodel/source/theme/Theme.cxx
index b8fad072144a..d4095eeb3ebd 100644
--- a/docmodel/source/theme/Theme.cxx
+++ b/docmodel/source/theme/Theme.cxx
@@ -33,20 +33,11 @@ Theme::Theme(OUString const& rName)
 
 Theme::Theme(Theme const& rTheme)
     : maName(rTheme.maName)
-    , mpColorSet(new ColorSet(*rTheme.GetColorSet()))
+    , mpColorSet(new ColorSet(*rTheme.getColorSet()))
     , maFontScheme(rTheme.maFontScheme)
 {
 }
 
-void Theme::SetColorSet(std::unique_ptr<model::ColorSet> pColorSet)
-{
-    mpColorSet = std::move(pColorSet);
-}
-
-const model::ColorSet* Theme::GetColorSet() const { return mpColorSet.get(); }
-
-model::ColorSet* Theme::GetColorSet() { return mpColorSet.get(); }
-
 void Theme::SetName(const OUString& rName) { maName = rName; }
 
 const OUString& Theme::GetName() const { return maName; }
@@ -94,7 +85,7 @@ std::unique_ptr<Theme> Theme::FromAny(const uno::Any& rVal)
 {
     comphelper::SequenceAsHashMap aMap(rVal);
     std::unique_ptr<Theme> pTheme;
-    model::ColorSet* pColorSet = nullptr;
+    std::shared_ptr<model::ColorSet> pColorSet;
 
     auto it = aMap.find("Name");
     if (it != aMap.end())
@@ -109,9 +100,8 @@ std::unique_ptr<Theme> Theme::FromAny(const uno::Any& rVal)
     {
         OUString aName;
         it->second >>= aName;
-        auto pSet = std::make_unique<model::ColorSet>(aName);
-        pTheme->SetColorSet(std::move(pSet));
-        pColorSet = pTheme->GetColorSet();
+        pColorSet = std::make_shared<model::ColorSet>(aName);
+        pTheme->setColorSet(pColorSet);
     }
 
     it = aMap.find("ColorScheme");
diff --git a/docmodel/source/uno/UnoTheme.cxx b/docmodel/source/uno/UnoTheme.cxx
index 30d3f827fea2..a7eac05cbd9b 100644
--- a/docmodel/source/uno/UnoTheme.cxx
+++ b/docmodel/source/uno/UnoTheme.cxx
@@ -22,7 +22,7 @@ OUString UnoTheme::getName() { return mpTheme->GetName(); }
 css::uno::Sequence<sal_Int32> UnoTheme::getColorSet()
 {
     std::vector<sal_Int32> aColorScheme(12);
-    auto* pColorSet = mpTheme->GetColorSet();
+    auto pColorSet = mpTheme->getColorSet();
     if (pColorSet)
     {
         size_t i = 0;
diff --git a/include/docmodel/theme/Theme.hxx b/include/docmodel/theme/Theme.hxx
index 9a5c9fe6ed5a..4643f0d0b33a 100644
--- a/include/docmodel/theme/Theme.hxx
+++ b/include/docmodel/theme/Theme.hxx
@@ -158,7 +158,7 @@ class DOCMODEL_DLLPUBLIC Theme
 {
 private:
     OUString maName;
-    std::unique_ptr<model::ColorSet> mpColorSet;
+    std::shared_ptr<model::ColorSet> mpColorSet;
 
     FontScheme maFontScheme = FontScheme::getDefault();
     FormatScheme maFormatScheme;
@@ -176,9 +176,9 @@ public:
     FormatScheme const& getFormatScheme() const { return maFormatScheme; }
     FormatScheme& getFormatScheme() { return maFormatScheme; }
 
-    void SetColorSet(std::unique_ptr<ColorSet> pColorSet);
-    const ColorSet* GetColorSet() const;
-    ColorSet* GetColorSet();
+    void setColorSet(std::shared_ptr<model::ColorSet> const& pColorSet) { 
mpColorSet = pColorSet; }
+
+    std::shared_ptr<model::ColorSet> const& getColorSet() const { return 
mpColorSet; }
 
     void SetName(const OUString& rName);
     const OUString& GetName() const;
diff --git a/oox/qa/unit/drawingml.cxx b/oox/qa/unit/drawingml.cxx
index 8d5627a16cdc..14e9321562ee 100644
--- a/oox/qa/unit/drawingml.cxx
+++ b/oox/qa/unit/drawingml.cxx
@@ -400,10 +400,10 @@ CPPUNIT_TEST_FIXTURE(OoxDrawingmlTest, testPptxTheme)
     auto pTheme = pUnoTheme->getTheme();
 
     CPPUNIT_ASSERT_EQUAL(OUString("Office Theme"), pTheme->GetName());
-    CPPUNIT_ASSERT_EQUAL(OUString("Office"), pTheme->GetColorSet()->getName());
+    CPPUNIT_ASSERT_EQUAL(OUString("Office"), pTheme->getColorSet()->getName());
 
     CPPUNIT_ASSERT_EQUAL(Color(0x954F72),
-                         
pTheme->GetColorSet()->getColor(model::ThemeColorType::FollowedHyperlink));
+                         
pTheme->getColorSet()->getColor(model::ThemeColorType::FollowedHyperlink));
 
     // Check the reference to that theme:
     uno::Reference<drawing::XShapes> xDrawPageShapes(xDrawPage, 
uno::UNO_QUERY);
diff --git a/oox/source/drawingml/themeelementscontext.cxx 
b/oox/source/drawingml/themeelementscontext.cxx
index c0b8eaed4d78..bdc752b98512 100644
--- a/oox/source/drawingml/themeelementscontext.cxx
+++ b/oox/source/drawingml/themeelementscontext.cxx
@@ -327,10 +327,10 @@ ContextHandlerRef 
ThemeElementsContext::onCreateContext(sal_Int32 nElement, cons
         case A_TOKEN( clrScheme ):  // CT_ColorScheme
         {
             OUString aColorSchemeName = rAttribs.getStringDefaulted(XML_name);
-            
mrTheme.SetColorSet(std::make_unique<model::ColorSet>(aColorSchemeName));
+            
mrTheme.setColorSet(std::make_shared<model::ColorSet>(aColorSchemeName));
             if (rAttribs.hasAttribute(XML_name))
                 
mrOoxTheme.getClrScheme().SetName(rAttribs.getStringDefaulted(XML_name));
-            return new clrSchemeContext(*this, mrOoxTheme.getClrScheme(), 
*mrTheme.GetColorSet());
+            return new clrSchemeContext(*this, mrOoxTheme.getClrScheme(), 
*mrTheme.getColorSet());
         }
         case A_TOKEN( fontScheme ): // CT_FontScheme
         {
diff --git a/oox/source/export/ThemeExport.cxx 
b/oox/source/export/ThemeExport.cxx
index cd944ed1a7ea..511647ee1fc3 100644
--- a/oox/source/export/ThemeExport.cxx
+++ b/oox/source/export/ThemeExport.cxx
@@ -53,7 +53,7 @@ void ThemeExport::write(OUString const& rPath, model::Theme 
const& rTheme)
 
     mpFS->startElementNS(XML_a, XML_themeElements);
 
-    const model::ColorSet* pColorSet = rTheme.GetColorSet();
+    const auto pColorSet = rTheme.getColorSet();
 
     mpFS->startElementNS(XML_a, XML_clrScheme, XML_name, pColorSet->getName());
     writeColorSet(rTheme);
@@ -859,7 +859,7 @@ bool ThemeExport::writeColorSet(model::Theme const& rTheme)
         = { XML_dk1,     XML_lt1,     XML_dk2,     XML_lt2,     XML_accent1, 
XML_accent2,
             XML_accent3, XML_accent4, XML_accent5, XML_accent6, XML_hlink,   
XML_folHlink };
 
-    const model::ColorSet* pColorSet = rTheme.GetColorSet();
+    const auto pColorSet = rTheme.getColorSet();
     if (!pColorSet)
         return false;
 
diff --git a/sd/qa/filter/eppt/eppt.cxx b/sd/qa/filter/eppt/eppt.cxx
index f5420a637751..08e83053ed2f 100644
--- a/sd/qa/filter/eppt/eppt.cxx
+++ b/sd/qa/filter/eppt/eppt.cxx
@@ -65,7 +65,7 @@ CPPUNIT_TEST_FIXTURE(Test, testThemeExport)
         uno::Reference<beans::XPropertySet> 
xMasterPage(xDrawPage->getMasterPage(), uno::UNO_QUERY);
 
         auto pTheme = std::make_shared<model::Theme>("mytheme");
-        std::unique_ptr<model::ColorSet> pColorSet(new 
model::ColorSet("mycolorscheme"));
+        auto pColorSet = std::make_shared<model::ColorSet>("mycolorscheme");
         pColorSet->add(model::ThemeColorType::Dark1, 0x111111);
         pColorSet->add(model::ThemeColorType::Light1, 0x222222);
         pColorSet->add(model::ThemeColorType::Dark2, 0x333333);
@@ -78,7 +78,7 @@ CPPUNIT_TEST_FIXTURE(Test, testThemeExport)
         pColorSet->add(model::ThemeColorType::Accent6, 0xaaaaaa);
         pColorSet->add(model::ThemeColorType::Hyperlink, 0xbbbbbb);
         pColorSet->add(model::ThemeColorType::FollowedHyperlink, 0xcccccc);
-        pTheme->SetColorSet(std::move(pColorSet));
+        pTheme->setColorSet(pColorSet);
 
         xMasterPage->setPropertyValue("Theme", 
uno::Any(model::theme::createXTheme(pTheme)));
     }
@@ -105,7 +105,7 @@ CPPUNIT_TEST_FIXTURE(Test, testThemeExport)
         auto pTheme = pUnoTheme->getTheme();
 
         CPPUNIT_ASSERT_EQUAL(OUString("mytheme"), pTheme->GetName());
-        CPPUNIT_ASSERT_EQUAL(OUString("mycolorscheme"), 
pTheme->GetColorSet()->getName());
+        CPPUNIT_ASSERT_EQUAL(OUString("mycolorscheme"), 
pTheme->getColorSet()->getName());
         CPPUNIT_ASSERT_EQUAL(OUString("Office"), 
pTheme->getFontScheme().getName());
         CPPUNIT_ASSERT_EQUAL(OUString(""), 
pTheme->getFormatScheme().getName());
     }
diff --git a/sd/qa/unit/uiimpress.cxx b/sd/qa/unit/uiimpress.cxx
index 09845d3e6cc2..00bbd65ef69e 100644
--- a/sd/qa/unit/uiimpress.cxx
+++ b/sd/qa/unit/uiimpress.cxx
@@ -1158,7 +1158,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, 
testThemeShapeInsert)
                                                     uno::UNO_QUERY);
 
     auto pTheme = std::make_shared<model::Theme>("mytheme");
-    std::unique_ptr<model::ColorSet> pColorSet(new 
model::ColorSet("mycolorscheme"));
+    auto pColorSet = std::make_shared<model::ColorSet>("mycolorscheme");
     pColorSet->add(model::ThemeColorType::Dark1, 0x0);
     pColorSet->add(model::ThemeColorType::Light1, 0x1);
     pColorSet->add(model::ThemeColorType::Dark2, 0x2);
@@ -1171,7 +1171,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, 
testThemeShapeInsert)
     pColorSet->add(model::ThemeColorType::Accent6, 0x9);
     pColorSet->add(model::ThemeColorType::Hyperlink, 0xa);
     pColorSet->add(model::ThemeColorType::FollowedHyperlink, 0xb);
-    pTheme->SetColorSet(std::move(pColorSet));
+    pTheme->setColorSet(pColorSet);
 
     xMasterPage->setPropertyValue("Theme", 
uno::Any(model::theme::createXTheme(pTheme)));
 
diff --git a/svx/source/dialog/ThemeDialog.cxx 
b/svx/source/dialog/ThemeDialog.cxx
index 01f88fa036ed..68e2eceeee1c 100644
--- a/svx/source/dialog/ThemeDialog.cxx
+++ b/svx/source/dialog/ThemeDialog.cxx
@@ -50,7 +50,7 @@ ThemeDialog::~ThemeDialog() = default;
 void ThemeDialog::initColorSets()
 {
     if (mpTheme)
-        maColorSets.push_back(*mpTheme->GetColorSet());
+        maColorSets.push_back(*mpTheme->getColorSet());
 
     auto const& rColorSetVector = ColorSets::get().getColorSetVector();
     maColorSets.insert(maColorSets.end(), rColorSetVector.begin(), 
rColorSetVector.end());
diff --git a/svx/source/svdraw/svdmodel.cxx b/svx/source/svdraw/svdmodel.cxx
index 7bf82ca9747f..82c9a92fa503 100644
--- a/svx/source/svdraw/svdmodel.cxx
+++ b/svx/source/svdraw/svdmodel.cxx
@@ -105,8 +105,8 @@ struct SdrModelImpl
         auto const* pColorSet = 
svx::ColorSets::get().getColorSet(u"LibreOffice");
         if (pColorSet)
         {
-            std::unique_ptr<model::ColorSet> pDefaultColorSet(new 
model::ColorSet(*pColorSet));
-            mpTheme->SetColorSet(std::move(pDefaultColorSet));
+            std::shared_ptr<model::ColorSet> pDefaultColorSet(new 
model::ColorSet(*pColorSet));
+            mpTheme->setColorSet(pDefaultColorSet);
         }
     }
 };
diff --git a/svx/source/svdraw/svdpage.cxx b/svx/source/svdraw/svdpage.cxx
index 351278cf789c..ac3bb93f81f3 100644
--- a/svx/source/svdraw/svdpage.cxx
+++ b/svx/source/svdraw/svdpage.cxx
@@ -1224,8 +1224,8 @@ SdrPageProperties::SdrPageProperties(SdrPage& rSdrPage)
         auto const* pColorSet = 
svx::ColorSets::get().getColorSet(u"LibreOffice");
         if (pColorSet)
         {
-            std::unique_ptr<model::ColorSet> pDefaultColorSet(new 
model::ColorSet(*pColorSet));
-            mpTheme->SetColorSet(std::move(pDefaultColorSet));
+            std::shared_ptr<model::ColorSet> pDefaultColorSet(new 
model::ColorSet(*pColorSet));
+            mpTheme->setColorSet(pDefaultColorSet);
         }
     }
 }
@@ -1300,7 +1300,7 @@ void 
SdrPageProperties::SetTheme(std::shared_ptr<model::Theme> const& pTheme)
 {
     mpTheme = pTheme;
 
-    if (mpTheme && mpTheme->GetColorSet() && mpSdrPage->IsMasterPage())
+    if (mpTheme && mpTheme->getColorSet() && mpSdrPage->IsMasterPage())
     {
         SdrModel& rModel = mpSdrPage->getSdrModelFromSdrPage();
         sal_uInt16 nPageCount = rModel.GetPageCount();
@@ -1313,7 +1313,7 @@ void 
SdrPageProperties::SetTheme(std::shared_ptr<model::Theme> const& pTheme)
             }
 
             svx::ThemeColorChanger aChanger(pPage);
-            aChanger.apply(*mpTheme->GetColorSet());
+            aChanger.apply(*mpTheme->getColorSet());
         }
     }
 }
diff --git a/sw/qa/core/theme/ThemeTest.cxx b/sw/qa/core/theme/ThemeTest.cxx
index 169854ec3535..0802994aead6 100644
--- a/sw/qa/core/theme/ThemeTest.cxx
+++ b/sw/qa/core/theme/ThemeTest.cxx
@@ -329,7 +329,7 @@ CPPUNIT_TEST_FIXTURE(SwCoreThemeTest, 
testDrawPageThemeExistsDOCX)
     CPPUNIT_ASSERT(pTheme);
     CPPUNIT_ASSERT_EQUAL(OUString(u"Office Theme"), pTheme->GetName());
 
-    model::ColorSet* pColorSet = pTheme->GetColorSet();
+    auto pColorSet = pTheme->getColorSet();
     CPPUNIT_ASSERT(pColorSet);
     CPPUNIT_ASSERT_EQUAL(OUString(u"Orange"), pColorSet->getName());
 
@@ -376,7 +376,7 @@ CPPUNIT_TEST_FIXTURE(SwCoreThemeTest, 
testDrawPageThemeExistsODT)
     CPPUNIT_ASSERT(pTheme);
     CPPUNIT_ASSERT_EQUAL(OUString(u"Office Theme"), pTheme->GetName());
 
-    model::ColorSet* pColorSet = pTheme->GetColorSet();
+    auto pColorSet = pTheme->getColorSet();
     CPPUNIT_ASSERT(pColorSet);
     CPPUNIT_ASSERT_EQUAL(OUString(u"Orange"), pColorSet->getName());
 
diff --git a/sw/source/core/model/ThemeColorChanger.cxx 
b/sw/source/core/model/ThemeColorChanger.cxx
index 6e230969b692..6c70e4bb2cd5 100644
--- a/sw/source/core/model/ThemeColorChanger.cxx
+++ b/sw/source/core/model/ThemeColorChanger.cxx
@@ -154,16 +154,16 @@ void ThemeColorChanger::apply(model::ColorSet const& 
rColorSet)
     pDocument->GetIDocumentUndoRedo().StartUndo(SwUndoId::EMPTY, nullptr);
 
     SdrPage* pPage = 
pDocument->getIDocumentDrawModelAccess().GetDrawModel()->GetPage(0);
-    model::Theme* pTheme = pPage->getSdrPageProperties().GetTheme().get();
+    auto pTheme = pPage->getSdrPageProperties().GetTheme();
     if (pTheme)
     {
-        pTheme->SetColorSet(std::make_unique<model::ColorSet>(rColorSet));
+        pTheme->setColorSet(std::make_shared<model::ColorSet>(rColorSet));
     }
     else
     {
-        
pPage->getSdrPageProperties().SetTheme(std::make_unique<model::Theme>("Office"));
-        pTheme = pPage->getSdrPageProperties().GetTheme().get();
-        pTheme->SetColorSet(std::make_unique<model::ColorSet>(rColorSet));
+        pTheme = std::make_shared<model::Theme>("Office");
+        pPage->getSdrPageProperties().SetTheme(pTheme);
+        pTheme->setColorSet(std::make_shared<model::ColorSet>(rColorSet));
     }
 
     SfxStyleSheetBasePool* pPool = mpDocSh->GetStyleSheetPool();
diff --git a/sw/source/filter/xml/xmlfmte.cxx b/sw/source/filter/xml/xmlfmte.cxx
index b219071a77e5..6d13af48fc98 100644
--- a/sw/source/filter/xml/xmlfmte.cxx
+++ b/sw/source/filter/xml/xmlfmte.cxx
@@ -213,7 +213,7 @@ void SwXMLExport::ExportThemeElement(const 
uno::Reference<drawing::XDrawPage>& x
         AddAttribute(XML_NAMESPACE_LO_EXT, XML_NAME, pTheme->GetName());
     SvXMLElementExport aTheme(*this, XML_NAMESPACE_LO_EXT, XML_THEME, true, 
true);
 
-    auto* pColorSet = pTheme->GetColorSet();
+    auto pColorSet = pTheme->getColorSet();
     if (!pColorSet->getName().isEmpty())
         AddAttribute(XML_NAMESPACE_LO_EXT, XML_NAME, pColorSet->getName());
     SvXMLElementExport aColorTable(*this, XML_NAMESPACE_LO_EXT, 
XML_COLOR_TABLE, true, true);
diff --git a/xmloff/inc/XMLThemeContext.hxx b/xmloff/inc/XMLThemeContext.hxx
index b85932d4cb41..a270d58bec99 100644
--- a/xmloff/inc/XMLThemeContext.hxx
+++ b/xmloff/inc/XMLThemeContext.hxx
@@ -42,7 +42,7 @@ public:
 class XMLColorTableContext : public SvXMLImportContext
 {
     model::Theme& mrTheme;
-    std::unique_ptr<model::ColorSet> mpColorSet;
+    std::shared_ptr<model::ColorSet> m_pColorSet;
     std::vector<css::util::Color> m_aColorScheme;
 
 public:
@@ -62,7 +62,7 @@ class XMLColorContext : public SvXMLImportContext
 public:
     XMLColorContext(SvXMLImport& rImport,
                     css::uno::Reference<css::xml::sax::XFastAttributeList> 
const& xAttrList,
-                    std::unique_ptr<model::ColorSet>& rpColorSet);
+                    std::shared_ptr<model::ColorSet>& rpColorSet);
 };
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/qa/unit/draw.cxx b/xmloff/qa/unit/draw.cxx
index 5162aea003dd..e412a13c2833 100644
--- a/xmloff/qa/unit/draw.cxx
+++ b/xmloff/qa/unit/draw.cxx
@@ -127,7 +127,7 @@ CPPUNIT_TEST_FIXTURE(XmloffDrawTest, testThemeExport)
     uno::Reference<beans::XPropertySet> 
xMasterPage(xDrawPage->getMasterPage(), uno::UNO_QUERY);
 
     auto pTheme = std::make_shared<model::Theme>("mytheme");
-    std::unique_ptr<model::ColorSet> pColorSet(new 
model::ColorSet("mycolorscheme"));
+    auto pColorSet = std::make_shared<model::ColorSet>("mycolorscheme");
     pColorSet->add(model::ThemeColorType::Dark1, 0x0);
     pColorSet->add(model::ThemeColorType::Light1, 0x1);
     pColorSet->add(model::ThemeColorType::Dark2, 0x2);
@@ -140,7 +140,7 @@ CPPUNIT_TEST_FIXTURE(XmloffDrawTest, testThemeExport)
     pColorSet->add(model::ThemeColorType::Accent6, 0x9);
     pColorSet->add(model::ThemeColorType::Hyperlink, 0xa);
     pColorSet->add(model::ThemeColorType::FollowedHyperlink, 0xb);
-    pTheme->SetColorSet(std::move(pColorSet));
+    pTheme->setColorSet(pColorSet);
 
     uno::Reference<util::XTheme> xTheme = model::theme::createXTheme(pTheme);
     xMasterPage->setPropertyValue("Theme", uno::Any(xTheme));
@@ -223,10 +223,10 @@ CPPUNIT_TEST_FIXTURE(XmloffDrawTest, testThemeImport)
     CPPUNIT_ASSERT(pTheme);
 
     CPPUNIT_ASSERT_EQUAL(OUString("Office Theme"), pTheme->GetName());
-    CPPUNIT_ASSERT_EQUAL(OUString("Office"), pTheme->GetColorSet()->getName());
+    CPPUNIT_ASSERT_EQUAL(OUString("Office"), pTheme->getColorSet()->getName());
 
     CPPUNIT_ASSERT_EQUAL(Color(0x954F72),
-                         
pTheme->GetColorSet()->getColor(model::ThemeColorType::FollowedHyperlink));
+                         
pTheme->getColorSet()->getColor(model::ThemeColorType::FollowedHyperlink));
 }
 
 CPPUNIT_TEST_FIXTURE(XmloffDrawTest, testThemeColorExportImport)
diff --git a/xmloff/qa/unit/text.cxx b/xmloff/qa/unit/text.cxx
index c70600340183..68a314289151 100644
--- a/xmloff/qa/unit/text.cxx
+++ b/xmloff/qa/unit/text.cxx
@@ -961,7 +961,7 @@ CPPUNIT_TEST_FIXTURE(XmloffStyleTest, testThemeExport)
     uno::Reference<beans::XPropertySet> xPageProps(xDrawPage, uno::UNO_QUERY);
 
     auto pTheme = std::make_shared<model::Theme>("My Theme");
-    std::unique_ptr<model::ColorSet> pColorSet(new model::ColorSet("My Color 
Scheme"));
+    auto pColorSet = std::make_shared<model::ColorSet>("My Color Scheme");
     pColorSet->add(model::ThemeColorType::Dark1, 0x101010);
     pColorSet->add(model::ThemeColorType::Light1, 0x202020);
     pColorSet->add(model::ThemeColorType::Dark2, 0x303030);
@@ -974,7 +974,7 @@ CPPUNIT_TEST_FIXTURE(XmloffStyleTest, testThemeExport)
     pColorSet->add(model::ThemeColorType::Accent6, 0xa0a0a0);
     pColorSet->add(model::ThemeColorType::Hyperlink, 0xb0b0b0);
     pColorSet->add(model::ThemeColorType::FollowedHyperlink, 0xc0c0c0);
-    pTheme->SetColorSet(std::move(pColorSet));
+    pTheme->setColorSet(pColorSet);
 
     uno::Reference<util::XTheme> xTheme = model::theme::createXTheme(pTheme);
     xPageProps->setPropertyValue("Theme", uno::Any(xTheme));
diff --git a/xmloff/source/draw/sdxmlexp.cxx b/xmloff/source/draw/sdxmlexp.cxx
index 2786eb28313e..5a07d78ce249 100644
--- a/xmloff/source/draw/sdxmlexp.cxx
+++ b/xmloff/source/draw/sdxmlexp.cxx
@@ -2388,7 +2388,7 @@ void SdXMLExport::ExportThemeElement(const 
uno::Reference<drawing::XDrawPage>& x
         AddAttribute(XML_NAMESPACE_LO_EXT, XML_NAME, pTheme->GetName());
     SvXMLElementExport aTheme(*this, XML_NAMESPACE_LO_EXT, XML_THEME, true, 
true);
 
-    auto* pColorSet = pTheme->GetColorSet();
+    auto pColorSet = pTheme->getColorSet();
     if (!pColorSet->getName().isEmpty())
         AddAttribute(XML_NAMESPACE_LO_EXT, XML_NAME, pColorSet->getName());
     SvXMLElementExport aColorTable(*this, XML_NAMESPACE_LO_EXT, 
XML_COLOR_TABLE, true, true);
diff --git a/xmloff/source/style/XMLThemeContext.cxx 
b/xmloff/source/style/XMLThemeContext.cxx
index e35aed99c46f..b123cae89561 100644
--- a/xmloff/source/style/XMLThemeContext.cxx
+++ b/xmloff/source/style/XMLThemeContext.cxx
@@ -83,7 +83,7 @@ XMLColorTableContext::XMLColorTableContext(
             case XML_ELEMENT(LO_EXT, XML_NAME):
             {
                 OUString aName = rAttribute.toString();
-                mpColorSet.reset(new model::ColorSet(aName));
+                m_pColorSet.reset(new model::ColorSet(aName));
                 break;
             }
         }
@@ -92,8 +92,8 @@ XMLColorTableContext::XMLColorTableContext(
 
 XMLColorTableContext::~XMLColorTableContext()
 {
-    if (mpColorSet)
-        mrTheme.SetColorSet(std::move(mpColorSet));
+    if (m_pColorSet)
+        mrTheme.setColorSet(m_pColorSet);
 }
 
 uno::Reference<xml::sax::XFastContextHandler> SAL_CALL 
XMLColorTableContext::createFastChildContext(
@@ -101,8 +101,8 @@ uno::Reference<xml::sax::XFastContextHandler> SAL_CALL 
XMLColorTableContext::cre
 {
     if (nElement == XML_ELEMENT(LO_EXT, XML_COLOR))
     {
-        if (mpColorSet)
-            return new XMLColorContext(GetImport(), xAttribs, mpColorSet);
+        if (m_pColorSet)
+            return new XMLColorContext(GetImport(), xAttribs, m_pColorSet);
     }
 
     return nullptr;
@@ -110,7 +110,7 @@ uno::Reference<xml::sax::XFastContextHandler> SAL_CALL 
XMLColorTableContext::cre
 
 XMLColorContext::XMLColorContext(SvXMLImport& rImport,
                                  const 
uno::Reference<xml::sax::XFastAttributeList>& xAttrList,
-                                 std::unique_ptr<model::ColorSet>& rpColorSet)
+                                 std::shared_ptr<model::ColorSet>& rpColorSet)
     : SvXMLImportContext(rImport)
 {
     OUString aName;

Reply via email to