void SetDataViewSortColumn( wxDataViewColumn *column ) { m_dataview_sort_column = column; }
wxDataViewColumn *GetDataViewSortColumn() { return m_dataview_sort_column; }
- bool IsSorted() { return (m_sort_column >= 0); }
+ bool IsSorted() const { return m_sort_column >= 0; }
+
+ // Should we be sorted either because we have a configured sort column or
+ // because we have a default sort order?
+ bool ShouldBeSorted() const
+ {
+ return IsSorted() || GetDataViewModel()->HasDefaultCompare();
+ }
+
// accessors
wxDataViewModel* GetDataViewModel() { return m_wx_model; }
m_children.Add( id );
- if (m_internal->IsSorted() || m_internal->GetDataViewModel()->HasDefaultCompare())
+ if (m_internal->ShouldBeSorted())
{
gs_internal = m_internal;
m_children.Sort( &wxGtkTreeModelChildCmp );
void InsertNode( wxGtkTreeModelNode* child, unsigned pos )
{
- if (m_internal->IsSorted() || m_internal->GetDataViewModel()->HasDefaultCompare())
+ if (m_internal->ShouldBeSorted())
{
AddNode(child);
return;
{
m_children.Insert( id, pos );
- if (m_internal->IsSorted() || m_internal->GetDataViewModel()->HasDefaultCompare())
+ if (m_internal->ShouldBeSorted())
{
gs_internal = m_internal;
m_children.Sort( &wxGtkTreeModelChildCmp );
m_value << value;
SetTextValue(m_value.GetText());
- SetPixbufProp(m_rendererIcon, m_value.GetIcon().GetPixbuf());
+
+ const wxIcon& icon = m_value.GetIcon();
+ SetPixbufProp(m_rendererIcon, icon.IsOk() ? icon.GetPixbuf() : NULL);
return true;
}
event.SetItem( item );
event.SetModel( m_wx_model );
event.SetDataFormat(gtk_selection_data_get_target(selection_data));
+ event.SetDataSize(gtk_selection_data_get_length(selection_data));
if (!m_owner->HandleWindowEvent( event ))
return FALSE;