From b3efd156b2ded1777ee2b4522acba1fa2d666ca7 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Tue, 24 May 2016 13:54:36 +0000 Subject: group processing code standardization git-svn-id: http://svn.miranda-ng.org/main/trunk@16869 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- src/core/stdclist/src/clcpaint.cpp | 5 +-- src/mir_app/src/clcidents.cpp | 9 ++-- src/mir_app/src/clcitems.cpp | 92 ++++++++++++++++++++++---------------- src/mir_app/src/clcutils.cpp | 29 +++++++----- 4 files changed, 76 insertions(+), 59 deletions(-) (limited to 'src') diff --git a/src/core/stdclist/src/clcpaint.cpp b/src/core/stdclist/src/clcpaint.cpp index 2df1197160..49afb4ab9f 100644 --- a/src/core/stdclist/src/clcpaint.cpp +++ b/src/core/stdclist/src/clcpaint.cpp @@ -266,11 +266,10 @@ void PaintClc(HWND hwnd, struct ClcData *dat, HDC hdc, RECT * rcPaint) int indent = 0; for (int index = 0; y < rcPaint->bottom;) { if (group->scanIndex == group->cl.count) { - group = group->parent; - indent--; - if (group == NULL) + if ((group = group->parent) == NULL) break; group->scanIndex++; + indent--; continue; } diff --git a/src/mir_app/src/clcidents.cpp b/src/mir_app/src/clcidents.cpp index ff377d900f..2256ff3c83 100644 --- a/src/mir_app/src/clcidents.cpp +++ b/src/mir_app/src/clcidents.cpp @@ -49,8 +49,7 @@ int fnGetRowsPriorTo(ClcGroup *group, ClcGroup *subgroup, int contactIndex) group->scanIndex = 0; for (;;) { if (group->scanIndex == group->cl.count) { - group = group->parent; - if (group == NULL) + if ((group = group->parent) == NULL) break; group->scanIndex++; continue; @@ -83,8 +82,7 @@ int fnFindItem(HWND hwnd, ClcData *dat, DWORD dwItem, ClcContact **contact, ClcG group->scanIndex = 0; for (;;) { if (group->scanIndex == group->cl.count) { - group = group->parent; - if (group == NULL) + if ((group = group->parent) == NULL) break; nowVisible = 1; @@ -153,8 +151,7 @@ int fnGetRowByIndex(ClcData *dat, int testindex, ClcContact **contact, ClcGroup group->scanIndex = 0; for (;;) { if (group->scanIndex == group->cl.count) { - group = group->parent; - if (group == NULL) + if ((group = group->parent) == NULL) break; group->scanIndex++; continue; diff --git a/src/mir_app/src/clcitems.cpp b/src/mir_app/src/clcitems.cpp index 46a288eb56..5a076a73a6 100644 --- a/src/mir_app/src/clcitems.cpp +++ b/src/mir_app/src/clcitems.cpp @@ -403,16 +403,19 @@ void fnRebuildEntireList(HWND hwnd, ClcData *dat) group->scanIndex = 0; for (;;) { if (group->scanIndex == group->cl.count) { - group = group->parent; - if (group == NULL) - break; + if ((group = group->parent) == NULL) + break; + group->scanIndex++; + continue; } - else if (group->cl.items[group->scanIndex]->type == CLCIT_GROUP) { - if (group->cl.items[group->scanIndex]->group->cl.count == 0) { - group = cli.pfnRemoveItemFromGroup(hwnd, group, group->cl.items[group->scanIndex], 0); + + ClcContact *cc = group->cl.items[group->scanIndex]; + if (cc->type == CLCIT_GROUP) { + if (cc->group->cl.count == 0) { + group = cli.pfnRemoveItemFromGroup(hwnd, group, cc, 0); } else { - group = group->cl.items[group->scanIndex]->group; + group = cc->group; group->scanIndex = 0; } continue; @@ -436,9 +439,13 @@ int fnGetGroupContentsCount(ClcGroup *group, int visibleOnly) if (group == topgroup) break; group = group->parent; - } - else if (group->cl.items[group->scanIndex]->type == CLCIT_GROUP && (!visibleOnly || group->cl.items[group->scanIndex]->group->expanded)) { - group = group->cl.items[group->scanIndex]->group; + group->scanIndex++; + continue; + } + + ClcContact *cc = group->cl.items[group->scanIndex]; + if (cc->type == CLCIT_GROUP && (!visibleOnly || cc->group->expanded)) { + group = cc->group; group->scanIndex = 0; count += group->cl.count; continue; @@ -555,12 +562,15 @@ void fnSortCLC(HWND hwnd, ClcData *dat, int useInsertionSort) SortGroup(dat, group, useInsertionSort); for (;;) { if (group->scanIndex == group->cl.count) { - group = group->parent; - if (group == NULL) - break; - } - else if (group->cl.items[group->scanIndex]->type == CLCIT_GROUP) { - group = group->cl.items[group->scanIndex]->group; + if ((group = group->parent) == NULL) + break; + group->scanIndex++; + continue; + } + + ClcContact *cc = group->cl.items[group->scanIndex]; + if (cc->type == CLCIT_GROUP) { + group = cc->group; group->scanIndex = 0; SortGroup(dat, group, useInsertionSort); continue; @@ -620,12 +630,15 @@ void fnSaveStateAndRebuildList(HWND hwnd, ClcData *dat) group->scanIndex = 0; for (;;) { if (group->scanIndex == group->cl.count) { - group = group->parent; - if (group == NULL) - break; - } - else if (group->cl.items[group->scanIndex]->type == CLCIT_GROUP) { - group = group->cl.items[group->scanIndex]->group; + if ((group = group->parent) == NULL) + break; + group->scanIndex++; + continue; + } + + ClcContact *cc = group->cl.items[group->scanIndex]; + if (cc->type == CLCIT_GROUP) { + group = cc->group; group->scanIndex = 0; SavedGroupState_t *p = new SavedGroupState_t; @@ -634,17 +647,17 @@ void fnSaveStateAndRebuildList(HWND hwnd, ClcData *dat) saveGroup.insert(p); continue; } - else if (group->cl.items[group->scanIndex]->type == CLCIT_CONTACT) { + else if (cc->type == CLCIT_CONTACT) { SavedContactState_t *p = new SavedContactState_t; - p->hContact = group->cl.items[group->scanIndex]->hContact; - memcpy(p->iExtraImage, group->cl.items[group->scanIndex]->iExtraImage, sizeof(p->iExtraImage)); - p->checked = group->cl.items[group->scanIndex]->flags & CONTACTF_CHECKED; + p->hContact = cc->hContact; + memcpy(p->iExtraImage, cc->iExtraImage, sizeof(p->iExtraImage)); + p->checked = cc->flags & CONTACTF_CHECKED; saveContact.insert(p); } - else if (group->cl.items[group->scanIndex]->type == CLCIT_INFO) { + else if (cc->type == CLCIT_INFO) { SavedInfoState_t *p = new SavedInfoState_t; p->parentId = (group->parent == NULL) ? -1 : group->groupId; - p->contact = *group->cl.items[group->scanIndex]; + p->contact = *cc; saveInfo.insert(p); } group->scanIndex++; @@ -657,12 +670,15 @@ void fnSaveStateAndRebuildList(HWND hwnd, ClcData *dat) group->scanIndex = 0; for (;;) { if (group->scanIndex == group->cl.count) { - group = group->parent; - if (group == NULL) - break; - } - else if (group->cl.items[group->scanIndex]->type == CLCIT_GROUP) { - group = group->cl.items[group->scanIndex]->group; + if ((group = group->parent) == NULL) + break; + group->scanIndex++; + continue; + } + + ClcContact *cc = group->cl.items[group->scanIndex]; + if (cc->type == CLCIT_GROUP) { + group = cc->group; group->scanIndex = 0; SavedGroupState_t tmp, *p; @@ -671,13 +687,13 @@ void fnSaveStateAndRebuildList(HWND hwnd, ClcData *dat) group->expanded = p->expanded; continue; } - else if (group->cl.items[group->scanIndex]->type == CLCIT_CONTACT) { + else if (cc->type == CLCIT_CONTACT) { SavedContactState_t tmp, *p; - tmp.hContact = group->cl.items[group->scanIndex]->hContact; + tmp.hContact = cc->hContact; if ((p = saveContact.find(&tmp)) != NULL) { - memcpy(group->cl.items[group->scanIndex]->iExtraImage, p->iExtraImage, sizeof(p->iExtraImage)); + memcpy(cc->iExtraImage, p->iExtraImage, sizeof(p->iExtraImage)); if (p->checked) - group->cl.items[group->scanIndex]->flags |= CONTACTF_CHECKED; + cc->flags |= CONTACTF_CHECKED; } } diff --git a/src/mir_app/src/clcutils.cpp b/src/mir_app/src/clcutils.cpp index 94dccfc161..4530eb959d 100644 --- a/src/mir_app/src/clcutils.cpp +++ b/src/mir_app/src/clcutils.cpp @@ -43,15 +43,19 @@ TCHAR* fnGetGroupCountsText(ClcData *dat, ClcContact *contact) if (group == topgroup) break; group = group->parent; + group->scanIndex++; + continue; } - else if (group->cl.items[group->scanIndex]->type == CLCIT_GROUP) { - group = group->cl.items[group->scanIndex]->group; + + ClcContact *cc = group->cl.items[group->scanIndex]; + if (cc->type == CLCIT_GROUP) { + group = cc->group; group->scanIndex = 0; totalCount += group->totalMembers; continue; } - else if (group->cl.items[group->scanIndex]->type == CLCIT_CONTACT) - if (group->cl.items[group->scanIndex]->flags & CONTACTF_ONLINE) + else if (cc->type == CLCIT_CONTACT) + if (cc->flags & CONTACTF_ONLINE) onlineCount++; group->scanIndex++; } @@ -364,20 +368,21 @@ int fnFindRowByText(HWND hwnd, ClcData *dat, const TCHAR *text, int prefixOk) group->scanIndex = 0; for (;;) { if (group->scanIndex == group->cl.count) { - group = group->parent; - if (group == NULL) + if ((group = group->parent) == NULL) break; group->scanIndex++; continue; } - if (group->cl.items[group->scanIndex]->type != CLCIT_DIVIDER) { + + ClcContact *cc = group->cl.items[group->scanIndex]; + if (cc->type != CLCIT_DIVIDER) { bool show; if (dat->bFilterSearch) { - TCHAR *lowered_szText = CharLowerW(NEWTSTR_ALLOCA(group->cl.items[group->scanIndex]->szText)); + TCHAR *lowered_szText = CharLowerW(NEWTSTR_ALLOCA(cc->szText)); TCHAR *lowered_text = CharLowerW(NEWTSTR_ALLOCA(text)); show = _tcsstr(lowered_szText, lowered_text) != NULL; } - else show = ((prefixOk && !_tcsnicmp(text, group->cl.items[group->scanIndex]->szText, testlen)) || (!prefixOk && !mir_tstrcmpi(text, group->cl.items[group->scanIndex]->szText))); + else show = ((prefixOk && !_tcsnicmp(text, cc->szText, testlen)) || (!prefixOk && !mir_tstrcmpi(text, cc->szText))); if (show) { ClcGroup *contactGroup = group; @@ -386,9 +391,9 @@ int fnFindRowByText(HWND hwnd, ClcData *dat, const TCHAR *text, int prefixOk) cli.pfnSetGroupExpand(hwnd, dat, group, 1); return cli.pfnGetRowsPriorTo(&dat->list, contactGroup, contactScanIndex); } - if (group->cl.items[group->scanIndex]->type == CLCIT_GROUP) { - if (!(dat->exStyle & CLS_EX_QUICKSEARCHVISONLY) || group->cl.items[group->scanIndex]->group->expanded) { - group = group->cl.items[group->scanIndex]->group; + if (cc->type == CLCIT_GROUP) { + if (!(dat->exStyle & CLS_EX_QUICKSEARCHVISONLY) || cc->group->expanded) { + group = cc->group; group->scanIndex = 0; continue; } -- cgit v1.2.3