Skip to content

Commit 81ec99b

Browse files
committed
Don't crash in data() if no data has ever been set. Allow adding columns
1 parent c0b123c commit 81ec99b

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

qrenderdoc/Widgets/Extended/RDTreeWidget.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ RDTreeWidgetItem::~RDTreeWidgetItem()
260260

261261
QVariant RDTreeWidgetItem::data(int column, int role) const
262262
{
263-
if(column >= m_data->count())
263+
if(m_data == NULL || column >= m_data->count())
264264
return QVariant();
265265

266266
const QVector<RoleData> &dataVec = (*m_data)[column];

qrenderdoc/Widgets/Extended/RDTreeWidget.h

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,10 @@ class RDTreeWidgetItem
5050
inline void setIcon(int column, const QIcon &icon)
5151
{
5252
if(column >= m_icons.size())
53-
return;
53+
{
54+
m_text.resize(column + 1);
55+
m_icons.resize(m_text.size());
56+
}
5457

5558
m_icons[column] = icon;
5659
dataChanged(column, Qt::DecorationRole);
@@ -94,7 +97,10 @@ class RDTreeWidgetItem
9497
inline void setText(int column, const QVariant &value)
9598
{
9699
if(column >= m_text.size())
97-
return;
100+
{
101+
m_text.resize(column + 1);
102+
m_icons.resize(m_text.size());
103+
}
98104

99105
m_text[column] = value;
100106
dataChanged(column, Qt::DisplayRole);

0 commit comments

Comments
 (0)