revert fix config login page (accounts registration states are not enough specific to use them as indicator of existing accounts)

This commit is contained in:
gaelle 2025-02-19 14:11:06 +01:00
parent c1013baac5
commit 5d77bd257d
4 changed files with 14 additions and 34 deletions

View file

@ -486,7 +486,10 @@ void App::initCore() {
mEngine->setObjectOwnership(settings.get(), QQmlEngine::CppOwnership);
mEngine->setObjectOwnership(this, QQmlEngine::CppOwnership);
if (!mAccountList) setAccountList(AccountList::create());
else mAccountList->lUpdate();
else {
mAccountList->setInitialized(false);
mAccountList->lUpdate(true);
}
if (!mCallList) setCallList(CallList::create());
else mCallList->lUpdate();
if (!mSettings) {

View file

@ -64,27 +64,8 @@ void AccountList::setSelf(QSharedPointer<AccountList> me) {
}
mModelConnection->invokeToCore([this, accounts, defaultAccountCore, isInitialization]() {
mustBeInMainThread(getClassName());
auto reallyHaveAccount = [this]() -> bool {
// When an account is trying to connect, we don't want to display the features
// provided for the accounts that really stays in the account list
// (for example the back button to return on the main page in the login page)
for (auto &account : getSharedList<AccountCore>()) {
if (account->getRegistrationState() != LinphoneEnums::RegistrationState::Progress &&
account->getRegistrationState() != LinphoneEnums::RegistrationState::None) {
return true;
}
}
return false;
};
for (auto &account : getSharedList<AccountCore>()) {
disconnect(account.get(), &AccountCore::registrationStateChanged, this, nullptr);
}
resetData<AccountCore>(*accounts);
for (auto &account : getSharedList<AccountCore>()) {
connect(account.get(), &AccountCore::registrationStateChanged, this,
[this, reallyHaveAccount] { setHaveAccount(reallyHaveAccount()); });
}
setHaveAccount(reallyHaveAccount());
setHaveAccount(accounts->size() > 0);
setDefaultAccount(defaultAccountCore);
if (isInitialization) setInitialized(true);
delete accounts;
@ -102,7 +83,7 @@ void AccountList::setSelf(QSharedPointer<AccountList> me) {
} else mModelConnection->invokeToCore([this]() { setDefaultAccount(nullptr); });
});
mModelConnection->makeConnectToModel(&CoreModel::accountRemoved, [this] { emit lUpdate(); });
mModelConnection->makeConnectToModel(&CoreModel::accountAdded, [this] { emit lUpdate(); });
mModelConnection->makeConnectToModel(&CoreModel::accountAdded, [this] { emit lUpdate(true); });
mModelConnection->makeConnectToModel(
&CoreModel::globalStateChanged,

View file

@ -143,6 +143,7 @@ bool AccountManager::login(QString username,
auto status = core->addAccount(account);
if (status == -1) {
*errorMessage = tr("Impossible d'ajouter le compte.");
core->removeAuthInfo(authInfo);
return false;
}
return true;

View file

@ -90,7 +90,7 @@ AbstractWindow {
Connections {
target: SettingsCpp
function onAssistantGoDirectlyToThirdPartySipAccountLoginChanged() {
initStackViewItem()
initStackViewItem()
}
function onIsSavedChanged() {
if (SettingsCpp.isSaved) UtilsCpp.showInformationPopup(qsTr("Succès"), qsTr("Les changements ont été sauvegardés"), true, mainWindow)
@ -112,13 +112,10 @@ AbstractWindow {
active: AppCpp.coreStarted
sourceComponent: AccountProxy {
sourceModel: AppCpp.accounts
onInitializedChanged: if (isInitialized) {
onInitializedChanged: if (isInitialized) {
mainWindow.accountProxy = this
mainWindow.initStackViewItem()
}
onHaveAccountChanged: {
if (isInitialized) mainWindow.initStackViewItem()
}
}
}
}
@ -126,10 +123,6 @@ AbstractWindow {
id: mainWindowStackView
anchors.fill: parent
initialItem: splashScreen
Component.onCompleted: {
clear()
push(splashScreen)
}
}
Component {
id: splashScreen
@ -161,7 +154,8 @@ AbstractWindow {
onGoBack: openMainPage()
onUseSIPButtonClicked: mainWindowStackView.push(sipLoginPage)
onGoToRegister: mainWindowStackView.replace(registerPage)
showBackButton: accountProxy?.haveAccount
showBackButton: false
StackView.onActivated: if (mainWindow.accountProxy?.haveAccount) showBackButton = true
}
}
Component {
@ -175,7 +169,8 @@ AbstractWindow {
mainWindowStackView.pop()
}
onGoToRegister: mainWindowStackView.replace(registerPage)
showBackButton: !SettingsCpp.assistantGoDirectlyToThirdPartySipAccountLogin || accountProxy?.haveAccount
showBackButton: false
StackView.onActivated: if (!SettingsCpp.assistantGoDirectlyToThirdPartySipAccountLogin || mainWindow.accountProxy?.haveAccount) showBackButton = true
}
}
Component {