From ce688e97568b8dad9eac63e14a85324009bfd1ae Mon Sep 17 00:00:00 2001 From: Black Hat Date: Sat, 4 May 2019 10:18:09 +0800 Subject: [PATCH] Use dialogs from qt labs platform and fix a image downloading bug. --- .../Component/Timeline/FileDelegate.qml | 10 +++++----- .../Component/Timeline/ImageDelegate.qml | 20 ++++++++++++------- imports/Spectral/Dialog/OpenFileDialog.qml | 5 ++--- imports/Spectral/Dialog/OpenFolderDialog.qml | 12 +++++++++++ imports/Spectral/Dialog/qmldir | 1 + res.qrc | 1 + 6 files changed, 34 insertions(+), 15 deletions(-) create mode 100644 imports/Spectral/Dialog/OpenFolderDialog.qml diff --git a/imports/Spectral/Component/Timeline/FileDelegate.qml b/imports/Spectral/Component/Timeline/FileDelegate.qml index c138500..81cd8f5 100644 --- a/imports/Spectral/Component/Timeline/FileDelegate.qml +++ b/imports/Spectral/Component/Timeline/FileDelegate.qml @@ -153,9 +153,9 @@ ColumnLayout { } Component { - id: openFileDialog + id: openFolderDialog - OpenFileDialog {} + OpenFolderDialog {} } Component { @@ -169,15 +169,15 @@ ColumnLayout { } function saveFileAs() { - var fileDialog = openFileDialog.createObject(ApplicationWindow.overlay, {"selectFolder": true}) + var folderDialog = openFolderDialog.createObject(ApplicationWindow.overlay) - fileDialog.chosen.connect(function(path) { + folderDialog.chosen.connect(function(path) { if (!path) return currentRoom.downloadFile(eventId, path + "/" + (content.filename || content.body)) }) - fileDialog.open() + folderDialog.open() } function downloadAndOpen() diff --git a/imports/Spectral/Component/Timeline/ImageDelegate.qml b/imports/Spectral/Component/Timeline/ImageDelegate.qml index 0ece8ce..708606d 100644 --- a/imports/Spectral/Component/Timeline/ImageDelegate.qml +++ b/imports/Spectral/Component/Timeline/ImageDelegate.qml @@ -27,8 +27,14 @@ ColumnLayout { spacing: 0 onDownloadedChanged: { - if (downloaded && showOnFinished) showSavedFile() - if (downloaded && openOnFinished) openSavedFile() + if (downloaded && showOnFinished) { + showSavedFile() + showOnFinished = false + } + if (downloaded && openOnFinished) { + openSavedFile() + openOnFinished = false + } } Label { @@ -183,9 +189,9 @@ ColumnLayout { } Component { - id: openFileDialog + id: openFolderDialog - OpenFileDialog {} + OpenFolderDialog {} } Component { @@ -204,15 +210,15 @@ ColumnLayout { } function saveFileAs() { - var fileDialog = openFileDialog.createObject(ApplicationWindow.overlay, {"selectFolder": true}) + var folderDialog = openFolderDialog.createObject(ApplicationWindow.overlay) - fileDialog.chosen.connect(function(path) { + folderDialog.chosen.connect(function(path) { if (!path) return currentRoom.downloadFile(eventId, path + "/" + (content.filename || content.body)) }) - fileDialog.open() + folderDialog.open() } function downloadAndShow() diff --git a/imports/Spectral/Dialog/OpenFileDialog.qml b/imports/Spectral/Dialog/OpenFileDialog.qml index ec9e8e7..c5e429b 100644 --- a/imports/Spectral/Dialog/OpenFileDialog.qml +++ b/imports/Spectral/Dialog/OpenFileDialog.qml @@ -1,5 +1,5 @@ import QtQuick 2.12 -import QtQuick.Dialogs 1.2 +import Qt.labs.platform 1.1 FileDialog { signal chosen(string path) @@ -7,7 +7,6 @@ FileDialog { id: root title: "Please choose a file" - selectMultiple: false - onAccepted: chosen(selectFolder ? folder : fileUrl) + onAccepted: chosen(file) } diff --git a/imports/Spectral/Dialog/OpenFolderDialog.qml b/imports/Spectral/Dialog/OpenFolderDialog.qml new file mode 100644 index 0000000..e0b9072 --- /dev/null +++ b/imports/Spectral/Dialog/OpenFolderDialog.qml @@ -0,0 +1,12 @@ +import QtQuick 2.12 +import Qt.labs.platform 1.1 + +FolderDialog { + signal chosen(string path) + + id: root + + title: "Please choose a folder" + + onAccepted: chosen(folder) +} diff --git a/imports/Spectral/Dialog/qmldir b/imports/Spectral/Dialog/qmldir index 0b27eaa..df7f062 100644 --- a/imports/Spectral/Dialog/qmldir +++ b/imports/Spectral/Dialog/qmldir @@ -10,3 +10,4 @@ AcceptInvitationDialog 2.0 AcceptInvitationDialog.qml FontFamilyDialog 2.0 FontFamilyDialog.qml AccountDetailDialog 2.0 AccountDetailDialog.qml OpenFileDialog 2.0 OpenFileDialog.qml +OpenFolderDialog 2.0 OpenFolderDialog.qml diff --git a/res.qrc b/res.qrc index bec5bb8..033f2d6 100644 --- a/res.qrc +++ b/res.qrc @@ -56,5 +56,6 @@ imports/Spectral/Dialog/FontFamilyDialog.qml imports/Spectral/Dialog/AccountDetailDialog.qml imports/Spectral/Dialog/OpenFileDialog.qml + imports/Spectral/Dialog/OpenFolderDialog.qml