Kaydet (Commit) f6ec6672 authored tarafından Kohei Yoshida's avatar Kohei Yoshida

Add methods to extract string IDs from edit text object.

Note that a single edit text object may have multiple string ID's in case
it consists of multiple paragraphs.

Change-Id: Ie90541de38a639c30a010817dada389e9445d08c
üst 4aa41167
......@@ -154,6 +154,16 @@ void ContentInfo::NormalizeString( svl::StringPool& rPool )
aText = OUString(rPool.intern(aText));
}
sal_uIntPtr ContentInfo::GetStringID( const svl::StringPool& rPool ) const
{
return rPool.getIdentifier(aText);
}
sal_uIntPtr ContentInfo::GetStringIDIgnoreCase( const svl::StringPool& rPool ) const
{
return rPool.getIdentifierIgnoreCase(aText);
}
const WrongList* ContentInfo::GetWrongList() const
{
return mpWrongs.get();
......@@ -327,6 +337,16 @@ void EditTextObject::NormalizeString( svl::StringPool& rPool )
mpImpl->NormalizeString(rPool);
}
bool EditTextObject::GetStringIDs( const svl::StringPool& rPool, std::vector<sal_uIntPtr>& rIDs ) const
{
return mpImpl->GetStringIDs(rPool, rIDs);
}
bool EditTextObject::GetStringIDsIgnoreCase( const svl::StringPool& rPool, std::vector<sal_uIntPtr>& rIDs ) const
{
return mpImpl->GetStringIDsIgnoreCase(rPool, rIDs);
}
const SfxItemPool* EditTextObject::GetPool() const
{
return mpImpl->GetPool();
......@@ -623,6 +643,44 @@ void EditTextObjectImpl::NormalizeString( svl::StringPool& rPool )
}
}
bool EditTextObjectImpl::GetStringIDs( const svl::StringPool& rPool, std::vector<sal_uIntPtr>& rIDs ) const
{
std::vector<sal_uIntPtr> aIDs;
aIDs.reserve(aContents.size());
ContentInfosType::const_iterator it = aContents.begin(), itEnd = aContents.end();
for (; it != itEnd; ++it)
{
const ContentInfo& rInfo = *it;
sal_uIntPtr nID = rInfo.GetStringID(rPool);
if (!nID)
return false;
aIDs.push_back(nID);
}
rIDs.swap(aIDs);
return true;
}
bool EditTextObjectImpl::GetStringIDsIgnoreCase( const svl::StringPool& rPool, std::vector<sal_uIntPtr>& rIDs ) const
{
std::vector<sal_uIntPtr> aIDs;
aIDs.reserve(aContents.size());
ContentInfosType::const_iterator it = aContents.begin(), itEnd = aContents.end();
for (; it != itEnd; ++it)
{
const ContentInfo& rInfo = *it;
sal_uIntPtr nID = rInfo.GetStringIDIgnoreCase(rPool);
if (!nID)
return false;
aIDs.push_back(nID);
}
rIDs.swap(aIDs);
return true;
}
bool EditTextObjectImpl::IsVertical() const
{
return bVertical;
......
......@@ -143,6 +143,8 @@ public:
~ContentInfo();
void NormalizeString( svl::StringPool& rPool );
sal_uIntPtr GetStringID( const svl::StringPool& rPool ) const;
sal_uIntPtr GetStringIDIgnoreCase( const svl::StringPool& rPool ) const;
const XEditAttributesType& GetAttribs() const { return aAttribs; }
XEditAttributesType& GetAttribs() { return aAttribs; }
......@@ -207,6 +209,8 @@ public:
void SetUserType( sal_uInt16 n );
void NormalizeString( svl::StringPool& rPool );
bool GetStringIDs( const svl::StringPool& rPool, std::vector<sal_uIntPtr>& rIDs ) const;
bool GetStringIDsIgnoreCase( const svl::StringPool& rPool, std::vector<sal_uIntPtr>& rIDs ) const;
bool IsVertical() const;
void SetVertical( bool b );
......
......@@ -85,6 +85,9 @@ public:
*/
void NormalizeString( svl::StringPool& rPool );
bool GetStringIDs( const svl::StringPool& rPool, std::vector<sal_uIntPtr>& rIDs ) const;
bool GetStringIDsIgnoreCase( const svl::StringPool& rPool, std::vector<sal_uIntPtr>& rIDs ) const;
const SfxItemPool* GetPool() const;
sal_uInt16 GetUserType() const; // For OutlinerMode, it can however not save in compatible format
void SetUserType( sal_uInt16 n );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment