DiagramDesigner/PropertyEditor/resources/Qml/ValueEditor/DirectorySelector.qml

64 lines
1.4 KiB
QML

import QtQuick
import QtQuick.Controls
import QtQuick.Dialogs
import QtQuick.Layouts
import QtCore
import ColorPalette
Item{
id: control
property var value
implicitHeight: dirBox.implicitHeight
signal asValueChanged(text: var)
function setValue(newValue: var){
if(newValue !== value){
value = newValue
dirBox.value = value
asValueChanged(value)
}
}
LineTextBox {
id: dirBox
value: control.value
anchors.left: parent.left
anchors.right: button.left
anchors.verticalCenter: parent.verticalCenter
onValueChanged: {
control.setValue(value)
}
}
Button {
id: button
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
width: 30
height: 25
text: "..."
palette.buttonText: ColorPalette.theme.textPrimary
background: Rectangle {
color: ColorPalette.theme.buttonBackground
}
onClicked: {
folderDialog.open()
}
}
FolderDialog {
id: folderDialog
title: "选择目录"
onAccepted: {
var filePath = currentFolder.toString();
if (filePath.startsWith("file:///")) {
filePath = filePath.substring(8);
}
control.setValue(filePath);
}
}
}