File indexing completed on 2024-05-19 16:00:04

0001 /*
0002    SPDX-FileCopyrightText: 2023-2024 Laurent Montel <montel.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "createnewserverstackwidget.h"
0008 #include "createnewservercheckurlwidget.h"
0009 #include "createnewserverwidget.h"
0010 
0011 CreateNewServerStackWidget::CreateNewServerStackWidget(QWidget *parent)
0012     : QStackedWidget(parent)
0013     , mCreateNewServerCheckUrlWidget(new CreateNewServerCheckUrlWidget(this))
0014     , mCreateNewServerWidget(new CreateNewServerWidget(this))
0015 {
0016     mCreateNewServerCheckUrlWidget->setObjectName(QStringLiteral("mCreateNewServerCheckUrlWidget"));
0017     addWidget(mCreateNewServerCheckUrlWidget);
0018 
0019     mCreateNewServerWidget->setObjectName(QStringLiteral("mCreateNewServerWidget"));
0020     addWidget(mCreateNewServerWidget);
0021     setCurrentWidget(mCreateNewServerCheckUrlWidget);
0022     connect(mCreateNewServerCheckUrlWidget,
0023             &CreateNewServerCheckUrlWidget::serverUrlFound,
0024             this,
0025             [this](const CreateNewServerCheckUrlWidget::ServerInfo &serverInfo) {
0026                 AccountManager::AccountManagerInfo info;
0027                 info.serverUrl = serverInfo.url;
0028                 info.authenticationInfos = serverInfo.authenticationInfos;
0029                 info.canResetPassword = serverInfo.canResetPassword;
0030                 info.canRegisterAccount = serverInfo.canRegisterAccount;
0031                 setAccountInfo(std::move(info));
0032             });
0033     connect(mCreateNewServerWidget, &CreateNewServerWidget::updateOkButton, this, &CreateNewServerStackWidget::updateOkButton);
0034     connect(mCreateNewServerWidget, &CreateNewServerWidget::authentication, this, &CreateNewServerStackWidget::authentication);
0035 }
0036 
0037 CreateNewServerStackWidget::~CreateNewServerStackWidget() = default;
0038 
0039 void CreateNewServerStackWidget::setExistingAccountName(const QStringList &lst)
0040 {
0041     mCreateNewServerWidget->setExistingAccountName(lst);
0042 }
0043 
0044 AccountManager::AccountManagerInfo CreateNewServerStackWidget::accountInfo() const
0045 {
0046     const AccountManager::AccountManagerInfo info = mCreateNewServerWidget->accountInfo();
0047     return info;
0048 }
0049 
0050 void CreateNewServerStackWidget::setAccountInfo(const AccountManager::AccountManagerInfo &info)
0051 {
0052     mCreateNewServerWidget->setAccountInfo(info);
0053     setCurrentWidget(mCreateNewServerWidget);
0054 }
0055 #include "moc_createnewserverstackwidget.cpp"