Update: app/soundviewer.ui

This commit is contained in:
RedLine AI Agent 2025-09-05 20:53:15 +00:00
parent 053c440415
commit ce5c98b78d

View File

@ -5,10 +5,10 @@
XTreeWidget::XTreeWidget(QWidget *parent) XTreeWidget::XTreeWidget(QWidget *parent)
: QTreeWidget(parent) { : QTreeWidget(parent) {
mFastFiles = QMap<QString, std::shared_ptr<FastFile>>(); mFastFiles = QMap<QString, const FastFile*>();
mZoneFiles = QMap<QString, std::shared_ptr<ZoneFile>>(); mZoneFiles = QMap<QString, const ZoneFile*>();
mDDSFiles = QMap<QString, std::shared_ptr<DDSFile>>(); mDDSFiles = QMap<QString, const DDSFile*>();
mIWIFiles = QMap<QString, std::shared_ptr<IWIFile>>(); mIWIFiles = QMap<QString, const IWIFile*>();
setContextMenuPolicy(Qt::CustomContextMenu); setContextMenuPolicy(Qt::CustomContextMenu);
setSelectionMode(QTreeWidget::SingleSelection); setSelectionMode(QTreeWidget::SingleSelection);
@ -37,7 +37,7 @@ XTreeWidget::~XTreeWidget() {
} }
void XTreeWidget::AddFastFile(std::shared_ptr<FastFile> aFastFile) { void XTreeWidget::AddFastFile(FastFile* aFastFile) {
XTreeWidgetItem *fastFileItem = new XTreeWidgetItem(this); XTreeWidgetItem *fastFileItem = new XTreeWidgetItem(this);
fastFileItem->setText(0, aFastFile->GetStem()); fastFileItem->setText(0, aFastFile->GetStem());
fastFileItem->setIcon(0, Utils::CreateAssetIcon("FF")); fastFileItem->setIcon(0, Utils::CreateAssetIcon("FF"));
@ -83,176 +83,189 @@ void XTreeWidget::AddFastFile(std::shared_ptr<FastFile> aFastFile) {
sortByColumn(0, Qt::AscendingOrder); sortByColumn(0, Qt::AscendingOrder);
} }
void XTreeWidget::AddZoneFile(std::shared_ptr<ZoneFile> aZoneFile, XTreeWidgetItem *aParentItem) { void XTreeWidget::AddZoneFile(const ZoneFile* aZoneFile, XTreeWidgetItem *aParentItem) {
XTreeWidgetItem *zoneItem; XTreeWidgetItem *zoneItem;
if (aParentItem != nullptr) { if (aParentItem != nullptr) {
zoneItem = new XTreeWidgetItem(aParentItem); zoneItem = new XTreeWidgetItem(aParentItem);
} else { } else {
zoneItem = new XTreeWidgetItem(this); zoneItem = new XTreeWidgetItem(this);
} }
zoneItem->setIcon(0, Utils::CreateAssetIcon(Utils::ASSET_ZONE_FILE)); zoneItem->setIcon(0, Utils::CreateAssetIcon("ZF"));
zoneItem->setText(0, aZoneFile->GetBaseStem() + ".zone"); zoneItem->setText(0, aZoneFile->GetBaseStem() + ".zone");
auto assetMap = aZoneFile->GetAssetMap(); XAssetList assetList = aZoneFile->GetAssetList();
QVector<XAsset*> localizeEntries;
if (!assetMap.localizeEntries.isEmpty()) { for (int i = 0; i < assetList.Size(); i++)
QIcon localStrIcon = Utils::CreateAssetIcon(Utils::ASSET_LOCALIZE_ENTRY); {
XAsset *currentAsset = assetList.GetAsset(i);
XTreeWidgetItem *localStrRoot = new XTreeWidgetItem(zoneItem); if (currentAsset->GetType() == ASSET_TYPE_LOCALIZE_ENTRY)
localStrRoot->setText(0, "String Files"); {
localStrRoot->setIcon(0, localStrIcon); localizeEntries.append(currentAsset);
localStrRoot->SetCategory(CATEGORY_TYPE); } else if (currentAsset->GetType() == ASSET_TYPE_LOCALIZE_ENTRY)
{
XTreeWidgetItem *localStrItem = new XTreeWidgetItem(localStrRoot); localizeEntries.append(currentAsset);
localStrItem->setText(0, aZoneFile->GetStem().section('.', 0, 0) + ".str");
localStrItem->setIcon(0, localStrIcon);
}
if (!assetMap.techSets.isEmpty()) {
QIcon techSetIcon = Utils::CreateAssetIcon(Utils::ASSET_TECHNIQUE_SET);
XTreeWidgetItem *techSetRoot = new XTreeWidgetItem(zoneItem);
techSetRoot->setText(0, "Tech Sets");
techSetRoot->setIcon(0, techSetIcon);
techSetRoot->SetCategory(CATEGORY_TYPE);
for (auto techSet : assetMap.techSets) {
XTreeWidgetItem *techSetItem = new XTreeWidgetItem(techSetRoot);
techSetItem->setText(0, techSet.name);
techSetItem->setIcon(0, techSetIcon);
} }
} }
if (!assetMap.rawFiles.isEmpty()) {
QIcon rawFileIcon = Utils::CreateAssetIcon(Utils::ASSET_RAWFILE);
XTreeWidgetItem *rawFileRoot = new XTreeWidgetItem(zoneItem); // if (!assetMap.localizeEntries.isEmpty()) {
rawFileRoot->setText(0, "Raw Files"); // QIcon localStrIcon = Utils::CreateAssetIcon(ASSET_TYPE_LOCALIZE_ENTRY);
rawFileRoot->setIcon(0, rawFileIcon);
rawFileRoot->SetCategory(CATEGORY_TYPE);
for (auto rawFile : assetMap.rawFiles) {
if (!rawFile.length) { continue; }
XTreeWidgetItem *tempItem = rawFileRoot; // XTreeWidgetItem *localStrRoot = new XTreeWidgetItem(zoneItem);
// const QStringList pathParts = rawFile->path.split('/'); // localStrRoot->setText(0, "String Files");
// for (const QString &pathPart : pathParts) { // localStrRoot->setIcon(0, localStrIcon);
// bool childFound = false; // localStrRoot->SetCategory(CATEGORY_TYPE);
// for (int i = 0; i < tempItem->childCount(); i++) {
// QTreeWidgetItem *rawChildItem = tempItem->child(i);
// XTreeWidgetItem *childItem = dynamic_cast<XTreeWidgetItem*>(rawChildItem);
// if (childItem->text(0) == pathPart) {
// tempItem = childItem;
// childFound = true; // XTreeWidgetItem *localStrItem = new XTreeWidgetItem(localStrRoot);
// break; // localStrItem->setText(0, aZoneFile->GetStem().section('.', 0, 0) + ".str");
// } // localStrItem->setIcon(0, localStrIcon);
// } // }
// const QString rawFileStr = pathPart;// = QString("%1 [%2-%3]").arg(pathPart).arg(rawFile.startPos).arg(rawFile.endPos); // if (!assetMap.techSets.isEmpty()) {
// if (pathPart == pathParts.last()) { // QIcon techSetIcon = Utils::CreateAssetIcon(ASSET_TYPE_TECHNIQUE_SET);
// XTreeWidgetItem *rawFileItem = new XTreeWidgetItem(tempItem);
// rawFileItem->setText(0, rawFileStr);
// tempItem = rawFileItem; // XTreeWidgetItem *techSetRoot = new XTreeWidgetItem(zoneItem);
// } else if (!childFound) { // techSetRoot->setText(0, "Tech Sets");
// tempItem = new XTreeWidgetItem(tempItem); // techSetRoot->setIcon(0, techSetIcon);
// tempItem->setText(0, rawFileStr); // techSetRoot->SetCategory(CATEGORY_TYPE);
// }
// } // for (auto techSet : assetMap.techSets) {
tempItem->setIcon(0, rawFileIcon); // XTreeWidgetItem *techSetItem = new XTreeWidgetItem(techSetRoot);
} // techSetItem->setText(0, techSet.name);
} // techSetItem->setIcon(0, techSetIcon);
// }
// }
if (!assetMap.menuDefinitions.isEmpty()) { // if (!assetMap.rawFiles.isEmpty()) {
// QIcon MenuDefIcon = Utils::CreateAssetIcon(Utils::ASSET_MENU); // QIcon rawFileIcon = Utils::CreateAssetIcon(ASSET_TYPE_RAWFILE);
// XTreeWidgetItem *menuRoot = new XTreeWidgetItem(zoneItem); // XTreeWidgetItem *rawFileRoot = new XTreeWidgetItem(zoneItem);
// menuRoot->setText(0, "Menu Files"); // rawFileRoot->setText(0, "Raw Files");
// menuRoot->setIcon(0, MenuDefIcon); // rawFileRoot->setIcon(0, rawFileIcon);
// menuRoot->SetCategory(CATEGORY_TYPE); // rawFileRoot->SetCategory(CATEGORY_TYPE);
// for (auto rawFile : assetMap.rawFiles) {
// if (!rawFile.length) { continue; }
// int menuIndex = 1; // XTreeWidgetItem *tempItem = rawFileRoot;
// for (MenuDef menuDef : assetMap.menuDefinitions) { // // const QStringList pathParts = rawFile->path.split('/');
// XTreeWidgetItem *MenuDefRoot = new XTreeWidgetItem(menuRoot); // // for (const QString &pathPart : pathParts) {
// MenuDefRoot->setText(0, QString("Menu %1").arg(menuIndex)); // // bool childFound = false;
// for (Menu menu : menuDef.men) { // // for (int i = 0; i < tempItem->childCount(); i++) {
// XTreeWidgetItem *menuItem = new XTreeWidgetItem(MenuDefRoot); // // QTreeWidgetItem *rawChildItem = tempItem->child(i);
// menuItem->setText(0, menu.filePath); // // XTreeWidgetItem *childItem = dynamic_cast<XTreeWidgetItem*>(rawChildItem);
// menuItem->setIcon(0, MenuDefIcon); // // if (childItem->text(0) == pathPart) {
// } // // tempItem = childItem;
// menuIndex++;
// }
}
if (!assetMap.images.isEmpty()) { // // childFound = true;
// QIcon imageIcon = Utils::CreateAssetIcon(Utils::ASSET_IMAGE); // // break;
// // }
// // }
// XTreeWidgetItem *imageRoot = new XTreeWidgetItem(zoneItem); // // const QString rawFileStr = pathPart;// = QString("%1 [%2-%3]").arg(pathPart).arg(rawFile.startPos).arg(rawFile.endPos);
// imageRoot->setText(0, "Images"); // // if (pathPart == pathParts.last()) {
// imageRoot->setIcon(0, imageIcon); // // XTreeWidgetItem *rawFileItem = new XTreeWidgetItem(tempItem);
// imageRoot->SetCategory(CATEGORY_TYPE); // // rawFileItem->setText(0, rawFileStr);
// for (Image image : assetMap.images) { // // tempItem = rawFileItem;
// XTreeWidgetItem *imageItem = new XTreeWidgetItem(imageRoot); // // } else if (!childFound) {
// imageItem->setText(0, image.materialName); // // tempItem = new XTreeWidgetItem(tempItem);
// imageItem->setIcon(0, imageIcon); // // tempItem->setText(0, rawFileStr);
// } // // }
}
if (!assetMap.models.isEmpty()) { // // }
QIcon modelIcon = Utils::CreateAssetIcon(Utils::ASSET_XMODEL); // tempItem->setIcon(0, rawFileIcon);
// }
// }
XTreeWidgetItem *modelsRoot = new XTreeWidgetItem(zoneItem); // if (!assetMap.menuDefinitions.isEmpty()) {
modelsRoot->setText(0, "Models"); // // QIcon MenuDefIcon = Utils::CreateAssetIcon(ASSET_TYPE_MENU);
modelsRoot->setIcon(0, modelIcon);
modelsRoot->SetCategory(CATEGORY_TYPE);
for (auto model: assetMap.models) { // // XTreeWidgetItem *menuRoot = new XTreeWidgetItem(zoneItem);
XTreeWidgetItem *modelItem = new XTreeWidgetItem(modelsRoot); // // menuRoot->setText(0, "Menu Files");
modelItem->setText(0, model.name); // // menuRoot->setIcon(0, MenuDefIcon);
modelItem->setIcon(0, modelIcon); // // menuRoot->SetCategory(CATEGORY_TYPE);
}
}
if (!assetMap.materials.isEmpty()) { // // int menuIndex = 1;
QIcon materialIcon = Utils::CreateAssetIcon(Utils::ASSET_MATERIAL); // // for (MenuDef menuDef : assetMap.menuDefinitions) {
// // XTreeWidgetItem *MenuDefRoot = new XTreeWidgetItem(menuRoot);
// // MenuDefRoot->setText(0, QString("Menu %1").arg(menuIndex));
// // for (Menu menu : menuDef.men) {
// // XTreeWidgetItem *menuItem = new XTreeWidgetItem(MenuDefRoot);
// // menuItem->setText(0, menu.filePath);
// // menuItem->setIcon(0, MenuDefIcon);
// // }
// // menuIndex++;
// // }
// }
XTreeWidgetItem *materialsRoot = new XTreeWidgetItem(zoneItem); // if (!assetMap.images.isEmpty()) {
materialsRoot->setText(0, "Materials"); // // QIcon imageIcon = Utils::CreateAssetIcon(ASSET_TYPE_IMAGE);
materialsRoot->setIcon(0, materialIcon);
materialsRoot->SetCategory(CATEGORY_TYPE);
for (auto material: assetMap.materials) { // // XTreeWidgetItem *imageRoot = new XTreeWidgetItem(zoneItem);
XTreeWidgetItem *materialItem = new XTreeWidgetItem(materialsRoot); // // imageRoot->setText(0, "Images");
//materialItem->setText(0, material.name); // // imageRoot->setIcon(0, imageIcon);
materialItem->setIcon(0, materialIcon); // // imageRoot->SetCategory(CATEGORY_TYPE);
}
}
if (!assetMap.stringTables.isEmpty()) { // // for (Image image : assetMap.images) {
QIcon stringTableIcon = Utils::CreateAssetIcon(Utils::ASSET_STRINGTABLE); // // XTreeWidgetItem *imageItem = new XTreeWidgetItem(imageRoot);
// // imageItem->setText(0, image.materialName);
// // imageItem->setIcon(0, imageIcon);
// // }
// }
XTreeWidgetItem *strTableRoot = new XTreeWidgetItem(zoneItem); // if (!assetMap.models.isEmpty()) {
strTableRoot->setText(0, "String Tables"); // QIcon modelIcon = Utils::CreateAssetIcon(ASSET_TYPE_XMODEL);
strTableRoot->setIcon(0, stringTableIcon);
strTableRoot->SetCategory(CATEGORY_TYPE);
for (auto strTable: assetMap.stringTables) { // XTreeWidgetItem *modelsRoot = new XTreeWidgetItem(zoneItem);
XTreeWidgetItem *modelItem = new XTreeWidgetItem(strTableRoot); // modelsRoot->setText(0, "Models");
modelItem->setText(0, strTable.name); // modelsRoot->setIcon(0, modelIcon);
modelItem->setIcon(0, stringTableIcon); // modelsRoot->SetCategory(CATEGORY_TYPE);
}
}
if (!assetMap.sounds.isEmpty()) { // for (auto model: assetMap.models) {
QIcon soundIcon = Utils::CreateAssetIcon(Utils::ASSET_SOUND); // XTreeWidgetItem *modelItem = new XTreeWidgetItem(modelsRoot);
// modelItem->setText(0, model.name);
// modelItem->setIcon(0, modelIcon);
// }
// }
XTreeWidgetItem *soundsRoot = new XTreeWidgetItem(zoneItem); // if (!assetMap.materials.isEmpty()) {
soundsRoot->setText(0, "Sounds"); // QIcon materialIcon = Utils::CreateAssetIcon(ASSET_TYPE_MATERIAL);
soundsRoot->setIcon(0, soundIcon);
soundsRoot->SetCategory(CATEGORY_TYPE); // XTreeWidgetItem *materialsRoot = new XTreeWidgetItem(zoneItem);
} // materialsRoot->setText(0, "Materials");
// materialsRoot->setIcon(0, materialIcon);
// materialsRoot->SetCategory(CATEGORY_TYPE);
// for (auto material: assetMap.materials) {
// XTreeWidgetItem *materialItem = new XTreeWidgetItem(materialsRoot);
// //materialItem->setText(0, material.name);
// materialItem->setIcon(0, materialIcon);
// }
// }
// if (!assetMap.stringTables.isEmpty()) {
// QIcon stringTableIcon = Utils::CreateAssetIcon(ASSET_TYPE_STRINGTABLE);
// XTreeWidgetItem *strTableRoot = new XTreeWidgetItem(zoneItem);
// strTableRoot->setText(0, "String Tables");
// strTableRoot->setIcon(0, stringTableIcon);
// strTableRoot->SetCategory(CATEGORY_TYPE);
// for (auto strTable: assetMap.stringTables) {
// XTreeWidgetItem *modelItem = new XTreeWidgetItem(strTableRoot);
// modelItem->setText(0, strTable.name);
// modelItem->setIcon(0, stringTableIcon);
// }
// }
// if (!assetMap.sounds.isEmpty()) {
// QIcon soundIcon = Utils::CreateAssetIcon(ASSET_TYPE_SOUND);
// XTreeWidgetItem *soundsRoot = new XTreeWidgetItem(zoneItem);
// soundsRoot->setText(0, "Sounds");
// soundsRoot->setIcon(0, soundIcon);
// soundsRoot->SetCategory(CATEGORY_TYPE);
// }
mZoneFiles[aZoneFile->GetBaseStem() + ".zone"] = aZoneFile; mZoneFiles[aZoneFile->GetBaseStem() + ".zone"] = aZoneFile;
} }
@ -289,7 +302,7 @@ void XTreeWidget::PrepareContextMenu(const QPoint &pos) {
QMenu *exportSubmenu = new QMenu("Export...", this); QMenu *exportSubmenu = new QMenu("Export...", this);
contextMenu->addMenu(exportSubmenu); contextMenu->addMenu(exportSubmenu);
std::shared_ptr<DDSFile> ddsFile = mDDSFiles[fileStem]; const DDSFile* ddsFile = mDDSFiles[fileStem];
QAction *exportIWIAction = new QAction("Export as IWI"); QAction *exportIWIAction = new QAction("Export as IWI");
exportSubmenu->addAction(exportIWIAction); exportSubmenu->addAction(exportIWIAction);
@ -333,7 +346,7 @@ void XTreeWidget::PrepareContextMenu(const QPoint &pos) {
QMenu *exportSubmenu = new QMenu("Export...", this); QMenu *exportSubmenu = new QMenu("Export...", this);
contextMenu->addMenu(exportSubmenu); contextMenu->addMenu(exportSubmenu);
std::shared_ptr<IWIFile> iwiFile = mIWIFiles[fileStem]; const IWIFile* iwiFile = mIWIFiles[fileStem];
QAction *exportDDSAction = new QAction("Export as DDS"); QAction *exportDDSAction = new QAction("Export as DDS");
exportSubmenu->addAction(exportDDSAction); exportSubmenu->addAction(exportDDSAction);
@ -462,7 +475,7 @@ void XTreeWidget::PrepareContextMenu(const QPoint &pos) {
QMenu *exportSubmenu = new QMenu("Export...", this); QMenu *exportSubmenu = new QMenu("Export...", this);
contextMenu->addMenu(exportSubmenu); contextMenu->addMenu(exportSubmenu);
std::shared_ptr<FastFile> fastFile = mFastFiles[fileStem]; const FastFile* fastFile = mFastFiles[fileStem];
QAction *exportFastFileAction = new QAction("Export Fast File"); QAction *exportFastFileAction = new QAction("Export Fast File");
exportSubmenu->addAction(exportFastFileAction); exportSubmenu->addAction(exportFastFileAction);
@ -495,7 +508,7 @@ void XTreeWidget::PrepareContextMenu(const QPoint &pos) {
QMenu *exportSubmenu = new QMenu("Export...", this); QMenu *exportSubmenu = new QMenu("Export...", this);
contextMenu->addMenu(exportSubmenu); contextMenu->addMenu(exportSubmenu);
std::shared_ptr<ZoneFile> zoneFile = mZoneFiles[fileStem]; const ZoneFile* zoneFile = mZoneFiles[fileStem];
QAction *exportZoneFileAction = new QAction("Export Zone File"); QAction *exportZoneFileAction = new QAction("Export Zone File");
exportSubmenu->addAction(exportZoneFileAction); exportSubmenu->addAction(exportZoneFileAction);
@ -618,20 +631,19 @@ void XTreeWidget::ItemSelectionChanged() {
XTreeWidgetItem *parentItem = dynamic_cast<XTreeWidgetItem*>(selectedItem->parent()); XTreeWidgetItem *parentItem = dynamic_cast<XTreeWidgetItem*>(selectedItem->parent());
if (selectedText.contains(".dds")) { /*if (selectedText.contains(".dds")) {
if (!mDDSFiles.contains(selectedText)) { if (!mDDSFiles.contains(selectedText)) {
LogManager::instance().addError("Could not find " + selectedText + " in DDS map!"); LogManager::instance().addError("Could not find " + selectedText + " in DDS map!");
return; return;
} }
std::shared_ptr<DDSFile> ddsFile = mDDSFiles[selectedText]; emit DDSFileSelected(mDDSFiles[selectedText], selectedText);
emit DDSFileSelected(ddsFile, selectedText);
} else if (selectedText.contains(".iwi")) { } else if (selectedText.contains(".iwi")) {
if (!mIWIFiles.contains(selectedText)) { if (!mIWIFiles.contains(selectedText)) {
LogManager::instance().addError("Could not find " + selectedText + " in IWI map!"); LogManager::instance().addError("Could not find " + selectedText + " in IWI map!");
return; return;
} }
emit IWIFileSelected(mIWIFiles[selectedText], selectedText); emit IWIFileSelected(mIWIFiles[selectedText], selectedText);
} else if (selectedText.contains(".ff")) { } else */if (selectedText.contains(".ff")) {
if (!mFastFiles.contains(selectedText)) { if (!mFastFiles.contains(selectedText)) {
LogManager::instance().addError("Could not find " + selectedText + " in Fast File map!"); LogManager::instance().addError("Could not find " + selectedText + " in Fast File map!");
return; return;
@ -661,14 +673,14 @@ void XTreeWidget::ItemSelectionChanged() {
// } // }
// } // }
} }
} else if (parentItem && (parentItem->text(0) == "Tech Sets")) { } /*else if (parentItem && (parentItem->text(0) == "Tech Sets")) {
XTreeWidgetItem *grandpaItem = dynamic_cast<XTreeWidgetItem*>(parentItem->parent()); XTreeWidgetItem *grandpaItem = dynamic_cast<XTreeWidgetItem*>(parentItem->parent());
if (grandpaItem && grandpaItem->text(0).contains(".zone")) { if (grandpaItem && grandpaItem->text(0).contains(".zone")) {
const QString fileStem = grandpaItem->text(0).section('.', 0, 0); const QString fileStem = grandpaItem->text(0).section('.', 0, 0);
auto techsets = mZoneFiles[fileStem]->GetAssetMap().techSets; auto techsets = mZoneFiles[fileStem]->GetAssetList().techSets;
for (auto techset : techsets) { for (auto techset : techsets) {
if (techset.name == selectedText) { if (techset.name == selectedText) {
emit TechSetSelected(std::make_shared<MaterialTechSet>(techset), fileStem); emit TechSetSelected(new MaterialTechSet(techset), fileStem);
break; break;
} }
} }
@ -732,10 +744,10 @@ void XTreeWidget::ItemSelectionChanged() {
// return; // return;
//} //}
} }
} }*/
} }
std::shared_ptr<ZoneFile> XTreeWidget::FindZoneFile(const QString aStem) { const ZoneFile* XTreeWidget::FindZoneFile(const QString aStem) {
foreach (auto zoneFile, mZoneFiles) { foreach (auto zoneFile, mZoneFiles) {
if (zoneFile->GetStem() == aStem) { if (zoneFile->GetStem() == aStem) {
return zoneFile; return zoneFile;
@ -744,7 +756,7 @@ std::shared_ptr<ZoneFile> XTreeWidget::FindZoneFile(const QString aStem) {
return nullptr; return nullptr;
} }
std::shared_ptr<FastFile> XTreeWidget::FindFastFile(const QString aStem) { const FastFile *XTreeWidget::FindFastFile(const QString aStem) {
foreach (auto fastFile, mFastFiles) { foreach (auto fastFile, mFastFiles) {
if (fastFile->GetStem() == aStem) { if (fastFile->GetStem() == aStem) {
return fastFile; return fastFile;
@ -761,7 +773,7 @@ bool XTreeWidget::HasFastFile(const QString aStem) {
return FindFastFile(aStem) != nullptr; return FindFastFile(aStem) != nullptr;
} }
void XTreeWidget::AddIWIFile(std::shared_ptr<IWIFile> aIWIFile) { void XTreeWidget::AddIWIFile(IWIFile* aIWIFile) {
const QString iwiFileName = QString(aIWIFile->fileStem + ".iwi"); const QString iwiFileName = QString(aIWIFile->fileStem + ".iwi");
for (int i = 0; i < invisibleRootItem()->childCount(); i++) { for (int i = 0; i < invisibleRootItem()->childCount(); i++) {
@ -772,12 +784,12 @@ void XTreeWidget::AddIWIFile(std::shared_ptr<IWIFile> aIWIFile) {
} }
XTreeWidgetItem *iwiItem = new XTreeWidgetItem(this); XTreeWidgetItem *iwiItem = new XTreeWidgetItem(this);
iwiItem->setIcon(0, Utils::CreateAssetIcon(Utils::ASSET_IMAGE)); iwiItem->setIcon(0, Utils::CreateAssetIcon(ASSET_TYPE_IMAGE));
iwiItem->setText(0, iwiFileName); iwiItem->setText(0, iwiFileName);
mIWIFiles[aIWIFile->fileStem.section(".", 0, 0)] = aIWIFile; mIWIFiles[aIWIFile->fileStem.section(".", 0, 0)] = aIWIFile;
} }
void XTreeWidget::AddDDSFile(std::shared_ptr<DDSFile> aDDSFile) { void XTreeWidget::AddDDSFile(DDSFile* aDDSFile) {
const QString ddsFileName = QString(aDDSFile->fileStem + ".dds"); const QString ddsFileName = QString(aDDSFile->fileStem + ".dds");
for (int i = 0; i < invisibleRootItem()->childCount(); i++) { for (int i = 0; i < invisibleRootItem()->childCount(); i++) {
@ -788,7 +800,7 @@ void XTreeWidget::AddDDSFile(std::shared_ptr<DDSFile> aDDSFile) {
} }
XTreeWidgetItem *ddsItem = new XTreeWidgetItem(this); XTreeWidgetItem *ddsItem = new XTreeWidgetItem(this);
ddsItem->setIcon(0, Utils::CreateAssetIcon(Utils::ASSET_IMAGE)); ddsItem->setIcon(0, Utils::CreateAssetIcon(ASSET_TYPE_IMAGE));
ddsItem->setText(0, ddsFileName); ddsItem->setText(0, ddsFileName);
mDDSFiles[aDDSFile->fileStem.section(".", 0, 0)] = aDDSFile; mDDSFiles[aDDSFile->fileStem.section(".", 0, 0)] = aDDSFile;
} }