title: QML prevent ListView delegate to update all the time
body: <p>I'm relatively new to QML/QtQuick and still learning. I have a little performane issue with a very small private project. I just tryed to implement a filter function to my ListView, because &gt;15.000 objects are a lot to search manually. I just want to update the ListView when I finished the editing of my search field or pressing &quot;return&quot;. But instead it's refreshing every time I insert or delete a character from this textfield which needs sometimes a few seconds.</p>
  <p>Anyone have an idea how to prevent the list to be refreshed permanently or reducing theese performance issues?</p>
  <p>Thanks a lot</p>
  <pre><code>import QtQuick 2.12
  import QtQuick.Controls 2.5
  import QtQuick.XmlListModel 2.12
  import Anime_initialiser  1.0
  import &quot;.&quot;
  
  Page {
      TextField{
          id: searchField
          width: parent.width
          z: 1
          /*onEditingFinished: {
              XL.animeListModel.reload()
          }*/
      }
      ListView {
          z: 0
          ScrollBar.vertical: ScrollBar { active: true }
          id: listView
          width: parent.width
          height: parent.height
          model: XL.animeListModel
          y: searchField.height
          Anime_initialiser {
              id: initialiser
              onShowAnimeDetails: {
                  xmlDataString = xmlString
                  swipeView.currentIndex = swipeView.currentIndex+1
              }
          }
          delegate: ItemDelegate {
              visible: {
                  if (searchField.length &gt; 0)
                      return (main_title.toLowerCase().match(searchField.text.toLowerCase()) || de_title.toLowerCase().match(searchField.text.toLowerCase())) ? true : false
                  else
                      return true
              }
              height:  visible ? Button.height : 0
              width: parent ? parent.width : 0
              Button {
                  anchors.fill: parent
                  onClicked: {
                      anime_id = aid
                      initialiser.buttonClicked(anime_id)
                  }
                  Text {
                      width: parent.width
                      height: parent.height
                      font.pointSize: 100
                      minimumPointSize: 12
                      fontSizeMode: Text.Fit
                      text: aid + &quot;: &quot; + main_title + (de_title ? &quot;\nDE: &quot; + de_title : &quot;&quot;)
                  }
              }
          }
      }
  }
  </code></pre>