forked from qt-creator/qt-creator
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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user