summaryrefslogtreecommitdiffstats
path: root/gui/dialogs/LoginDialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gui/dialogs/LoginDialog.cpp')
-rw-r--r--gui/dialogs/LoginDialog.cpp216
1 files changed, 0 insertions, 216 deletions
diff --git a/gui/dialogs/LoginDialog.cpp b/gui/dialogs/LoginDialog.cpp
deleted file mode 100644
index 28bbb1ee..00000000
--- a/gui/dialogs/LoginDialog.cpp
+++ /dev/null
@@ -1,216 +0,0 @@
-/* Copyright 2013 MultiMC Contributors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "LoginDialog.h"
-#include "ui_LoginDialog.h"
-#include "keyring.h"
-#include "gui/Platform.h"
-#include "MultiMC.h"
-#include "logic/SkinUtils.h"
-
-#include <QFile>
-#include <QJsonObject>
-#include <QJsonArray>
-#include <QJsonParseError>
-#include "logic/net/HttpMetaCache.h"
-#include "logger/QsLog.h"
-
-LoginDialog::LoginDialog(QWidget *parent, const QString &loginErrMsg)
- : QDialog(parent), ui(new Ui::LoginDialog)
-{
- MultiMCPlatform::fixWM_CLASS(this);
- ui->setupUi(this);
-
- //: Use offline mode one time
- offlineButton = new QPushButton(tr("Offline Once"));
-
- ui->loginButtonBox->addButton(offlineButton, QDialogButtonBox::ActionRole);
-
- blockToggles = false;
- isOnline_ = true;
- onlineForced = false;
-
- //: The username during login (placeholder)
- ui->usernameTextBox->lineEdit()->setPlaceholderText(tr("Name"));
-
- connect(ui->usernameTextBox, SIGNAL(currentTextChanged(QString)), this,
- SLOT(userTextChanged(QString)));
- connect(ui->forgetButton, SIGNAL(clicked(bool)), this, SLOT(forgetCurrentUser()));
- connect(offlineButton, SIGNAL(clicked(bool)), this, SLOT(launchOffline()));
-
- if (loginErrMsg.isEmpty())
- ui->loginErrorLabel->setVisible(false);
- else
- {
- ui->loginErrorLabel->setVisible(true);
- ui->loginErrorLabel->setText(
- QString("<span style=\" color:#ff0000;\">%1</span>").arg(loginErrMsg));
- }
-
- ui->lblFace->setVisible(false);
-
- resize(minimumSizeHint());
- layout()->setSizeConstraint(QLayout::SetFixedSize);
- Keyring *k = Keyring::instance();
- QStringList accounts = k->getStoredAccounts("minecraft");
- ui->usernameTextBox->addItems(accounts);
-
- // TODO: restore last selected account here, if applicable
-
- int index = ui->usernameTextBox->currentIndex();
- if (index != -1)
- {
- ui->passwordTextBox->setFocus(Qt::OtherFocusReason);
- }
-
- connect(ui->rememberUsernameCheckbox, SIGNAL(toggled(bool)), SLOT(usernameToggled(bool)));
- connect(ui->rememberPasswordCheckbox, SIGNAL(toggled(bool)), SLOT(passwordToggled(bool)));
-}
-
-LoginDialog::~LoginDialog()
-{
- delete offlineButton;
- delete ui;
-}
-
-QString LoginDialog::getUsername() const
-{
- return ui->usernameTextBox->currentText();
-}
-
-QString LoginDialog::getPassword() const
-{
- return ui->passwordTextBox->text();
-}
-
-void LoginDialog::forgetCurrentUser()
-{
- Keyring *k = Keyring::instance();
- QString acct = ui->usernameTextBox->currentText();
- k->removeStoredAccount("minecraft", acct);
- ui->passwordTextBox->clear();
- int index = ui->usernameTextBox->findText(acct);
- if (index != -1)
- ui->usernameTextBox->removeItem(index);
- if (!ui->usernameTextBox->count())
- {
- blockToggles = true;
- ui->rememberUsernameCheckbox->setChecked(false);
- ui->rememberPasswordCheckbox->setChecked(false);
- blockToggles = false;
- }
-}
-
-void LoginDialog::passwordToggled(bool state)
-{
- // if toggled off
- if (blockToggles)
- return;
- blockToggles = true;
- if (!state)
- {
- QLOG_DEBUG() << "password disabled";
- }
- else
- {
- if (!ui->rememberUsernameCheckbox->isChecked())
- {
- ui->rememberUsernameCheckbox->setChecked(true);
- }
- QLOG_DEBUG() << "password enabled";
- }
- blockToggles = false;
-}
-
-void LoginDialog::usernameToggled(bool state)
-{
- // if toggled off
- if (blockToggles)
- return;
- blockToggles = true;
- if (!state)
- {
- if (ui->rememberPasswordCheckbox->isChecked())
- {
- ui->rememberPasswordCheckbox->setChecked(false);
- }
- QLOG_DEBUG() << "username disabled";
- }
- else
- {
- QLOG_DEBUG() << "username enabled";
- }
- blockToggles = false;
-}
-
-void LoginDialog::userTextChanged(const QString &user)
-{
- blockToggles = true;
- Keyring *k = Keyring::instance();
- QStringList sl = k->getStoredAccounts("minecraft");
- bool gotFace = false;
-
- if (sl.contains(user))
- {
- ui->rememberUsernameCheckbox->setChecked(true);
- QString passwd = k->getPassword("minecraft", user);
- ui->rememberPasswordCheckbox->setChecked(!passwd.isEmpty());
- ui->passwordTextBox->setText(passwd);
-
- QPixmap face = SkinUtils::getFaceFromCache(user);
- gotFace = !face.isNull();
-
- if(gotFace) ui->lblFace->setPixmap(face);
- }
-
- ui->lblFace->setVisible(gotFace);
- blockToggles = false;
-}
-
-void LoginDialog::accept()
-{
- bool saveName = ui->rememberUsernameCheckbox->isChecked();
- bool savePass = ui->rememberPasswordCheckbox->isChecked();
- Keyring *k = Keyring::instance();
- if (saveName)
- {
- if (savePass)
- {
- k->storePassword("minecraft", getUsername(), getPassword());
- }
- else
- {
- k->storePassword("minecraft", getUsername(), QString());
- }
- }
- else
- {
- QString acct = ui->usernameTextBox->currentText();
- k->removeStoredAccount("minecraft", acct);
- }
- QDialog::accept();
-}
-
-void LoginDialog::launchOffline()
-{
- isOnline_ = false;
- QDialog::accept();
-}
-
-void LoginDialog::forceOnline()
-{
- onlineForced = true;
- offlineButton->setEnabled(false);
-}