void ConfigWindow::_AccountSelected(AccountItem* item) { AccountUpdated(fLastSelectedAccount); BMailAccountSettings* account = item->Account(); fLastSelectedAccount = account; BView* view = NULL; switch (item->Type()) { case ACCOUNT_ITEM: view = new AccountConfigView(account); break; case INBOUND_ITEM: view = new ProtocolSettingsView(account->InboundAddOnRef(), *account, account->InboundSettings()); break; case OUTBOUND_ITEM: view = new ProtocolSettingsView(account->OutboundAddOnRef(), *account, account->OutboundSettings()); break; case FILTER_ITEM: view = new FiltersConfigView(*account); break; } _ReplaceConfigView(view); }
_EXPORT status_t get_pop_account(mail_pop_account* account, int32 index) { BMailAccounts accounts; BMailAccountSettings* accountSettings = accounts.AccountAt(index); if (accountSettings == NULL) return B_BAD_INDEX; const BMessage& settings = accountSettings->InboundSettings(); strcpy(account->pop_name, settings.FindString("username")); strcpy(account->pop_host, settings.FindString("server")); strcpy(account->real_name, accountSettings->RealName()); strcpy(account->reply_to, accountSettings->ReturnAddress()); const char* encryptedPassword = get_passwd(&settings, "cpasswd"); const char* password = encryptedPassword; if (password == NULL) password = settings.FindString("password"); strcpy(account->pop_password, password); delete[] encryptedPassword; return B_OK; }