2 * Copyright (C) 2016 The Qt Company Ltd.
3 * Copyright (c) 2018 TOYOTA MOTOR CORPORATION
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
18 #ifndef NATIVEAPPMODE_H
19 #define NATIVEAPPMODE_H
21 #include <QtCore/QAbstractListModel>
24 class NativeAppModel : public QAbstractListModel {
29 IconRole = Qt::DisplayRole,
30 NameRole = Qt::DecorationRole,
31 IdRole = Qt::UserRole,
39 explicit NativeAppModel(QObject* parent = nullptr);
42 int rowCount(const QModelIndex& parent = QModelIndex()) const override;
44 QVariant data(const QModelIndex& index,
45 int role = Qt::DisplayRole) const override;
46 QHash<int, QByteArray> roleNames() const override;
47 Q_INVOKABLE QString id(int index) const;
48 Q_INVOKABLE QString name(int index) const;
49 Q_INVOKABLE int launch(const QString& application);
50 Q_INVOKABLE void uninstall(int index);
51 Q_INVOKABLE void refresh();
53 void appChanged(const QString& info);
56 void applistChanged(const QList<AppInfo>& applist);
63 #endif // NATIVEAPPMODE_H