2 * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH
3 * Copyright (C) 2016 The Qt Company Ltd.
4 * Copyright (c) 2018 TOYOTA MOTOR CORPORATION
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
22 #include <QtCore/QJsonObject>
23 #include <QtCore/QObject>
24 #include <QtCore/QSharedDataPointer>
28 Q_PROPERTY(QString id READ id)
29 Q_PROPERTY(QString version READ version)
30 Q_PROPERTY(int width READ width)
31 Q_PROPERTY(int height READ height)
32 Q_PROPERTY(QString name READ name)
33 Q_PROPERTY(QString description READ description)
34 Q_PROPERTY(QString shortname READ shortname)
35 Q_PROPERTY(QString author READ author)
36 Q_PROPERTY(QString iconPath READ iconPath)
37 Q_PROPERTY(AppState state READ state WRITE setState)
38 Q_PROPERTY(qreal progress READ progress WRITE setProgress)
39 Q_PROPERTY(QString serverid READ serverId)
40 Q_PROPERTY(QString wgtpath READ wgtPath)
41 Q_PROPERTY(QString filename READ fileName)
42 Q_PROPERTY(QString categoryid READ categoryId)
43 Q_PROPERTY(QString categoryname READ categoryName)
44 Q_PROPERTY(QString deviceid READ deviceId)
45 Q_PROPERTY(QString devicename READ deviceName)
46 Q_PROPERTY(double createdtime READ createdTime)
48 enum AppState { Install = 0, Update, Launch, Downloading, Installing };
52 AppInfo(const QString& icon, const QString& name, const QString& id);
53 AppInfo(const AppInfo& other);
55 AppInfo& operator=(const AppInfo& other);
56 void swap(AppInfo& other) { qSwap(d, other.d); }
59 QString version() const;
63 QString description() const;
64 QString shortname() const;
65 QString author() const;
66 QString iconPath() const;
67 AppState state() const;
68 qreal progress() const;
70 QString serverId() const;
71 QString wgtPath() const;
72 QString fileName() const;
73 QString categoryId() const;
74 QString categoryName() const;
75 QString deviceId() const;
76 QString deviceName() const;
77 double createdTime() const;
79 void setState(const AppState state);
80 void setProgress(const qreal progress);
82 void read(const QJsonObject& json);
83 void readFromServer(const QJsonObject& json);
87 QSharedDataPointer<Private> d;
90 Q_DECLARE_SHARED(AppInfo)
91 Q_DECLARE_METATYPE(AppInfo)
92 Q_DECLARE_METATYPE(QList<AppInfo>)