SVN commit 1010166 by gberg: Enable the account after we create it. M +31 -0 add-account-assistant.cpp M +1 -0 add-account-assistant.h --- trunk/playground/network/telepathy-accounts-kcm/src/add-account-assistant.cpp #1010165:1010166 @@ -54,6 +54,7 @@ } Tp::AccountManagerPtr accountManager; + Tp::AccountPtr account; ProtocolSelectWidget *protocolSelectWidget; KTabWidget *tabWidget; AbstractAccountParametersWidget *mandatoryParametersWidget; @@ -343,12 +344,42 @@ void AddAccountAssistant::onAccountCreated(Tp::PendingOperation *op) { + kDebug(); + if (op->isError()) { // TODO: User feedback in this case. kWarning() << "Adding Account failed:" << op->errorName() << op->errorMessage(); return; } + // Get the PendingAccount. + Tp::PendingAccount *pendingAccount = qobject_cast(op); + if (!pendingAccount) { + // TODO: User visible feedback + kWarning() << "Method called with wrong type."; + return; + } + + // Get the account pointer. + d->account = pendingAccount->account(); + + kDebug() << "Calling set enabled."; + + connect(d->account->setEnabled(true), + SIGNAL(finished(Tp::PendingOperation*)), + SLOT(onSetEnabledFinished(Tp::PendingOperation*))); +} + +void AddAccountAssistant::onSetEnabledFinished(Tp::PendingOperation *op) +{ + kDebug(); + + if (op->isError()) { + // TODO: User feedback in this case. + kWarning() << "Enabling Account failed:" << op->errorName() << op->errorMessage(); + return; + } + KAssistantDialog::accept(); } --- trunk/playground/network/telepathy-accounts-kcm/src/add-account-assistant.h #1010165:1010166 @@ -47,6 +47,7 @@ private Q_SLOTS: void onAccountCreated(Tp::PendingOperation *op); + void onSetEnabledFinished(Tp::PendingOperation *op); void onProtocolSelected(bool value); private: