bool SortFilterProxyModel::lessThan (const QModelIndex& right, const QModelIndex& left) const // sort in reverse order ok { if (GetType (left) != Core::CLETContact || GetType (right) != Core::CLETContact) return QSortFilterProxyModel::lessThan (left, right); ICLEntry *lE = GetEntry (left); ICLEntry *rE = GetEntry (right); if (lE->GetEntryType () == ICLEntry::ETPrivateChat && rE->GetEntryType () == ICLEntry::ETPrivateChat && lE->GetParentCLEntry () == rE->GetParentCLEntry ()) { IMUCPerms *lp = qobject_cast<IMUCPerms*> (lE->GetParentCLEntry ()); if (lp) { bool less = lp->IsLessByPerm (lE->GetObject (), rE->GetObject ()); bool more = lp->IsLessByPerm (rE->GetObject (), lE->GetObject ()); if (less || more) return more; } } State lState = lE->GetStatus ().State_; State rState = rE->GetStatus ().State_; if (lState == rState || !OrderByStatus_) return lE->GetEntryName ().localeAwareCompare (rE->GetEntryName ()) < 0; else return IsLess (lState, rState); }
/* nama :dyarsa S.Pamungkas Nim :A11.2011.06186 Klmpk: A11.4204 ---copyright dy_arsa--- */ int main() { TabInt T,T1,T2,TCopy,TInv,TSim,TBaca; int i; MakeEmpty(&T1); for (i=1;i<=10;i++) { T1.TI[i]=i; } TulisIsiTab(T1); // printf("Tekan sembarang tombol untuk melanjutkan....\n");getch(); printf("\n"); printf("Empty T=1, F=0 :%d\n",IsEmpty(T1)); printf("Full T=1, F=0 :%d\n",IsFull(T1)); // printf("Tekan sembarang tombol untuk melanjutkan....\n");getch(); printf("\n"); printf("index 0 :%s\n",IsIdxValid(T1,0)?"Ya":"Tidak"); printf("index 1 :%s\n",IsIdxValid(T1,1)?"Ya":"Tidak"); printf("index 5 :%s\n",IsIdxValid(T1,5)?"Ya":"Tidak"); printf("index 10 :%s\n",IsIdxValid(T1,10)?"Ya":"Tidak"); printf("index 101 :%s\n",IsIdxValid(T1,101)?"Ya":"Tidak"); printf("GetFirstIdx Efektif] :%d\n",GetFirstIdx(T1)); printf("GetLastIdx Efektif :%d\n",GetLastEfIdx(T1)); printf("\n"); MakeEmpty(&T2); for (i=1;i<=10;i++) { T2.TI[i]=i*2+1; } printf("T1\n"); TulisIsiTab(T1); printf("\nT2 \n"); TulisIsiTab(T2); printf("\n"); printf("\nT1+T2 :\n"); PlusTab(T1,T2); printf("\nT2-T1 :\n"); MinusTab(T2,T1); printf("\nT1*T2 :\n");KaliTab(T1,T2); printf("\nT1*2:\n"); KaliKons(T1,2); printf("\nApakah T1 Sama dg T2?: %s\n",IsEQ(T1,T2)?"Ya":"Tidak"); printf("\nApakah T1 Kurang dari T2?: %s\n",IsLess(T1,T2)?"Ya":"Tidak"); printf("\nApa Nilai Maksimum tabel T1?: %i\n",ValMax(T1)); printf("\nApa Nilai Minimum tabel T1?: %i\n",ValMin(T1)); printf("\nApa index Nilai Maksimum tabel T2?: %i\n",IdxMaxTab(T2)); printf("\nApa index Nilai Minimum tabel T2?: %i\n",IdxMinTab(T2)); printf("\nApa Nilai Maksimum tabel T?: %i\n",Max(T)); printf("\nApa Nilai Minimum tabel T?: %i\n",Min(T)); printf("\nApa Nilai MaksMin tabel T?: ");MaxMin(T); return 0; }
/* Sort a list of members. */ static void SortMembers(MemberStruct *m, int n) { int i, j; for (i = 1; i < n; i++) { for (j = i; j > 0 && IsLess(m[j], m[j - 1]); j--) { MemberStruct t = m[j]; m[j] = m[j - 1]; m[j - 1] = t; } } }
TEST(CompareTest, CompareIfDigitsAreEquals) { BigInt left, right; left.size = 2; right.size = 2; int leftDigits[] = {123, 45}; int rightDigits[] = {123, 45}; SetDigits(&left, leftDigits); SetDigits(&right, rightDigits); ASSERT_EQ(true, AreEquals(&left, &right)); ASSERT_EQ(false, IsGreater(&left, &right)); ASSERT_EQ(false, IsLess(&left, &right)); }
bool SortFilterProxyModel::lessThan (const QModelIndex& right, const QModelIndex& left) const // sort in reverse order ok { const auto leftType = GetType (left); if (leftType == Core::CLETAccount) return QSortFilterProxyModel::lessThan (left, right); else if (leftType == Core::CLETCategory) { const bool leftIsMuc = left.data (Core::CLRIsMUCCategory).toBool (); const bool rightIsMuc = right.data (Core::CLRIsMUCCategory).toBool (); if ((leftIsMuc && rightIsMuc) || (!leftIsMuc && !rightIsMuc)) return QSortFilterProxyModel::lessThan (left, right); else return rightIsMuc; } ICLEntry *lE = GetEntry (left); ICLEntry *rE = GetEntry (right); if (lE->GetEntryType () == ICLEntry::ETPrivateChat && rE->GetEntryType () == ICLEntry::ETPrivateChat && lE->GetParentCLEntry () == rE->GetParentCLEntry ()) if (IMUCPerms *lp = qobject_cast<IMUCPerms*> (lE->GetParentCLEntry ())) { bool less = lp->IsLessByPerm (lE->GetObject (), rE->GetObject ()); bool more = lp->IsLessByPerm (rE->GetObject (), lE->GetObject ()); if (less || more) return more; } State lState = lE->GetStatus ().State_; State rState = rE->GetStatus ().State_; if (lState == rState || !OrderByStatus_) return lE->GetEntryName ().localeAwareCompare (rE->GetEntryName ()) < 0; else return IsLess (lState, rState); }
void CTeam::SortPlayers(int nSortKey, int nDir) { // Sanity checks... if (nSortKey == TM_KEY_SCORE) return; if (GetNumPlayers() <= 1) return; // Remove each player from our list, and insert it, sorted, into a temp list... CTeamPlayerList lsTemp; CTeamPlayer* pCurPlr = GetFirstPlayer(); while (pCurPlr) { CTeamPlayer* pNextPlr = GetNextPlayer(pCurPlr); m_lsPlayers.Delete(pCurPlr); // Insert the player from our main list, sorted, into our temp list... CTeamPlayer* pTmpPlr = lsTemp.GetFirst(); if (!pTmpPlr) { lsTemp.Insert(pCurPlr); } else { while (pTmpPlr) { if (nDir == TM_SORT_DESCENDING && IsGreater(pCurPlr, pTmpPlr, nSortKey)) { lsTemp.InsertBefore(pTmpPlr, pCurPlr); pTmpPlr = NULL; } else if (nDir == TM_SORT_ASCENDING && IsLess(pCurPlr, pTmpPlr, nSortKey)) { lsTemp.InsertBefore(pTmpPlr, pCurPlr); pTmpPlr = NULL; } else { pTmpPlr = pTmpPlr->GetNext(); if (!pTmpPlr) { lsTemp.InsertLast(pCurPlr); } } } } pCurPlr = pNextPlr; } // Re-insert all items into our main list... CTeamPlayer* pPlr = lsTemp.GetFirst(); while (pPlr) { CTeamPlayer* pNextPlr = pPlr->GetNext(); m_lsPlayers.InsertLast(pPlr); pPlr = pNextPlr; } }
void CTeamMgr::SortTeams(int nSortKey, int nDir) { // Sanity check... if (GetNumTeams() <= 1) return; // Remove each team from our list, and insert it, sorted, into a temp list... CTeamList lsTemp; CTeam* pCurTeam = GetFirstTeam(); while (pCurTeam) { CTeam* pNextTeam = GetNextTeam(pCurTeam); m_lsTeams.Delete(pCurTeam); // Insert the team from our main list, sorted, into our temp list... CTeam* pTmpTeam = lsTemp.GetFirst(); if (!pTmpTeam) { lsTemp.Insert(pCurTeam); } else { while (pTmpTeam) { if (nDir == TM_SORT_DESCENDING && IsGreater(pCurTeam, pTmpTeam, nSortKey)) { lsTemp.InsertBefore(pTmpTeam, pCurTeam); pTmpTeam = NULL; } else if (nDir == TM_SORT_ASCENDING && IsLess(pCurTeam, pTmpTeam, nSortKey)) { lsTemp.InsertBefore(pTmpTeam, pCurTeam); pTmpTeam = NULL; } else { pTmpTeam = pTmpTeam->GetNext(); if (!pTmpTeam) { lsTemp.InsertLast(pCurTeam); } } } } pCurTeam = pNextTeam; } // Re-insert all items into our main list... CTeam* pTeam = lsTemp.GetFirst(); while (pTeam) { CTeam* pNextTeam = pTeam->GetNext(); m_lsTeams.InsertLast(pTeam); pTeam = pNextTeam; } }