[Libreoffice-commits] core.git: sdext/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Wed Feb 13 06:59:08 UTC 2019


 sdext/source/minimizer/optimizerdialogcontrols.cxx |   34 +++++++++++----------
 1 file changed, 18 insertions(+), 16 deletions(-)

New commits:
commit 6d7308acb7b1ae606b49d6bba3a4c5cbfd0521ed
Author:     Matteo Casalin <matteo.casalin at yahoo.com>
AuthorDate: Sun Feb 10 16:11:30 2019 +0100
Commit:     Matteo Casalin <matteo.casalin at yahoo.com>
CommitDate: Wed Feb 13 07:58:43 2019 +0100

    OptimizerDialog: simplify string operations when selecting...
    
    ... image resolution: introduce local method to:
    * use indexed getToken
    * avoid getting all tokens in advance
    * reduce calls to non-trivial getString method
    
    Change-Id: Ib47c2e9bb5788132328fbda1b1dce05e495ad3ed
    Reviewed-on: https://gerrit.libreoffice.org/67638
    Tested-by: Jenkins
    Reviewed-by: Matteo Casalin <matteo.casalin at yahoo.com>

diff --git a/sdext/source/minimizer/optimizerdialogcontrols.cxx b/sdext/source/minimizer/optimizerdialogcontrols.cxx
index e5326e5096b0..1dfd165aa4f0 100644
--- a/sdext/source/minimizer/optimizerdialogcontrols.cxx
+++ b/sdext/source/minimizer/optimizerdialogcontrols.cxx
@@ -467,6 +467,19 @@ void OptimizerDialog::InitPage1()
     UpdateControlStatesPage1();
 }
 
+namespace
+{
+
+bool lcl_getResolutionText(OUString& rResolutionText, const OUString& rImageResolution, sal_Int32 nTargetRes)
+{
+    sal_Int32 nIdx{ 0 };
+    if (rImageResolution.getToken(0, ';', nIdx).toInt32()!=nTargetRes)
+        return false;
+    rResolutionText = rImageResolution.getToken(0, ';', nIdx);
+    return true;
+}
+
+}
 
 void OptimizerDialog::UpdateControlStatesPage2()
 {
@@ -477,23 +490,12 @@ void OptimizerDialog::UpdateControlStatesPage2()
 
     sal_Int32 nImageResolution( GetConfigProperty( TK_ImageResolution, sal_Int32(0) ) );
 
-    sal_Int32 nI0, nI1, nI2, nI3;
-    nI0 = nI1 = nI2 = nI3 = 0;
     OUString aResolutionText;
-    Sequence< OUString > aResolutionItemList( 4 );
-    aResolutionItemList[ 0 ] = getString( STR_IMAGE_RESOLUTION_0 ).getToken( 1, ';', nI0 );
-    aResolutionItemList[ 1 ] = getString( STR_IMAGE_RESOLUTION_1 ).getToken( 1, ';', nI1 );
-    aResolutionItemList[ 2 ] = getString( STR_IMAGE_RESOLUTION_2 ).getToken( 1, ';', nI2 );
-    aResolutionItemList[ 3 ] = getString( STR_IMAGE_RESOLUTION_3 ).getToken( 1, ';', nI3 );
-    nI0 = nI1 = nI2 = nI3 = 0;
-    if ( getString( STR_IMAGE_RESOLUTION_0 ).getToken( 0, ';', nI0 ).toInt32() == nImageResolution )
-        aResolutionText = aResolutionItemList[ 0 ];
-    else if ( getString( STR_IMAGE_RESOLUTION_1 ).getToken( 0, ';', nI1 ).toInt32() == nImageResolution )
-        aResolutionText = aResolutionItemList[ 1 ];
-    else if ( getString( STR_IMAGE_RESOLUTION_2 ).getToken( 0, ';', nI2 ).toInt32() == nImageResolution )
-        aResolutionText = aResolutionItemList[ 2 ];
-    else if ( getString( STR_IMAGE_RESOLUTION_3 ).getToken( 0, ';', nI3 ).toInt32() == nImageResolution )
-        aResolutionText = aResolutionItemList[ 3 ];
+    for (int nIR{ STR_IMAGE_RESOLUTION_0 }; nIR<=STR_IMAGE_RESOLUTION_3; ++nIR)
+    {
+        if (lcl_getResolutionText(aResolutionText, getString(static_cast<PPPOptimizerTokenEnum>(nIR)), nImageResolution))
+            break;
+    }
     if ( aResolutionText.isEmpty() )
         aResolutionText = OUString::number( nImageResolution );
 


More information about the Libreoffice-commits mailing list