-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathWebInfos.cpp
93 lines (78 loc) · 2.43 KB
/
WebInfos.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include <QString>
#include <QStringList>
#include <QDebug>
#include "WebInfos.h"
#include "WebContents.h"
WebInfos::WebInfos(QString identifier, QString sdkVersion, QString installedVersion) {
m_wc = new WebContents;
m_identifier = identifier;
m_sdk_version = sdkVersion;
m_installedVersion = installedVersion;
}
void WebInfos::fetch() {
connect(m_wc, SIGNAL(stringAvailable(QString)), SLOT(infosArrived(QString)));
m_wc->fetch("http://schrell.de/AfterShotPro/WebTools/PlugInfo.php?sdk=" + m_sdk_version + "&id=" + m_identifier);
}
void WebInfos::fetchAll() {
connect(m_wc, SIGNAL(stringAvailable(QString)), SLOT(allInfosArrived(QString)));
m_wc->fetch("http://schrell.de/AfterShotPro/WebTools/PlugInfo.php?sdk=" + m_sdk_version + "&id=%");
}
void WebInfos::infosArrived(QString str) {
QRegExp re("(\\s|')");
str.remove(re);
QStringList webFields = str.split(";");
if (webFields.size() < 4) return;
m_name = webFields.at(0);
m_webVersion = webFields.at(2);
m_link = webFields.at(3);
emit ready();
}
void WebInfos::allInfosArrived(QString str) {
QStringList strList = str.split("\n");
QList<WebInfos*> wiList;
QStringListIterator i(strList);
while (i.hasNext()) {
QString singleStr = i.next();
QRegExp re("(\\s|')");
singleStr.remove(re);
QStringList webFields = singleStr.split(";");
if (webFields.size() < 4) continue;
WebInfos *wi = new WebInfos(webFields.at(0), m_sdk_version, NULL);
wi->m_identifier = webFields.at(1);
wi->m_webVersion = webFields.at(2);
wi->m_name = webFields.at(0);
wi->m_link = webFields.at(3);
wiList.append(wi);
}
emit readyAll(wiList);
}
bool WebInfos::isWebNewer() {
return formatVersion(m_webVersion) > formatVersion(m_installedVersion);
}
QString WebInfos::formatVersion(QString versionString) {
QStringList vList = versionString.split(".");
QString result("");
QStringListIterator i(vList);
while (i.hasNext()) {
result.append(QString("%1.").arg(i.next(),5,'0'));
}
return result;
}
QString WebInfos::name() {
return m_name;
}
QString WebInfos::identifier() {
return m_identifier;
}
QString WebInfos::installedVersion() {
return m_installedVersion;
}
QString WebInfos::webVersion() {
return m_webVersion;
}
QString WebInfos::sdk_version() {
return m_sdk_version;
}
QString WebInfos::link() {
return m_link;
}