TreeModel: Introduce a StaticTreeItem

This splits out the case of static string displays from the
TreeItem base class, making the base more lightweight.

Change-Id: If1f442011ec60094399a41b65d9b5015f432f82e
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
hjk
2016-06-10 10:37:49 +02:00
parent 0c1cdc3a4a
commit b281d6dad7
9 changed files with 65 additions and 44 deletions

View File

@@ -606,12 +606,7 @@ namespace Utils {
// TreeItem
//
TreeItem::TreeItem()
: m_parent(0), m_model(0), m_displays(0), m_flags(Qt::ItemIsEnabled|Qt::ItemIsSelectable)
{
}
TreeItem::TreeItem(const QStringList &displays, int flags)
: m_parent(0), m_model(0), m_displays(new QStringList(displays)), m_flags(flags)
: m_parent(0), m_model(0), m_flags(Qt::ItemIsEnabled|Qt::ItemIsSelectable)
{
}
@@ -620,7 +615,6 @@ TreeItem::~TreeItem()
QTC_CHECK(m_parent == 0);
QTC_CHECK(m_model == 0);
removeChildren();
delete m_displays;
}
TreeItem *TreeItem::child(int pos) const
@@ -636,8 +630,8 @@ int TreeItem::rowCount() const
QVariant TreeItem::data(int column, int role) const
{
if (role == Qt::DisplayRole && m_displays && column >= 0 && column < m_displays->size())
return m_displays->at(column);
Q_UNUSED(column);
Q_UNUSED(role);
return QVariant();
}
@@ -1055,4 +1049,22 @@ TreeItem *TreeModel::takeItem(TreeItem *item)
return item;
}
StaticTreeItem::StaticTreeItem(const QStringList &displays)
: m_displays(displays)
{
}
QVariant StaticTreeItem::data(int column, int role) const
{
if (role == Qt::DisplayRole && column >= 0 && column < m_displays.size())
return m_displays.at(column);
return QVariant();
}
Qt::ItemFlags StaticTreeItem::flags(int column) const
{
Q_UNUSED(column);
return Qt::ItemIsEnabled;
}
} // namespace Utils