#ifndef XTREEWIDGET_H #define XTREEWIDGET_H #include "d3dbsp_structs.h" #include "asset_structs.h" #include "ddsfile.h" #include "iwifile.h" #include "fastfile.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, QTreeWidgetItem *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 MenuSelected(std::shared_ptr aMenu); protected: void ItemSelectionChanged(); void PrepareContextMenu(const QPoint &pos); private: QMap> mFastFiles; QMap> mZoneFiles; QMap> mDDSFiles; QMap> mIWIFiles; ZoneFile pFindZoneFile(const QString aFilePart); FastFile pFindFastFile(const QString aFilePart); }; #endif // XTREEWIDGET_H