@@ -57,6 +57,7 @@ func (f *ModelsList) SetGroups(groups ...ModelGroup) {
57// SetFilter sets the filter query and updates the list items.
57// SetFilter sets the filter query and updates the list items.
58func (f *ModelsList) SetFilter(q string) {
58func (f *ModelsList) SetFilter(q string) {
59 f.query = q
59 f.query = q
60+ f.SetItems(f.VisibleItems()...)
62// SetSelected sets the selected item index. It overrides the base method to
63// SetSelected sets the selected item index. It overrides the base method to
@@ -103,49 +104,56 @@ func (f *ModelsList) SetSelectedItem(itemID string) {
103// SelectNext selects the next model item, skipping any non-focusable items
104// SelectNext selects the next model item, skipping any non-focusable items
104// like group headers and spacers.
105// like group headers and spacers.
105func (f *ModelsList) SelectNext() (v bool) {
106func (f *ModelsList) SelectNext() (v bool) {
107− v = f.List.SelectNext()
107+ v = f.List.SelectNext()
108 selectedItem := f.SelectedItem()
109 selectedItem := f.SelectedItem()
109 if _, ok := selectedItem.(*ModelItem); ok {
110 if _, ok := selectedItem.(*ModelItem); ok {
113+ v = f.List.SelectNext()
115// SelectPrev selects the previous model item, skipping any non-focusable items
118// SelectPrev selects the previous model item, skipping any non-focusable items
116// like group headers and spacers.
119// like group headers and spacers.
117func (f *ModelsList) SelectPrev() (v bool) {
120func (f *ModelsList) SelectPrev() (v bool) {
119− v = f.List.SelectPrev()
121+ v = f.List.SelectPrev()
120 selectedItem := f.SelectedItem()
123 selectedItem := f.SelectedItem()
121 if _, ok := selectedItem.(*ModelItem); ok {
124 if _, ok := selectedItem.(*ModelItem); ok {
127+ v = f.List.SelectPrev()
127// SelectFirst selects the first model item in the list.
132// SelectFirst selects the first model item in the list.
128func (f *ModelsList) SelectFirst() (v bool) {
133func (f *ModelsList) SelectFirst() (v bool) {
129 v = f.List.SelectFirst()
134 v = f.List.SelectFirst()
131 selectedItem := f.SelectedItem()
136 selectedItem := f.SelectedItem()
132− if _, ok := selectedItem.(*ModelItem); ok {
137+ _, ok := selectedItem.(*ModelItem)
135 v = f.List.SelectNext()
141 v = f.List.SelectNext()
139// SelectLast selects the last model item in the list.
146// SelectLast selects the last model item in the list.
140func (f *ModelsList) SelectLast() (v bool) {
147func (f *ModelsList) SelectLast() (v bool) {
141 v = f.List.SelectLast()
148 v = f.List.SelectLast()
143 selectedItem := f.SelectedItem()
150 selectedItem := f.SelectedItem()
144 if _, ok := selectedItem.(*ModelItem); ok {
151 if _, ok := selectedItem.(*ModelItem); ok {
147 v = f.List.SelectPrev()
154 v = f.List.SelectPrev()
151// IsSelectedFirst checks if the selected item is the first model item.
159// IsSelectedFirst checks if the selected item is the first model item.