Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


Hi,

I have submitted a patch for review:

    https://gerrit.libreoffice.org/2956

To pull it, you can do:

    git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/56/2956/1

Use OUString and sal_Int32 in filterText()

Change-Id: I31437125b51b07be490de3d979e193fad9750f51
---
M vcl/generic/print/genpspgraphics.cxx
M vcl/inc/generic/genpspgraphics.h
M vcl/inc/salgdi.hxx
M vcl/source/gdi/outdev3.cxx
M vcl/source/gdi/salgdilayout.cxx
5 files changed, 20 insertions(+), 17 deletions(-)



diff --git a/vcl/generic/print/genpspgraphics.cxx b/vcl/generic/print/genpspgraphics.cxx
index 4149e41..773cf6e 100644
--- a/vcl/generic/print/genpspgraphics.cxx
+++ b/vcl/generic/print/genpspgraphics.cxx
@@ -1236,12 +1236,13 @@
     pFontList->Add( pFD );
 }
 
-bool GenPspGraphics::filterText( const rtl::OUString& rOrig, rtl::OUString& rNewText, xub_StrLen 
nIndex, xub_StrLen& rLen, xub_StrLen& rCutStart, xub_StrLen& rCutStop )
+bool GenPspGraphics::filterText( const rtl::OUString& rOrig, rtl::OUString& rNewText, sal_Int32 
nIndex, sal_Int32& rLen, sal_Int32& rCutStart, sal_Int32& rCutStop )
 {
     if( ! m_pPhoneNr )
         return false;
 
-    rCutStop = rCutStart = STRING_NOTFOUND;
+    rNewText = rOrig;
+    rCutStop = rCutStart = -1;
 
 #define FAX_PHONE_TOKEN          "@@#"
 #define FAX_PHONE_TOKEN_LENGTH   3
@@ -1261,7 +1262,7 @@
         {
             nStart = nPos;
             m_bPhoneCollectionActive = true;
-            m_aPhoneCollection = rtl::OUString();
+            m_aPhoneCollection = "";
             bRet = true;
             bStarted = true;
         }
@@ -1287,13 +1288,13 @@
             aPhoneNr.append( m_aPhoneCollection );
             aPhoneNr.append( "</Fax#>" );
             *m_pPhoneNr = aPhoneNr.makeStringAndClear();
-            m_aPhoneCollection = rtl::OUString();
+            m_aPhoneCollection = "";
         }
     }
     if( m_aPhoneCollection.getLength() > 1024 )
     {
         m_bPhoneCollectionActive = false;
-        m_aPhoneCollection = rtl::OUString();
+        m_aPhoneCollection = "";
         bRet = false;
     }
 
@@ -1302,7 +1303,8 @@
         rLen -= nStop - nStart;
         rCutStart = nStart+nIndex;
         rCutStop = nStop+nIndex;
-        rNewText = ( rCutStart ? rOrig.copy( 0, rCutStart ) : rtl::OUString() ) + rOrig.copy( 
rCutStop );
+        if (rCutStart != rCutStop)
+            rNewText = ( rCutStart ? rOrig.copy( 0, rCutStart ) : rtl::OUString() ) + rOrig.copy( 
rCutStop );
     }
 
     return bRet && m_bSwallowFaxNo;
diff --git a/vcl/inc/generic/genpspgraphics.h b/vcl/inc/generic/genpspgraphics.h
index 99a2f35..36c0e60 100644
--- a/vcl/inc/generic/genpspgraphics.h
+++ b/vcl/inc/generic/genpspgraphics.h
@@ -175,7 +175,7 @@
     virtual void            invert( sal_uIntPtr nPoints, const SalPoint* pPtAry, SalInvert nFlags 
);
 
     virtual sal_Bool            drawEPS( long nX, long nY, long nWidth, long nHeight, void* pPtr, 
sal_uIntPtr nSize );
-    virtual bool            filterText( const rtl::OUString& rOrigText, rtl::OUString& rNewText, 
xub_StrLen nIndex, xub_StrLen& rLen, xub_StrLen& rCutStart, xub_StrLen& rCutStop );
+    virtual bool            filterText( const rtl::OUString& rOrigText, rtl::OUString& rNewText, 
sal_Int32 nIndex, sal_Int32& rLen, sal_Int32& rCutStart, sal_Int32& rCutStop );
 
     virtual bool            drawAlphaBitmap( const SalTwoRect&,
                                              const SalBitmap& rSourceBitmap,
diff --git a/vcl/inc/salgdi.hxx b/vcl/inc/salgdi.hxx
index ac2d036..21d7380 100644
--- a/vcl/inc/salgdi.hxx
+++ b/vcl/inc/salgdi.hxx
@@ -346,12 +346,8 @@
         true: a substitution has taken place and rNewText rLen, rCutStart and rCutStop have been 
filled accordingly
         false: no substitution has taken place, rNewText, rLen, rCutStart, rCutStop remain 
unchanged
      */
-    virtual bool            filterText( const rtl::OUString& rOrigText,
-                                        rtl::OUString& rNewText,
-                                        xub_StrLen nIndex,
-                                        xub_StrLen& rLen,
-                                        xub_StrLen& rCutStart,
-                                        xub_StrLen& rCutStop );
+    virtual bool            filterText( const rtl::OUString& rOrigText, rtl::OUString& rNewText,
+                                        sal_Int32 nIndex, sal_Int32& rLen, sal_Int32& rCutStart, 
sal_Int32& rCutStop );
 
     virtual bool            supportsOperation( OutDevSupportType ) const = 0;
 
diff --git a/vcl/source/gdi/outdev3.cxx b/vcl/source/gdi/outdev3.cxx
index 565fcae..8287f09 100644
--- a/vcl/source/gdi/outdev3.cxx
+++ b/vcl/source/gdi/outdev3.cxx
@@ -5809,9 +5809,14 @@
     // filter out special markers
     if( bFilter )
     {
-        xub_StrLen nCutStart, nCutStop, nOrgLen = nLen;
-        rtl::OUString aTmpStr(aStr);
-        bool bFiltered = mpGraphics->filterText( rOrigStr, aTmpStr, nMinIndex, nLen, nCutStart, 
nCutStop );
+        sal_Int32 nCutStart, nCutStop, nOrgLen = nLen;
+        OUString aTmpStr(aStr);
+        OUString aTmpOrigStr(rOrigStr); // only needed until rOrigStr is OUString
+        sal_Int32 nMinIndex2=nMinIndex; // dito
+        sal_Int32 nLen2=nLen;           // dito
+        bool bFiltered = mpGraphics->filterText( aTmpOrigStr, aTmpStr, nMinIndex2, nLen2, 
nCutStart, nCutStop );
+        nLen = nLen2;           // dito
+        nMinIndex = nMinIndex2; // dito
         aStr = aTmpStr;
         if( !nLen )
             return NULL;
diff --git a/vcl/source/gdi/salgdilayout.cxx b/vcl/source/gdi/salgdilayout.cxx
index bb1c55d..5b6ec44 100644
--- a/vcl/source/gdi/salgdilayout.cxx
+++ b/vcl/source/gdi/salgdilayout.cxx
@@ -752,7 +752,7 @@
     return drawAlphaRect( nX, nY, nWidth, nHeight, nTransparency );
 }
 
-bool SalGraphics::filterText( const rtl::OUString&, rtl::OUString&, xub_StrLen, xub_StrLen&, 
xub_StrLen&, xub_StrLen& )
+bool SalGraphics::filterText( const rtl::OUString&, rtl::OUString&, sal_Int32, sal_Int32&, 
sal_Int32&, sal_Int32& )
 {
     return false;
 }

-- 
To view, visit https://gerrit.libreoffice.org/2956
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I31437125b51b07be490de3d979e193fad9750f51
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Christina Roßmanith <ChrRossmanith@web.de>


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.