Use dialogs from qt labs platform and fix a image downloading bug.

square-messages
Black Hat 2019-05-04 10:18:09 +08:00
parent 85ceec7b44
commit ce688e9756
6 changed files with 34 additions and 15 deletions

View File

@ -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()

View File

@ -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()

View File

@ -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)
}

View File

@ -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)
}

View File

@ -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

View File

@ -56,5 +56,6 @@
<file>imports/Spectral/Dialog/FontFamilyDialog.qml</file>
<file>imports/Spectral/Dialog/AccountDetailDialog.qml</file>
<file>imports/Spectral/Dialog/OpenFileDialog.qml</file>
<file>imports/Spectral/Dialog/OpenFolderDialog.qml</file>
</qresource>
</RCC>