Place holder image is only generated once..
This commit is contained in:
@@ -108,7 +108,6 @@ public:
|
|||||||
private:
|
private:
|
||||||
int m_imageStates[wxTreeItemIcon_Max];
|
int m_imageStates[wxTreeItemIcon_Max];
|
||||||
int m_state;
|
int m_state;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class wxQTreeWidget : public wxQtEventSignalHandler<QTreeWidget, wxTreeCtrl>
|
class wxQTreeWidget : public wxQtEventSignalHandler<QTreeWidget, wxTreeCtrl>
|
||||||
@@ -124,6 +123,7 @@ public:
|
|||||||
connect(this, &QTreeWidget::itemCollapsed, this, &wxQTreeWidget::OnItemCollapsed);
|
connect(this, &QTreeWidget::itemCollapsed, this, &wxQTreeWidget::OnItemCollapsed);
|
||||||
connect(this, &QTreeWidget::itemExpanded, this, &wxQTreeWidget::OnItemExpanded);
|
connect(this, &QTreeWidget::itemExpanded, this, &wxQTreeWidget::OnItemExpanded);
|
||||||
connect(this, &QTreeWidget::itemChanged, this, &wxQTreeWidget::OnItemChanged);
|
connect(this, &QTreeWidget::itemChanged, this, &wxQTreeWidget::OnItemChanged);
|
||||||
|
connect(this, &QTreeWidget::iconSizeChanged, this, &wxQTreeWidget::OnIconSizeChanged);
|
||||||
|
|
||||||
m_editorFactory.AttachTo(this);
|
m_editorFactory.AttachTo(this);
|
||||||
setDragEnabled(true);
|
setDragEnabled(true);
|
||||||
@@ -163,6 +163,11 @@ public:
|
|||||||
return i->second.GetState();
|
return i->second.GetState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QPixmap GetPlaceHolderImage()
|
||||||
|
{
|
||||||
|
return m_placeHolderImage;
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void drawBranches(QPainter *painter, const QRect &rect, const QModelIndex &index) const wxOVERRIDE
|
void drawBranches(QPainter *painter, const QRect &rect, const QModelIndex &index) const wxOVERRIDE
|
||||||
{
|
{
|
||||||
@@ -265,6 +270,12 @@ private:
|
|||||||
EmitEvent(event);
|
EmitEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OnIconSizeChanged(const QSize &size)
|
||||||
|
{
|
||||||
|
m_placeHolderImage = QPixmap(size);
|
||||||
|
m_placeHolderImage.fill(Qt::transparent);
|
||||||
|
}
|
||||||
|
|
||||||
void tryStartDrag(const QMouseEvent *event)
|
void tryStartDrag(const QMouseEvent *event)
|
||||||
{
|
{
|
||||||
wxEventType command = (event->buttons() & Qt::RightButton)
|
wxEventType command = (event->buttons() & Qt::RightButton)
|
||||||
@@ -363,6 +374,8 @@ private:
|
|||||||
|
|
||||||
typedef std::map<QTreeWidgetItem*,ImageState> ImageStateMap;
|
typedef std::map<QTreeWidgetItem*,ImageState> ImageStateMap;
|
||||||
ImageStateMap m_imageStates;
|
ImageStateMap m_imageStates;
|
||||||
|
//Place holder image to reserve enough space in a row for us to draw our icon
|
||||||
|
QPixmap m_placeHolderImage;
|
||||||
};
|
};
|
||||||
|
|
||||||
wxTreeCtrl::wxTreeCtrl() :
|
wxTreeCtrl::wxTreeCtrl() :
|
||||||
@@ -1072,9 +1085,7 @@ wxTreeItemId wxTreeCtrl::DoInsertItem(const wxTreeItemId& parent,
|
|||||||
m_qtTreeWidget->SetItemImage(newItem, image, wxTreeItemIcon_Normal);
|
m_qtTreeWidget->SetItemImage(newItem, image, wxTreeItemIcon_Normal);
|
||||||
m_qtTreeWidget->SetItemImage(newItem, selImage, wxTreeItemIcon_Selected);
|
m_qtTreeWidget->SetItemImage(newItem, selImage, wxTreeItemIcon_Selected);
|
||||||
|
|
||||||
QPixmap pixmap(m_qtTreeWidget->iconSize());
|
newItem->setIcon(0, m_qtTreeWidget->GetPlaceHolderImage());
|
||||||
pixmap.fill(Qt::transparent);
|
|
||||||
newItem->setIcon(0, pixmap);
|
|
||||||
|
|
||||||
wxTreeItemId wxItem = wxQtConvertTreeItem(newItem);
|
wxTreeItemId wxItem = wxQtConvertTreeItem(newItem);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user