void ActivitiesTab::startRefresh()
{
    AccountManager *mgr = seafApplet->accountManager();
    bool has_pro_account = mgr->hasAccount() && mgr->accounts().front().isPro();
    if (has_pro_account)
        EventsService::instance()->start();
}
Exemple #2
0
AccountsModel::AccountsModel(QObject *parent) :
	QAbstractListModel(parent)
{
	AccountManager *manager = AccountManager::instance();
	connect(manager, &AccountManager::accountAdded, this, &AccountsModel::onAccountCreated);
	connect(manager, &AccountManager::accountRemoved, this, &AccountsModel::onAccountDestroyed);

	foreach (Account *account, manager->accounts())
		onAccountCreated(account);
}
void ContactListFrontModel::onServiceChanged(const QByteArray &name, QObject *newObject, QObject *oldObject)
{
	Q_UNUSED(newObject);
	Q_UNUSED(oldObject);
	if (name == m_comparator.name()) {
		connect(m_comparator, SIGNAL(contactChanged(qutim_sdk_0_3::Contact*)),
				sourceModel(), SLOT(onContactChanged(qutim_sdk_0_3::Contact*)));
		invalidate();
	} else if (name == m_model.name()) {
		ContactListBaseModel *oldModel = qobject_cast<ContactListBaseModel*>(oldObject);
		ContactListBaseModel *newModel = qobject_cast<ContactListBaseModel*>(newObject);
		if (newModel) {
			connect(newModel, &ContactListBaseModel::tagsChanged,
					this, &ContactListFrontModel::tagsChanged);
			connect(m_comparator, SIGNAL(contactChanged(qutim_sdk_0_3::Contact*)),
					newModel, SLOT(onContactChanged(qutim_sdk_0_3::Contact*)));

			AccountManager *manager = AccountManager::instance();
			connect(manager, &AccountManager::accountAdded,
					newModel, [newModel] (Account *account) {
				newModel->onAccountCreated(account);
			});
			connect(manager, &AccountManager::accountRemoved,
					newModel, &ContactListBaseModel::onAccountRemoved);

			foreach (Account *account, manager->accounts())
				newModel->onAccountCreated(account, !oldModel);

			if (oldModel) {
				QSet<Contact*> contacts;
				oldModel->findContacts(contacts, oldModel->rootNode());
				foreach (Contact *contact, contacts)
					newModel->addContact(contact);
			}
		}
		setSourceModel(newModel);
	} else if (name == m_metaManager.name()) {
		if (MetaContactManager *oldManager = qobject_cast<MetaContactManager*>(oldObject))
			m_model->onAccountRemoved(oldManager);
		if (m_metaManager)
			m_model->onAccountCreated(m_metaManager);
	}
}