Example #1
0
bool ContactsModelProxy::lessThan(const QModelIndex &left, const QModelIndex &right) const
{
	if (!SourceContactModel)
		return QSortFilterProxyModel::lessThan(left, right);

	Contact leftContact = SourceContactModel->contact(left);
	Contact rightContact = SourceContactModel->contact(right);

	Account *leftAccount = leftContact.prefferedAccount();
	Account *rightAccount = rightContact.prefferedAccount();

	ContactAccountData *leftContactAccountData = leftContact.accountData(leftAccount);
	ContactAccountData *rightContactAccountData = rightContact.accountData(rightAccount);

	Status leftStatus = leftContactAccountData
		? leftContactAccountData->status()
		: Status();
	Status rightStatus = rightContactAccountData
		? rightContactAccountData->status()
		: Status();

	if (leftStatus.isDisconnected() && !rightStatus.isDisconnected())
		return false;

	if (!leftStatus.isDisconnected() && rightStatus.isDisconnected())
		return true;

	int displayCompare = compareNames(leftContact.display(), rightContact.display());
	return displayCompare < 0;
}
bool GaduChatImageService::sendImageRequest(Contact contact, int size, uint32_t crc32)
{
	kdebugf();

	if (!contact.accountData(Protocol->account()) ||
			(CurrentMinuteSendImageRequests > config_file.readUnsignedNumEntry("Chat", "MaxImageRequests")))
		return false;

	CurrentMinuteSendImageRequests++;
	return 0 == gg_image_request(Protocol->gaduSession(), Protocol->uin(contact), size, crc32);
}
Example #3
0
ContactAccountData * ContactsModelBase::contactDefaultAccountData(const QModelIndex &index) const
{
	Contact con = contact(index);
	if (con.isNull())
		return 0;

	Account *account = con.prefferedAccount();
	if (!account)
		account = AccountManager::instance()->defaultAccount();
	
	return con.accountData(account);
}