summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@digia.com>2013-12-02 13:20:08 +0100
committerDavid Schulz <david.schulz@digia.com>2013-12-02 14:17:48 +0100
commit0068b9ee08a5444da843c5c2c2cef1955c51605a (patch)
tree77a8e1b4a8ed0c12a20ff7406676666896e0b0c8
parent6ab4adabf3923630bdd98e4a39ba6615ed79ee4d (diff)
downloadqt-creator-0068b9ee08a5444da843c5c2c2cef1955c51605a.tar.gz
Cdbext: Add simple dumper for QTextCursor.
Change-Id: I092ab69445028c8b359ae0edca764f17b4a6d6cd Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
-rw-r--r--src/libs/qtcreatorcdbext/knowntype.h1
-rw-r--r--src/libs/qtcreatorcdbext/symbolgroupvalue.cpp18
2 files changed, 19 insertions, 0 deletions
diff --git a/src/libs/qtcreatorcdbext/knowntype.h b/src/libs/qtcreatorcdbext/knowntype.h
index ee609567bc..7604d25efe 100644
--- a/src/libs/qtcreatorcdbext/knowntype.h
+++ b/src/libs/qtcreatorcdbext/knowntype.h
@@ -72,6 +72,7 @@ enum KnownType
KT_QBasicAtomicInt = KT_Qt_Type + KT_HasSimpleDumper + 18,
KT_QAtomicInt = KT_Qt_Type + KT_HasSimpleDumper + 19,
KT_QStringRef = KT_Qt_Type + KT_HasSimpleDumper + 20,
+ KT_QTextCursor = KT_Qt_Type + KT_HasSimpleDumper + 21,
KT_QObject = KT_Qt_Type + KT_HasSimpleDumper + KT_HasComplexDumper + 20,
KT_QWindow = KT_Qt_Type + KT_HasSimpleDumper + KT_HasComplexDumper + 21,
KT_QWidget = KT_Qt_Type + KT_HasSimpleDumper + KT_HasComplexDumper + 22,
diff --git a/src/libs/qtcreatorcdbext/symbolgroupvalue.cpp b/src/libs/qtcreatorcdbext/symbolgroupvalue.cpp
index 19635c4212..7cc61ed36b 100644
--- a/src/libs/qtcreatorcdbext/symbolgroupvalue.cpp
+++ b/src/libs/qtcreatorcdbext/symbolgroupvalue.cpp
@@ -1281,6 +1281,8 @@ static KnownType knownClassTypeHelper(const std::string &type,
return KT_QFixedPoint;
if (!type.compare(qPos, 11, "QScriptLine"))
return KT_QScriptLine;
+ if (!type.compare(qPos, 11, "QTextCursor"))
+ return KT_QTextCursor;
break;
case 12:
if (!type.compare(qPos, 12, "QKeySequence"))
@@ -2383,6 +2385,18 @@ static inline bool dumpQWindow(const SymbolGroupValue &v, std::wostream &str, vo
return true;
}
+//Dump a QTextCursor
+static inline bool dumpQTextCursor(const SymbolGroupValue &v, std::wostream &str)
+{
+ const unsigned offset = SymbolGroupValue::pointerSize() + SymbolGroupValue::sizeOf("double");
+ const ULONG64 posAddr = addressOfQPrivateMember(v, QPDM_qSharedDataPadded, offset);
+ if (!posAddr)
+ return false;
+ const int position = SymbolGroupValue::readIntValue(v.context().dataspaces, posAddr);
+ str << position;
+ return true;
+}
+
// Dump a std::string.
static bool dumpStd_W_String(const SymbolGroupValue &v, int type, std::wostream &str,
MemoryHandle **memoryHandle = 0)
@@ -2796,6 +2810,10 @@ unsigned dumpSimpleType(SymbolGroupNode *n, const SymbolGroupValueContext &ctx,
case KT_StdWString:
rc = dumpStd_W_String(v, kt, str, memoryHandleIn) ? SymbolGroupNode::SimpleDumperOk : SymbolGroupNode::SimpleDumperFailed;
break;
+ case KT_QTextCursor:
+ rc = dumpQTextCursor(v, str) ? SymbolGroupNode::SimpleDumperOk
+ : SymbolGroupNode::SimpleDumperFailed;
+ break;
default:
break;
}