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
1313 #include <QUrl>
1414 #include <QUrlQuery>
1515 #include <QXmlStreamReader>
16+#include <QDirIterator>
1617
1718 #include <NetworkAccessManager.h>
1819 #include <PathUtils.h>
@@ -155,18 +156,29 @@ void ScriptsModel::reloadDefaultFiles() { · 136 unmodified lines
155156
156157 void ScriptsModel::requestDefaultFiles(QString marker) {
157158 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);
164159
165− QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
166− QNetworkRequest request(url);
167− request.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT);
168− QNetworkReply* reply = networkAccessManager.get(request);
169− connect(reply, SIGNAL(finished()), SLOT(downloadFinished()));
160+ if (url.isLocalFile()) {
161+ // QDirIterator it(url.toLocalFile(), QStringList() << "*.js", QDir::Files, QDirIterator::Subdirectories);
162+ // while (it.hasNext()) {
163+ // QString jsFile = it.next();;
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+ }
170182 }
171183
172184 void ScriptsModel::downloadFinished() {
@@ -179,8 +191,10 @@ void ScriptsModel::downloadFinished() { · 6 unmodified lines
179191 if (!data.isEmpty()) {
180192 finished = parseXML(data);
181193 } else {
182− qCDebug(scriptengine) << "Error: Received no data when loading remote scripts";
194+ qCDebug(scriptengine) << "Error: Received no data when loading default scripts";
183195 }
196+ } else {
197+ qDebug() << "error is" << reply->error();
184198 }
185199
186200 reply->deleteLater();
@@ -214,6 +228,7 @@ bool ScriptsModel::parseXML(QByteArray xmlFile) { · 27 unmodified lines
214228 if (xml.tokenType() == QXmlStreamReader::StartElement && xml.name() == KEY_NAME) {
215229 xml.readNext();
216230 lastKey = xml.text().toString();
231+ qDebug() << "lastKey = " << lastKey;
217232 if (jsRegex.exactMatch(xml.text().toString())) {
218233 _treeNodes.append(new TreeNodeScript(lastKey.mid(MODELS_LOCATION.length()),
219234 defaultScriptsLocation() + "/" + lastKey,
@@ -230,7 +245,7 @@ bool ScriptsModel::parseXML(QByteArray xmlFile) { · 10 unmodified lines
230245
231246 // Error handling
232247 if (xml.hasError()) {
233− qCDebug(scriptengine) << "Error loading remote scripts: " << xml.errorString();
248+ qCDebug(scriptengine) << "Error loading default scripts: " << xml.errorString();
234249 return true;
235250 }
236251