25
25
#include <QJsonValue>
28
namespace ClickPlugin {
28
30
ClickManager::ClickManager(QQuickItem *parent):
32
this->m_updatesAvailable = false;
33
this->connect(&(this->m_process), SIGNAL(finished(int)),
34
QObject::connect(&m_service, SIGNAL(credentialsFound(const Token&)),
35
this, SLOT(handleCredentialsFound(Token)));
36
QObject::connect(&m_service, SIGNAL(credentialsNotFound()),
37
this, SLOT(handleCredentialsNotFound()));
38
QObject::connect(&(this->m_process), SIGNAL(finished(int)),
34
39
this, SLOT(processOutput()));
35
this->connect(&(this->network), SIGNAL(updatesFound()),
40
QObject::connect(&(this->m_network), SIGNAL(updatesFound()),
36
41
this, SLOT(processUpdates()));
37
this->connect(&(this->network), SIGNAL(updatesNotFound()),
42
QObject::connect(&(this->m_network), SIGNAL(updatesNotFound()),
38
43
this, SIGNAL(updatesNotFound()));
39
this->connect(&(this->network), SIGNAL(downloadUrlFound(QString,QString)),
44
QObject::connect(&(this->m_network), SIGNAL(downloadUrlFound(QString,QString)),
40
45
this, SLOT(downloadUrlObtained(QString,QString)));
41
this->connect(&(this->downloader), SIGNAL(downloadCreated(QString,QString)),
46
QObject::connect(&(this->downloader), SIGNAL(downloadCreated(QString,QString)),
42
47
this, SLOT(downloadCreated(QString,QString)));
48
QObject::connect(&(this->downloader), SIGNAL(downloadNotCreated(QString,QString)),
49
this, SLOT(downloadNotCreated(QString,QString)));
45
52
ClickManager::~ClickManager()
49
void ClickManager::checkUpdates()
56
void ClickManager::handleCredentialsFound(Token token)
58
qDebug() << "Credentials found.";
59
this->m_token = token;
51
60
QStringList args("list");
52
61
args << "--manifest";
53
62
this->m_process.start("click", args);
65
void ClickManager::handleCredentialsNotFound()
67
qDebug() << "No credentials were found.";
68
emit this->credentialsNotFound();
71
void ClickManager::checkUpdates()
73
this->m_service.getCredentials();
56
76
void ClickManager::processOutput()
58
78
QString output(this->m_process.readAllStandardOutput());
90
110
void ClickManager::startDownload(QString packagename)
92
112
qDebug() << "Download Package:" << packagename;
93
this->network.getResourceUrl(packagename);
113
this->m_network.getResourceUrl(packagename);
96
116
void ClickManager::downloadUrlObtained(QString packagename, QString url)
98
this->downloader.startDownload(packagename, url.append("?noauth=1"));
99
qDebug() << "Download Url:" << url;
118
if(this->m_token.isValid()) {
119
QString authHeader = this->m_token.signUrl(url, QStringLiteral("GET"));
120
qDebug() << "Download Url:" << url;
121
this->m_apps[packagename]->setError("");
122
this->downloader.startDownload(packagename, url, authHeader);
124
Application* app = this->m_apps[packagename];
125
app->setError("Invalid User Token");
102
129
void ClickManager::downloadCreated(QString packagename, QString dbuspath)