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); }
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); }