#ifndef MAINWINDOW_H #define MAINWINDOW_H #include "d3dbsp_structs.h" #include "xtreewidget.h" #include #include #include #include #include #include #include #include #include #include #include QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); void Reset(); private slots: bool OpenFastFile(const QString aFastFilePath); bool OpenFastFile(const QByteArray& aFastFileData, const QString aFastFilePath); bool OpenFastFile(); bool OpenZoneFile(const QString aZoneFilePath, bool fromFF = false); bool OpenZoneFile(); int LoadFile_D3DBSP(const QString aFilePath); int LoadFile_IPAK(const QString aFilePath); int LoadFile_XSUB(const QString aFilePath); int LoadFile_IWI(const QString aFilePath); int LoadFile_DDS(const QString aFilePath); int LoadFile_DDSFiles(const QStringList aFilePaths); void HandleLogEntry(const QString &entry); void HandleStatusUpdate(const QString &message, int timeout); void HandleProgressUpdate(const QString &message, int progress, int max); protected: void dragEnterEvent(QDragEnterEvent *event) override; void dragMoveEvent(QDragMoveEvent *event) override; void dragLeaveEvent(QDragLeaveEvent *event) override; void dropEvent(QDropEvent *event) override; private: Ui::MainWindow *ui; QMap mTypeMap; QStringList mTypeOrder; quint32 mTagCount; quint32 mRecordCount; QMap mRawFileMap; //QMap mImageMap; QMap mTreeMap; QMap>> mStrTableMap; XTreeWidget *mTreeWidget; QPlainTextEdit *mLogWidget; QProgressBar *mProgressBar; quint32 mBSPVersion; quint32 mDiskLumpCount; QVector mDiskLumpOrder; QMap mLumps; }; #endif // MAINWINDOW_H