summaryrefslogtreecommitdiff
path: root/src/nexusinterface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/nexusinterface.cpp')
-rw-r--r--src/nexusinterface.cpp28
1 files changed, 20 insertions, 8 deletions
diff --git a/src/nexusinterface.cpp b/src/nexusinterface.cpp
index 396cec11..1364d7e1 100644
--- a/src/nexusinterface.cpp
+++ b/src/nexusinterface.cpp
@@ -23,6 +23,7 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
#include "nxmaccessmanager.h"
#include "selectiondialog.h"
#include "bbcode.h"
+#include "settings.h"
#include <utility.h>
#include "shared/util.h"
#include <log.h>
@@ -235,31 +236,42 @@ APILimits NexusInterface::parseLimits(
}
-NexusInterface::NexusInterface()
+static NexusInterface* g_instance = nullptr;
+
+NexusInterface::NexusInterface(Settings* s)
: m_PluginContainer(nullptr)
{
+ MO_ASSERT(!g_instance);
+ g_instance = this;
+
m_User.limits(defaultAPILimits());
m_MOVersion = createVersionInfo();
- m_AccessManager = new NXMAccessManager(this, m_MOVersion.displayString(3));
+ m_AccessManager = new NXMAccessManager(
+ this, s, m_MOVersion.displayString(3));
+
m_DiskCache = new QNetworkDiskCache(this);
+
connect(m_AccessManager, SIGNAL(requestNXMDownload(QString)), this, SLOT(downloadRequestedNXM(QString)));
}
-NXMAccessManager *NexusInterface::getAccessManager()
+NexusInterface::~NexusInterface()
{
- return m_AccessManager;
+ cleanup();
+
+ MO_ASSERT(g_instance == this);
+ g_instance = nullptr;
}
-NexusInterface::~NexusInterface()
+NXMAccessManager *NexusInterface::getAccessManager()
{
- cleanup();
+ return m_AccessManager;
}
NexusInterface& NexusInterface::instance()
{
- static NexusInterface ni;
- return ni;
+ MO_ASSERT(g_instance);
+ return *g_instance;
}
void NexusInterface::setCacheDirectory(const QString &directory)