From 21b0e5eeb3c53a08f4c5eeaf55000f2bf84abe0d Mon Sep 17 00:00:00 2001
From: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com>
Date: Fri, 18 Sep 2020 16:14:23 -0400
Subject: [PATCH] filetransfer: adjust the url decoding for qml component file
 urls

Gitlab: #92
Change-Id: I10ae359b26c70cacdb1e1168658678f3f5b2a96e
---
 src/mainview/components/CallViewContextMenu.qml |  5 +----
 src/messagesadapter.cpp                         | 10 +++++-----
 src/utilsadapter.cpp                            |  3 +++
 3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/src/mainview/components/CallViewContextMenu.qml b/src/mainview/components/CallViewContextMenu.qml
index 12f2d6cb8..a9b656e59 100644
--- a/src/mainview/components/CallViewContextMenu.qml
+++ b/src/mainview/components/CallViewContextMenu.qml
@@ -149,10 +149,7 @@ Item {
 
         mode: JamiFileDialog.Mode.OpenFile
 
-        onAccepted: {
-            // No need to trim file:///.
-            AvAdapter.shareFile(jamiFileDialog.file)
-        }
+        onAccepted: AvAdapter.shareFile(jamiFileDialog.file)
     }
 
     Component.onCompleted: {
diff --git a/src/messagesadapter.cpp b/src/messagesadapter.cpp
index 7f2d85a0e..8238f5cb8 100644
--- a/src/messagesadapter.cpp
+++ b/src/messagesadapter.cpp
@@ -264,9 +264,9 @@ MessagesAdapter::sendImage(const QString& message)
 
         QString msg(message);
 #ifdef Q_OS_WIN
-        msg = msg.replace("file:///", "");
+        msg = msg.replace("file://", "");
 #else
-        msg = msg.replace("file:///", "/");
+        msg = msg.replace("file://", "/");
 #endif
         QFileInfo fi(msg);
         QString fileName = fi.fileName();
@@ -337,7 +337,7 @@ MessagesAdapter::deleteInteraction(const QString& arg)
 void
 MessagesAdapter::openFile(const QString& arg)
 {
-    QUrl fileUrl("file:///" + arg);
+    QUrl fileUrl("file://" + arg);
     if (!QDesktopServices::openUrl(fileUrl)) {
         qDebug() << "Couldn't open file: " << fileUrl;
     }
@@ -399,9 +399,9 @@ MessagesAdapter::pasteKeyDetected()
          */
         for (int i = 0; i < urlList.size(); ++i) {
             /*
-             * Trim file:/// from url.
+             * Trim file:// from url.
              */
-            QString filePath = urlList.at(i).toString().remove(0, 8);
+            QString filePath = urlList.at(i).toString().remove("file://");
             QByteArray imageFormat = QImageReader::imageFormat(filePath);
 
             /*
diff --git a/src/utilsadapter.cpp b/src/utilsadapter.cpp
index c6de39714..dea883ed1 100644
--- a/src/utilsadapter.cpp
+++ b/src/utilsadapter.cpp
@@ -353,6 +353,9 @@ UtilsAdapter::toFileAbsolutepath(QString inputFileName)
 QString
 UtilsAdapter::getAbsPath(QString path)
 {
+    // Note: this function is used on urls returned from qml-FileDialogs which
+    // contain 'file:///' for reasons we don't understand.
+    // TODO: this logic can be refactored into the JamiFileDialog component.
 #ifdef Q_OS_WIN
     return path.replace("file:///", "").replace("\n", "").replace("\r", "");
 #else
-- 
GitLab