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