diff options
author | Eike Rathke <erack@redhat.com> | 2013-07-25 15:33:49 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2013-07-25 16:11:09 +0200 |
commit | 1ecdc7aaf661e97a33cf521f553481d79cd26de2 (patch) | |
tree | 34811d2f9f17691c749622ff61a42b79f1da15d5 /sc/inc/editutil.hxx | |
parent | bb98778dbf761a0c88c96117add00a66e5cc6c95 (diff) |
resolved fdo#67249 use ScFieldEditEngine to resolve field content
ScEditUtil::GetString() iterated over the paragraphs of an
EditTextObject where GetText() does not resolve field content but
returns the embedded field markers. To resolve field content an
ScFieldEditEngine is needed.
This makes it necessary to pass an ScDocument* to obtain the
ScFieldEditEngine from, or for cases where there is no ScDocument in the
context use a static ScFieldEditEngine which unfortunately is not
capable of resolving document specific fields of course, such as
DOCINFO_TITLE and TABLE.
Also added unit test.
Change-Id: Ife3c23b2fec2514b32303239d276c49869786eb5
Diffstat (limited to 'sc/inc/editutil.hxx')
-rw-r--r-- | sc/inc/editutil.hxx | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/sc/inc/editutil.hxx b/sc/inc/editutil.hxx index 10bec821b00a..88a42e8696da 100644 --- a/sc/inc/editutil.hxx +++ b/sc/inc/editutil.hxx @@ -54,12 +54,19 @@ public: static OUString ModifyDelimiters( const OUString& rOld ); /// Retrieves string with paragraphs delimited by spaces - static String GetSpaceDelimitedString( const EditEngine& rEngine ); + static OUString GetSpaceDelimitedString( const EditEngine& rEngine ); /// Retrieves string with paragraphs delimited by new lines ('\n'). - static String GetMultilineString( const EditEngine& rEngine ); + static OUString GetMultilineString( const EditEngine& rEngine ); - SC_DLLPUBLIC static OUString GetString( const EditTextObject& rEditText ); + /** Retrieves string with paragraphs delimited by new lines ('\n'). + + @param pDoc + If not NULL, use pDoc->GetEditEngine() to retrieve field content. + If NULL, a static mutex-guarded ScFieldEditEngine is used that + is not capable of resolving document specific fields; avoid. + */ + SC_DLLPUBLIC static OUString GetString( const EditTextObject& rEditText, const ScDocument* pDoc ); static EditTextObject* CreateURLObjectFromURL( ScDocument& rDoc, const OUString& rURL, const OUString& rText ); |