Copy source code from homescreen-2017
[apps/homescreen.git] / homescreen / src / applicationlauncher.h
1 /*
2  * Copyright (C) 2016 The Qt Company Ltd.
3  * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH
4  * Copyright (c) 2017 TOYOTA MOTOR CORPORATION
5  *
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
9  *
10  *      http://www.apache.org/licenses/LICENSE-2.0
11  *
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.
17  */
18
19 #ifndef APPLICATIONLAUNCHER_H
20 #define APPLICATIONLAUNCHER_H
21
22 #include <QtCore/QObject>
23
24 class QTimer;
25
26 class ApplicationLauncher : public QObject
27 {
28     Q_OBJECT
29     Q_PROPERTY(bool launching READ isLaunching NOTIFY launchingChanged)
30     Q_PROPERTY(QString current READ current WRITE setCurrent NOTIFY currentChanged)
31 public:
32     explicit ApplicationLauncher(QObject *parent = NULL);
33
34     bool isLaunching() const;
35     QString current() const;
36
37 signals:
38     void newAppRequestsToBeVisible(int pid);
39     void launchingChanged(bool launching);
40     void currentChanged(const QString &current);
41
42 public slots:
43     int launch(const QString &application);
44     void setCurrent(const QString &current);
45
46 private:
47     void setLaunching(bool launching);
48
49 private:
50     bool m_launching;
51     QString m_current;
52     QTimer *m_timeout;
53 };
54
55 #endif // APPLICATIONLAUNCHER_H