diff options
Diffstat (limited to 'src/nxmaccessmanager.cpp')
| -rw-r--r-- | src/nxmaccessmanager.cpp | 17 |
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(); |
