1 #include "ribbonaccounts.h"
5 RibbonAccounts::RibbonAccounts(RibbonManager* parent) : QObject((QObject*)parent)
10 RibbonAccounts::~RibbonAccounts()
14 QVariantMap RibbonAccounts::context(PurpleAccount* acct)
17 m["proto"] = purple_account_get_protocol_id(acct);
18 m["account"] = purple_account_get_username(acct);
22 void RibbonAccounts::handleExternalEvent(QString method, QVariantMap params)
24 qDebug() << "called" << method << "on" << params;
25 if (method == "create_account") {
26 createAccount(params["protocol"].toByteArray(),
27 params["username"].toByteArray(),
28 params["password"].toByteArray());
29 } else if (method == "destroy_account") {
30 destroyAccount(RibbonAccount::fromString(params["account_id"].toString()));
34 void RibbonAccounts::createAccount(QByteArray protocol, QByteArray username, QByteArray password)
36 PurpleAccount *account = purple_account_new(username.data(), protocol.data());
38 account->ui_data = _manager;
39 purple_account_set_password(account, password.data());
40 purple_accounts_add(account);
41 purple_account_set_enabled(account, UI_ID, TRUE);
43 // Save a handle to this account.
45 r_acct.protocol = protocol;
46 r_acct.username = username;
47 accounts[r_acct] = account;
50 void RibbonAccounts::destroyAccount(RibbonAccount r_acct)
52 if (accounts.contains(r_acct)) {
53 qDebug() << "Deleting" << r_acct.toString();
54 PurpleAccount* account = accounts.take(r_acct);
55 purple_account_destroy(account);