#ifndef XTREEWIDGET_H #define XTREEWIDGET_H #include "d3dbsp_structs.h" #include "asset_structs.h" #include "ddsfile.h" #include "iwifile.h" #include "fastfile.h" #include "xtreewidgetitem.h" #include "zonefile.h" #include #include class XTreeWidget : public QTreeWidget { Q_OBJECT public: explicit XTreeWidget(QWidget *parent = nullptr); ~XTreeWidget(); void AddFastFile(std::shared_ptr aFastFile); void AddZoneFile(std::shared_ptr aZoneFile, XTreeWidgetItem *aParentItem = nullptr); void AddIWIFile(std::shared_ptr aIWIFile); void AddDDSFile(std::shared_ptr aDDSFile); std::shared_ptr FindZoneFile(const QString aStem); std::shared_ptr FindFastFile(const QString aStem); bool HasZoneFile(const QString aStem); bool HasFastFile(const QString aStem); void CloseFastFile(const QString aFFName); signals: void DDSFileSelected(std::shared_ptr aDDSFile, const QString aParentName); void IWIFileSelected(std::shared_ptr aIWIFile, const QString aParentName); void FastFileSelected(std::shared_ptr aFastFile, const QString aParentName); void ZoneFileSelected(std::shared_ptr aZoneFile, const QString aParentName); void LocalStringSelected(std::shared_ptr aZoneFile, const QString aParentName); void RawFileSelected(std::shared_ptr aRawFile, const QString aParentName); void ImageSelected(std::shared_ptr aImage, const QString aParentName); void TechSetSelected(std::shared_ptr aZoneFile, const QString aParentName); void StrTableSelected(std::shared_ptr aStrTable, const QString aParentName); void MenuSelected(std::shared_ptr aMenu, const QString aParentName); void SoundSelected(std::shared_ptr aSound, const QString aParentName); void MaterialSelected(std::shared_ptr aMaterial, const QString aParentName); void ItemSelected(const QString itemText); void ItemClosed(const QString itemText); void Cleared(); protected: void ItemSelectionChanged(); void PrepareContextMenu(const QPoint &pos); private: QMap> mFastFiles; QMap> mZoneFiles; QMap> mDDSFiles; QMap> mIWIFiles; }; #endif // XTREEWIDGET_H