Update file viewers.

This commit is contained in:
= 2025-04-04 20:36:32 -04:00
parent faeb24bb90
commit 917784b4cb
4 changed files with 102 additions and 126 deletions

View File

@ -18,7 +18,7 @@ FastFileViewer::~FastFileViewer()
void FastFileViewer::SetFastFile(std::shared_ptr<FastFile> aFastFile) { void FastFileViewer::SetFastFile(std::shared_ptr<FastFile> aFastFile) {
mFastFile.swap(aFastFile); mFastFile.swap(aFastFile);
ui->label_Title->setText(mFastFile->GetStem()); ui->label_Title->setText(mFastFile->GetStem() + ".ff");
ui->comboBox_Company->setCurrentIndex(mFastFile->GetCompany()); ui->comboBox_Company->setCurrentIndex(mFastFile->GetCompany());
ui->comboBox_FileType->setCurrentIndex(mFastFile->GetType()); ui->comboBox_FileType->setCurrentIndex(mFastFile->GetType());
ui->checkBox_Signed->setChecked(mFastFile->GetSignage() == SIGNAGE_SIGNED); ui->checkBox_Signed->setChecked(mFastFile->GetSignage() == SIGNAGE_SIGNED);

View File

@ -2,7 +2,9 @@
#define MATERIALVIEWER_H #define MATERIALVIEWER_H
#include "asset_structs.h" #include "asset_structs.h"
#include <QWidget> #include <QWidget>
#include <QScrollArea>
namespace Ui { namespace Ui {
class MaterialViewer; class MaterialViewer;

View File

@ -3,33 +3,32 @@
ZoneFileViewer::ZoneFileViewer(QWidget *parent) ZoneFileViewer::ZoneFileViewer(QWidget *parent)
: QWidget(parent) : QWidget(parent)
, ui(new Ui::ZoneFileViewer) , ui(new Ui::ZoneFileViewer) {
{
ui->setupUi(this); ui->setupUi(this);
aZoneFile = nullptr; aZoneFile = nullptr;
ui->tableWidget_RecordCounts->setColumnCount(2); ui->tableWidget_RecordCounts->setColumnCount(4);
ui->tableWidget_RecordCounts->setHorizontalHeaderLabels({ "Asset", "Count" }); ui->tableWidget_RecordCounts->setHorizontalHeaderLabels({ "Identifier", "Asset", "Count", "Icon" });
ui->tableWidget_RecordCounts->horizontalHeader()->setStretchLastSection(true); ui->tableWidget_RecordCounts->horizontalHeader()->setStretchLastSection(true);
ui->tableWidget_RecordOrder->setColumnCount(2); ui->tableWidget_RecordOrder->setColumnCount(4);
ui->tableWidget_RecordOrder->setHorizontalHeaderLabels({ "Asset", "Count" }); ui->tableWidget_RecordOrder->setHorizontalHeaderLabels({ "Identifier", "Asset", "Count", "Icon" });
ui->tableWidget_RecordOrder->horizontalHeader()->setStretchLastSection(true); ui->tableWidget_RecordOrder->horizontalHeader()->setStretchLastSection(true);
} }
ZoneFileViewer::~ZoneFileViewer() ZoneFileViewer::~ZoneFileViewer() {
{
delete ui; delete ui;
} }
void ZoneFileViewer::SetZoneFile(std::shared_ptr<ZoneFile> aZoneFile) { void ZoneFileViewer::SetZoneFile(std::shared_ptr<ZoneFile> aZoneFile) {
ui->tableWidget_RecordCounts->clear(); ui->tableWidget_RecordCounts->clearContents();
ui->tableWidget_RecordOrder->clearContents();
ui->listWidget_Tags->clear(); ui->listWidget_Tags->clear();
const QStringList tags = aZoneFile->GetTags(); const QStringList tags = aZoneFile->GetTags();
ui->listWidget_Tags->addItems(tags); ui->listWidget_Tags->addItems(tags);
ui->label_Title->setText(aZoneFile->GetStem()); ui->label_Title->setText(aZoneFile->GetStem() + ".zone");
if (tags.isEmpty()) { if (tags.isEmpty()) {
ui->groupBox_Tags->hide(); ui->groupBox_Tags->hide();
@ -38,11 +37,14 @@ void ZoneFileViewer::SetZoneFile(std::shared_ptr<ZoneFile> aZoneFile) {
} }
QString lastAsset = ""; QString lastAsset = "";
QString lastRecord = "";
QIcon assetIcon;
int consecutiveCount = 1; int consecutiveCount = 1;
int consecutiveIndex = 0; int consecutiveIndex = 0;
const QStringList records = aZoneFile->GetRecords(); const QStringList records = aZoneFile->GetRecords();
QMap<QString, int> recordCounts = QMap<QString, int>(); QMap<QString, int> recordCounts = QMap<QString, int>();
for (const QString &record : records) { for (const QString &record : records) {
lastRecord = record;
if (record == "ffffffff") { break; } if (record == "ffffffff") { break; }
if (!recordCounts.contains(record)) { if (!recordCounts.contains(record)) {
recordCounts[record] = 0; recordCounts[record] = 0;
@ -50,63 +52,76 @@ void ZoneFileViewer::SetZoneFile(std::shared_ptr<ZoneFile> aZoneFile) {
recordCounts[record]++; recordCounts[record]++;
QString assetType = aZoneFile->AssetTypeToString(record); QString assetType = aZoneFile->AssetTypeToString(record);
if (assetIcon.isNull()) {
qDebug() << "Icon is null for record: " << record;
}
if (lastAsset.isEmpty()) { if (lastAsset.isEmpty()) {
lastAsset = assetType; lastAsset = assetType;
lastRecord = record;
} else if (lastAsset == assetType) { } else if (lastAsset == assetType) {
consecutiveCount++; consecutiveCount++;
} else { } else {
ui->tableWidget_RecordOrder->setRowCount(consecutiveIndex + 1); ui->tableWidget_RecordOrder->setRowCount(consecutiveIndex + 1);
QTableWidgetItem *recordItem = new QTableWidgetItem(lastRecord.toUpper());
QTableWidgetItem *recordStrItem = new QTableWidgetItem(lastAsset); QTableWidgetItem *recordStrItem = new QTableWidgetItem(lastAsset);
QTableWidgetItem *recordCountItem = new QTableWidgetItem(QString::number(consecutiveCount)); QTableWidgetItem *recordCountItem = new QTableWidgetItem(QString::number(consecutiveCount));
QTableWidgetItem *recordIconItem = new QTableWidgetItem();
assetIcon = aZoneFile->AssetStrToIcon(lastAsset);
recordIconItem->setIcon(assetIcon);
ui->tableWidget_RecordOrder->setItem(consecutiveIndex, 0, recordStrItem); ui->tableWidget_RecordOrder->setItem(consecutiveIndex, 0, recordItem);
ui->tableWidget_RecordOrder->setItem(consecutiveIndex, 1, recordCountItem); ui->tableWidget_RecordOrder->setItem(consecutiveIndex, 1, recordStrItem);
ui->tableWidget_RecordOrder->setItem(consecutiveIndex, 2, recordCountItem);
ui->tableWidget_RecordOrder->setItem(consecutiveIndex, 3, recordIconItem);
consecutiveCount = 1; consecutiveCount = 1;
consecutiveIndex++; consecutiveIndex++;
lastAsset = assetType; lastAsset = assetType;
lastRecord = record;
} }
} }
ui->tableWidget_RecordOrder->setRowCount(consecutiveIndex + 1); ui->tableWidget_RecordOrder->setRowCount(consecutiveIndex + 1);
QTableWidgetItem *recordItem = new QTableWidgetItem(lastRecord.toUpper());
QTableWidgetItem *recordStrItem = new QTableWidgetItem(lastAsset); QTableWidgetItem *recordStrItem = new QTableWidgetItem(lastAsset);
QTableWidgetItem *recordCountItem = new QTableWidgetItem(QString::number(consecutiveCount)); QTableWidgetItem *recordCountItem = new QTableWidgetItem(QString::number(consecutiveCount));
QTableWidgetItem *recordIconItem = new QTableWidgetItem();
assetIcon = aZoneFile->AssetStrToIcon(lastAsset);
recordIconItem->setIcon(assetIcon);
ui->tableWidget_RecordOrder->setItem(consecutiveIndex, 0, recordStrItem); ui->tableWidget_RecordOrder->setItem(consecutiveIndex, 0, recordItem);
ui->tableWidget_RecordOrder->setItem(consecutiveIndex, 1, recordCountItem); ui->tableWidget_RecordOrder->setItem(consecutiveIndex, 1, recordStrItem);
ui->tableWidget_RecordOrder->setItem(consecutiveIndex, 2, recordCountItem);
ui->tableWidget_RecordOrder->setItem(consecutiveIndex, 3, recordIconItem);
int recordIndex = 0; int recordIndex = 0;
for (const QString &record : recordCounts.keys()) { for (const QString &record : recordCounts.keys()) {
int recordCount = recordCounts[record]; int recordCount = recordCounts[record];
QString assetType = aZoneFile->AssetTypeToString(record); QString assetType = aZoneFile->AssetTypeToString(record);
assetIcon = aZoneFile->AssetStrToIcon(assetType);
if (assetIcon.isNull()) {
qDebug() << "Icon is null for record: " << record;
}
ui->tableWidget_RecordCounts->setRowCount(recordIndex + 1); ui->tableWidget_RecordCounts->setRowCount(recordIndex + 1);
QTableWidgetItem *recordCountStrItem = new QTableWidgetItem(assetType); QTableWidgetItem *recordCountStrItem = new QTableWidgetItem(assetType);
QTableWidgetItem *recordItem = new QTableWidgetItem(record.toUpper());
QTableWidgetItem *recordCountItem = new QTableWidgetItem(QString::number(recordCount)); QTableWidgetItem *recordCountItem = new QTableWidgetItem(QString::number(recordCount));
QTableWidgetItem *recordIconItem = new QTableWidgetItem();
recordIconItem->setIcon(assetIcon);
ui->tableWidget_RecordCounts->setItem(recordIndex, 0, recordCountStrItem); ui->tableWidget_RecordCounts->setItem(recordIndex, 0, recordItem);
ui->tableWidget_RecordCounts->setItem(recordIndex, 1, recordCountItem); ui->tableWidget_RecordCounts->setItem(recordIndex, 1, recordCountStrItem);
ui->tableWidget_RecordCounts->setItem(recordIndex, 2, recordCountItem);
ui->tableWidget_RecordCounts->setItem(recordIndex, 3, recordIconItem);
recordIndex++; recordIndex++;
} }
auto assetMap = aZoneFile->GetAssetMap(); ui->tableWidget_RecordOrder->resizeColumnsToContents();
for (LocalString localString : assetMap.localStrings) { ui->tableWidget_RecordCounts->resizeColumnsToContents();
}
for (RawFile rawFile : assetMap.rawFiles) {
}
for (TechSet techSet : assetMap.techSets) {
}
for (Image image : assetMap.images) {
}
for (Animation animation : assetMap.animations) {
}
for (StringTable stringTable : assetMap.stringTables) {
}
for (MenuFile menuFile : assetMap.menuFiles) {
}
} }

View File

@ -6,16 +6,10 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>942</width> <width>556</width>
<height>445</height> <height>428</height>
</rect> </rect>
</property> </property>
<property name="minimumSize">
<size>
<width>942</width>
<height>445</height>
</size>
</property>
<property name="windowTitle"> <property name="windowTitle">
<string>Form</string> <string>Form</string>
</property> </property>
@ -35,101 +29,66 @@
</widget> </widget>
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_4"> <layout class="QHBoxLayout" name="horizontalLayout_2">
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_2"> <widget class="QGroupBox" name="groupBox_Tags">
<item> <property name="font">
<widget class="QGroupBox" name="groupBox_Tags"> <font>
<property name="minimumSize"> <family>Roboto</family>
<size> <pointsize>9</pointsize>
<width>225</width> </font>
<height>0</height> </property>
</size> <property name="title">
</property> <string>Tags</string>
<property name="font"> </property>
<font> <layout class="QVBoxLayout" name="verticalLayout">
<family>Roboto</family> <item>
<pointsize>9</pointsize> <layout class="QHBoxLayout" name="horizontalLayout">
</font>
</property>
<property name="title">
<string>Tags</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout"> <widget class="QLabel" name="label_3">
<item> <property name="text">
<widget class="QLabel" name="label_3"> <string>Search:</string>
<property name="text"> </property>
<string>Search:</string> </widget>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_TagSearch">
<property name="placeholderText">
<string>Search tags...</string>
</property>
</widget>
</item>
</layout>
</item> </item>
<item> <item>
<widget class="QListWidget" name="listWidget_Tags"/> <widget class="QLineEdit" name="lineEdit_TagSearch">
<property name="placeholderText">
<string>Search tags...</string>
</property>
</widget>
</item> </item>
</layout> </layout>
</widget> </item>
</item> <item>
<item> <widget class="QListWidget" name="listWidget_Tags"/>
<widget class="QGroupBox" name="groupBox_RecordCounts"> </item>
<property name="minimumSize"> </layout>
<size> </widget>
<width>179</width>
<height>0</height>
</size>
</property>
<property name="title">
<string>Record Counts</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QTableWidget" name="tableWidget_RecordCounts"/>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_RecordOrder">
<property name="minimumSize">
<size>
<width>179</width>
<height>0</height>
</size>
</property>
<property name="title">
<string>Record Order</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QTableWidget" name="tableWidget_RecordOrder"/>
</item>
</layout>
</widget>
</item>
</layout>
</item> </item>
<item> <item>
<spacer name="horizontalSpacer"> <widget class="QGroupBox" name="groupBox_RecordCounts">
<property name="orientation"> <property name="title">
<enum>Qt::Orientation::Horizontal</enum> <string>Record Counts</string>
</property> </property>
<property name="sizeHint" stdset="0"> <layout class="QVBoxLayout" name="verticalLayout_4">
<size> <item>
<width>40</width> <widget class="QTableWidget" name="tableWidget_RecordCounts"/>
<height>20</height> </item>
</size> </layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_RecordOrder">
<property name="title">
<string>Record Order</string>
</property> </property>
</spacer> <layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QTableWidget" name="tableWidget_RecordOrder"/>
</item>
</layout>
</widget>
</item> </item>
</layout> </layout>
</item> </item>