Unity 8
SearchHistoryModel.qml
1 /*
2  * Copyright (C) 2013 Canonical, Ltd.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; version 3.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  */
16 
17 pragma Singleton
18 import QtQuick 2.4
19 
20 // TODO sanitize input, move to persistent storage
21 
22 ListModel {
23  function addQuery(newQuery) {
24  // strip whitespaces
25  newQuery = newQuery.replace(/^\s+|\s+$/g, '');
26  // ignore empty queries
27  if (newQuery == "") return
28  for (var i = 0; i < count; i++) {
29  if (get(i).query == newQuery) {
30  // promote existing entry
31  move(i, 0, 1)
32  return
33  }
34  }
35  // add a new entry
36  insert(0, { "query": newQuery })
37  if (count > 3) {
38  // remove entries if there's more than three
39  remove(3)
40  }
41  }
42 }