Update: app/zonefileviewer.cpp

This commit is contained in:
RedLine AI Agent 2025-09-05 20:54:46 +00:00
parent 00a3dfb958
commit 15bbbec1db

View File

@ -69,7 +69,7 @@ void ZoneFileViewer::SortTags(const QString &aSearchText) {
ui->listWidget_Tags->addItems(sortedTags); ui->listWidget_Tags->addItems(sortedTags);
} }
void ZoneFileViewer::SetZoneFile(std::shared_ptr<ZoneFile> aZoneFile) { void ZoneFileViewer::SetZoneFile(const ZoneFile* aZoneFile) {
mZoneFile = aZoneFile; mZoneFile = aZoneFile;
ui->tableWidget_RecordCounts->clearContents(); ui->tableWidget_RecordCounts->clearContents();
@ -88,37 +88,36 @@ void ZoneFileViewer::SetZoneFile(std::shared_ptr<ZoneFile> aZoneFile) {
ui->groupBox_Tags->show(); ui->groupBox_Tags->show();
} }
QMap<QString, int> recordCounts = QMap<QString, int>(); QMap<XAssetType, int> recordCounts = QMap<XAssetType, int>();
QVector<QPair<QString, int>> assetOccurances = QVector<QPair<QString, int>>(); QVector<QPair<XAssetType, int>> assetOccurances = QVector<QPair<XAssetType, int>>();
for (const QString &record : mZoneFile->GetRecords()) { for (XAssetType type : mZoneFile->GetTypes()) {
if (!recordCounts.contains(record)) { if (!recordCounts.contains(type)) {
recordCounts[record] = 0; recordCounts[type] = 0;
} }
recordCounts[record]++; recordCounts[type]++;
if (!assetOccurances.isEmpty() && assetOccurances.last().first == record) { if (!assetOccurances.isEmpty() && assetOccurances.last().first == type) {
assetOccurances.last().second++; assetOccurances.last().second++;
continue; continue;
} }
QPair<QString, int> assetOccurance(record, 1); QPair<XAssetType, int> assetOccurance(type, 1);
assetOccurances << assetOccurance; assetOccurances << assetOccurance;
} }
ui->tableWidget_RecordOrder->setRowCount(assetOccurances.size()); ui->tableWidget_RecordOrder->setRowCount(assetOccurances.size());
int assetIndex = 0; int assetIndex = 0;
foreach (auto assetOccurance, assetOccurances) { foreach (auto assetOccurance, assetOccurances) {
const QString record = assetOccurance.first; XAssetType assetType = assetOccurance.first;
Utils::AssetType assetType = mZoneFile->AssetStrToEnum(record);
int assetCount = assetOccurance.second; int assetCount = assetOccurance.second;
QIcon assetIcon = Utils::CreateAssetIcon(assetType); QIcon assetIcon = Utils::CreateAssetIcon(assetType);
if (assetIcon.isNull()) { if (assetIcon.isNull()) {
qDebug() << "Icon is null for record: " << record; qDebug() << "Icon is null for record: " << assetType;
} }
QTableWidgetItem *recordItem = new QTableWidgetItem(record.toUpper()); QTableWidgetItem *recordItem = new QTableWidgetItem(QString::number(assetType, 16));
QTableWidgetItem *recordStrItem = new QTableWidgetItem(Utils::AssetTypeToStr(assetType)); QTableWidgetItem *recordStrItem = new QTableWidgetItem(XAsset::XAssetTypeToString(assetType));
QTableWidgetItem *recordCountItem = new QTableWidgetItem(QString::number(assetCount)); QTableWidgetItem *recordCountItem = new QTableWidgetItem(QString::number(assetCount));
recordItem->setIcon(assetIcon); recordItem->setIcon(assetIcon);
@ -130,19 +129,18 @@ void ZoneFileViewer::SetZoneFile(std::shared_ptr<ZoneFile> aZoneFile) {
} }
int recordIndex = 0; int recordIndex = 0;
for (const QString &record : recordCounts.keys()) { for (XAssetType assetType : recordCounts.keys()) {
int recordCount = recordCounts[record]; int recordCount = recordCounts[assetType];
Utils::AssetType assetType = mZoneFile->AssetStrToEnum(record);
QIcon assetIcon = Utils::CreateAssetIcon(assetType); QIcon assetIcon = Utils::CreateAssetIcon(assetType);
if (assetIcon.isNull()) { if (assetIcon.isNull()) {
qDebug() << "Icon is null for record: " << record; qDebug() << "Icon is null for record: " << assetType;
} }
ui->tableWidget_RecordCounts->setRowCount(recordIndex + 1); ui->tableWidget_RecordCounts->setRowCount(recordIndex + 1);
QTableWidgetItem *recordItem = new QTableWidgetItem(record.toUpper()); QTableWidgetItem *recordItem = new QTableWidgetItem(QString::number(assetType, 16));
QTableWidgetItem *recordCountStrItem = new QTableWidgetItem(Utils::AssetTypeToStr(assetType)); QTableWidgetItem *recordCountStrItem = new QTableWidgetItem(XAsset::XAssetTypeToString(assetType));
QTableWidgetItem *recordCountItem = new QTableWidgetItem(QString::number(recordCount)); QTableWidgetItem *recordCountItem = new QTableWidgetItem(QString::number(recordCount));
recordItem->setIcon(assetIcon); recordItem->setIcon(assetIcon);