paysages3d/src/interface/modeler/qml/RenderDialog.qml

121 lines
2.7 KiB
QML
Raw Normal View History

2014-09-09 15:56:52 +00:00
import QtQuick 2.2
2015-07-22 17:23:22 +00:00
import QtQuick.Controls 1.2
2015-09-14 23:26:05 +00:00
import QtQuick.Dialogs 1.0
2015-09-13 23:35:25 +00:00
import QtGraphicalEffects 1.0
2014-09-09 15:56:52 +00:00
BaseRectangle {
2015-09-14 23:26:05 +00:00
id: render_dialog
objectName: "render_dialog"
2014-09-09 15:56:52 +00:00
width: 400
height: 300
2015-09-13 23:35:25 +00:00
color: "#222429"
2015-09-14 23:26:05 +00:00
property bool rendering: false
2014-09-09 15:56:52 +00:00
2015-07-22 16:05:24 +00:00
function refresh() {
preview_image.source = "";
preview_image.source = "image://renderpreviewprovider/live";
}
onVisibleChanged: {
if (visible)
{
refresh();
render_progress.value = 0;
}
2015-07-22 16:05:24 +00:00
}
2015-09-14 23:26:05 +00:00
Rectangle {
width: parent.width
height: 80
anchors.top: parent.top
anchors.left: parent.left
color: "#667080"
}
FileDialog {
id: render_save_dialog
objectName: "render_save_dialog"
title: "Choose a file to save the rendered image"
folder: shortcuts.documents
selectExisting: false
signal saveRequired(string filepath);
onAccepted: saveRequired(render_save_dialog.fileUrls[0].toString())
}
ToolbarButton {
id: render_save
objectName: "render_save"
picture: "images/icon_file_save.png"
anchors.top: parent.top
anchors.left: parent.left
anchors.margins: 10
enabled: !render_dialog.rendering
checkable: false
image_width: 48
image_height: 48
onClicked: render_save_dialog.open()
}
2015-09-13 23:35:25 +00:00
ToolbarButton {
id: render_cancel
objectName: "render_cancel"
picture: "images/icon_cancel.png"
anchors.top: parent.top
anchors.right: parent.right
anchors.margins: 10
checkable: false
image_width: 48
image_height: 48
}
RectangularGlow {
anchors.fill: preview_image
glowRadius: 8
spread: 0.2
color: "#e0e0e8"
cornerRadius: glowRadius
}
2014-09-09 15:56:52 +00:00
Image {
id: preview_image
2015-09-13 23:35:25 +00:00
objectName: "render_preview_image"
2014-09-09 15:56:52 +00:00
anchors.centerIn: parent
width: 100
height: 100
source: ""
cache: false
}
2015-07-22 17:23:22 +00:00
ProgressBar {
id: render_progress
objectName: "render_progress"
2015-09-14 23:26:05 +00:00
visible: render_dialog.rendering
2015-07-22 17:23:22 +00:00
width: parent.width * 0.8
anchors.top: preview_image.bottom
anchors.horizontalCenter: preview_image.horizontalCenter
anchors.topMargin: 20
}
2015-09-13 20:38:44 +00:00
Text {
id: render_timing
objectName: "render_timing"
anchors.top: render_progress.bottom
anchors.horizontalCenter: render_progress.horizontalCenter
anchors.topMargin: 20
2015-09-13 23:35:25 +00:00
color: "#dddddd"
2015-09-13 20:38:44 +00:00
}
2014-09-09 15:56:52 +00:00
Timer {
interval: 500
running: true
repeat: true
onTriggered: {
2015-07-22 16:05:24 +00:00
refresh();
2014-09-09 15:56:52 +00:00
}
}
}