Add menu bar and recent file feature.

This commit is contained in:
= 2025-01-10 04:35:03 -05:00
parent 2854479b97
commit c165a537a0
2 changed files with 37 additions and 3 deletions

View File

@ -15,6 +15,20 @@ MainWindow::MainWindow(QWidget *parent)
mDiskLumpCount = 0; mDiskLumpCount = 0;
mDiskLumpOrder = QVector<quint32>(); mDiskLumpOrder = QVector<quint32>();
mLumps = QMap<quint32, Lump>(); mLumps = QMap<quint32, Lump>();
mRecentFiles = QQueue<QString>();
mSettingsValid = false;
mRecentFileActions = QVector<QAction*>();
const QString appSettingsPath = QDir::currentPath() + "/appSettings.ini";
QSettings appSettings(appSettingsPath, QSettings::IniFormat);
if (appSettings.contains("mRecentFiles")) {
mSettingsValid = true;
QStringList recentFiles = appSettings.value("mRecentFiles").toStringList();
foreach (QString recentFile, recentFiles) {
mRecentFiles.enqueue(recentFile);
}
}
connect(ui->treeWidget_Scripts, &QTreeWidget::itemSelectionChanged, this, &MainWindow::ScriptSelected); connect(ui->treeWidget_Scripts, &QTreeWidget::itemSelectionChanged, this, &MainWindow::ScriptSelected);
connect(ui->comboBox_StringTable, &QComboBox::currentTextChanged, this, &MainWindow::StrTableSelected); connect(ui->comboBox_StringTable, &QComboBox::currentTextChanged, this, &MainWindow::StrTableSelected);
@ -114,6 +128,10 @@ MainWindow::MainWindow(QWidget *parent)
} }
MainWindow::~MainWindow() { MainWindow::~MainWindow() {
const QString appSettingsPath = QDir::currentPath() + "/appSettings.ini";
QSettings appSettings(appSettingsPath, QSettings::IniFormat);
appSettings.setValue("mRecentFiles", mRecentFiles.toList());
delete ui; delete ui;
} }
@ -193,6 +211,9 @@ void MainWindow::Reset() {
mRawFileMap.clear(); mRawFileMap.clear();
mTreeMap.clear(); mTreeMap.clear();
mStrTableMap.clear(); mStrTableMap.clear();
// Refresh recent files
RefreshRecentFileMenu();
} }
void MainWindow::StrTableSelected(QString aStrTableName) { void MainWindow::StrTableSelected(QString aStrTableName) {

View File

@ -12,6 +12,8 @@
#include <QDebug> #include <QDebug>
#include <QTableWidgetItem> #include <QTableWidgetItem>
#include <QTreeWidgetItem> #include <QTreeWidgetItem>
#include <QSettings>
#include <QQueue>
#include <Qt3DCore/QEntity> #include <Qt3DCore/QEntity>
#include <Qt3DRender/QCamera> #include <Qt3DRender/QCamera>
@ -84,9 +86,16 @@ private slots:
void on_pushButton_FastFile_clicked(); void on_pushButton_FastFile_clicked();
void on_pushButton_FastFile_2_clicked(); void on_pushButton_FastFile_2_clicked();
QFile *OpenFastFile(); void LogOpenedFile(QString aFileName);
QFile *OpenZoneFile(); void RefreshRecentFileMenu();
void ParseFFHeader(QFile *aFastFilePtr);
QString GetFastFilePath();
QString GetZoneFilePath();
QByteArray OpenFastFile(QString aFastFilePath);
QByteArray OpenZoneFile(QString aZoneFilePath);
void ParseFFHeader(QByteArray aFastFileData);
void ParseFFCompany(QDataStream *aFastFileStream); void ParseFFCompany(QDataStream *aFastFileStream);
void ParseFFFileType(QDataStream *afastFileStream); void ParseFFFileType(QDataStream *afastFileStream);
void ParseFFSignage(QDataStream *afastFileStream); void ParseFFSignage(QDataStream *afastFileStream);
@ -141,6 +150,10 @@ private:
QMap<QString, QString> mRawFileMap; QMap<QString, QString> mRawFileMap;
QMap<QString, QTreeWidgetItem*> mTreeMap; QMap<QString, QTreeWidgetItem*> mTreeMap;
QMap<QString, QVector<QPair<QString, QString>>> mStrTableMap; QMap<QString, QVector<QPair<QString, QString>>> mStrTableMap;
QQueue<QString> mRecentFiles;
bool mSettingsValid;
QVector<QAction*> mRecentFileActions;
quint32 mBSPVersion; quint32 mBSPVersion;
quint32 mDiskLumpCount; quint32 mDiskLumpCount;