Fix tray visibility and message reception issues
- Disable sound initialization to prevent hanging
- Add missing import re in utils.py
- Fix settings loading for QSettings
- Update file paths to use PROJECT_ROOT
- Revert to working API paths and listener from commit efdc63e
This commit is contained in:
@@ -0,0 +1,114 @@
|
||||
// Copyright (C) 2023 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
|
||||
pragma ComponentBehavior: Bound
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Layouts
|
||||
|
||||
Pane {
|
||||
id: root
|
||||
anchors.fill: parent
|
||||
|
||||
property double totalProgress: 0
|
||||
property int totalTimeRemaining: -1
|
||||
property string stage : "Preparing..."
|
||||
|
||||
function clearText() {
|
||||
textArea.clear();
|
||||
}
|
||||
|
||||
function update(payload) {
|
||||
if ("message" in payload && typeof payload.message === "string" && payload.message) {
|
||||
textArea.insert(textArea.length, payload.message + "\n");
|
||||
}
|
||||
|
||||
if ("totalProgress" in payload && typeof payload.totalProgress === "number") {
|
||||
root.totalProgress = payload.totalProgress;
|
||||
}
|
||||
|
||||
if ("totalTimeRemaining" in payload && typeof payload.totalTimeRemaining === "number") {
|
||||
root.totalTimeRemaining = payload.totalTimeRemaining;
|
||||
}
|
||||
|
||||
if ("stage" in payload && typeof payload.stage === "string") {
|
||||
root.stage = payload.stage;
|
||||
}
|
||||
}
|
||||
|
||||
function formatDuration(milliseconds, showMilliseconds = true) {
|
||||
if (milliseconds < 0)
|
||||
return " Estimating..."
|
||||
const partSeconds = Math.floor(milliseconds / 1000) % 60;
|
||||
const partMinutes = Math.floor(milliseconds / 60000) % 60;
|
||||
const partHours = Math.floor(milliseconds / 3600000) % 60;
|
||||
|
||||
if (partHours > 0) {
|
||||
return partHours + "h " + partMinutes + "m " + partSeconds + "s";
|
||||
}
|
||||
if (partMinutes > 0) {
|
||||
return partMinutes + "m " + partSeconds + "s";
|
||||
}
|
||||
if (partSeconds > 0) {
|
||||
return partSeconds + "s";
|
||||
}
|
||||
return "0s";
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
|
||||
RowLayout {
|
||||
Label {
|
||||
padding: 0
|
||||
text: root.stage
|
||||
}
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
Label {
|
||||
padding: 0
|
||||
text: (root.totalProgress * 100).toFixed(0) + "%"
|
||||
}
|
||||
}
|
||||
|
||||
ProgressBar {
|
||||
Layout.fillWidth: true
|
||||
value: root.totalProgress
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
Label {
|
||||
padding: 0
|
||||
text: totalTimeRemaining > 0 ? "Remaining: " + root.formatDuration(root.totalTimeRemaining) : ""
|
||||
}
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
|
||||
Frame {
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
ScrollView {
|
||||
width: parent.width
|
||||
height: parent.height
|
||||
id: scroll
|
||||
TextArea {
|
||||
id: textArea
|
||||
width: parent.width
|
||||
height: parent.height
|
||||
readOnly: true
|
||||
placeholderText: qsTr("Qt Lightmapper")
|
||||
font.pixelSize: 12
|
||||
wrapMode: Text.WordWrap
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Button {
|
||||
objectName: "cancelButton"
|
||||
Layout.fillWidth: true
|
||||
text: "Cancel"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user