Update: app/soundviewer.ui
This commit is contained in:
parent
053c440415
commit
ce5c98b78d
@ -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);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// if (!assetMap.techSets.isEmpty()) {
|
||||||
|
// QIcon techSetIcon = Utils::CreateAssetIcon(ASSET_TYPE_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);
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// const QString rawFileStr = pathPart;// = QString("%1 [%2-%3]").arg(pathPart).arg(rawFile.startPos).arg(rawFile.endPos);
|
// if (!assetMap.rawFiles.isEmpty()) {
|
||||||
// if (pathPart == pathParts.last()) {
|
// QIcon rawFileIcon = Utils::CreateAssetIcon(ASSET_TYPE_RAWFILE);
|
||||||
// XTreeWidgetItem *rawFileItem = new XTreeWidgetItem(tempItem);
|
|
||||||
// rawFileItem->setText(0, rawFileStr);
|
|
||||||
|
|
||||||
// tempItem = rawFileItem;
|
// XTreeWidgetItem *rawFileRoot = new XTreeWidgetItem(zoneItem);
|
||||||
// } else if (!childFound) {
|
// rawFileRoot->setText(0, "Raw Files");
|
||||||
// tempItem = new XTreeWidgetItem(tempItem);
|
// rawFileRoot->setIcon(0, rawFileIcon);
|
||||||
// tempItem->setText(0, rawFileStr);
|
// rawFileRoot->SetCategory(CATEGORY_TYPE);
|
||||||
|
// for (auto rawFile : assetMap.rawFiles) {
|
||||||
|
// if (!rawFile.length) { continue; }
|
||||||
|
|
||||||
|
// XTreeWidgetItem *tempItem = rawFileRoot;
|
||||||
|
// // const QStringList pathParts = rawFile->path.split('/');
|
||||||
|
// // for (const QString &pathPart : pathParts) {
|
||||||
|
// // bool childFound = false;
|
||||||
|
// // 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;
|
||||||
|
// // break;
|
||||||
|
// // }
|
||||||
|
// // }
|
||||||
|
|
||||||
|
// // const QString rawFileStr = pathPart;// = QString("%1 [%2-%3]").arg(pathPart).arg(rawFile.startPos).arg(rawFile.endPos);
|
||||||
|
// // if (pathPart == pathParts.last()) {
|
||||||
|
// // XTreeWidgetItem *rawFileItem = new XTreeWidgetItem(tempItem);
|
||||||
|
// // rawFileItem->setText(0, rawFileStr);
|
||||||
|
|
||||||
|
// // tempItem = rawFileItem;
|
||||||
|
// // } else if (!childFound) {
|
||||||
|
// // tempItem = new XTreeWidgetItem(tempItem);
|
||||||
|
// // tempItem->setText(0, rawFileStr);
|
||||||
|
// // }
|
||||||
|
|
||||||
|
// // }
|
||||||
|
// tempItem->setIcon(0, rawFileIcon);
|
||||||
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
// if (!assetMap.menuDefinitions.isEmpty()) {
|
||||||
|
// // QIcon MenuDefIcon = Utils::CreateAssetIcon(ASSET_TYPE_MENU);
|
||||||
|
|
||||||
|
// // XTreeWidgetItem *menuRoot = new XTreeWidgetItem(zoneItem);
|
||||||
|
// // menuRoot->setText(0, "Menu Files");
|
||||||
|
// // menuRoot->setIcon(0, MenuDefIcon);
|
||||||
|
// // menuRoot->SetCategory(CATEGORY_TYPE);
|
||||||
|
|
||||||
|
// // int menuIndex = 1;
|
||||||
|
// // 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++;
|
||||||
|
// // }
|
||||||
// }
|
// }
|
||||||
tempItem->setIcon(0, rawFileIcon);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!assetMap.menuDefinitions.isEmpty()) {
|
// if (!assetMap.images.isEmpty()) {
|
||||||
// QIcon MenuDefIcon = Utils::CreateAssetIcon(Utils::ASSET_MENU);
|
// // QIcon imageIcon = Utils::CreateAssetIcon(ASSET_TYPE_IMAGE);
|
||||||
|
|
||||||
// XTreeWidgetItem *menuRoot = new XTreeWidgetItem(zoneItem);
|
// // XTreeWidgetItem *imageRoot = new XTreeWidgetItem(zoneItem);
|
||||||
// menuRoot->setText(0, "Menu Files");
|
// // imageRoot->setText(0, "Images");
|
||||||
// menuRoot->setIcon(0, MenuDefIcon);
|
// // imageRoot->setIcon(0, imageIcon);
|
||||||
// menuRoot->SetCategory(CATEGORY_TYPE);
|
// // imageRoot->SetCategory(CATEGORY_TYPE);
|
||||||
|
|
||||||
// int menuIndex = 1;
|
// // for (Image image : assetMap.images) {
|
||||||
// for (MenuDef menuDef : assetMap.menuDefinitions) {
|
// // XTreeWidgetItem *imageItem = new XTreeWidgetItem(imageRoot);
|
||||||
// XTreeWidgetItem *MenuDefRoot = new XTreeWidgetItem(menuRoot);
|
// // imageItem->setText(0, image.materialName);
|
||||||
// MenuDefRoot->setText(0, QString("Menu %1").arg(menuIndex));
|
// // imageItem->setIcon(0, imageIcon);
|
||||||
// for (Menu menu : menuDef.men) {
|
// // }
|
||||||
// XTreeWidgetItem *menuItem = new XTreeWidgetItem(MenuDefRoot);
|
|
||||||
// menuItem->setText(0, menu.filePath);
|
|
||||||
// menuItem->setIcon(0, MenuDefIcon);
|
|
||||||
// }
|
// }
|
||||||
// menuIndex++;
|
|
||||||
|
// if (!assetMap.models.isEmpty()) {
|
||||||
|
// QIcon modelIcon = Utils::CreateAssetIcon(ASSET_TYPE_XMODEL);
|
||||||
|
|
||||||
|
// XTreeWidgetItem *modelsRoot = new XTreeWidgetItem(zoneItem);
|
||||||
|
// modelsRoot->setText(0, "Models");
|
||||||
|
// modelsRoot->setIcon(0, modelIcon);
|
||||||
|
// modelsRoot->SetCategory(CATEGORY_TYPE);
|
||||||
|
|
||||||
|
// for (auto model: assetMap.models) {
|
||||||
|
// XTreeWidgetItem *modelItem = new XTreeWidgetItem(modelsRoot);
|
||||||
|
// modelItem->setText(0, model.name);
|
||||||
|
// modelItem->setIcon(0, modelIcon);
|
||||||
// }
|
// }
|
||||||
}
|
|
||||||
|
|
||||||
if (!assetMap.images.isEmpty()) {
|
|
||||||
// QIcon imageIcon = Utils::CreateAssetIcon(Utils::ASSET_IMAGE);
|
|
||||||
|
|
||||||
// XTreeWidgetItem *imageRoot = new XTreeWidgetItem(zoneItem);
|
|
||||||
// imageRoot->setText(0, "Images");
|
|
||||||
// imageRoot->setIcon(0, imageIcon);
|
|
||||||
// imageRoot->SetCategory(CATEGORY_TYPE);
|
|
||||||
|
|
||||||
// for (Image image : assetMap.images) {
|
|
||||||
// XTreeWidgetItem *imageItem = new XTreeWidgetItem(imageRoot);
|
|
||||||
// imageItem->setText(0, image.materialName);
|
|
||||||
// imageItem->setIcon(0, imageIcon);
|
|
||||||
// }
|
// }
|
||||||
}
|
|
||||||
|
|
||||||
if (!assetMap.models.isEmpty()) {
|
// if (!assetMap.materials.isEmpty()) {
|
||||||
QIcon modelIcon = Utils::CreateAssetIcon(Utils::ASSET_XMODEL);
|
// QIcon materialIcon = Utils::CreateAssetIcon(ASSET_TYPE_MATERIAL);
|
||||||
|
|
||||||
XTreeWidgetItem *modelsRoot = new XTreeWidgetItem(zoneItem);
|
// XTreeWidgetItem *materialsRoot = new XTreeWidgetItem(zoneItem);
|
||||||
modelsRoot->setText(0, "Models");
|
// materialsRoot->setText(0, "Materials");
|
||||||
modelsRoot->setIcon(0, modelIcon);
|
// materialsRoot->setIcon(0, materialIcon);
|
||||||
modelsRoot->SetCategory(CATEGORY_TYPE);
|
// materialsRoot->SetCategory(CATEGORY_TYPE);
|
||||||
|
|
||||||
for (auto model: assetMap.models) {
|
// for (auto material: assetMap.materials) {
|
||||||
XTreeWidgetItem *modelItem = new XTreeWidgetItem(modelsRoot);
|
// XTreeWidgetItem *materialItem = new XTreeWidgetItem(materialsRoot);
|
||||||
modelItem->setText(0, model.name);
|
// //materialItem->setText(0, material.name);
|
||||||
modelItem->setIcon(0, modelIcon);
|
// materialItem->setIcon(0, materialIcon);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (!assetMap.materials.isEmpty()) {
|
// if (!assetMap.stringTables.isEmpty()) {
|
||||||
QIcon materialIcon = Utils::CreateAssetIcon(Utils::ASSET_MATERIAL);
|
// QIcon stringTableIcon = Utils::CreateAssetIcon(ASSET_TYPE_STRINGTABLE);
|
||||||
|
|
||||||
XTreeWidgetItem *materialsRoot = new XTreeWidgetItem(zoneItem);
|
// XTreeWidgetItem *strTableRoot = new XTreeWidgetItem(zoneItem);
|
||||||
materialsRoot->setText(0, "Materials");
|
// strTableRoot->setText(0, "String Tables");
|
||||||
materialsRoot->setIcon(0, materialIcon);
|
// strTableRoot->setIcon(0, stringTableIcon);
|
||||||
materialsRoot->SetCategory(CATEGORY_TYPE);
|
// strTableRoot->SetCategory(CATEGORY_TYPE);
|
||||||
|
|
||||||
for (auto material: assetMap.materials) {
|
// for (auto strTable: assetMap.stringTables) {
|
||||||
XTreeWidgetItem *materialItem = new XTreeWidgetItem(materialsRoot);
|
// XTreeWidgetItem *modelItem = new XTreeWidgetItem(strTableRoot);
|
||||||
//materialItem->setText(0, material.name);
|
// modelItem->setText(0, strTable.name);
|
||||||
materialItem->setIcon(0, materialIcon);
|
// modelItem->setIcon(0, stringTableIcon);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (!assetMap.stringTables.isEmpty()) {
|
// if (!assetMap.sounds.isEmpty()) {
|
||||||
QIcon stringTableIcon = Utils::CreateAssetIcon(Utils::ASSET_STRINGTABLE);
|
// QIcon soundIcon = Utils::CreateAssetIcon(ASSET_TYPE_SOUND);
|
||||||
|
|
||||||
XTreeWidgetItem *strTableRoot = new XTreeWidgetItem(zoneItem);
|
// XTreeWidgetItem *soundsRoot = new XTreeWidgetItem(zoneItem);
|
||||||
strTableRoot->setText(0, "String Tables");
|
// soundsRoot->setText(0, "Sounds");
|
||||||
strTableRoot->setIcon(0, stringTableIcon);
|
// soundsRoot->setIcon(0, soundIcon);
|
||||||
strTableRoot->SetCategory(CATEGORY_TYPE);
|
// soundsRoot->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(Utils::ASSET_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;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user