Update output TexSlot when pack is finished

This commit is contained in:
Epicalert 2024-09-11 06:07:51 +08:00
parent 6a8255f67a
commit 0bd8421332
4 changed files with 18 additions and 7 deletions

View file

@ -54,7 +54,11 @@ ApplicationWindow {
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
text: qsTr("Craft!") text: qsTr("Craft!")
onClicked: crafter.packChannels([texSlotR.filePath, texSlotG.filePath, texSlotB.filePath]) onClicked: {
var outUrl = crafter.packChannels([texSlotR.filePath, texSlotG.filePath, texSlotB.filePath]);
outSlot.filePath = outUrl;
}
} }
} }
@ -64,9 +68,9 @@ ApplicationWindow {
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
TexSlot { TexSlot {
id: outSlot
rectColor: "gray"
rectColor: "green"
} }
} }
} }

View file

@ -21,6 +21,8 @@ DropArea {
anchors.centerIn: parent anchors.centerIn: parent
source: filePath
width: 96 width: 96
height: 96 height: 96
@ -69,12 +71,15 @@ DropArea {
console.log(drop.urls); console.log(drop.urls);
filePath = drop.urls[0]; filePath = drop.urls[0];
huh.text = drop.urls[0];
image.source = drop.urls[0];
} }
rectangle.color = rectColor; rectangle.color = rectColor;
} }
onExited: { onExited: {
rectangle.color = rectColor; rectangle.color = rectColor;
} }
onFilePathChanged: {
huh.text = filePath;
}
} }

View file

@ -4,7 +4,7 @@ TextureCrafter::TextureCrafter(QObject *parent)
: QObject{parent} : QObject{parent}
{} {}
void TextureCrafter::packChannels(QVector<QUrl> imagePaths) { QUrl TextureCrafter::packChannels(QVector<QUrl> imagePaths) {
QVector<QImage> sourceImages; QVector<QImage> sourceImages;
int width = 0, height = 0; int width = 0, height = 0;
@ -55,6 +55,7 @@ void TextureCrafter::packChannels(QVector<QUrl> imagePaths) {
//TODO: use libpng and do progressive write to update the progress bar //TODO: use libpng and do progressive write to update the progress bar
if (outImage.save(outFileName)) { if (outImage.save(outFileName)) {
printf("cool ^-^\n"); printf("cool ^-^\n");
return QUrl::fromLocalFile(outFileName);
} else { } else {
//TODO: return some error value to show the user //TODO: return some error value to show the user
printf("that dream is fucked it is fucking fucked\n"); printf("that dream is fucked it is fucking fucked\n");
@ -63,5 +64,6 @@ void TextureCrafter::packChannels(QVector<QUrl> imagePaths) {
printf("chat its so over\n"); printf("chat its so over\n");
} }
return QUrl();
//do we need to close these??? idk lets hope qt handles it //do we need to close these??? idk lets hope qt handles it
} }

View file

@ -13,7 +13,7 @@ class TextureCrafter : public QObject
public: public:
explicit TextureCrafter(QObject *parent = nullptr); explicit TextureCrafter(QObject *parent = nullptr);
Q_INVOKABLE void packChannels(QVector<QUrl> images); Q_INVOKABLE QUrl packChannels(QVector<QUrl> images);
signals: signals:
private: private: