aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarol Kosek <krkk@krkk.ct8.pl>2020-12-13 10:04:38 +0100
committerFelix Queißner <felix@ib-queissner.de>2020-12-24 23:31:01 +0100
commitb55068ba9f04381075121abd3f7b56823063c35e (patch)
tree80c99eb7438fb360e81db29a3aa7a95d99f6db3c
parent3b9b21f11f5fb427bcf2e5b2c859228f4317dff9 (diff)
downloadkristall-b55068ba9f04381075121abd3f7b56823063c35e.tar.gz
Allow to open local files without specifying the 'file:' schema
It makes possible to launch Kristall by double-clicking a file from file manager.
-rw-r--r--Kristall.desktop2
-rw-r--r--src/main.cpp7
2 files changed, 8 insertions, 1 deletions
diff --git a/Kristall.desktop b/Kristall.desktop
index 5e71387..561a1a8 100644
--- a/Kristall.desktop
+++ b/Kristall.desktop
@@ -7,4 +7,4 @@ Icon=net.random-projects.kristall
Exec=kristall %u
Terminal=false
Type=Application
-MimeType=x-scheme-handler/gemini;x-scheme-handler/gopher;x-scheme-handler/finger;
+MimeType=x-scheme-handler/gemini;x-scheme-handler/gopher;x-scheme-handler/finger;text/gemini;text/markdown;text/x-kristall-theme;
diff --git a/src/main.cpp b/src/main.cpp
index 46bc7e9..5939940 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -274,6 +274,13 @@ int main(int argc, char *argv[])
if(urls.size() > 0) {
for(auto url_str : urls) {
QUrl url { url_str };
+ if (url.isRelative()) {
+ if (QFile::exists(url_str)) {
+ url = QUrl::fromLocalFile(QFileInfo(url_str).absoluteFilePath());
+ } else {
+ url = QUrl("gemini://" + url_str);
+ }
+ }
if(url.isValid()) {
w.addNewTab(false, url);
} else {