History

working toward allowing local files in running-scripts window

Seth Alves committed 10 years ago

Commit 3aa10901 parent b8877022 files · +32 −17Browse files

Showing the changes to libraries/script-engine/src/ScriptsModel.cpp (1 of 2 files). Show all

Unified · Split

libraries/script-engine/src/ScriptsModel.cpp+28−13
@@ -13,6 +13,7 @@ · 12 unmodified lines
13#include <QUrl>13#include <QUrl>
14#include <QUrlQuery>14#include <QUrlQuery>
15#include <QXmlStreamReader>15#include <QXmlStreamReader>
16#include <QDirIterator>
16 17
17#include <NetworkAccessManager.h>18#include <NetworkAccessManager.h>
18#include <PathUtils.h>19#include <PathUtils.h>
@@ -155,18 +156,29 @@ void ScriptsModel::reloadDefaultFiles() { · 136 unmodified lines
155 156
156void ScriptsModel::requestDefaultFiles(QString marker) {157void ScriptsModel::requestDefaultFiles(QString marker) {
157 QUrl url(defaultScriptsLocation());158 QUrl url(defaultScriptsLocation());
158 QUrlQuery query;
159 query.addQueryItem(PREFIX_PARAMETER_NAME, MODELS_LOCATION);
160 if (!marker.isEmpty()) {
161 query.addQueryItem(MARKER_PARAMETER_NAME, marker);
162 }
163 url.setQuery(query);
164 159
165 QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();160 if (url.isLocalFile()) {
166 QNetworkRequest request(url);161 // QDirIterator it(url.toLocalFile(), QStringList() << "*.js", QDir::Files, QDirIterator::Subdirectories);
167 request.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT);162 // while (it.hasNext()) {
168 QNetworkReply* reply = networkAccessManager.get(request);163 // QString jsFile = it.next();;
169 connect(reply, SIGNAL(finished()), SLOT(downloadFinished()));164 // _treeNodes.append(new TreeNodeScript(lastKey.mid(MODELS_LOCATION.length()),
165 // defaultScriptsLocation() + "/" + jsFile,
166 // SCRIPT_ORIGIN_DEFAULT));
167 // }
168 } else {
169 QUrlQuery query;
170 query.addQueryItem(PREFIX_PARAMETER_NAME, MODELS_LOCATION);
171 if (!marker.isEmpty()) {
172 query.addQueryItem(MARKER_PARAMETER_NAME, marker);
173 }
174 url.setQuery(query);
175
176 QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
177 QNetworkRequest request(url);
178 request.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT);
179 QNetworkReply* reply = networkAccessManager.get(request);
180 connect(reply, SIGNAL(finished()), SLOT(downloadFinished()));
181 }
170}182}
171 183
172void ScriptsModel::downloadFinished() {184void ScriptsModel::downloadFinished() {
@@ -179,8 +191,10 @@ void ScriptsModel::downloadFinished() { · 6 unmodified lines
179 if (!data.isEmpty()) {191 if (!data.isEmpty()) {
180 finished = parseXML(data);192 finished = parseXML(data);
181 } else {193 } else {
182 qCDebug(scriptengine) << "Error: Received no data when loading remote scripts";194 qCDebug(scriptengine) << "Error: Received no data when loading default scripts";
183 }195 }
196 } else {
197 qDebug() << "error is" << reply->error();
184 }198 }
185 199
186 reply->deleteLater();200 reply->deleteLater();
@@ -214,6 +228,7 @@ bool ScriptsModel::parseXML(QByteArray xmlFile) { · 27 unmodified lines
214 if (xml.tokenType() == QXmlStreamReader::StartElement && xml.name() == KEY_NAME) {228 if (xml.tokenType() == QXmlStreamReader::StartElement && xml.name() == KEY_NAME) {
215 xml.readNext();229 xml.readNext();
216 lastKey = xml.text().toString();230 lastKey = xml.text().toString();
231 qDebug() << "lastKey = " << lastKey;
217 if (jsRegex.exactMatch(xml.text().toString())) {232 if (jsRegex.exactMatch(xml.text().toString())) {
218 _treeNodes.append(new TreeNodeScript(lastKey.mid(MODELS_LOCATION.length()),233 _treeNodes.append(new TreeNodeScript(lastKey.mid(MODELS_LOCATION.length()),
219 defaultScriptsLocation() + "/" + lastKey,234 defaultScriptsLocation() + "/" + lastKey,
@@ -230,7 +245,7 @@ bool ScriptsModel::parseXML(QByteArray xmlFile) { · 10 unmodified lines
230 245
231 // Error handling246 // Error handling
232 if (xml.hasError()) {247 if (xml.hasError()) {
233 qCDebug(scriptengine) << "Error loading remote scripts: " << xml.errorString();248 qCDebug(scriptengine) << "Error loading default scripts: " << xml.errorString();
234 return true;249 return true;
235 }250 }
236 251