Commit c50172e2 authored by Erik Verbruggen's avatar Erik Verbruggen

Changed string-wrapping quickfix to handle @"strings".

parent eb1baa9e
......@@ -759,7 +759,7 @@ class WrapStringLiteral: public QuickFixOperation
{
public:
WrapStringLiteral()
: stringLiteral(0)
: stringLiteral(0), isObjCStringLiteral(false)
{}
virtual QString description() const
......@@ -778,6 +778,8 @@ public:
if (!stringLiteral)
return -1;
isObjCStringLiteral = charAt(startOf(stringLiteral)) == QLatin1Char('@');
// check if it is already wrapped in QLatin1String or -Literal
if (index-2 < 0)
return index;
......@@ -805,12 +807,20 @@ public:
virtual void createChangeSet()
{
insert(startOf(stringLiteral), "QLatin1String(");
const int startPos = startOf(stringLiteral);
const QLatin1String replacement("QLatin1String(");
if (isObjCStringLiteral)
replace(startPos, startPos + 1, replacement);
else
insert(startPos, replacement);
insert(endOf(stringLiteral), ")");
}
private:
StringLiteralAST *stringLiteral;
bool isObjCStringLiteral;
};
} // end of anonymous namespace
......@@ -1040,6 +1050,11 @@ QString QuickFixOperation::textOf(const AST *ast) const
return textOf(startOf(ast), endOf(ast));
}
QChar QuickFixOperation::charAt(int offset) const
{
return textOf(offset, offset + 1).at(0);
}
void QuickFixOperation::apply()
{
Range range;
......
......@@ -116,6 +116,7 @@ protected:
QString textOf(int firstOffset, int lastOffset) const;
QString textOf(const CPlusPlus::AST *ast) const;
QChar charAt(int offset) const;
struct Range {
Range() {}
......
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