on xenial help sign in
ad SearchHistoryModel as a singleton
8654f99Michael Zanetti
qml/Components/SearchHistoryModel/SearchHistoryModel.qmlnew file+42
@@ -0,0 +1,42 @@
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.0
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+}
qml/Components/SearchHistoryModel/qmldirnew file+1
@@ -0,0 +1 @@
1+singleton SearchHistoryModel 1.0 SearchHistoryModel.qml