121 lines
2.7 KiB
QML
121 lines
2.7 KiB
QML
import QtQuick 2.2
|
|
import QtQuick.Controls 1.2
|
|
import QtQuick.Dialogs 1.0
|
|
import QtGraphicalEffects 1.0
|
|
|
|
BaseRectangle {
|
|
id: render_dialog
|
|
objectName: "render_dialog"
|
|
width: 400
|
|
height: 300
|
|
color: "#222429"
|
|
property bool rendering: false
|
|
|
|
function refresh() {
|
|
preview_image.source = "";
|
|
preview_image.source = "image://renderpreviewprovider/live";
|
|
}
|
|
|
|
onVisibleChanged: {
|
|
if (visible)
|
|
{
|
|
refresh();
|
|
render_progress.value = 0;
|
|
}
|
|
}
|
|
|
|
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()
|
|
}
|
|
|
|
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
|
|
}
|
|
|
|
Image {
|
|
id: preview_image
|
|
objectName: "render_preview_image"
|
|
anchors.centerIn: parent
|
|
width: 100
|
|
height: 100
|
|
source: ""
|
|
cache: false
|
|
}
|
|
|
|
ProgressBar {
|
|
id: render_progress
|
|
objectName: "render_progress"
|
|
visible: render_dialog.rendering
|
|
width: parent.width * 0.8
|
|
anchors.top: preview_image.bottom
|
|
anchors.horizontalCenter: preview_image.horizontalCenter
|
|
anchors.topMargin: 20
|
|
}
|
|
|
|
Text {
|
|
id: render_timing
|
|
objectName: "render_timing"
|
|
anchors.top: render_progress.bottom
|
|
anchors.horizontalCenter: render_progress.horizontalCenter
|
|
anchors.topMargin: 20
|
|
color: "#dddddd"
|
|
}
|
|
|
|
Timer {
|
|
interval: 500
|
|
running: true
|
|
repeat: true
|
|
|
|
onTriggered: {
|
|
refresh();
|
|
}
|
|
}
|
|
}
|