1
/***************************************************************************
2
* Copyright © 2010-2011 Jonathan Thomas <echidnaman@kubuntu.org> *
4
* This program is free software; you can redistribute it and/or *
5
* modify it under the terms of the GNU General Public License as *
6
* published by the Free Software Foundation; either version 2 of *
7
* the License or (at your option) version 3 or any later version *
8
* accepted by the membership of KDE e.V. (or its successor approved *
9
* by the membership of KDE e.V.), which shall act as a proxy *
10
* defined in Section 14 of version 3 of the license. *
12
* This program is distributed in the hope that it will be useful, *
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15
* GNU General Public License for more details. *
17
* You should have received a copy of the GNU General Public License *
18
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
19
***************************************************************************/
24
#include <QtCore/QByteArray>
25
#include <QtCore/QHash>
26
#include <QtCore/QStringList>
31
#include <LibQApt/Package>
33
#include "libmuonprivate_export.h"
39
class MUONPRIVATE_EXPORT Application : public QObject
42
Q_PROPERTY(QString name READ name CONSTANT)
43
Q_PROPERTY(QString untranslatedName READ untranslatedName CONSTANT)
44
Q_PROPERTY(QString comment READ comment CONSTANT)
45
Q_PROPERTY(QString icon READ icon CONSTANT)
46
Q_PROPERTY(QString mimetypes READ mimetypes CONSTANT)
47
Q_PROPERTY(QString menuPath READ menuPath CONSTANT)
48
Q_PROPERTY(QString categories READ categories CONSTANT)
49
Q_PROPERTY(QString homepage READ homepage CONSTANT)
50
Q_PROPERTY(QString longDescription READ longDescription CONSTANT)
51
Q_PROPERTY(QString license READ license CONSTANT)
52
Q_PROPERTY(QString installedVersion READ installedVersion CONSTANT)
53
Q_PROPERTY(QString availableVersion READ availableVersion CONSTANT)
54
Q_PROPERTY(QString sizeDescription READ sizeDescription NOTIFY installChanged)
55
Q_PROPERTY(QString origin READ origin CONSTANT)
56
Q_PROPERTY(QString packageName READ packageName CONSTANT)
57
Q_PROPERTY(bool isValid READ isValid CONSTANT)
58
Q_PROPERTY(bool isTechnical READ isTechnical CONSTANT)
59
Q_PROPERTY(bool isInstalled READ isInstalled NOTIFY installChanged)
60
Q_PROPERTY(bool canUpgrade READ canUpgrade NOTIFY installChanged)
61
Q_PROPERTY(int usageCount READ usageCount CONSTANT)
62
Q_PROPERTY(bool canExecute READ canExecute CONSTANT)
63
Q_PROPERTY(QUrl screenshotUrl READ screenshotUrl CONSTANT)
64
Q_PROPERTY(QUrl thumbnailUrl READ thumbnailUrl CONSTANT)
66
friend class TransactionListener;
68
explicit Application(const QString &fileName, QApt::Backend *backend);
69
explicit Application(QApt::Package *package, QApt::Backend *backend);
73
QString untranslatedName();
75
QApt::Package *package();
77
QString mimetypes() const;
81
KUrl screenshotUrl(QApt::ScreenshotType type=QApt::Screenshot);
83
QApt::PackageList addons();
85
bool isTechnical() const;
87
QString packageName() const;
89
Q_SCRIPTABLE QByteArray getField(const QByteArray &field) const;
90
Q_SCRIPTABLE QHash<QByteArray, QByteArray> desktopContents();
92
//QApt::Package forwarding
93
bool isInstalled() const;
94
QString homepage() const;
95
QString longDescription() const;
96
QString installedVersion() const;
97
QString availableVersion() const;
98
QString sizeDescription();
99
QString origin() const;
103
QVector<KService::Ptr> executables() const;
105
/** Used to trigger the installChanged signal from the ApplicationBackend */
106
void emitInstallChanged();
108
Q_SCRIPTABLE void invokeApplication() const;
110
bool canExecute() const;
112
void installChanged();
115
void populateZeitgeistInfo();
116
QVector<QPair<QString, QString> > locateApplication(const QString &_relPath, const QString &menuId) const;
119
QHash<QByteArray, QByteArray> m_data;
120
QApt::Backend *m_backend;
121
QApt::Package *m_package;
122
QByteArray m_packageName;