Move model notification code of tree store from the store to the control, implement Insert() methods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58222 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1236,16 +1236,13 @@ public:
|
|||||||
int GetChildCount( const wxDataViewItem& parent ) const
|
int GetChildCount( const wxDataViewItem& parent ) const
|
||||||
{ return GetStore()->GetChildCount(parent); }
|
{ return GetStore()->GetChildCount(parent); }
|
||||||
|
|
||||||
void SetItemText( const wxDataViewItem& item, const wxString &text )
|
void SetItemText( const wxDataViewItem& item, const wxString &text );
|
||||||
{ GetStore()->SetItemText(item,text); }
|
|
||||||
wxString GetItemText( const wxDataViewItem& item ) const
|
wxString GetItemText( const wxDataViewItem& item ) const
|
||||||
{ return GetStore()->GetItemText(item); }
|
{ return GetStore()->GetItemText(item); }
|
||||||
void SetItemIcon( const wxDataViewItem& item, const wxIcon &icon )
|
void SetItemIcon( const wxDataViewItem& item, const wxIcon &icon );
|
||||||
{ GetStore()->SetItemIcon(item,icon); }
|
|
||||||
const wxIcon &GetItemIcon( const wxDataViewItem& item ) const
|
const wxIcon &GetItemIcon( const wxDataViewItem& item ) const
|
||||||
{ return GetStore()->GetItemIcon(item); }
|
{ return GetStore()->GetItemIcon(item); }
|
||||||
void SetItemExpandedIcon( const wxDataViewItem& item, const wxIcon &icon )
|
void SetItemExpandedIcon( const wxDataViewItem& item, const wxIcon &icon );
|
||||||
{ GetStore()->SetItemExpandedIcon(item,icon); }
|
|
||||||
const wxIcon &GetItemExpandedIcon( const wxDataViewItem& item ) const
|
const wxIcon &GetItemExpandedIcon( const wxDataViewItem& item ) const
|
||||||
{ return GetStore()->GetItemExpandedIcon(item); }
|
{ return GetStore()->GetItemExpandedIcon(item); }
|
||||||
void SetItemData( const wxDataViewItem& item, wxClientData *data )
|
void SetItemData( const wxDataViewItem& item, wxClientData *data )
|
||||||
@@ -1253,12 +1250,9 @@ public:
|
|||||||
wxClientData *GetItemData( const wxDataViewItem& item ) const
|
wxClientData *GetItemData( const wxDataViewItem& item ) const
|
||||||
{ return GetStore()->GetItemData(item); }
|
{ return GetStore()->GetItemData(item); }
|
||||||
|
|
||||||
void DeleteItem( const wxDataViewItem& item )
|
void DeleteItem( const wxDataViewItem& item );
|
||||||
{ GetStore()->DeleteItem(item); }
|
void DeleteChildren( const wxDataViewItem& item );
|
||||||
void DeleteChildren( const wxDataViewItem& item )
|
void DeleteAllItems();
|
||||||
{ GetStore()->DeleteChildren(item); }
|
|
||||||
void DeleteAllItems()
|
|
||||||
{ GetStore()->DeleteAllItems(); }
|
|
||||||
|
|
||||||
void OnExpanded( wxDataViewEvent &event );
|
void OnExpanded( wxDataViewEvent &event );
|
||||||
void OnCollapsed( wxDataViewEvent &event );
|
void OnCollapsed( wxDataViewEvent &event );
|
||||||
|
@@ -1605,9 +1605,6 @@ wxDataViewItem wxDataViewTreeStore::AppendItem( const wxDataViewItem& parent,
|
|||||||
new wxDataViewTreeStoreNode( parent_node, text, icon, data );
|
new wxDataViewTreeStoreNode( parent_node, text, icon, data );
|
||||||
parent_node->GetChildren().Append( node );
|
parent_node->GetChildren().Append( node );
|
||||||
|
|
||||||
// notify control
|
|
||||||
ItemAdded( parent, node->GetItem() );
|
|
||||||
|
|
||||||
return node->GetItem();
|
return node->GetItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1621,20 +1618,28 @@ wxDataViewItem wxDataViewTreeStore::PrependItem( const wxDataViewItem& parent,
|
|||||||
new wxDataViewTreeStoreNode( parent_node, text, icon, data );
|
new wxDataViewTreeStoreNode( parent_node, text, icon, data );
|
||||||
parent_node->GetChildren().Insert( node );
|
parent_node->GetChildren().Insert( node );
|
||||||
|
|
||||||
// notify control
|
|
||||||
ItemAdded( parent, node->GetItem() );
|
|
||||||
|
|
||||||
return node->GetItem();
|
return node->GetItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDataViewItem
|
wxDataViewItem
|
||||||
wxDataViewTreeStore::InsertItem(const wxDataViewItem& WXUNUSED(parent),
|
wxDataViewTreeStore::InsertItem(const wxDataViewItem& parent,
|
||||||
const wxDataViewItem& WXUNUSED(previous),
|
const wxDataViewItem& previous,
|
||||||
const wxString& WXUNUSED(text),
|
const wxString& text,
|
||||||
const wxIcon& WXUNUSED(icon),
|
const wxIcon& icon,
|
||||||
wxClientData * WXUNUSED(data))
|
wxClientData *data)
|
||||||
{
|
{
|
||||||
return wxDataViewItem(0);
|
wxDataViewTreeStoreContainerNode *parent_node = FindContainerNode( parent );
|
||||||
|
if (!parent_node) return wxDataViewItem(0);
|
||||||
|
|
||||||
|
wxDataViewTreeStoreNode *previous_node = FindNode( previous );
|
||||||
|
int pos = parent_node->GetChildren().IndexOf( previous_node );
|
||||||
|
if (pos == wxNOT_FOUND) return wxDataViewItem(0);
|
||||||
|
|
||||||
|
wxDataViewTreeStoreNode *node =
|
||||||
|
new wxDataViewTreeStoreNode( parent_node, text, icon, data );
|
||||||
|
parent_node->GetChildren().Insert( (size_t) pos, node );
|
||||||
|
|
||||||
|
return node->GetItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDataViewItem wxDataViewTreeStore::PrependContainer( const wxDataViewItem& parent,
|
wxDataViewItem wxDataViewTreeStore::PrependContainer( const wxDataViewItem& parent,
|
||||||
@@ -1648,9 +1653,6 @@ wxDataViewItem wxDataViewTreeStore::PrependContainer( const wxDataViewItem& pare
|
|||||||
new wxDataViewTreeStoreContainerNode( parent_node, text, icon, expanded, data );
|
new wxDataViewTreeStoreContainerNode( parent_node, text, icon, expanded, data );
|
||||||
parent_node->GetChildren().Insert( node );
|
parent_node->GetChildren().Insert( node );
|
||||||
|
|
||||||
// notify control
|
|
||||||
ItemAdded( parent, node->GetItem() );
|
|
||||||
|
|
||||||
return node->GetItem();
|
return node->GetItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1668,21 +1670,29 @@ wxDataViewTreeStore::AppendContainer(const wxDataViewItem& parent,
|
|||||||
new wxDataViewTreeStoreContainerNode( parent_node, text, icon, expanded, data );
|
new wxDataViewTreeStoreContainerNode( parent_node, text, icon, expanded, data );
|
||||||
parent_node->GetChildren().Append( node );
|
parent_node->GetChildren().Append( node );
|
||||||
|
|
||||||
// notify control
|
|
||||||
ItemAdded( parent, node->GetItem() );
|
|
||||||
|
|
||||||
return node->GetItem();
|
return node->GetItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDataViewItem
|
wxDataViewItem
|
||||||
wxDataViewTreeStore::InsertContainer(const wxDataViewItem& WXUNUSED(parent),
|
wxDataViewTreeStore::InsertContainer(const wxDataViewItem& parent,
|
||||||
const wxDataViewItem& WXUNUSED(previous),
|
const wxDataViewItem& previous,
|
||||||
const wxString& WXUNUSED(text),
|
const wxString& text,
|
||||||
const wxIcon& WXUNUSED(icon),
|
const wxIcon& icon,
|
||||||
const wxIcon& WXUNUSED(expanded),
|
const wxIcon& expanded,
|
||||||
wxClientData * WXUNUSED(data))
|
wxClientData * data)
|
||||||
{
|
{
|
||||||
return wxDataViewItem(0);
|
wxDataViewTreeStoreContainerNode *parent_node = FindContainerNode( parent );
|
||||||
|
if (!parent_node) return wxDataViewItem(0);
|
||||||
|
|
||||||
|
wxDataViewTreeStoreNode *previous_node = FindNode( previous );
|
||||||
|
int pos = parent_node->GetChildren().IndexOf( previous_node );
|
||||||
|
if (pos == wxNOT_FOUND) return wxDataViewItem(0);
|
||||||
|
|
||||||
|
wxDataViewTreeStoreContainerNode *node =
|
||||||
|
new wxDataViewTreeStoreContainerNode( parent_node, text, icon, expanded, data );
|
||||||
|
parent_node->GetChildren().Insert( (size_t) pos, node );
|
||||||
|
|
||||||
|
return node->GetItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDataViewItem wxDataViewTreeStore::GetNthChild( const wxDataViewItem& parent, unsigned int pos ) const
|
wxDataViewItem wxDataViewTreeStore::GetNthChild( const wxDataViewItem& parent, unsigned int pos ) const
|
||||||
@@ -1715,9 +1725,6 @@ void wxDataViewTreeStore::SetItemText( const wxDataViewItem& item, const wxStrin
|
|||||||
if (!node) return;
|
if (!node) return;
|
||||||
|
|
||||||
node->SetText( text );
|
node->SetText( text );
|
||||||
|
|
||||||
// notify control
|
|
||||||
ValueChanged( item, 0 );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
wxString wxDataViewTreeStore::GetItemText( const wxDataViewItem& item ) const
|
wxString wxDataViewTreeStore::GetItemText( const wxDataViewItem& item ) const
|
||||||
@@ -1734,9 +1741,6 @@ void wxDataViewTreeStore::SetItemIcon( const wxDataViewItem& item, const wxIcon
|
|||||||
if (!node) return;
|
if (!node) return;
|
||||||
|
|
||||||
node->SetIcon( icon );
|
node->SetIcon( icon );
|
||||||
|
|
||||||
// notify control
|
|
||||||
ValueChanged( item, 0 );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const wxIcon &wxDataViewTreeStore::GetItemIcon( const wxDataViewItem& item ) const
|
const wxIcon &wxDataViewTreeStore::GetItemIcon( const wxDataViewItem& item ) const
|
||||||
@@ -1753,9 +1757,6 @@ void wxDataViewTreeStore::SetItemExpandedIcon( const wxDataViewItem& item, const
|
|||||||
if (!node) return;
|
if (!node) return;
|
||||||
|
|
||||||
node->SetExpandedIcon( icon );
|
node->SetExpandedIcon( icon );
|
||||||
|
|
||||||
// notify control
|
|
||||||
ValueChanged( item, 0 );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const wxIcon &wxDataViewTreeStore::GetItemExpandedIcon( const wxDataViewItem& item ) const
|
const wxIcon &wxDataViewTreeStore::GetItemExpandedIcon( const wxDataViewItem& item ) const
|
||||||
@@ -1772,9 +1773,6 @@ void wxDataViewTreeStore::SetItemData( const wxDataViewItem& item, wxClientData
|
|||||||
if (!node) return;
|
if (!node) return;
|
||||||
|
|
||||||
node->SetData( data );
|
node->SetData( data );
|
||||||
|
|
||||||
// notify control? only sensible when sorting on client data
|
|
||||||
// ValueChanged( item, 0 );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
wxClientData *wxDataViewTreeStore::GetItemData( const wxDataViewItem& item ) const
|
wxClientData *wxDataViewTreeStore::GetItemData( const wxDataViewItem& item ) const
|
||||||
@@ -1798,9 +1796,6 @@ void wxDataViewTreeStore::DeleteItem( const wxDataViewItem& item )
|
|||||||
if (!node) return;
|
if (!node) return;
|
||||||
|
|
||||||
parent_node->GetChildren().DeleteObject( node );
|
parent_node->GetChildren().DeleteObject( node );
|
||||||
|
|
||||||
// notify control
|
|
||||||
ItemDeleted( parent_item, item );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxDataViewTreeStore::DeleteChildren( const wxDataViewItem& item )
|
void wxDataViewTreeStore::DeleteChildren( const wxDataViewItem& item )
|
||||||
@@ -2014,7 +2009,11 @@ wxDataViewItem wxDataViewTreeCtrl::AppendItem( const wxDataViewItem& parent,
|
|||||||
if (m_imageList && (iconIndex != -1))
|
if (m_imageList && (iconIndex != -1))
|
||||||
icon = m_imageList->GetIcon( iconIndex );
|
icon = m_imageList->GetIcon( iconIndex );
|
||||||
|
|
||||||
return GetStore()->AppendItem( parent, text, icon, data );
|
wxDataViewItem res = GetStore()->AppendItem( parent, text, icon, data );
|
||||||
|
|
||||||
|
GetStore()->ItemAdded( parent, res );
|
||||||
|
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDataViewItem wxDataViewTreeCtrl::PrependItem( const wxDataViewItem& parent,
|
wxDataViewItem wxDataViewTreeCtrl::PrependItem( const wxDataViewItem& parent,
|
||||||
@@ -2024,7 +2023,11 @@ wxDataViewItem wxDataViewTreeCtrl::PrependItem( const wxDataViewItem& parent,
|
|||||||
if (m_imageList && (iconIndex != -1))
|
if (m_imageList && (iconIndex != -1))
|
||||||
icon = m_imageList->GetIcon( iconIndex );
|
icon = m_imageList->GetIcon( iconIndex );
|
||||||
|
|
||||||
return GetStore()->PrependItem( parent, text, icon, data );
|
wxDataViewItem res = GetStore()->PrependItem( parent, text, icon, data );
|
||||||
|
|
||||||
|
GetStore()->ItemAdded( parent, res );
|
||||||
|
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDataViewItem wxDataViewTreeCtrl::InsertItem( const wxDataViewItem& parent, const wxDataViewItem& previous,
|
wxDataViewItem wxDataViewTreeCtrl::InsertItem( const wxDataViewItem& parent, const wxDataViewItem& previous,
|
||||||
@@ -2034,7 +2037,11 @@ wxDataViewItem wxDataViewTreeCtrl::InsertItem( const wxDataViewItem& parent, con
|
|||||||
if (m_imageList && (iconIndex != -1))
|
if (m_imageList && (iconIndex != -1))
|
||||||
icon = m_imageList->GetIcon( iconIndex );
|
icon = m_imageList->GetIcon( iconIndex );
|
||||||
|
|
||||||
return GetStore()->InsertItem( parent, previous, text, icon, data );
|
wxDataViewItem res = GetStore()->InsertItem( parent, previous, text, icon, data );
|
||||||
|
|
||||||
|
GetStore()->ItemAdded( parent, res );
|
||||||
|
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDataViewItem wxDataViewTreeCtrl::PrependContainer( const wxDataViewItem& parent,
|
wxDataViewItem wxDataViewTreeCtrl::PrependContainer( const wxDataViewItem& parent,
|
||||||
@@ -2048,7 +2055,11 @@ wxDataViewItem wxDataViewTreeCtrl::PrependContainer( const wxDataViewItem& paren
|
|||||||
if (m_imageList && (expandedIndex != -1))
|
if (m_imageList && (expandedIndex != -1))
|
||||||
expanded = m_imageList->GetIcon( expandedIndex );
|
expanded = m_imageList->GetIcon( expandedIndex );
|
||||||
|
|
||||||
return GetStore()->PrependContainer( parent, text, icon, expanded, data );
|
wxDataViewItem res = GetStore()->PrependContainer( parent, text, icon, expanded, data );
|
||||||
|
|
||||||
|
GetStore()->ItemAdded( parent, res );
|
||||||
|
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDataViewItem wxDataViewTreeCtrl::AppendContainer( const wxDataViewItem& parent,
|
wxDataViewItem wxDataViewTreeCtrl::AppendContainer( const wxDataViewItem& parent,
|
||||||
@@ -2062,7 +2073,11 @@ wxDataViewItem wxDataViewTreeCtrl::AppendContainer( const wxDataViewItem& parent
|
|||||||
if (m_imageList && (expandedIndex != -1))
|
if (m_imageList && (expandedIndex != -1))
|
||||||
expanded = m_imageList->GetIcon( expandedIndex );
|
expanded = m_imageList->GetIcon( expandedIndex );
|
||||||
|
|
||||||
return GetStore()->AppendContainer( parent, text, icon, expanded, data );
|
wxDataViewItem res = GetStore()->AppendContainer( parent, text, icon, expanded, data );
|
||||||
|
|
||||||
|
GetStore()->ItemAdded( parent, res );
|
||||||
|
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDataViewItem wxDataViewTreeCtrl::InsertContainer( const wxDataViewItem& parent, const wxDataViewItem& previous,
|
wxDataViewItem wxDataViewTreeCtrl::InsertContainer( const wxDataViewItem& parent, const wxDataViewItem& previous,
|
||||||
@@ -2076,7 +2091,57 @@ wxDataViewItem wxDataViewTreeCtrl::InsertContainer( const wxDataViewItem& parent
|
|||||||
if (m_imageList && (expandedIndex != -1))
|
if (m_imageList && (expandedIndex != -1))
|
||||||
expanded = m_imageList->GetIcon( expandedIndex );
|
expanded = m_imageList->GetIcon( expandedIndex );
|
||||||
|
|
||||||
return GetStore()->InsertContainer( parent, previous, text, icon, expanded, data );
|
wxDataViewItem res = GetStore()->InsertContainer( parent, previous, text, icon, expanded, data );
|
||||||
|
|
||||||
|
GetStore()->ItemAdded( parent, res );
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxDataViewTreeCtrl::SetItemText( const wxDataViewItem& item, const wxString &text )
|
||||||
|
{
|
||||||
|
GetStore()->SetItemText(item,text);
|
||||||
|
|
||||||
|
// notify control
|
||||||
|
GetStore()->ValueChanged( item, 0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxDataViewTreeCtrl::SetItemIcon( const wxDataViewItem& item, const wxIcon &icon )
|
||||||
|
{
|
||||||
|
GetStore()->SetItemIcon(item,icon);
|
||||||
|
|
||||||
|
// notify control
|
||||||
|
GetStore()->ValueChanged( item, 0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxDataViewTreeCtrl::SetItemExpandedIcon( const wxDataViewItem& item, const wxIcon &icon )
|
||||||
|
{
|
||||||
|
GetStore()->SetItemExpandedIcon(item,icon);
|
||||||
|
|
||||||
|
// notify control
|
||||||
|
GetStore()->ValueChanged( item, 0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxDataViewTreeCtrl::DeleteItem( const wxDataViewItem& item )
|
||||||
|
{
|
||||||
|
wxDataViewItem parent_item = GetStore()->GetParent( item );
|
||||||
|
|
||||||
|
GetStore()->DeleteItem(item);
|
||||||
|
|
||||||
|
// notify control
|
||||||
|
GetStore()->ItemDeleted( parent_item, item );
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxDataViewTreeCtrl::DeleteChildren( const wxDataViewItem& item )
|
||||||
|
{
|
||||||
|
GetStore()->DeleteChildren(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxDataViewTreeCtrl::DeleteAllItems()
|
||||||
|
{
|
||||||
|
GetStore()->DeleteAllItems();
|
||||||
|
|
||||||
|
GetStore()->Cleared();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxDataViewTreeCtrl::OnExpanded( wxDataViewEvent &event )
|
void wxDataViewTreeCtrl::OnExpanded( wxDataViewEvent &event )
|
||||||
@@ -2087,6 +2152,7 @@ void wxDataViewTreeCtrl::OnExpanded( wxDataViewEvent &event )
|
|||||||
if (!container) return;
|
if (!container) return;
|
||||||
|
|
||||||
container->SetExpanded( true );
|
container->SetExpanded( true );
|
||||||
|
|
||||||
GetStore()->ItemChanged( event.GetItem() );
|
GetStore()->ItemChanged( event.GetItem() );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2098,6 +2164,7 @@ void wxDataViewTreeCtrl::OnCollapsed( wxDataViewEvent &event )
|
|||||||
if (!container) return;
|
if (!container) return;
|
||||||
|
|
||||||
container->SetExpanded( false );
|
container->SetExpanded( false );
|
||||||
|
|
||||||
GetStore()->ItemChanged( event.GetItem() );
|
GetStore()->ItemChanged( event.GetItem() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user