#include "iwiviewer.h" #include "enums.h" #include "ui_iwiviewer.h" IWIViewer::IWIViewer(QWidget *parent) : QWidget(parent) , ui(new Ui::IWIViewer) { ui->setupUi(this); } IWIViewer::~IWIViewer() { delete ui; } // void IWIViewer::SetIWIFile(const IWIFile* aIWIFile) { // mIWIFile = aIWIFile; // ui->label_Title->setText(mIWIFile->fileStem + ".iwi"); // // If you’re using Qt and want a QString: // QString magicStr = QString::fromLatin1(mIWIFile->header.Magic, 3); // ui->lineEdit_Magic->setText(magicStr); // ui->spinBox_Version->setValue(mIWIFile->header.Version); // ui->spinBox_Depth->setValue(mIWIFile->info.Depth); // QString formatStr = ""; // switch (mIWIFile->info.Format) { // case IWI_FORMAT_ARGB32: // formatStr = "ARGB32"; // break; // case IWI_FORMAT_RGB24: // formatStr = "RGB24"; // break; // case IWI_FORMAT_GA16: // formatStr = "GA16"; // break; // case IWI_FORMAT_A8: // formatStr = "A8"; // break; // case IWI_FORMAT_DXT1: // formatStr = "DXT1"; // break; // case IWI_FORMAT_DXT3: // formatStr = "DXT3"; // break; // case IWI_FORMAT_DXT5: // formatStr = "DXT5"; // break; // } // ui->lineEdit_Format->setText(formatStr); // ui->spinBox_Height->setValue(mIWIFile->info.Height); // ui->spinBox_Width->setValue(mIWIFile->info.Width); // ui->spinBox_Usage->setValue(mIWIFile->info.Usage); // ui->comboBox_Mipmap->clear(); // for (auto mipmap : mIWIFile->mipmaps) { // ui->comboBox_Mipmap->addItem(QString::number(mipmap.offset)); // } // connect(ui->comboBox_Mipmap, &QComboBox::currentIndexChanged, this, &IWIViewer::MipmapIndexChanged); // if (!mIWIFile->mipmaps.empty()) { // MipmapIndexChanged(0); // } // } // void IWIViewer::MipmapIndexChanged(int aMipmapIndex) { // auto mipmaps = mIWIFile->mipmaps; // if (aMipmapIndex == -1) { return; } // auto mipmap = mipmaps[aMipmapIndex]; // ui->spinBox_MipmapSize->setValue(mipmap.size); // ui->spinBox_MipmapOffset->setValue(mipmap.offset); // const unsigned char* imageData = reinterpret_cast(mipmap.data.constData()); // QImage image(reinterpret_cast(imageData), // mIWIFile->info.Width, mIWIFile->info.Height, // QImage::Format_RGBA8888); // if (image.isNull()) { // qDebug() << "Error: QImage creation failed!"; // return; // } // // Convert to QPixmap // QPixmap pixmap = QPixmap::fromImage(image); // if (pixmap.isNull()) { // qDebug() << "Error: QPixmap conversion failed!"; // return; // } // // Scale and display // pixmap = pixmap.scaled(ui->label_Image->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation); // ui->label_Image->setPixmap(pixmap); // }