Kaydet (Commit) e47d9069 authored tarafından Matteo Casalin's avatar Matteo Casalin Kaydeden (comit) Caolán McNamara

String to OUString, better location for class method

Change-Id: Ifde0d45e35fed94d4ef6cb93b2feda172fd6608b
üst e1a9a348
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
#define _SW_REWRITER_HXX #define _SW_REWRITER_HXX
#include <vector> #include <vector>
#include <tools/string.hxx> #include <rtl/ustring.hxx>
#include <swdllapi.h> #include <swdllapi.h>
enum SwUndoArg enum SwUndoArg
...@@ -31,7 +31,7 @@ enum SwUndoArg ...@@ -31,7 +31,7 @@ enum SwUndoArg
UndoArg3 UndoArg3
}; };
typedef std::pair<SwUndoArg, String> SwRewriteRule; typedef std::pair<SwUndoArg, OUString> SwRewriteRule;
class SW_DLLPUBLIC SwRewriter class SW_DLLPUBLIC SwRewriter
{ {
...@@ -42,9 +42,11 @@ public: ...@@ -42,9 +42,11 @@ public:
SwRewriter(const SwRewriter & rSrc); SwRewriter(const SwRewriter & rSrc);
~SwRewriter(); ~SwRewriter();
void AddRule(SwUndoArg eWhat, const String & rWith); void AddRule(SwUndoArg eWhat, const OUString & rWith);
String Apply(const String & rStr) const; OUString Apply(const OUString & rStr) const;
static OUString GetPlaceHolder(SwUndoArg eId);
}; };
#endif // _SW_REWRITER_HXX #endif // _SW_REWRITER_HXX
......
...@@ -41,7 +41,7 @@ SwRewriter::~SwRewriter() ...@@ -41,7 +41,7 @@ SwRewriter::~SwRewriter()
{ {
} }
void SwRewriter::AddRule(SwUndoArg eWhat, const String & rWith) void SwRewriter::AddRule(SwUndoArg eWhat, const OUString & rWith)
{ {
SwRewriteRule aRule(eWhat, rWith); SwRewriteRule aRule(eWhat, rWith);
...@@ -55,4 +55,54 @@ void SwRewriter::AddRule(SwUndoArg eWhat, const String & rWith) ...@@ -55,4 +55,54 @@ void SwRewriter::AddRule(SwUndoArg eWhat, const String & rWith)
mRules.push_back(aRule); mRules.push_back(aRule);
} }
namespace
{
const char UNDO_ARG1[] = "$1";
const char UNDO_ARG2[] = "$2";
const char UNDO_ARG3[] = "$3";
}
OUString SwRewriter::Apply(const OUString & rStr) const
{
OUString aResult = rStr;
std::vector<SwRewriteRule>::const_iterator aIt;
for (aIt = mRules.begin(); aIt != mRules.end(); ++aIt)
{
switch (aIt->first)
{
case UndoArg1:
default:
aResult = aResult.replaceAll(UNDO_ARG1, aIt->second);
break;
case UndoArg2:
aResult = aResult.replaceAll(UNDO_ARG2, aIt->second);
break;
case UndoArg3:
aResult = aResult.replaceAll(UNDO_ARG3, aIt->second);
break;
}
}
return aResult;
}
OUString SwRewriter::GetPlaceHolder(SwUndoArg eId)
{
switch (eId)
{
case UndoArg1:
return OUString(UNDO_ARG1);
case UndoArg2:
return OUString(UNDO_ARG2);
case UndoArg3:
return OUString(UNDO_ARG3);
default:
break;
}
return OUString(UNDO_ARG1);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
...@@ -552,10 +552,6 @@ static bool lcl_IsSpecialCharacter(sal_Unicode nChar) ...@@ -552,10 +552,6 @@ static bool lcl_IsSpecialCharacter(sal_Unicode nChar)
return false; return false;
} }
const char UNDO_ARG1[] = "$1";
const char UNDO_ARG2[] = "$2";
const char UNDO_ARG3[] = "$3";
static String lcl_DenotedPortion(String rStr, xub_StrLen nStart, static String lcl_DenotedPortion(String rStr, xub_StrLen nStart,
xub_StrLen nEnd) xub_StrLen nEnd)
{ {
...@@ -579,8 +575,7 @@ static String lcl_DenotedPortion(String rStr, xub_StrLen nStart, ...@@ -579,8 +575,7 @@ static String lcl_DenotedPortion(String rStr, xub_StrLen nStart,
case CH_TXTATR_INWORD: case CH_TXTATR_INWORD:
case CH_TXTATR_BREAKWORD: case CH_TXTATR_BREAKWORD:
aResult = OUString(UNDO_ARG2); aResult = SwRewriter::GetPlaceHolder(UndoArg2);
break; break;
} }
...@@ -638,7 +633,7 @@ String DenoteSpecialCharacters(const String & rStr) ...@@ -638,7 +633,7 @@ String DenoteSpecialCharacters(const String & rStr)
aResult += lcl_DenotedPortion(rStr, nStart, rStr.Len()); aResult += lcl_DenotedPortion(rStr, nStart, rStr.Len());
} }
else else
aResult = OUString(UNDO_ARG2); aResult = SwRewriter::GetPlaceHolder(UndoArg2);
return aResult; return aResult;
} }
...@@ -686,7 +681,7 @@ SwRewriter SwUndoDelete::GetRewriter() const ...@@ -686,7 +681,7 @@ SwRewriter SwUndoDelete::GetRewriter() const
} }
else else
{ {
aStr = OUString(UNDO_ARG2); aStr = SwRewriter::GetPlaceHolder(UndoArg2);
} }
} }
...@@ -1082,29 +1077,4 @@ void SwUndoDelete::SetTableName(const String & rName) ...@@ -1082,29 +1077,4 @@ void SwUndoDelete::SetTableName(const String & rName)
sTableName = rName; sTableName = rName;
} }
String SwRewriter::Apply(const String & rStr) const
{
OUString aResult = rStr;
std::vector<SwRewriteRule>::const_iterator aIt;
for (aIt = mRules.begin(); aIt != mRules.end(); ++aIt)
{
switch (aIt->first)
{
case UndoArg1:
default:
aResult = aResult.replaceAll(UNDO_ARG1, aIt->second);
break;
case UndoArg2:
aResult = aResult.replaceAll(UNDO_ARG2, aIt->second);
break;
case UndoArg3:
aResult = aResult.replaceAll(UNDO_ARG3, aIt->second);
break;
}
}
return aResult;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
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