[prev in list] [next in list] [prev in thread] [next in thread]
List: kopete-devel
Subject: Re: [kopete-devel] Prevent creating duplicate accounts
From: Dennis =?utf-8?q?Nienh=C3=BCser?= <earthwings () gentoo ! org>
Date: 2007-11-17 11:02:48
Message-ID: 200711171202.48455.earthwings () gentoo ! org
[Download RAW message or body]
Am Mittwoch, 14. November 2007 21:57:35 schrieb Dennis Nienhüser:
>
> Patch is attached, I plan to commit this soon.
>
> Regards,
> Dennis
Didn't check this in yet due to string freeze. Attached is a stripped down
version that fixes the original bug, but doesn't introduce api changes or new
strings. Please review, the patch is rather short this time.
Dennis
["addaccountwizard.cpp.diff" (text/x-diff)]
Index: kopete/kopete/addaccountwizard/addaccountwizard.cpp
===================================================================
--- kopete/kopete/addaccountwizard/addaccountwizard.cpp (revision 737901)
+++ kopete/kopete/addaccountwizard/addaccountwizard.cpp (working copy)
@@ -201,17 +201,38 @@
void AddAccountWizard::accept()
{
- // registeredAccount shouldn't probably be called here. Anyway, if the account is \
already registered,
- // it won't be registered twice
Kopete::AccountManager *manager = Kopete::AccountManager::self();
- Kopete::Account *account = \
manager->registerAccount(d->accountPage->apply());
- // if the account wasn't created correctly then leave
+ // Have the plugin extract account information
+ Kopete::Account *account = d->accountPage->apply();
if (!account)
{
+ // TODO: Uncomment when message freeze is lifted
+ // KMessageBox::sorry( this, i18nc("@info", "<qt>An error occurred during account \
creation.</qt>")); + reject();
return;
}
+ // Check that the account doesn't exist yet, otherwise the account manager would \
delete it during registration + // This shouldn't be the case as the protocol's \
account edit page should prevent this, but it's not guaranteed + if \
(manager->findAccount(account->protocol()->pluginId(), account->accountId())) + {
+ // TODO: Uncomment when message freeze is lifted
+ // KMessageBox::sorry( this, i18nc("@info", "<qt>This account already \
exists.</qt>")); + reject();
+ return;
+ }
+
+ // Register account and leave if it doesn't work
+ account = manager->registerAccount(account);
+ if (!account)
+ {
+ // TODO: Uncomment when message freeze is lifted
+ // KMessageBox::sorry( this, i18nc("@info", "<qt>An error occurred during account \
registration.</qt>")); + reject();
+ return;
+ }
+
// Make sure the protocol is correctly enabled. This is not really needed, but \
still good const QString PROTO_NAME = \
d->proto->pluginId().remove("Protocol").toLower(); \
Kopete::PluginManager::self()->setPluginEnabled(PROTO_NAME , true);
_______________________________________________
kopete-devel mailing list
kopete-devel@kde.org
https://mail.kde.org/mailman/listinfo/kopete-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic