Browse Source

fix(login): start login screen on profile select by -p option

reviewable/pr5093/r2
Anthony Bilinski 7 years ago
parent
commit
1af3ad69e8
No known key found for this signature in database
GPG Key ID: 2AA8E0DA1B31FB3C
  1. 2
      src/main.cpp
  2. 13
      src/widget/loginscreen.cpp
  3. 4
      src/widget/loginscreen.h

2
src/main.cpp

@ -328,7 +328,7 @@ int main(int argc, char* argv[]) @@ -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) {

13
src/widget/loginscreen.cpp

@ -32,7 +32,7 @@ @@ -32,7 +32,7 @@
#include <QMessageBox>
#include <QToolButton>
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) @@ -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() @@ -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() @@ -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<QString> 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()) {

4
src/widget/loginscreen.h

@ -36,9 +36,9 @@ class LoginScreen : public QDialog @@ -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;

Loading…
Cancel
Save