summaryrefslogtreecommitdiff
path: root/src/nxmaccessmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/nxmaccessmanager.cpp')
-rw-r--r--src/nxmaccessmanager.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/nxmaccessmanager.cpp b/src/nxmaccessmanager.cpp
index a05b8a6c..b65ff082 100644
--- a/src/nxmaccessmanager.cpp
+++ b/src/nxmaccessmanager.cpp
@@ -22,6 +22,7 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
#include "report.h"
#include "utility.h"
#include "selfupdater.h"
+#include "persistentcookiejar.h"
#include <QMessageBox>
#include <QPushButton>
#include <QNetworkProxy>
@@ -29,6 +30,7 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
#include <QNetworkCookie>
#include <QNetworkCookieJar>
#include <QCoreApplication>
+#include <QDir>
#include <gameinfo.h>
#if QT_VERSION >= QT_VERSION_CHECK(5,0,0)
@@ -40,8 +42,13 @@ using namespace MOShared;
NXMAccessManager::NXMAccessManager(QObject *parent)
- : QNetworkAccessManager(parent), m_LoginReply(NULL), m_ProgressDialog()
+ : QNetworkAccessManager(parent)
+ , m_LoginReply(NULL)
+ , m_ProgressDialog()
+ , m_LoginAttempted(false)
{
+ setCookieJar(new PersistentCookieJar(
+ QDir::fromNativeSeparators(MOBase::ToQString(MOShared::GameInfo::instance().getCacheDir())) + "/nexus_cookies.dat", this));
}
NXMAccessManager::~NXMAccessManager()
@@ -88,6 +95,11 @@ bool NXMAccessManager::loggedIn() const
return hasLoginCookies();
}
+bool NXMAccessManager::loginWaiting() const
+{
+ return m_LoginReply != NULL;
+}
+
void NXMAccessManager::login(const QString &username, const QString &password)
{
@@ -100,6 +112,8 @@ void NXMAccessManager::login(const QString &username, const QString &password)
return;
}
+ m_LoginAttempted = true;
+
m_Username = username;
m_Password = password;
pageLogin();
@@ -145,6 +159,7 @@ void NXMAccessManager::loginTimeout()
emit loginFailed(tr("timeout"));
m_LoginReply->deleteLater();
m_LoginReply = NULL;
+ m_LoginAttempted = false; // this usually means we might have usccess later
m_LoginTimeout.stop();
m_Username.clear();
m_Password.clear();