bin/find-can-be-private-symbols.functions.results           |    1 
 bin/find-mergedlib-can-be-private-symbols.functions.results |    1 
 compilerplugins/clang/unusedenumconstants.writeonly.results |    2 
 cui/inc/pch/precompiled_cui.hxx                             |    1 
 include/sfx2/dinfdlg.hxx                                    |    5 
 include/svl/custritm.hxx                                    |   63 ----------
 include/svl/poolitem.hxx                                    |    1 
 include/svl/stritem.hxx                                     |   38 ++++--
 include/svx/xit.hxx                                         |    3 
 reportdesign/inc/pch/precompiled_rptui.hxx                  |    1 
 solenv/clang-format/excludelist                             |    2 
 solenv/vs/LibreOffice.natvis                                |    2 
 svl/Library_svl.mk                                          |    1 
 svl/source/items/custritm.cxx                               |   71 ------------
 svl/source/items/poolitem.cxx                               |   49 ++++----
 svl/source/items/stritem.cxx                                |   42 +++++++
 sw/inc/paratr.hxx                                           |    3 
 sw/inc/pch/precompiled_msword.hxx                           |    1 
 sw/inc/pch/precompiled_vbaswobj.hxx                         |    1 
 19 files changed, 106 insertions(+), 182 deletions(-)

New commits:
commit 58f45fdf1968b6605e55fa36c3cbd250b332ae95
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Thu Aug 15 10:48:27 2024 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Thu Aug 15 16:07:17 2024 +0200

    make SfxStringItem hashable
    
    which shaves some time off loading complex files.
    
    Note that this class is often used as a superclass, so I checked all of
    the subclasses and marked some of them as "does not support hashing"
    until they can be independently verified to be safe
    
    Change-Id: Id4187eda8d6145e89e17dc10c2e3113b7a93da85
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171891
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/include/sfx2/dinfdlg.hxx b/include/sfx2/dinfdlg.hxx
index b541c67c8336..303b06c0c4cb 100644
--- a/include/sfx2/dinfdlg.hxx
+++ b/include/sfx2/dinfdlg.hxx
@@ -173,7 +173,10 @@ public:
 
     void        SetCmisProperties(const css::uno::Sequence< 
css::document::CmisProperty >& cmisProps );
     virtual SfxDocumentInfoItem* Clone( SfxItemPool* pPool = nullptr ) const 
override;
-    virtual bool            operator==( const SfxPoolItem& ) const override;
+    virtual bool        operator==( const SfxPoolItem& ) const override;
+    // Marked as false since the SfxStringItem superclass supports hashing, but
+    // this class has not been checked for safety under hashing yet.
+    virtual bool        supportsHashCode() const override { return false; }
     virtual bool        QueryValue( css::uno::Any& rVal, sal_uInt8 nMemberId = 
0 ) const override;
     virtual bool        PutValue( const css::uno::Any& rVal, sal_uInt8 
nMemberId ) override;
 };
diff --git a/include/svl/stritem.hxx b/include/svl/stritem.hxx
index 270a6cdde41a..977f4bddc7b0 100644
--- a/include/svl/stritem.hxx
+++ b/include/svl/stritem.hxx
@@ -36,6 +36,10 @@ public:
         SfxPoolItem(which, eItemType), m_aValue(rValue) {}
 
     virtual bool operator ==(const SfxPoolItem & rItem) const override;
+    // Note that all the subclasses are currently marked as false since we 
haven't check them to
+    // be safe under hashing
+    virtual bool supportsHashCode() const override { return true; }
+    virtual size_t hashCode() const override { return m_aValue.hashCode(); }
 
     virtual bool GetPresentation(SfxItemPresentation,
                                  MapUnit, MapUnit,
diff --git a/include/svx/xit.hxx b/include/svx/xit.hxx
index 7fd0fbd09327..67f4a7433349 100644
--- a/include/svx/xit.hxx
+++ b/include/svx/xit.hxx
@@ -49,6 +49,9 @@ public:
 
     virtual bool         operator==(const SfxPoolItem& rItem) const override;
     virtual NameOrIndex* Clone(SfxItemPool* pPool = nullptr) const override;
+    // Marked as false since the SfxStringItem superclass supports hashing, but
+    // this class has not been checked for safety under hashing yet.
+    virtual bool         supportsHashCode() const override { return false; }
 
             OUString const & GetName() const              { return GetValue(); 
  }
             void         SetName(const OUString& rName) { SetValue(rName);     
}
diff --git a/svl/source/items/stritem.cxx b/svl/source/items/stritem.cxx
index a384e23a2ee8..0c6b8be1763d 100644
--- a/svl/source/items/stritem.cxx
+++ b/svl/source/items/stritem.cxx
@@ -49,7 +49,7 @@ bool SfxStringItem::PutValue(const css::uno::Any& rVal,
         m_aValue = aTheValue;
         return true;
     }
-    OSL_FAIL("CntUnencodedStringItem::PutValue(): Wrong type");
+    OSL_FAIL("SfxStringItem::PutValue(): Wrong type");
     return false;
 }
 
diff --git a/sw/inc/paratr.hxx b/sw/inc/paratr.hxx
index 3a8fd5d03674..5c8d93b49b76 100644
--- a/sw/inc/paratr.hxx
+++ b/sw/inc/paratr.hxx
@@ -166,6 +166,9 @@ public:
     /// "pure virtual methods" of SfxPoolItem
     virtual bool            operator==( const SfxPoolItem& ) const override;
     virtual SwNumRuleItem*  Clone( SfxItemPool *pPool = nullptr ) const 
override;
+    // Marked as false since the SfxStringItem superclass supports hashing, but
+    // this class has not been checked for safety under hashing yet.
+    virtual bool            supportsHashCode() const override { return false; }
     virtual bool GetPresentation( SfxItemPresentation ePres,
                                   MapUnit eCoreMetric,
                                   MapUnit ePresMetric,
commit fb282d552f5a8ecd89c6fd845a6db116d8362114
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Thu Aug 15 10:24:28 2024 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Thu Aug 15 16:07:05 2024 +0200

    merge CntUnencodedStringItem into SfxStringItem
    
    which simplifies the hierarhcy.
    We never allocate such a thing, we always allocate subclasses, and it
    has no real meaning by itself.
    
    Change-Id: Ie6b716c9ea6ca0efe0ae4f39ac345608c45534f4
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171890
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/bin/find-can-be-private-symbols.functions.results 
b/bin/find-can-be-private-symbols.functions.results
index 332b99ad4cd3..7572709eeb6c 100644
--- a/bin/find-can-be-private-symbols.functions.results
+++ b/bin/find-can-be-private-symbols.functions.results
@@ -116,7 +116,6 @@ CntByteItem::Clone(SfxItemPool*) const
 CntInt32Item::Clone(SfxItemPool*) const
 CntUInt16Item::Clone(SfxItemPool*) const
 CntUInt32Item::Clone(SfxItemPool*) const
-CntUnencodedStringItem::Clone(SfxItemPool*) const
 CodeCompleteDataCache::Clear()
 CodeCompleteDataCache::InsertGlobalVar(rtl::OUString const&, rtl::OUString 
const&)
 CodeCompleteDataCache::InsertLocalVar(rtl::OUString const&, rtl::OUString 
const&, rtl::OUString const&)
diff --git a/bin/find-mergedlib-can-be-private-symbols.functions.results 
b/bin/find-mergedlib-can-be-private-symbols.functions.results
index 24eeb5a85d5e..0fa7ff44a5a7 100644
--- a/bin/find-mergedlib-can-be-private-symbols.functions.results
+++ b/bin/find-mergedlib-can-be-private-symbols.functions.results
@@ -229,7 +229,6 @@ CntByteItem::GetPresentation(SfxItemPresentation, MapUnit, 
MapUnit, rtl::OUStrin
 CntInt32Item::Clone(SfxItemPool*) const
 CntUInt16Item::Clone(SfxItemPool*) const
 CntUInt32Item::Clone(SfxItemPool*) const
-CntUnencodedStringItem::Clone(SfxItemPool*) const
 CodeCompleteOptions::CodeCompleteOptions()
 CodeCompleteOptions::IsAutoCloseParenthesisOn()
 CodeCompleteOptions::IsAutoCloseQuotesOn()
diff --git a/compilerplugins/clang/unusedenumconstants.writeonly.results 
b/compilerplugins/clang/unusedenumconstants.writeonly.results
index 5b7f62f259a9..f950b0ba18aa 100644
--- a/compilerplugins/clang/unusedenumconstants.writeonly.results
+++ b/compilerplugins/clang/unusedenumconstants.writeonly.results
@@ -2508,8 +2508,6 @@ include/svl/poolitem.hxx:113
     enum SfxItemType CntUInt16ItemType
 include/svl/poolitem.hxx:114
     enum SfxItemType CntUInt32ItemType
-include/svl/poolitem.hxx:115
-    enum SfxItemType CntUnencodedStringItemType
 include/svl/poolitem.hxx:116
     enum SfxItemType DatabaseMapItemType
 include/svl/poolitem.hxx:117
diff --git a/cui/inc/pch/precompiled_cui.hxx b/cui/inc/pch/precompiled_cui.hxx
index 3655744b08fa..2ff025d34f49 100644
--- a/cui/inc/pch/precompiled_cui.hxx
+++ b/cui/inc/pch/precompiled_cui.hxx
@@ -345,7 +345,6 @@
 #include <sot/sotdllapi.h>
 #include <svl/SfxBroadcaster.hxx>
 #include <svl/cjkoptions.hxx>
-#include <svl/custritm.hxx>
 #include <svl/eitem.hxx>
 #include <svl/hint.hxx>
 #include <svl/intitem.hxx>
diff --git a/include/svl/custritm.hxx b/include/svl/custritm.hxx
deleted file mode 100644
index 118fd0963f15..000000000000
--- a/include/svl/custritm.hxx
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef INCLUDED_SVL_CUSTRITM_HXX
-#define INCLUDED_SVL_CUSTRITM_HXX
-
-#include <svl/svldllapi.h>
-#include <svl/poolitem.hxx>
-#include <cassert>
-#include <utility>
-
-class SVL_DLLPUBLIC CntUnencodedStringItem: public SfxPoolItem
-{
-    OUString m_aValue;
-
-public:
-
-    CntUnencodedStringItem(sal_uInt16 which, SfxItemType eItemType = 
SfxItemType::CntUnencodedStringItemType)
-        : SfxPoolItem(which, eItemType)
-    {}
-
-    CntUnencodedStringItem(sal_uInt16 which, OUString aTheValue, SfxItemType 
eItemType = SfxItemType::CntUnencodedStringItemType):
-        SfxPoolItem(which, eItemType), m_aValue(std::move(aTheValue))
-    {}
-
-    virtual bool operator ==(const SfxPoolItem & rItem) const override;
-
-    virtual bool GetPresentation(SfxItemPresentation,
-                                 MapUnit, MapUnit,
-                                 OUString & rText,
-                                 const IntlWrapper&) const override;
-
-    virtual bool QueryValue(css::uno::Any& rVal,
-                            sal_uInt8 nMemberId = 0) const override;
-
-    virtual bool PutValue(const css::uno::Any& rVal, sal_uInt8 nMemberId) 
override;
-
-    virtual CntUnencodedStringItem* Clone(SfxItemPool * = nullptr) const 
override;
-
-    const OUString & GetValue() const { return m_aValue; }
-
-    void SetValue(const OUString & rTheValue) { ASSERT_CHANGE_REFCOUNTED_ITEM; 
m_aValue = rTheValue; }
-};
-
-#endif // INCLUDED_SVL_CUSTRITM_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/svl/poolitem.hxx b/include/svl/poolitem.hxx
index 8e86d43dae6f..83963b19f7d0 100644
--- a/include/svl/poolitem.hxx
+++ b/include/svl/poolitem.hxx
@@ -111,7 +111,6 @@ enum class SfxItemType : sal_uInt16 {
     CntInt32ItemType,
     CntUInt16ItemType,
     CntUInt32ItemType,
-    CntUnencodedStringItemType,
     DatabaseMapItemType,
     DbuTypeCollectionItemType,
     DriverPoolingSettingsItemType,
diff --git a/include/svl/stritem.hxx b/include/svl/stritem.hxx
index 1b788c05bdf5..270a6cdde41a 100644
--- a/include/svl/stritem.hxx
+++ b/include/svl/stritem.hxx
@@ -16,31 +16,47 @@
  *   except in compliance with the License. You may obtain a copy of
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
-
-#ifndef INCLUDED_SVL_STRITEM_HXX
-#define INCLUDED_SVL_STRITEM_HXX
+#pragma once
 
 #include <svl/svldllapi.h>
-#include <svl/custritm.hxx>
+#include <svl/poolitem.hxx>
+#include <cassert>
+#include <utility>
 
 
-class SVL_DLLPUBLIC SfxStringItem: public CntUnencodedStringItem
+class SVL_DLLPUBLIC SfxStringItem: public SfxPoolItem
 {
 public:
     static SfxPoolItem* CreateDefault();
 
     SfxStringItem(sal_uInt16 which = 0, SfxItemType eItemType = 
SfxItemType::SfxStringItemType)
-        : CntUnencodedStringItem(which, eItemType) {}
+        : SfxPoolItem(which, eItemType) {}
 
     SfxStringItem(sal_uInt16 which, const OUString & rValue, SfxItemType 
eItemType = SfxItemType::SfxStringItemType):
-        CntUnencodedStringItem(which, rValue, eItemType) {}
+        SfxPoolItem(which, eItemType), m_aValue(rValue) {}
+
+    virtual bool operator ==(const SfxPoolItem & rItem) const override;
+
+    virtual bool GetPresentation(SfxItemPresentation,
+                                 MapUnit, MapUnit,
+                                 OUString & rText,
+                                 const IntlWrapper&) const override;
+
+    virtual bool QueryValue(css::uno::Any& rVal,
+                            sal_uInt8 nMemberId = 0) const override;
+
+    virtual bool PutValue(const css::uno::Any& rVal, sal_uInt8 nMemberId) 
override;
 
     virtual SfxStringItem* Clone(SfxItemPool * = nullptr) const override;
 
     void dumpAsXml(xmlTextWriterPtr pWriter) const override;
 
-};
+    const OUString & GetValue() const { return m_aValue; }
 
-#endif // INCLUDED_SVL_STRITEM_HXX
+    void SetValue(const OUString & rTheValue) { ASSERT_CHANGE_REFCOUNTED_ITEM; 
m_aValue = rTheValue; }
+
+private:
+    OUString m_aValue;
+};
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/reportdesign/inc/pch/precompiled_rptui.hxx 
b/reportdesign/inc/pch/precompiled_rptui.hxx
index 908dfa9cf4f9..5a0d42225883 100644
--- a/reportdesign/inc/pch/precompiled_rptui.hxx
+++ b/reportdesign/inc/pch/precompiled_rptui.hxx
@@ -371,7 +371,6 @@
 #include <svl/SfxBroadcaster.hxx>
 #include <svl/cenumitm.hxx>
 #include <svl/cintitem.hxx>
-#include <svl/custritm.hxx>
 #include <svl/eitem.hxx>
 #include <svl/hint.hxx>
 #include <svl/intitem.hxx>
diff --git a/solenv/clang-format/excludelist b/solenv/clang-format/excludelist
index 983c48ece4a0..c806227c28f3 100644
--- a/solenv/clang-format/excludelist
+++ b/solenv/clang-format/excludelist
@@ -5613,7 +5613,6 @@ include/svl/cenumitm.hxx
 include/svl/cintitem.hxx
 include/svl/cryptosign.hxx
 include/svl/ctloptions.hxx
-include/svl/custritm.hxx
 include/svl/documentlockfile.hxx
 include/svl/eitem.hxx
 include/svl/filenotation.hxx
@@ -10978,7 +10977,6 @@ svl/source/items/IndexedStyleSheets.cxx
 svl/source/items/aeitem.cxx
 svl/source/items/cenumitm.cxx
 svl/source/items/cintitem.cxx
-svl/source/items/custritm.cxx
 svl/source/items/flagitem.cxx
 svl/source/items/globalnameitem.cxx
 svl/source/items/ilstitem.cxx
diff --git a/solenv/vs/LibreOffice.natvis b/solenv/vs/LibreOffice.natvis
index 8cfedffb93de..6d7eae1a5d04 100644
--- a/solenv/vs/LibreOffice.natvis
+++ b/solenv/vs/LibreOffice.natvis
@@ -336,7 +336,7 @@
   <Type Name="SfxEnumItem &lt; * &gt;">
     <DisplayString>{{which={m_nWhich,x}}} {m_nValue}</DisplayString>
   </Type>
-  <Type Name="CntUnencodedStringItem">
+  <Type Name="SfxStringItem">
     <DisplayString>{{which={m_nWhich,x}}} {m_aValue}</DisplayString>
   </Type>
   <Type Name="SfxUnoAnyItem">
diff --git a/svl/Library_svl.mk b/svl/Library_svl.mk
index d848c2bde516..afb64aca110d 100644
--- a/svl/Library_svl.mk
+++ b/svl/Library_svl.mk
@@ -116,7 +116,6 @@ $(eval $(call gb_Library_add_exception_objects,svl,\
     svl/source/filepicker/pickerhistory \
     svl/source/items/cenumitm \
     svl/source/items/cintitem \
-    svl/source/items/custritm \
     svl/source/items/flagitem \
     svl/source/items/globalnameitem \
     svl/source/items/globalpool \
diff --git a/svl/source/items/custritm.cxx b/svl/source/items/custritm.cxx
deleted file mode 100644
index e814662ec77c..000000000000
--- a/svl/source/items/custritm.cxx
+++ /dev/null
@@ -1,71 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#include <com/sun/star/uno/Any.hxx>
-
-#include <osl/diagnose.h>
-#include <unotools/intlwrapper.hxx>
-#include <svl/custritm.hxx>
-
-// virtual
-bool CntUnencodedStringItem::operator ==(const SfxPoolItem & rItem) const
-{
-    assert(SfxPoolItem::operator==(rItem));
-    return m_aValue
-            == static_cast< const CntUnencodedStringItem * >(&rItem)->
-                m_aValue;
-}
-
-// virtual
-bool CntUnencodedStringItem::GetPresentation(SfxItemPresentation, MapUnit,
-                                        MapUnit, OUString & rText,
-                                        const IntlWrapper&) const
-{
-    rText = m_aValue;
-    return true;
-}
-
-// virtual
-bool CntUnencodedStringItem::QueryValue(css::uno::Any& rVal, sal_uInt8) const
-{
-    rVal <<= m_aValue;
-    return true;
-}
-
-// virtual
-bool CntUnencodedStringItem::PutValue(const css::uno::Any& rVal,
-                                         sal_uInt8)
-{
-    OUString aTheValue;
-    if (rVal >>= aTheValue)
-    {
-        m_aValue = aTheValue;
-        return true;
-    }
-    OSL_FAIL("CntUnencodedStringItem::PutValue(): Wrong type");
-    return false;
-}
-
-// virtual
-CntUnencodedStringItem* CntUnencodedStringItem::Clone(SfxItemPool *) const
-{
-    return new CntUnencodedStringItem(*this);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svl/source/items/poolitem.cxx b/svl/source/items/poolitem.cxx
index dd628225a7d8..d453c38897c7 100644
--- a/svl/source/items/poolitem.cxx
+++ b/svl/source/items/poolitem.cxx
@@ -229,31 +229,30 @@
 //        class SvxRsidItem : public SfxUInt32Item
 //        class SdrGrafGamma100Item : public SfxUInt32Item
 //        class SwTableBoxNumFormat : public SfxUInt32Item
-//class CntUnencodedStringItem: public SfxPoolItem
-//    class SfxStringItem: public CntUnencodedStringItem
-//        class SvxPageModelItem : public SfxStringItem
-//        class SfxDocumentInfoItem : public SfxStringItem
-//        class SvxPostItAuthorItem: public SfxStringItem
-//        class SvxPostItDateItem: public SfxStringItem
-//        class SvxPostItTextItem: public SfxStringItem
-//        class SvxPostItIdItem: public SfxStringItem
-//        class SdrMeasureFormatStringItem: public SfxStringItem
-//        class NameOrIndex : public SfxStringItem
-//            class XFillBitmapItem : public NameOrIndex
-//            class XColorItem : public NameOrIndex
-//                class XFillColorItem : public XColorItem
-//                class XFormTextShadowColorItem : public XColorItem
-//                class XLineColorItem : public XColorItem
-//                class XSecondaryFillColorItem : public XColorItem
-//            class XFillGradientItem : public NameOrIndex
-//                class XFillFloatTransparenceItem : public XFillGradientItem
-//            class XFillHatchItem : public NameOrIndex
-//            class XLineDashItem : public NameOrIndex
-//            class XLineEndItem : public NameOrIndex
-//            class XLineStartItem : public NameOrIndex
-//        class SfxScriptOrganizerItem : public SfxStringItem
-//        class SdrLayerNameItem: public SfxStringItem
-//        class SwNumRuleItem : public SfxStringItem
+//class SfxStringItem: public SfxPoolItem
+//    class SvxPageModelItem : public SfxStringItem
+//    class SfxDocumentInfoItem : public SfxStringItem
+//    class SvxPostItAuthorItem: public SfxStringItem
+//    class SvxPostItDateItem: public SfxStringItem
+//    class SvxPostItTextItem: public SfxStringItem
+//    class SvxPostItIdItem: public SfxStringItem
+//    class SdrMeasureFormatStringItem: public SfxStringItem
+//    class NameOrIndex : public SfxStringItem
+//        class XFillBitmapItem : public NameOrIndex
+//        class XColorItem : public NameOrIndex
+//            class XFillColorItem : public XColorItem
+//            class XFormTextShadowColorItem : public XColorItem
+//            class XLineColorItem : public XColorItem
+//            class XSecondaryFillColorItem : public XColorItem
+//        class XFillGradientItem : public NameOrIndex
+//            class XFillFloatTransparenceItem : public XFillGradientItem
+//        class XFillHatchItem : public NameOrIndex
+//        class XLineDashItem : public NameOrIndex
+//        class XLineEndItem : public NameOrIndex
+//        class XLineStartItem : public NameOrIndex
+//    class SfxScriptOrganizerItem : public SfxStringItem
+//    class SdrLayerNameItem: public SfxStringItem
+//    class SwNumRuleItem : public SfxStringItem
 //class SfxBoolItem    : public SfxPoolItem
 //    class SvxAutoKernItem : public SfxBoolItem
 //    class SvxBlinkItem : public SfxBoolItem
diff --git a/svl/source/items/stritem.cxx b/svl/source/items/stritem.cxx
index c0ec01a9aba4..a384e23a2ee8 100644
--- a/svl/source/items/stritem.cxx
+++ b/svl/source/items/stritem.cxx
@@ -19,6 +19,48 @@
 
 #include <svl/stritem.hxx>
 #include <libxml/xmlwriter.h>
+#include <com/sun/star/uno/Any.hxx>
+#include <osl/diagnose.h>
+#include <unotools/intlwrapper.hxx>
+
+// virtual
+bool SfxStringItem::GetPresentation(SfxItemPresentation, MapUnit,
+                                        MapUnit, OUString & rText,
+                                        const IntlWrapper&) const
+{
+    rText = m_aValue;
+    return true;
+}
+
+// virtual
+bool SfxStringItem::QueryValue(css::uno::Any& rVal, sal_uInt8) const
+{
+    rVal <<= m_aValue;
+    return true;
+}
+
+// virtual
+bool SfxStringItem::PutValue(const css::uno::Any& rVal,
+                                         sal_uInt8)
+{
+    OUString aTheValue;
+    if (rVal >>= aTheValue)
+    {
+        m_aValue = aTheValue;
+        return true;
+    }
+    OSL_FAIL("CntUnencodedStringItem::PutValue(): Wrong type");
+    return false;
+}
+
+// virtual
+bool SfxStringItem::operator ==(const SfxPoolItem & rItem) const
+{
+    assert(SfxPoolItem::operator==(rItem));
+    return m_aValue
+            == static_cast< const SfxStringItem * >(&rItem)->
+                m_aValue;
+}
 
 // virtual
 SfxStringItem* SfxStringItem::Clone(SfxItemPool *) const
diff --git a/sw/inc/pch/precompiled_msword.hxx 
b/sw/inc/pch/precompiled_msword.hxx
index a6385c4be84b..d0e555fb70bc 100644
--- a/sw/inc/pch/precompiled_msword.hxx
+++ b/sw/inc/pch/precompiled_msword.hxx
@@ -434,7 +434,6 @@
 #include <svl/broadcast.hxx>
 #include <svl/cenumitm.hxx>
 #include <svl/cintitem.hxx>
-#include <svl/custritm.hxx>
 #include <svl/eitem.hxx>
 #include <svl/grabbagitem.hxx>
 #include <svl/hint.hxx>
diff --git a/sw/inc/pch/precompiled_vbaswobj.hxx 
b/sw/inc/pch/precompiled_vbaswobj.hxx
index c6e0bb176da7..88ac8570d5fe 100644
--- a/sw/inc/pch/precompiled_vbaswobj.hxx
+++ b/sw/inc/pch/precompiled_vbaswobj.hxx
@@ -309,7 +309,6 @@
 #include <svl/broadcast.hxx>
 #include <svl/cenumitm.hxx>
 #include <svl/cintitem.hxx>
-#include <svl/custritm.hxx>
 #include <svl/eitem.hxx>
 #include <svl/hint.hxx>
 #include <svl/intitem.hxx>

Reply via email to