cdbext: Generate values for QDate, QTime, QDateTime

... in the watchdata via flags.

Change-Id: I4664807713cc7747216de5abaabf30011921ab4c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
This commit is contained in:
David Schulz
2013-03-19 01:42:40 -07:00
parent c172a12821
commit bee3cc3d63
2 changed files with 26 additions and 48 deletions

View File

@@ -364,7 +364,10 @@ enum DumpEncoding // WatchData encoding of GDBMI values
DumpEncodingHex_Ucs4_LittleEndian_WithQuotes = 3,
DumpEncodingBase64_Utf16 = 4,
DumpEncodingHex_Latin1_WithQuotes = 6,
DumpEncodingHex_Utf8_LittleEndian_WithQuotes = 9
DumpEncodingHex_Utf8_LittleEndian_WithQuotes = 9,
DumpEncodingJulianDate = 14,
DumpEncodingMillisecondsSinceMidnight = 15,
DumpEncodingJulianDateAndMillisecondsSinceMidnight = 16
};
/* Recode arrays/pointers of char*, wchar_t according to users
@@ -1110,7 +1113,20 @@ int SymbolGroupNode::dumpNode(std::ostream &str,
// Shall it be recoded?
int encoding = 0;
if (dumpParameters.recode(t, aFullIName, ctx, addr, &value, &encoding)) {
switch (knownType(t, 0)) {
case KT_QDate:
encoding = DumpEncodingJulianDate;
break;
case KT_QTime:
encoding = DumpEncodingMillisecondsSinceMidnight;
break;
case KT_QDateTime:
encoding = DumpEncodingJulianDateAndMillisecondsSinceMidnight;
break;
}
if (encoding) {
str << ",valueencoded=\"" << encoding << "\",value=\"" << gdbmiWStringFormat(value) <<'"';
} else if (dumpParameters.recode(t, aFullIName, ctx, addr, &value, &encoding)) {
str << ",valueencoded=\"" << encoding
<< "\",value=\"" << gdbmiWStringFormat(value) <<'"';
} else { // As is: ASCII or base64?