Skip to content

Commit 70ebb8e

Browse files
committed
avoid duplicated code
1 parent 60a006d commit 70ebb8e

File tree

3 files changed

+67
-91
lines changed

3 files changed

+67
-91
lines changed

jenkins.pro

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ isEmpty(IDE_BUILD_TREE):IDE_BUILD_TREE=C:/dev/Libs/QtSDK/QtSources/qtcreator-bui
1414

1515
DESTDIR = $$IDE_BUILD_TREE/lib/qtcreator/plugins/$$PROVIDER
1616

17-
LIBS += -L$$IDE_BUILD_TREE/bin/lib/qtcreator -L$$IDE_BUILD_TREE/lib/qtcreator/plugins/Nokia
17+
LIBS += -L$$IDE_BUILD_TREE/lib/qtcreator/plugins/Nokia
1818

1919
include($$IDE_SOURCE_TREE/src/qtcreatorplugin.pri)
2020
include($$IDE_SOURCE_TREE/src/plugins/coreplugin/coreplugin.pri)

src/datafetcher.cpp

+64-89
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ static const QString getOsString()
104104
struct utsname uts;
105105
if (uname(&uts) == 0)
106106
osString += QString("%1 %2").arg(QLatin1String(uts.sysname))
107-
.arg(QLatin1String(uts.release));
107+
.arg(QLatin1String(uts.release));
108108
else
109109
osString += QLatin1String("Unix (Unknown)");
110110
#else
@@ -122,11 +122,23 @@ DataFetcher::DataFetcher(int maxItems, QObject *parent)
122122

123123
void DataFetcher::fetch(QString urlString, QString username, QString password)
124124
{
125-
QUrl url = QUrl::fromUserInput(urlString + "/api/xml?depth=2");
126-
m_errorMessage = "fetching " + url.toString() + "\n";
125+
QUrl url = QUrl::fromUserInput(urlString + "/api/xml?depth=2");
127126
url.setUserName(username);
128127
url.setPassword(password);
128+
fetch(url);
129+
}
129130

131+
void DataFetcher::fetchQueue(QString urlString, QString username, QString password)
132+
{
133+
QUrl url = QUrl::fromUserInput(urlString + "/queue/api/xml");
134+
url.setUserName(username);
135+
url.setPassword(password);
136+
fetch(url);
137+
}
138+
139+
void DataFetcher::fetch(QUrl &url)
140+
{
141+
m_errorMessage = "fetching " + url.toString() + "\n";
130142
if (!url.isValid()) {
131143
emit finished(true, "invalid URL");
132144
return;
@@ -151,54 +163,17 @@ void DataFetcher::fetch(QString urlString, QString username, QString password)
151163
.arg(getOsString()).arg(QLocale::system().name())
152164
.arg(QSysInfo::WordSize).toLocal8Bit());
153165
request.setRawHeader("Accept", "text/xml,application/xml; charset=UTF-8");
154-
if(username.length() > 0)
155-
request.setRawHeader("Authorization", "Basic " + QByteArray(QString("%1:%2").arg(username).arg(password).toAscii()).toBase64());
166+
if(!url.userName().isEmpty())
167+
request.setRawHeader("Authorization", "Basic " + QByteArray(QString("%1:%2").arg(url.userName()).arg(url.password()).toAscii()).toBase64());
156168
mNetworkAccess.proxyFactory()->setUseSystemConfiguration(true);
157169
mNetworkAccess.get( request );
158170
}
159171

160-
void DataFetcher::fetchQueue(QString urlString, QString username, QString password)
161-
{
162-
QUrl url = QUrl::fromUserInput(urlString + "/queue/api/xml");
163-
m_errorMessage = "fetching " + url.toString() + "\n";
164-
url.setUserName(username);
165-
url.setPassword(password);
166-
167-
if (!url.isValid()) {
168-
emit finished(true, "invalid URL");
169-
return;
170-
}
171-
172-
if (url.scheme() == "file") {
173-
QString filename = url.toLocalFile();
174-
QFile file(filename);
175-
if (file.open(QFile::ReadOnly)) {
176-
QXmlStreamReader xmlReader(file.readAll());
177-
parseXml(xmlReader);
178-
} else {
179-
emit finished(true, "Unable to read the file: " + filename);
180-
}
181-
file.close();
182-
return;
183-
}
184-
185-
QNetworkRequest request(url);
186-
request.setRawHeader("User-Agent", QString("Qt-Creator/%1 (QHttp %2; %3; %4; %5 bit)")
187-
.arg(Core::Constants::IDE_VERSION_LONG).arg(qVersion())
188-
.arg(getOsString()).arg(QLocale::system().name())
189-
.arg(QSysInfo::WordSize).toLocal8Bit());
190-
request.setRawHeader("Accept", "text/xml,application/xml; charset=UTF-8");
191-
if(username.length() > 0)
192-
request.setRawHeader("Authorization", "Basic " + QByteArray(QString("%1:%2").arg(username).arg(password).toAscii()).toBase64());
193-
mNetworkAccess.proxyFactory()->setUseSystemConfiguration(true);
194-
mNetworkAccess.get( request );
195-
}
196-
197172
void DataFetcher::finished(QNetworkReply* repl)
198173
{
199174
bool error = repl->error() != QNetworkReply::NoError;
200175
if (error) {
201-
m_errorMessage = "Error code (NOT HTTP-Code!) : " + QString::number(repl->error()) + " / HTTP code " + repl->attribute(QNetworkRequest::HttpStatusCodeAttribute).toString() +" \n\t" + repl->errorString() +"\n";
176+
m_errorMessage = "Error code (NOT HTTP-Code!) : " + QString::number(repl->error()) + " / HTTP code " + repl->attribute(QNetworkRequest::HttpStatusCodeAttribute).toString() +" \n\t" + repl->errorString() +"\n";
202177
}
203178
else {
204179
QXmlStreamReader xmlReader(repl->readAll());
@@ -210,7 +185,7 @@ void DataFetcher::finished(QNetworkReply* repl)
210185

211186
bool endOfElement(QString elemName,QXmlStreamReader &xml)
212187
{
213-
return (xml.isEndElement() && xml.name() == elemName);
188+
return (xml.isEndElement() && xml.name() == elemName);
214189
}
215190

216191
void readUntilEndOf(QString /*elem*/, QXmlStreamReader &xml) {
@@ -223,12 +198,12 @@ void DataFetcher::parseXml(QXmlStreamReader &xml)
223198
bool rootOK = false;
224199
while (!(xml.atEnd() || xml.error())) {
225200
if (xml.readNext() == QXmlStreamReader::StartElement) {
226-
if (xml.name() == "hudson" || xml.name() == "queue")
201+
if (xml.name() == "hudson" || xml.name() == "queue")
227202
rootOK = true;
228203
else if (rootOK && xml.name() == "job")
229204
parseJob(xml);
230-
else if (rootOK && xml.name() == "item")
231-
parseItem(xml);
205+
else if (rootOK && xml.name() == "item")
206+
parseItem(xml);
232207
else
233208
xml.skipCurrentElement();
234209
}
@@ -295,52 +270,52 @@ void DataFetcher::parseLastBuild(QXmlStreamReader &xml)
295270

296271
void DataFetcher::parseItem(QXmlStreamReader &xml)
297272
{
298-
currentProject.clear();
299-
while (!(xml.error() || xml.atEnd() || endOfElement("item",xml)))
300-
{
301-
if (xml.readNextStartElement())
302-
{
303-
if (xml.name() == "blocked")
304-
currentItem.blocked = xml.readElementText() == "true" ? true : false;
305-
else if (xml.name() == "buildable")
306-
currentItem.buildable = xml.readElementText() == "true" ? true : false;
307-
else if (xml.name() == "stuck")
308-
currentItem.stuck = xml.readElementText() == "true" ? true : false;
309-
else if (xml.name() == "why")
310-
currentItem.why = xml.readElementText();
311-
else if (xml.name() == "action")
312-
parseItemAction(xml);
313-
else if (xml.name() == "task")
314-
parseItemTask(xml);
315-
else
316-
xml.skipCurrentElement();
317-
}
318-
}
319-
emit queueItemReady(currentItem);
273+
currentProject.clear();
274+
while (!(xml.error() || xml.atEnd() || endOfElement("item",xml)))
275+
{
276+
if (xml.readNextStartElement())
277+
{
278+
if (xml.name() == "blocked")
279+
currentItem.blocked = xml.readElementText() == "true" ? true : false;
280+
else if (xml.name() == "buildable")
281+
currentItem.buildable = xml.readElementText() == "true" ? true : false;
282+
else if (xml.name() == "stuck")
283+
currentItem.stuck = xml.readElementText() == "true" ? true : false;
284+
else if (xml.name() == "why")
285+
currentItem.why = xml.readElementText();
286+
else if (xml.name() == "action")
287+
parseItemAction(xml);
288+
else if (xml.name() == "task")
289+
parseItemTask(xml);
290+
else
291+
xml.skipCurrentElement();
292+
}
293+
}
294+
emit queueItemReady(currentItem);
320295
}
321296
void DataFetcher::parseItemAction(QXmlStreamReader &xml)
322297
{
323-
while (!(xml.error() || xml.atEnd() || endOfElement("action",xml)))
324-
{
325-
if (xml.readNextStartElement()) {
326-
if(xml.name() == "cause" && xml.readNextStartElement()) {
327-
if(xml.name() == "shortDescription")
328-
currentItem.cause = xml.readElementText();
329-
}
330-
}
331-
}
298+
while (!(xml.error() || xml.atEnd() || endOfElement("action",xml)))
299+
{
300+
if (xml.readNextStartElement()) {
301+
if(xml.name() == "cause" && xml.readNextStartElement()) {
302+
if(xml.name() == "shortDescription")
303+
currentItem.cause = xml.readElementText();
304+
}
305+
}
306+
}
332307
}
333308
void DataFetcher::parseItemTask(QXmlStreamReader &xml)
334309
{
335-
while (!(xml.error() || xml.atEnd() || endOfElement("task",xml)))
336-
{
337-
if (xml.readNextStartElement()) {
338-
if(xml.name() == "name") {
339-
currentItem.task = xml.readElementText();
340-
}
341-
if(xml.name() == "color") {
342-
currentItem.color = xml.readElementText();
343-
}
344-
}
345-
}
310+
while (!(xml.error() || xml.atEnd() || endOfElement("task",xml)))
311+
{
312+
if (xml.readNextStartElement()) {
313+
if(xml.name() == "name") {
314+
currentItem.task = xml.readElementText();
315+
}
316+
if(xml.name() == "color") {
317+
currentItem.color = xml.readElementText();
318+
}
319+
}
320+
}
346321
}

src/datafetcher.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ Q_OBJECT
2323

2424
public slots:
2525
void fetch(QString urlString, QString username=QString(), QString password=QString());
26-
void fetchQueue(QString urlString, QString username=QString(), QString password=QString());
26+
void fetchQueue(QString urlString, QString username=QString(), QString password=QString());
27+
void fetch(QUrl &url);
2728
void finished(QNetworkReply* repl);
2829

2930
signals:

0 commit comments

Comments
 (0)