#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 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); signals: void DDSFileSelected(std::shared_ptr aDDSFile); void IWIFileSelected(std::shared_ptr aIWIFile); void FastFileSelected(std::shared_ptr aFastFile); void ZoneFileSelected(std::shared_ptr aZoneFile); void LocalStringSelected(std::shared_ptr aZoneFile); void RawFileSelected(std::shared_ptr aRawFile); void ImageSelected(std::shared_ptr aImage); void TechSetSelected(std::shared_ptr aZoneFile); void StrTableSelected(std::shared_ptr aStrTable); void MenuSelected(std::shared_ptr aMenu); void SoundSelected(std::shared_ptr aSound); void TabSelected(const QString aTabName); void Cleared(); protected: void ItemSelectionChanged(); void PrepareContextMenu(const QPoint &pos); private: QMap> mFastFiles; QMap> mZoneFiles; QMap> mDDSFiles; QMap> mIWIFiles; std::shared_ptr pFindZoneFile(const QString aFilePart); std::shared_ptr pFindFastFile(const QString aFilePart); }; #endif // XTREEWIDGET_H