void SetFilter(wxRegEx const& new_filter) { std::set<HotkeyModelCombo*> old_visible; for (size_t i = 0; i < visible_items.size(); ++i) old_visible.insert(static_cast<HotkeyModelCombo*>(visible_items[i].GetID())); visible_items.clear(); wxDataViewItemArray added; wxDataViewItemArray removed; for (std::list<HotkeyModelCombo>::iterator it = children.begin(); it != children.end(); ++it) { bool was_visible = old_visible.count(&*it) > 0; bool is_visible = it->IsVisible(new_filter); if (is_visible) visible_items.push_back(wxDataViewItem(&*it)); if (was_visible && !is_visible) removed.push_back(wxDataViewItem(&*it)); if (is_visible && !was_visible) added.push_back(wxDataViewItem(&*it)); } if (!added.empty()) model->ItemsAdded(wxDataViewItem(this), added); if (!removed.empty()) model->ItemsDeleted(wxDataViewItem(this), removed); }
virtual unsigned int GetChildren( wxDataViewItemArray& aItems ) const { /// @todo C++11 for( std::list<Pin*>::const_iterator i = m_Members.begin(); i != m_Members.end(); ++i ) aItems.push_back( wxDataViewItem( *i ) ); return aItems.size(); }
/** * Adds each child row to the supplied list, and returns the total child count */ unsigned int BOM_TABLE_GROUP::GetChildren( wxDataViewItemArray& aChildren ) const { // Show drop-down for child components for( auto& row : Components ) { if( row ) { aChildren.push_back( RowToItem( &*row ) ); } } return aChildren.size(); }
unsigned int DIALOG_LIB_EDIT_PIN_TABLE::DataViewModel::GetChildren( const wxDataViewItem& aItem, wxDataViewItemArray& aItems ) const { if( !aItem.IsOk() ) { for( std::map<wxString, Group>::iterator i = m_Groups.begin(); i != m_Groups.end(); ++i ) if( i->second.GetCount() > 1 ) aItems.push_back( wxDataViewItem( &i->second ) ); for( std::list<Pin>::iterator i = m_Pins.begin(); i != m_Pins.end(); ++i ) if( !i->GetParent().IsOk() ) aItems.push_back( wxDataViewItem( &*i ) ); return aItems.size(); } else return reinterpret_cast<Item const*>( aItem.GetID() )->GetChildren( aItems ); }
unsigned int TreeListModel::GetChildren(const wxDataViewItem& item, wxDataViewItemArray& children) const { if(item.GetID() == NULL) { // Root for(size_t i=0; i<m_data.size(); ++i) { children.Add( wxDataViewItem( m_data.at(i) ) ); } return children.size(); } children.Clear(); TreeListModel_Item* node = reinterpret_cast<TreeListModel_Item*>(item.m_pItem); if ( node ) { for(size_t i=0; i<node->GetChildren().size(); ++i) { children.Add( wxDataViewItem( node->GetChildren().at(i) ) ); } } return children.GetCount(); }
unsigned int ProjectViewModel::GetChildren(const wxDataViewItem& item, wxDataViewItemArray& items) const { Reflect::DocumentElement* node = static_cast< Reflect::DocumentElement* >( item.GetID() ); if ( node ) { for ( std::vector< Reflect::DocumentNodePtr >::const_iterator itr = node->GetChildren().begin() , end = node->GetChildren().end() ; itr != end ; ++itr ) { items.push_back( itr->Ptr() ); } return items.size(); } return 0; }
/** * Push all children of the supplied item into the list * If the supplied item is invalid, push all the top-level items */ unsigned int BOM_TABLE_MODEL::GetChildren( const wxDataViewItem& aItem, wxDataViewItemArray& aChildren ) const { auto row = aItem.IsOk() ? ItemToRow( aItem ) : nullptr; // Valid row, return its children if( row ) { return row->GetChildren( aChildren ); } else { for( auto& group : Groups ) { aChildren.Add( RowToItem( &*group ) ); } return aChildren.size(); } }
unsigned int TreeModelFilter::GetChildren(const wxDataViewItem& item, wxDataViewItemArray& children) const { if (_filterColumn == NULL && !_customVisibleFunc) { return _childModel->GetChildren(item, children); } // Get the raw child list wxDataViewItemArray unfilteredChildren; _childModel->GetChildren(item, unfilteredChildren); // Only add the visible ones to the result set std::for_each(unfilteredChildren.begin(), unfilteredChildren.end(), [&] (const wxDataViewItem& item) { if (ItemIsVisible(item)) { children.Add(item); } }); return children.size(); }
unsigned int GetChildren(wxDataViewItemArray &out) const override { out.reserve(categories.size()); for (auto const& category : categories) out.push_back(wxDataViewItem((void*)&category)); return out.size(); }
unsigned int GetChildren(wxDataViewItemArray &out) const override { out = visible_items; return out.size(); }
unsigned int GetChildren(wxDataViewItemArray &out) const { out.reserve(categories.size()); for (std::list<HotkeyModelCategory>::const_iterator it = categories.begin(); it != categories.end(); ++it) out.push_back(wxDataViewItem((void*)&*it)); return out.size(); }