From 1af3ad69e884bc4e74a4fcdd452a6aff10bffd62 Mon Sep 17 00:00:00 2001 From: Anthony Bilinski Date: Thu, 19 Apr 2018 23:54:14 -0700 Subject: [PATCH] fix(login): start login screen on profile select by -p option --- src/main.cpp | 2 +- src/widget/loginscreen.cpp | 13 ++++++++----- src/widget/loginscreen.h | 4 ++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 091dd82c5..33b9092cb 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -328,7 +328,7 @@ int main(int argc, char* argv[]) !Profile::isEncrypted(profileName)) { profile = Profile::loadProfile(profileName); } else { - LoginScreen loginScreen{}; + LoginScreen loginScreen{profileName}; loginScreen.exec(); profile = loginScreen.getProfile(); if (profile) { diff --git a/src/widget/loginscreen.cpp b/src/widget/loginscreen.cpp index 7680612e5..c6fa690bb 100644 --- a/src/widget/loginscreen.cpp +++ b/src/widget/loginscreen.cpp @@ -32,7 +32,7 @@ #include #include -LoginScreen::LoginScreen(QWidget* parent) +LoginScreen::LoginScreen(QString initialProfile, QWidget* parent) : QDialog(parent) , ui(new Ui::LoginScreen) , quitShortcut{QKeySequence(Qt::CTRL + Qt::Key_Q), this} @@ -59,7 +59,7 @@ LoginScreen::LoginScreen(QWidget* parent) connect(ui->autoLoginCB, &QCheckBox::stateChanged, this, &LoginScreen::onAutoLoginToggled); connect(ui->importButton, &QPushButton::clicked, this, &LoginScreen::onImportProfile); - reset(); + reset(initialProfile); this->setStyleSheet(Style::getStylesheet(":/ui/loginScreen/loginScreen.css")); retranslateUi(); @@ -75,7 +75,7 @@ LoginScreen::~LoginScreen() /** * @brief Resets the UI, clears all fields. */ -void LoginScreen::reset() +void LoginScreen::reset(QString initialProfile) { ui->newUsername->clear(); ui->newPass->clear(); @@ -84,12 +84,15 @@ void LoginScreen::reset() ui->loginUsernames->clear(); Profile::scanProfiles(); - QString lastUsed = Settings::getInstance().getCurrentProfile(); + if (initialProfile.isEmpty()) { + initialProfile = Settings::getInstance().getCurrentProfile(); + } QVector profiles = Profile::getProfiles(); for (QString profile : profiles) { ui->loginUsernames->addItem(profile); - if (profile == lastUsed) + if (profile == initialProfile) { ui->loginUsernames->setCurrentIndex(ui->loginUsernames->count() - 1); + } } if (profiles.isEmpty()) { diff --git a/src/widget/loginscreen.h b/src/widget/loginscreen.h index b2138a3af..5b5050e23 100644 --- a/src/widget/loginscreen.h +++ b/src/widget/loginscreen.h @@ -36,9 +36,9 @@ class LoginScreen : public QDialog Q_OBJECT public: - explicit LoginScreen(QWidget* parent = nullptr); + LoginScreen(QString selectedProfile = QString(), QWidget* parent = nullptr); ~LoginScreen(); - void reset(); + void reset(QString selectedProfile = QString()); Profile* getProfile() const; bool event(QEvent* event) final override;