MCPcopy Create free account
hub / github.com/KDE/falkon / requireDownloaded

Method requireDownloaded

src/plugins/GreaseMonkey/gm_downloader.cpp:95–156  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

93}
94
95void GM_Downloader::requireDownloaded()
96{
97 Q_ASSERT(m_reply == qobject_cast<QNetworkReply*>(sender()));
98
99 deleteLater();
100 m_reply->deleteLater();
101
102 if (m_reply != qobject_cast<QNetworkReply*>(sender())) {
103 Q_EMIT error();
104 return;
105 }
106
107 if (m_reply->error() != QNetworkReply::NoError) {
108 qWarning() << "GreaseMonkey: Cannot download require script" << m_reply->errorString();
109 Q_EMIT error();
110 return;
111 }
112
113 const QByteArray response = QString::fromUtf8(m_reply->readAll()).toUtf8();
114
115 if (response.isEmpty()) {
116 qWarning() << "GreaseMonkey: Empty script downloaded" << m_reply->request().url();
117 Q_EMIT error();
118 return;
119 }
120
121 QSettings settings(m_manager->settingsPath() + QL1S("/greasemonkey/requires/requires.ini"), QSettings::IniFormat);
122 settings.beginGroup("Files");
123
124 if (m_fileName.isEmpty()) {
125 m_fileName = settings.value(m_reply->request().url().toString()).toString();
126 if (m_fileName.isEmpty()) {
127 QString name = QFileInfo(m_reply->request().url().path()).fileName();
128 if (name.isEmpty()) {
129 name = QSL("require.js");
130 } else if (!name.endsWith(QL1S(".js"))) {
131 name.append(QSL(".js"));
132 }
133 const QString filePath = m_manager->settingsPath() + QL1S("/greasemonkey/requires/") + name;
134 m_fileName = QzTools::ensureUniqueFilename(filePath, QSL("%1"));
135 }
136 if (!QFileInfo(m_fileName).isAbsolute()) {
137 m_fileName.prepend(m_manager->settingsPath() + QL1S("/greasemonkey/requires/"));
138 }
139 }
140
141 QFile file(m_fileName);
142
143 if (!file.open(QFile::WriteOnly)) {
144 qWarning() << "GreaseMonkey: Cannot open file for writing" << m_fileName;
145 Q_EMIT error();
146 return;
147 }
148
149 file.write(response);
150 file.close();
151
152 settings.setValue(m_reply->request().url().toString(), QFileInfo(m_fileName).fileName());

Callers

nothing calls this directly

Calls 13

QFileInfoClass · 0.85
beginGroupMethod · 0.80
openMethod · 0.80
endGroupMethod · 0.80
errorMethod · 0.45
errorStringMethod · 0.45
urlMethod · 0.45
settingsPathMethod · 0.45
valueMethod · 0.45
fileNameMethod · 0.45
pathMethod · 0.45
closeMethod · 0.45

Tested by

no test coverage detected