aboutsummaryrefslogtreecommitdiff
path: root/src/protocols/filehandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/protocols/filehandler.cpp')
-rw-r--r--src/protocols/filehandler.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/protocols/filehandler.cpp b/src/protocols/filehandler.cpp
index d26cd57..d53f13b 100644
--- a/src/protocols/filehandler.cpp
+++ b/src/protocols/filehandler.cpp
@@ -3,6 +3,7 @@
#include <QMimeDatabase>
#include <QUrl>
#include <QFile>
+#include <QFileInfo>
FileHandler::FileHandler()
{
@@ -22,9 +23,22 @@ bool FileHandler::startRequest(const QUrl &url, RequestOptions options)
if (file.open(QFile::ReadOnly))
{
- QMimeDatabase db;
- auto mime = db.mimeTypeForUrl(url).name();
auto data = file.readAll();
+ QString mime;
+
+ // Find mime type of file. We detect text/gemini
+ // using the file suffix.
+ QString suffix = QFileInfo(file).completeSuffix();
+ if (suffix == "gmi")
+ {
+ mime = "text/gemini";
+ }
+ else
+ {
+ QMimeDatabase db;
+ mime = db.mimeTypeForUrl(url).name();
+ }
+
emit this->requestComplete(data, mime);
}
else