diff options
Diffstat (limited to 'src/loginform.cpp')
-rw-r--r-- | src/loginform.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/loginform.cpp b/src/loginform.cpp index fd2c52b..769c104 100644 --- a/src/loginform.cpp +++ b/src/loginform.cpp @@ -167,7 +167,9 @@ void LoginForm::initialize() resetFormTimer.start(Settings::resetForm() * 1000); } + int pageCount = 0; if (Settings::guestSessionEnabled()) { + pageCount++; if (!Settings::guestSessionButtonText().isEmpty()) { ui->guestButton->setText(Settings::guestSessionButtonText()); } @@ -188,6 +190,10 @@ void LoginForm::initialize() } if (Settings::shibSessionEnabled()) { + pageCount++; + if (!Settings::shibSessionButtonText().isEmpty()) { + ui->shibButton->setText(Settings::shibSessionButtonText()); + } connect(ui->shibButton, &QAbstractButton::released, this, [this]() { if (browser == nullptr) { browser = new WebView(ui->shibPage); @@ -210,7 +216,13 @@ void LoginForm::initialize() ui->shibButton->hide(); } - if (Settings::guestSessionEnabled() || Settings::shibSessionEnabled()) { + if (Settings::userSessionEnabled()) { + pageCount++; + } else { + ui->loginButton->hide(); + } + + if (pageCount > 1) { ui->loginChooser->setCurrentWidget(ui->welcomePage); connect(ui->backButton, &QAbstractButton::released, this, [this]() { resetForm(); @@ -226,6 +238,10 @@ void LoginForm::initialize() ui->loginChooser->setCurrentWidget(ui->loginPage); ui->userInput->setFocus(); }); + } else if (Settings::shibSessionEnabled()) { + ui->loginChooser->setCurrentWidget(ui->shibPage); + } else if (Settings::guestSessionEnabled()) { + ui->loginChooser->setCurrentWidget(ui->guestPage); } else { ui->loginChooser->setCurrentWidget(ui->loginPage); } |