From ae195060665c753044f8615c013384ef4218f17a Mon Sep 17 00:00:00 2001 From: camila314 <47485054+camila314@users.noreply.github.com> Date: Sun, 25 Aug 2024 19:31:47 -0500 Subject: [PATCH] Retain file information --- .gitignore | 3 ++- Source/GUI/MainWindow.cpp | 4 +++- Source/GUI/MemWatcher/MemWatchWidget.cpp | 11 +++++++++++ Source/GUI/MemWatcher/MemWatchWidget.h | 2 ++ Source/GUI/Settings/SConfig.cpp | 10 ++++++++++ Source/GUI/Settings/SConfig.h | 2 ++ 6 files changed, 30 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 5a1c561a..02175088 100644 --- a/.gitignore +++ b/.gitignore @@ -17,4 +17,5 @@ Source/.vs/ Source/.vscode/ .vscode/ .idea/* -.DS_Store \ No newline at end of file +.DS_Store +.cache \ No newline at end of file diff --git a/Source/GUI/MainWindow.cpp b/Source/GUI/MainWindow.cpp index a78b4084..7c1bb506 100644 --- a/Source/GUI/MainWindow.cpp +++ b/Source/GUI/MainWindow.cpp @@ -41,6 +41,7 @@ MainWindow::MainWindow() GUICommon::changeApplicationStyle( static_cast(SConfig::getInstance().getTheme())); + m_watcher->setWatchFile(SConfig::getInstance().getWatchFile()); m_watcher->restoreWatchModel(SConfig::getInstance().getWatchModel()); m_actAutoHook->setChecked(SConfig::getInstance().getAutoHook()); @@ -63,7 +64,7 @@ void MainWindow::makeMenus() m_actOpenWatchList = new QAction(tr("&Open..."), this); m_actSaveWatchList = new QAction(tr("&Save"), this); m_actSaveAsWatchList = new QAction(tr("&Save as..."), this); - m_actClearWatchList = new QAction(tr("&Clear the watch list"), this); + m_actClearWatchList = new QAction(tr("&Reset watch list"), this); m_actImportFromCT = new QAction(tr("&Import from Cheat Engine's CT file..."), this); m_actExportAsCSV = new QAction(tr("&Export as CSV..."), this); QAction* const actOpenConfigDir{new QAction(tr("Open Configuration Directory..."), this)}; @@ -545,6 +546,7 @@ void MainWindow::onQuit() void MainWindow::closeEvent(QCloseEvent* event) { SConfig::getInstance().setAutoHook(m_actAutoHook->isChecked()); + SConfig::getInstance().setWatchFile(m_watcher->getWatchFile()); SConfig::getInstance().setWatchModel(m_watcher->saveWatchModel()); SConfig::getInstance().setMainWindowGeometry(saveGeometry()); SConfig::getInstance().setMainWindowState(saveState()); diff --git a/Source/GUI/MemWatcher/MemWatchWidget.cpp b/Source/GUI/MemWatcher/MemWatchWidget.cpp index 953568d5..c48408d2 100644 --- a/Source/GUI/MemWatcher/MemWatchWidget.cpp +++ b/Source/GUI/MemWatcher/MemWatchWidget.cpp @@ -853,6 +853,7 @@ void MemWatchWidget::clearWatchList() return; m_watchModel->clearRoot(); + m_watchListFile = ""; } void MemWatchWidget::importFromCTFile() @@ -984,6 +985,16 @@ QString MemWatchWidget::saveWatchModel() return saveDoc.toJson(); } +QString MemWatchWidget::getWatchFile() const +{ + return m_watchListFile; +} + +void MemWatchWidget::setWatchFile(const QString& path) +{ + m_watchListFile = path; +} + void MemWatchWidget::updateExpansionState(const MemWatchTreeNode* const node) { QSignalBlocker signalBlocker(*m_watchView); diff --git a/Source/GUI/MemWatcher/MemWatchWidget.h b/Source/GUI/MemWatcher/MemWatchWidget.h index 194500db..b2bd74da 100644 --- a/Source/GUI/MemWatcher/MemWatchWidget.h +++ b/Source/GUI/MemWatcher/MemWatchWidget.h @@ -49,6 +49,8 @@ class MemWatchWidget : public QWidget bool warnIfUnsavedChanges(); void restoreWatchModel(const QString& json); QString saveWatchModel(); + QString getWatchFile() const; + void setWatchFile(const QString& path); signals: void mustUnhook(); diff --git a/Source/GUI/Settings/SConfig.cpp b/Source/GUI/Settings/SConfig.cpp index 02fc9cab..b030e9b8 100644 --- a/Source/GUI/Settings/SConfig.cpp +++ b/Source/GUI/Settings/SConfig.cpp @@ -63,6 +63,11 @@ QString SConfig::getSettingsFilepath() const return m_settings->fileName(); } +QString SConfig::getWatchFile() const +{ + return value("watchFile", QString{}).toString(); +} + QString SConfig::getWatchModel() const { return value("watchModel", QString{}).toString(); @@ -133,6 +138,11 @@ u32 SConfig::getMEM2Size() const return value("memorySettings/MEM2Size", 64u * 1024 * 1024).toUInt(); } +void SConfig::setWatchFile(const QString& path) +{ + setValue("watchFile", path); +} + void SConfig::setWatchModel(const QString& json) { setValue("watchModel", json); diff --git a/Source/GUI/Settings/SConfig.h b/Source/GUI/Settings/SConfig.h index caa2de1d..c1767e0a 100644 --- a/Source/GUI/Settings/SConfig.h +++ b/Source/GUI/Settings/SConfig.h @@ -28,6 +28,7 @@ class SConfig QByteArray getMainWindowState() const; QByteArray getSplitterState() const; + QString getWatchFile() const; QString getWatchModel() const; bool getAutoHook() const; @@ -47,6 +48,7 @@ class SConfig void setMainWindowState(QByteArray const&); void setSplitterState(QByteArray const&); + void setWatchFile(const QString& path); void setWatchModel(const QString& json); void setAutoHook(bool enabled);