summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mainwindow.cpp3
-rw-r--r--src/organizercore.cpp3
-rw-r--r--src/profile.cpp21
-rw-r--r--src/profile.h1
4 files changed, 13 insertions, 15 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 26ff4b98..84a51b62 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -1332,8 +1332,7 @@ void MainWindow::updateBSAList(const QStringList &defaultArchives, const QString
std::vector<std::pair<UINT32, QTreeWidgetItem*>> items;
- IPluginGame *gamePlugin = qApp->property("managed_game").value<IPluginGame*>();
- BSAInvalidation *invalidation = gamePlugin->feature<BSAInvalidation>();
+ BSAInvalidation *invalidation = m_OrganizerCore.managedGame()->feature<BSAInvalidation>();
std::vector<FileEntry::Ptr> files = m_OrganizerCore.directoryStructure()->getFiles();
QStringList plugins = m_OrganizerCore.findFiles("", [] (const QString &fileName) -> bool {
diff --git a/src/organizercore.cpp b/src/organizercore.cpp
index d56f64cb..517a9bfb 100644
--- a/src/organizercore.cpp
+++ b/src/organizercore.cpp
@@ -1570,8 +1570,7 @@ void OrganizerCore::prepareStart() {
std::vector<std::pair<QString, QString>> OrganizerCore::fileMapping()
{
- IPluginGame *game = qApp->property("managed_game").value<IPluginGame*>();
- return fileMapping(game->dataDirectory().absolutePath(),
+ return fileMapping(managedGame()->dataDirectory().absolutePath(),
directoryStructure(),
directoryStructure());
}
diff --git a/src/profile.cpp b/src/profile.cpp
index b990fbc1..cf3622b0 100644
--- a/src/profile.cpp
+++ b/src/profile.cpp
@@ -18,6 +18,7 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
*/
#include "profile.h"
+
#include "gameinfo.h"
#include "windows_error.h"
#include "modinfo.h"
@@ -30,16 +31,18 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
#include <report.h>
#include <bsainvalidation.h>
#include <dataarchives.h>
+
#include <QMessageBox>
#include <QApplication>
#include <QSettings>
#include <QTemporaryFile>
+
#include <functional>
+#include <stdexcept>
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <shlobj.h>
-#include <stdexcept>
using namespace MOBase;
using namespace MOShared;
@@ -47,6 +50,7 @@ using namespace MOShared;
Profile::Profile()
: m_ModListWriter(std::bind(&Profile::writeModlistNow, this))
+ , m_GamePlugin(qApp->property("managed_game").value<IPluginGame*>())
{
}
@@ -101,6 +105,7 @@ Profile::Profile(const QString &name, IPluginGame *gamePlugin, bool useDefaultSe
Profile::Profile(const QDir &directory, IPluginGame *gamePlugin)
: m_Directory(directory)
+ , m_GamePlugin(gamePlugin)
, m_ModListWriter(std::bind(&Profile::writeModlistNow, this))
{
assert(gamePlugin != nullptr);
@@ -568,10 +573,8 @@ void Profile::mergeTweaks(ModInfo::Ptr modInfo, const QString &tweakedIni) const
bool Profile::invalidationActive(bool *supported) const
{
- IPluginGame *gamePlugin = qApp->property("managed_game").value<IPluginGame*>();
-
- BSAInvalidation *invalidation = gamePlugin->feature<BSAInvalidation>();
- DataArchives *dataArchives = gamePlugin->feature<DataArchives>();
+ BSAInvalidation *invalidation = m_GamePlugin->feature<BSAInvalidation>();
+ DataArchives *dataArchives = m_GamePlugin->feature<DataArchives>();
if ((invalidation != nullptr) && (dataArchives != nullptr)) {
if (supported != nullptr) {
@@ -593,9 +596,7 @@ bool Profile::invalidationActive(bool *supported) const
void Profile::deactivateInvalidation()
{
- IPluginGame *gamePlugin = qApp->property("managed_game").value<IPluginGame*>();
-
- BSAInvalidation *invalidation = gamePlugin->feature<BSAInvalidation>();
+ BSAInvalidation *invalidation = m_GamePlugin->feature<BSAInvalidation>();
if (invalidation != nullptr) {
invalidation->deactivate(this);
@@ -605,9 +606,7 @@ void Profile::deactivateInvalidation()
void Profile::activateInvalidation()
{
- IPluginGame *gamePlugin = qApp->property("managed_game").value<IPluginGame*>();
-
- BSAInvalidation *invalidation = gamePlugin->feature<BSAInvalidation>();
+ BSAInvalidation *invalidation = m_GamePlugin->feature<BSAInvalidation>();
if (invalidation != nullptr) {
invalidation->activate(this);
diff --git a/src/profile.h b/src/profile.h
index 342b6fa0..9c8139e9 100644
--- a/src/profile.h
+++ b/src/profile.h
@@ -65,6 +65,7 @@ public:
* @param filter save game filter. Defaults to &lt;no filter&gt;.
**/
Profile(const QString &name, MOBase::IPluginGame *gamePlugin, bool useDefaultSettings);
+
/**
* @brief constructor
*