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