[Libreoffice-commits] core.git: comphelper/source editeng/source include/comphelper

Arnaud Versini arnaud.versini at gmail.com
Sun Mar 25 10:57:42 UTC 2018


 comphelper/source/misc/accessibletexthelper.cxx             |   61 +++++-------
 editeng/source/accessibility/AccessibleEditableTextPara.cxx |    8 -
 include/comphelper/accessibletexthelper.hxx                 |    8 -
 3 files changed, 36 insertions(+), 41 deletions(-)

New commits:
commit dd5df4ccb33048fa5fa8f85b2e6e69a6a225be57
Author: Arnaud Versini <arnaud.versini at gmail.com>
Date:   Sun Mar 18 20:25:25 2018 +0100

    accessibility: simplify OCommonAccessibleText
    
    Change-Id: Ied5520179d15f0a854c16b14f5a5e6b84cef1300
    Reviewed-on: https://gerrit.libreoffice.org/51514
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Arnaud Versini <arnaud.versini at libreoffice.org>

diff --git a/comphelper/source/misc/accessibletexthelper.cxx b/comphelper/source/misc/accessibletexthelper.cxx
index 9f1cccea85ba..202be72977af 100644
--- a/comphelper/source/misc/accessibletexthelper.cxx
+++ b/comphelper/source/misc/accessibletexthelper.cxx
@@ -96,21 +96,19 @@ namespace comphelper
     }
 
 
-    void OCommonAccessibleText::implGetGlyphBoundary( i18n::Boundary& rBoundary, sal_Int32 nIndex )
+    void OCommonAccessibleText::implGetGlyphBoundary( const OUString& rText, i18n::Boundary& rBoundary, sal_Int32 nIndex )
     {
-        OUString sText( implGetText() );
-
-        if ( implIsValidIndex( nIndex, sText.getLength() ) )
+        if ( implIsValidIndex( nIndex, rText.getLength() ) )
         {
             Reference < i18n::XBreakIterator > xBreakIter = implGetBreakIterator();
             if ( xBreakIter.is() )
             {
                 sal_Int32 nCount = 1;
                 sal_Int32 nDone;
-                sal_Int32 nStartIndex = xBreakIter->previousCharacters( sText, nIndex, implGetLocale(), i18n::CharacterIteratorMode::SKIPCELL, nCount, nDone );
+                sal_Int32 nStartIndex = xBreakIter->previousCharacters( rText, nIndex, implGetLocale(), i18n::CharacterIteratorMode::SKIPCELL, nCount, nDone );
                 if ( nDone != 0 )
-                    nStartIndex = xBreakIter->nextCharacters( sText, nStartIndex, implGetLocale(), i18n::CharacterIteratorMode::SKIPCELL, nCount, nDone );
-                sal_Int32 nEndIndex = xBreakIter->nextCharacters( sText, nStartIndex, implGetLocale(), i18n::CharacterIteratorMode::SKIPCELL, nCount, nDone );
+                    nStartIndex = xBreakIter->nextCharacters( rText, nStartIndex, implGetLocale(), i18n::CharacterIteratorMode::SKIPCELL, nCount, nDone );
+                sal_Int32 nEndIndex = xBreakIter->nextCharacters( rText, nStartIndex, implGetLocale(), i18n::CharacterIteratorMode::SKIPCELL, nCount, nDone );
                 if ( nDone != 0 )
                 {
                     rBoundary.startPos = nStartIndex;
@@ -126,23 +124,22 @@ namespace comphelper
     }
 
 
-    bool OCommonAccessibleText::implGetWordBoundary( i18n::Boundary& rBoundary, sal_Int32 nIndex )
+    bool OCommonAccessibleText::implGetWordBoundary( const OUString& rText, i18n::Boundary& rBoundary, sal_Int32 nIndex )
     {
         bool bWord = false;
-        OUString sText( implGetText() );
 
-        if ( implIsValidIndex( nIndex, sText.getLength() ) )
+        if ( implIsValidIndex( nIndex, rText.getLength() ) )
         {
             Reference < i18n::XBreakIterator > xBreakIter = implGetBreakIterator();
             if ( xBreakIter.is() )
             {
-                rBoundary = xBreakIter->getWordBoundary( sText, nIndex, implGetLocale(), i18n::WordType::ANY_WORD, true );
+                rBoundary = xBreakIter->getWordBoundary( rText, nIndex, implGetLocale(), i18n::WordType::ANY_WORD, true );
 
                 // it's a word, if the first character is an alpha-numeric character
                 Reference< i18n::XCharacterClassification > xCharClass = implGetCharacterClassification();
                 if ( xCharClass.is() )
                 {
-                    sal_Int32 nType = xCharClass->getCharacterType( sText, rBoundary.startPos, implGetLocale() );
+                    sal_Int32 nType = xCharClass->getCharacterType( rText, rBoundary.startPos, implGetLocale() );
                     if ( ( nType & ( i18n::KCharacterType::LETTER | i18n::KCharacterType::DIGIT ) ) != 0 )
                         bWord = true;
                 }
@@ -158,18 +155,16 @@ namespace comphelper
     }
 
 
-    void OCommonAccessibleText::implGetSentenceBoundary( i18n::Boundary& rBoundary, sal_Int32 nIndex )
+    void OCommonAccessibleText::implGetSentenceBoundary( const OUString& rText, i18n::Boundary& rBoundary, sal_Int32 nIndex )
     {
-        OUString sText( implGetText() );
-
-        if ( implIsValidIndex( nIndex, sText.getLength() ) )
+        if ( implIsValidIndex( nIndex, rText.getLength() ) )
         {
             Locale aLocale = implGetLocale();
             Reference < i18n::XBreakIterator > xBreakIter = implGetBreakIterator();
             if ( xBreakIter.is() )
             {
-                rBoundary.endPos = xBreakIter->endOfSentence( sText, nIndex, aLocale );
-                rBoundary.startPos = xBreakIter->beginOfSentence( sText, rBoundary.endPos, aLocale );
+                rBoundary.endPos = xBreakIter->endOfSentence( rText, nIndex, aLocale );
+                rBoundary.startPos = xBreakIter->beginOfSentence( rText, rBoundary.endPos, aLocale );
             }
         }
         else
@@ -313,7 +308,7 @@ namespace comphelper
             case AccessibleTextType::GLYPH:
             {
                 // get glyph at index
-                implGetGlyphBoundary( aBoundary, nIndex );
+                implGetGlyphBoundary( sText, aBoundary, nIndex );
                 if ( implIsValidBoundary( aBoundary, nLength ) )
                 {
                     aResult.SegmentText = sText.copy( aBoundary.startPos, aBoundary.endPos - aBoundary.startPos );
@@ -325,7 +320,7 @@ namespace comphelper
             case AccessibleTextType::WORD:
             {
                 // get word at index
-                bool bWord = implGetWordBoundary( aBoundary, nIndex );
+                bool bWord = implGetWordBoundary( sText, aBoundary, nIndex );
                 if ( bWord && implIsValidBoundary( aBoundary, nLength ) )
                 {
                     aResult.SegmentText = sText.copy( aBoundary.startPos, aBoundary.endPos - aBoundary.startPos );
@@ -337,7 +332,7 @@ namespace comphelper
             case AccessibleTextType::SENTENCE:
             {
                 // get sentence at index
-                implGetSentenceBoundary( aBoundary, nIndex );
+                implGetSentenceBoundary( sText, aBoundary, nIndex );
                 if ( implIsValidBoundary( aBoundary, nLength ) )
                 {
                     aResult.SegmentText = sText.copy( aBoundary.startPos, aBoundary.endPos - aBoundary.startPos );
@@ -417,11 +412,11 @@ namespace comphelper
             case AccessibleTextType::GLYPH:
             {
                 // get glyph at index
-                implGetGlyphBoundary( aBoundary, nIndex );
+                implGetGlyphBoundary( sText, aBoundary, nIndex );
                 // get previous glyph
                 if ( aBoundary.startPos > 0 )
                 {
-                    implGetGlyphBoundary( aBoundary, aBoundary.startPos - 1 );
+                    implGetGlyphBoundary( sText, aBoundary, aBoundary.startPos - 1 );
                     if ( implIsValidBoundary( aBoundary, nLength ) )
                     {
                         aResult.SegmentText = sText.copy( aBoundary.startPos, aBoundary.endPos - aBoundary.startPos );
@@ -434,11 +429,11 @@ namespace comphelper
             case AccessibleTextType::WORD:
             {
                 // get word at index
-                implGetWordBoundary( aBoundary, nIndex );
+                implGetWordBoundary( sText, aBoundary, nIndex );
                 // get previous word
                 bool bWord = false;
                 while ( !bWord && aBoundary.startPos > 0 )
-                    bWord = implGetWordBoundary( aBoundary, aBoundary.startPos - 1 );
+                    bWord = implGetWordBoundary( sText, aBoundary, aBoundary.startPos - 1 );
                 if ( bWord && implIsValidBoundary( aBoundary, nLength ) )
                 {
                     aResult.SegmentText = sText.copy( aBoundary.startPos, aBoundary.endPos - aBoundary.startPos );
@@ -450,11 +445,11 @@ namespace comphelper
             case AccessibleTextType::SENTENCE:
             {
                 // get sentence at index
-                implGetSentenceBoundary( aBoundary, nIndex );
+                implGetSentenceBoundary( sText, aBoundary, nIndex );
                 // get previous sentence
                 if ( aBoundary.startPos > 0 )
                 {
-                    implGetSentenceBoundary( aBoundary, aBoundary.startPos - 1 );
+                    implGetSentenceBoundary( sText, aBoundary, aBoundary.startPos - 1 );
                     if ( implIsValidBoundary( aBoundary, nLength ) )
                     {
                         aResult.SegmentText = sText.copy( aBoundary.startPos, aBoundary.endPos - aBoundary.startPos );
@@ -541,11 +536,11 @@ namespace comphelper
             case AccessibleTextType::GLYPH:
             {
                 // get glyph at index
-                implGetGlyphBoundary( aBoundary, nIndex );
+                implGetGlyphBoundary( sText, aBoundary, nIndex );
                 // get next glyph
                 if ( aBoundary.endPos < nLength )
                 {
-                    implGetGlyphBoundary( aBoundary, aBoundary.endPos );
+                    implGetGlyphBoundary( sText, aBoundary, aBoundary.endPos );
                     if ( implIsValidBoundary( aBoundary, nLength ) )
                     {
                         aResult.SegmentText = sText.copy( aBoundary.startPos, aBoundary.endPos - aBoundary.startPos );
@@ -558,11 +553,11 @@ namespace comphelper
             case AccessibleTextType::WORD:
             {
                 // get word at index
-                implGetWordBoundary( aBoundary, nIndex );
+                implGetWordBoundary( sText, aBoundary, nIndex );
                 // get next word
                 bool bWord = false;
                 while ( !bWord && aBoundary.endPos < nLength )
-                    bWord = implGetWordBoundary( aBoundary, aBoundary.endPos );
+                    bWord = implGetWordBoundary( sText, aBoundary, aBoundary.endPos );
                 if ( bWord && implIsValidBoundary( aBoundary, nLength ) )
                 {
                     aResult.SegmentText = sText.copy( aBoundary.startPos, aBoundary.endPos - aBoundary.startPos );
@@ -574,14 +569,14 @@ namespace comphelper
             case AccessibleTextType::SENTENCE:
             {
                 // get sentence at index
-                implGetSentenceBoundary( aBoundary, nIndex );
+                implGetSentenceBoundary( sText, aBoundary, nIndex );
                 // get next sentence
                 sal_Int32 nEnd = aBoundary.endPos;
                 sal_Int32 nI = aBoundary.endPos;
                 bool bFound = false;
                 while ( !bFound && ++nI < nLength )
                 {
-                    implGetSentenceBoundary( aBoundary, nI );
+                    implGetSentenceBoundary( sText, aBoundary, nI );
                     bFound = ( aBoundary.endPos > nEnd );
                 }
                 if ( bFound && implIsValidBoundary( aBoundary, nLength ) )
diff --git a/editeng/source/accessibility/AccessibleEditableTextPara.cxx b/editeng/source/accessibility/AccessibleEditableTextPara.cxx
index cbb1d51bb224..9862ec401b18 100644
--- a/editeng/source/accessibility/AccessibleEditableTextPara.cxx
+++ b/editeng/source/accessibility/AccessibleEditableTextPara.cxx
@@ -1907,7 +1907,7 @@ namespace accessibility
                 sal_Int32 nLength = sText.getLength();
 
                 // get word at index
-                implGetWordBoundary( aBoundary, nIndex );
+                implGetWordBoundary( sText, aBoundary, nIndex );
 
 
                 //sal_Int32 curWordStart = aBoundary.startPos;
@@ -1926,7 +1926,7 @@ namespace accessibility
                 while ( (preWordStart >= 0 && !bWord ) || ( aBoundary.endPos > curWordStart ) )
                     {
                     preWordStart--;
-                    bWord = implGetWordBoundary( aBoundary, preWordStart );
+                    bWord = implGetWordBoundary( sText, aBoundary, preWordStart );
                 }
                 if ( bWord && implIsValidBoundary( aBoundary, nLength ) )
                 {
@@ -2036,7 +2036,7 @@ namespace accessibility
                 sal_Int32 nLength = sText.getLength();
 
                 // get word at index
-                bool bWord = implGetWordBoundary( aBoundary, nIndex );
+                bool bWord = implGetWordBoundary( sText, aBoundary, nIndex );
 
                 // real current world
                 sal_Int32 nextWord = nIndex;
@@ -2045,7 +2045,7 @@ namespace accessibility
                 {
                     nextWord =  aBoundary.endPos;
                     if( sText[nextWord] == u' ' ) nextWord++;
-                    bWord = implGetWordBoundary( aBoundary, nextWord );
+                    bWord = implGetWordBoundary( sText, aBoundary, nextWord );
                 }
 
                 if ( bWord && implIsValidBoundary( aBoundary, nLength ) )
diff --git a/include/comphelper/accessibletexthelper.hxx b/include/comphelper/accessibletexthelper.hxx
index 0d8c2f0389b8..0f78e9084bde 100644
--- a/include/comphelper/accessibletexthelper.hxx
+++ b/include/comphelper/accessibletexthelper.hxx
@@ -54,13 +54,13 @@ namespace comphelper
         static bool                      implIsValidIndex( sal_Int32 nIndex, sal_Int32 nLength );
         static bool                      implIsValidRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex, sal_Int32 nLength );
         static sal_Unicode               implGetCharacter( const OUString& rText, sal_Int32 nIndex );
-        static OUString                  implGetTextRange( const OUString& rTest, sal_Int32 nStartIndex, sal_Int32 nEndIndex );
+        static OUString                  implGetTextRange( const OUString& rText, sal_Int32 nStartIndex, sal_Int32 nEndIndex );
         virtual OUString                 implGetText() = 0;
         virtual css::lang::Locale        implGetLocale() = 0;
         virtual void                     implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex ) = 0;
-        void                             implGetGlyphBoundary( css::i18n::Boundary& rBoundary, sal_Int32 nIndex );
-        bool                             implGetWordBoundary( css::i18n::Boundary& rBoundary, sal_Int32 nIndex );
-        void                             implGetSentenceBoundary( css::i18n::Boundary& rBoundary, sal_Int32 nIndex );
+        void                             implGetGlyphBoundary( const OUString& rText, css::i18n::Boundary& rBoundary, sal_Int32 nIndex );
+        bool                             implGetWordBoundary( const OUString& rText, css::i18n::Boundary& rBoundary, sal_Int32 nIndex );
+        void                             implGetSentenceBoundary( const OUString& rText, css::i18n::Boundary& rBoundary, sal_Int32 nIndex );
         virtual void                     implGetParagraphBoundary( css::i18n::Boundary& rBoundary, sal_Int32 nIndex );
         virtual void                     implGetLineBoundary( css::i18n::Boundary& rBoundary, sal_Int32 nIndex );
 


More information about the Libreoffice-commits mailing list