Migration of QtMvvm from github
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
1.2 KiB

import QtQuick 2.10
import QtQuick.Controls 2.3
import Qt.labs.platform 1.0 as Labs
import de.skycoder42.QtMvvm.Core 1.0
import de.skycoder42.QtMvvm.Quick 1.0
Labs.FileDialog {
id: _fileDialog
property var msgConfig
property MessageResult msgResult
signal closed()
title: msgConfig.title
modality: Qt.WindowModal
folder: msgConfig.defaultValue
fileMode: {
if(msgConfig.subType == "open")
return Labs.FileDialog.OpenFile;
else if(msgConfig.subType == "files")
return Labs.FileDialog.OpenFiles;
else if(msgConfig.subType == "save")
return Labs.FileDialog.SaveFile;
else {
return Labs.FileDialog.OpenFile; //fallback
}
}
nameFilters: QuickPresenter.mimeTypeFilters(msgConfig.viewProperties["mimeTypes"])
Component.onCompleted: {
if(msgResult)
msgResult.setCloseTarget(_fileDialog, "reject()");
}
onAccepted: {
if(msgResult) {
if(msgConfig.subType == "files")
msgResult.result = _fileDialog.files;
else
msgResult.result = _fileDialog.file;
msgResult.complete(MessageConfig.Ok);
msgResult = null;
}
closed();
}
onRejected: {
if(msgResult) {
msgResult.complete(MessageConfig.Cancel);
msgResult = null;
}
closed();
}
}