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
56 lines
1.2 KiB
7 years ago
|
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();
|
||
|
}
|
||
|
}
|