From 0ec8fdda5c6372f1a979fa09f1ad0d5de3e137a2 Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 24 Jun 2016 08:38:42 +0200 Subject: [PATCH] Debugger: Use TypedTreeItems in RegisterHandler Saves a couple of static_casts on the user side. Change-Id: Ib8f70046ae40539813c01e3ff7d790bf7a170bee Reviewed-by: Christian Stenger --- src/plugins/debugger/registerhandler.cpp | 28 +++++++++++------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/src/plugins/debugger/registerhandler.cpp b/src/plugins/debugger/registerhandler.cpp index 921da6304f9..6d3749b45f9 100644 --- a/src/plugins/debugger/registerhandler.cpp +++ b/src/plugins/debugger/registerhandler.cpp @@ -30,6 +30,8 @@ #include +using namespace Utils; + namespace Debugger { namespace Internal { @@ -286,9 +288,10 @@ void RegisterValue::shiftOneDigit(uint digit, RegisterFormat format) // ////////////////////////////////////////////////////////////////// +class RegisterItem; class RegisterSubItem; -class RegisterEditItem : public Utils::TreeItem +class RegisterEditItem : public TypedTreeItem { public: RegisterEditItem(int pos, RegisterKind subKind, int subSize, RegisterFormat format) @@ -306,7 +309,7 @@ public: }; -class RegisterSubItem : public Utils::TreeItem +class RegisterSubItem : public TypedTreeItem { public: RegisterSubItem(RegisterKind subKind, int subSize, int count, RegisterFormat format) @@ -333,7 +336,7 @@ public: bool m_changed; }; -class RegisterItem : public Utils::TreeItem +class RegisterItem : public TypedTreeItem { public: explicit RegisterItem(const Register ®); @@ -460,10 +463,8 @@ QVariant RegisterSubItem::data(int column, int role) const case RegisterChangedRole: return m_changed; - case RegisterFormatRole: { - RegisterItem *registerItem = static_cast(parent()); - return int(registerItem->m_format); - } + case RegisterFormatRole: + return int(parent()->m_format); case RegisterAsAddressRole: return 0; @@ -474,8 +475,7 @@ QVariant RegisterSubItem::data(int column, int role) const return subTypeName(m_subKind, m_subSize, m_subFormat); case RegisterValueColumn: { QTC_ASSERT(parent(), return QVariant()); - RegisterItem *registerItem = static_cast(parent()); - RegisterValue value = registerItem->m_reg.value; + RegisterValue value = parent()->m_reg.value; QString ba; for (int i = 0; i != m_count; ++i) { int tab = 5 * (i + 1) * m_subSize; @@ -582,14 +582,13 @@ QVariant RegisterEditItem::data(int column, int role) const return QString("[%1]").arg(m_index); } case RegisterValueColumn: { - RegisterItem *registerItem = static_cast(parent()->parent()); - RegisterValue value = registerItem->m_reg.value; + RegisterValue value = parent()->parent()->m_reg.value; return value.subValue(m_subSize, m_index) .toString(m_subKind, m_subSize, m_subFormat, role == Qt::EditRole); } } case Qt::ToolTipRole: { - RegisterItem *registerItem = static_cast(parent()->parent()); + RegisterItem *registerItem = parent()->parent(); return RegisterHandler::tr("Edit bits %1...%2 of register %3") .arg(m_index * 8).arg(m_index * 8 + 7).arg(registerItem->m_reg.name); } @@ -604,7 +603,7 @@ bool RegisterEditItem::setData(int column, const QVariant &value, int role) if (column == RegisterValueColumn && role == Qt::EditRole) { QTC_ASSERT(parent(), return false); QTC_ASSERT(parent()->parent(), return false); - RegisterItem *registerItem = static_cast(parent()->parent()); + RegisterItem *registerItem = parent()->parent(); Register ® = registerItem->m_reg; RegisterValue vv; vv.fromString(value.toString(), m_subFormat); @@ -618,8 +617,7 @@ bool RegisterEditItem::setData(int column, const QVariant &value, int role) Qt::ItemFlags RegisterEditItem::flags(int column) const { QTC_ASSERT(parent(), return Qt::ItemFlags()); - RegisterSubItem *registerSubItem = static_cast(parent()); - Qt::ItemFlags f = registerSubItem->flags(column); + Qt::ItemFlags f = parent()->flags(column); if (column == RegisterValueColumn) f |= Qt::ItemIsEditable; return f;