Move the urlSchemeHandler content handling in a specific method.

Just a bit of code reformating.
This commit is contained in:
Matthieu Gautier 2018-11-13 18:11:57 +01:00
parent 29e27fa5d2
commit dd52ac8255
2 changed files with 18 additions and 4 deletions

View File

@ -13,7 +13,7 @@ UrlSchemeHandler::UrlSchemeHandler()
void void
UrlSchemeHandler::requestStarted(QWebEngineUrlRequestJob *request) UrlSchemeHandler::handleContentRequest(QWebEngineUrlRequestJob *request)
{ {
auto qurl = request->requestUrl(); auto qurl = request->requestUrl();
std::string url = qurl.path().toUtf8().constData(); std::string url = qurl.path().toUtf8().constData();
@ -30,18 +30,18 @@ UrlSchemeHandler::requestStarted(QWebEngineUrlRequestJob *request)
kiwix::Entry entry; kiwix::Entry entry;
try { try {
entry = reader->getEntryFromPath(url); entry = reader->getEntryFromPath(url);
} catch (kiwix::NoEntry& e) { } catch (kiwix::NoEntry&) {
url = "A/" + url; url = "A/" + url;
try { try {
entry = reader->getEntryFromPath(url); entry = reader->getEntryFromPath(url);
} catch (kiwix::NoEntry& e) { } catch (kiwix::NoEntry&) {
request->fail(QWebEngineUrlRequestJob::UrlNotFound); request->fail(QWebEngineUrlRequestJob::UrlNotFound);
return; return;
} }
} }
try { try {
entry = entry.getFinalEntry(); entry = entry.getFinalEntry();
} catch (kiwix::NoEntry& e) { } catch (kiwix::NoEntry&) {
request->fail(QWebEngineUrlRequestJob::UrlNotFound); request->fail(QWebEngineUrlRequestJob::UrlNotFound);
return; return;
} }
@ -51,3 +51,15 @@ UrlSchemeHandler::requestStarted(QWebEngineUrlRequestJob *request)
connect(buffer, &QIODevice::aboutToClose, buffer, &QObject::deleteLater); connect(buffer, &QIODevice::aboutToClose, buffer, &QObject::deleteLater);
request->reply(mimeType, buffer); request->reply(mimeType, buffer);
} }
void
UrlSchemeHandler::requestStarted(QWebEngineUrlRequestJob *request)
{
auto qurl = request->requestUrl();
auto host = qurl.host();
if (host.endsWith(".zim")) {
handleContentRequest(request);
} else {
request->fail(QWebEngineUrlRequestJob::UrlNotFound);
}
}

View File

@ -8,6 +8,8 @@ class UrlSchemeHandler : public QWebEngineUrlSchemeHandler
public: public:
UrlSchemeHandler(); UrlSchemeHandler();
void requestStarted(QWebEngineUrlRequestJob *request); void requestStarted(QWebEngineUrlRequestJob *request);
private:
void handleContentRequest(QWebEngineUrlRequestJob *request);
}; };
#endif // URLSCHEMEHANDLER_H #endif // URLSCHEMEHANDLER_H