Unity 8
 All Classes Functions Properties
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 import QtQuick 2.0
18 
19 // TODO sanitize input, move to persistent storage
20 
21 ListModel {
22  function addQuery(newQuery) {
23  // strip whitespaces
24  newQuery = newQuery.replace(/^\s+|\s+$/g, '');
25  // ignore empty queries
26  if (newQuery == "") return
27  for (var i = 0; i < count; i++) {
28  if (get(i).query == newQuery) {
29  // promote existing entry
30  move(i, 0, 1)
31  return
32  }
33  }
34  // add a new entry
35  insert(0, { "query": newQuery })
36  if (count > 3) {
37  // remove entries if there's more than three
38  remove(3)
39  }
40  }
41 }