Unity 8
CardCreatorCache.qml
1 /*
2  * Copyright (C) 2014 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 import "CardCreator.js" as CardCreator
20 
21 QtObject {
22  id: root
23 
24  property var cache: new Object();
25 
26  function getCardComponent(template, components) {
27  if (template === undefined || components === undefined)
28  return undefined;
29 
30  var tString = JSON.stringify(template);
31  var cString = JSON.stringify(components);
32  var allString = tString + cString;
33  var component = cache[allString];
34  if (component === undefined) {
35  component = CardCreator.createCardComponent(root, template, components);
36  cache[allString] = component;
37  }
38  return component;
39  }
40 }