From f4ab8d1b8466efaed401a75a1d181fc45ff43d5e Mon Sep 17 00:00:00 2001 From: George Hazan Date: Thu, 2 Jan 2014 17:24:17 +0000 Subject: minus std::string & 3 std::vectors git-svn-id: http://svn.miranda-ng.org/main/trunk@7461 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- src/modules/extraicons/ExtraIcon.cpp | 4 +- src/modules/extraicons/ExtraIcon.h | 4 +- src/modules/extraicons/ExtraIconGroup.cpp | 45 ++++++++++---------- src/modules/extraicons/IcolibExtraIcon.cpp | 10 ++--- src/modules/extraicons/extraicons.cpp | 64 ++++++++++++++--------------- src/modules/extraicons/extraicons.h | 4 +- src/modules/extraicons/options_ei.cpp | 66 +++++++++++++++--------------- 7 files changed, 98 insertions(+), 99 deletions(-) (limited to 'src') diff --git a/src/modules/extraicons/ExtraIcon.cpp b/src/modules/extraicons/ExtraIcon.cpp index 7354a8ad6b..197da8976f 100644 --- a/src/modules/extraicons/ExtraIcon.cpp +++ b/src/modules/extraicons/ExtraIcon.cpp @@ -24,7 +24,7 @@ Boston, MA 02111-1307, USA. #include "extraicons.h" ExtraIcon::ExtraIcon(const char *name) : - name(name), slot(-1), position(1000), hLangpack(0) + szName(mir_strdup(name)), slot(-1), position(1000), hLangpack(0) { } @@ -34,7 +34,7 @@ ExtraIcon::~ExtraIcon() const char *ExtraIcon::getName() const { - return name.c_str(); + return szName; } int ExtraIcon::getSlot() const diff --git a/src/modules/extraicons/ExtraIcon.h b/src/modules/extraicons/ExtraIcon.h index 29aa687c95..31ec96a490 100644 --- a/src/modules/extraicons/ExtraIcon.h +++ b/src/modules/extraicons/ExtraIcon.h @@ -60,7 +60,7 @@ public: int hLangpack; protected: - std::string name; + ptrA szName; int slot; int position; @@ -165,7 +165,7 @@ public: virtual int getPosition() const; virtual void setSlot(int slot); - std::vector items; + LIST items; virtual int ClistSetExtraIcon(HANDLE hContact, HANDLE hImage); diff --git a/src/modules/extraicons/ExtraIconGroup.cpp b/src/modules/extraicons/ExtraIconGroup.cpp index 5d21599ba1..e2127ebb87 100644 --- a/src/modules/extraicons/ExtraIconGroup.cpp +++ b/src/modules/extraicons/ExtraIconGroup.cpp @@ -24,22 +24,23 @@ Boston, MA 02111-1307, USA. #include "extraicons.h" ExtraIconGroup::ExtraIconGroup(const char *_name) : - ExtraIcon(_name), setValidExtraIcon(false), insideApply(false) + ExtraIcon(_name), setValidExtraIcon(false), insideApply(false), + items(1) { db_set_resident(MODULE_NAME, _name); } ExtraIconGroup::~ExtraIconGroup() { - items.clear(); + items.destroy(); } void ExtraIconGroup::addExtraIcon(BaseExtraIcon *extra) { - items.push_back(extra); + items.insert(extra); CMString description; - for (unsigned int i = 0; i < items.size(); i++) { + for (int i = 0; i < items.getCount(); i++) { if (i > 0) description += _T(" / "); description += items[i]->getDescription(); @@ -50,7 +51,7 @@ void ExtraIconGroup::addExtraIcon(BaseExtraIcon *extra) void ExtraIconGroup::rebuildIcons() { - for (unsigned int i = 0; i < items.size(); i++) + for (int i = 0; i < items.getCount(); i++) items[i]->rebuildIcons(); } @@ -63,8 +64,8 @@ void ExtraIconGroup::applyIcon(HANDLE hContact) insideApply = true; - unsigned int i; - for (i = 0; i < items.size(); i++) { + int i; + for (i = 0; i < items.getCount(); i++) { items[i]->applyIcon(hContact); if (setValidExtraIcon) break; @@ -72,13 +73,13 @@ void ExtraIconGroup::applyIcon(HANDLE hContact) insideApply = false; - db_set_dw(hContact, MODULE_NAME, name.c_str(), setValidExtraIcon ? items[i]->getID() : 0); + db_set_dw(hContact, MODULE_NAME, szName, setValidExtraIcon ? items[i]->getID() : 0); } int ExtraIconGroup::getPosition() const { int pos = INT_MAX; - for (unsigned int i = 0; i < items.size(); i++) + for (int i = 0; i < items.getCount(); i++) pos = MIN(pos, items[i]->getPosition()); return pos; } @@ -87,17 +88,17 @@ void ExtraIconGroup::setSlot(int slot) { ExtraIcon::setSlot(slot); - for (unsigned int i = 0; i < items.size(); i++) + for (int i = 0; i < items.getCount(); i++) items[i]->setSlot(slot); } ExtraIcon * ExtraIconGroup::getCurrentItem(HANDLE hContact) const { - int id = (int)db_get_dw(hContact, MODULE_NAME, name.c_str(), 0); + int id = (int)db_get_dw(hContact, MODULE_NAME, szName, 0); if (id < 1) return NULL; - for (unsigned int i = 0; i < items.size(); i++) + for (int i = 0; i < items.getCount(); i++) if (id == items[i]->getID()) return items[i]; @@ -124,7 +125,7 @@ int ExtraIconGroup::setIconByName(int id, HANDLE hContact, const char *value) int ExtraIconGroup::internalSetIcon(int id, HANDLE hContact, void *value, bool bByName) { if (insideApply) { - for (unsigned int i=0; i < items.size(); i++) + for (int i=0; i < items.getCount(); i++) if (items[i]->getID() == id) { if (bByName) return items[i]->setIconByName(id, hContact, (const char*)value); @@ -135,9 +136,9 @@ int ExtraIconGroup::internalSetIcon(int id, HANDLE hContact, void *value, bool b } ExtraIcon *current = getCurrentItem(hContact); - int currentPos = (int)items.size(); - int storePos = (int)items.size(); - for (unsigned int i = 0; i < items.size(); i++) { + int currentPos = items.getCount(); + int storePos = items.getCount(); + for (int i=0; i < items.getCount(); i++) { if (items[i]->getID() == id) storePos = i; @@ -145,7 +146,7 @@ int ExtraIconGroup::internalSetIcon(int id, HANDLE hContact, void *value, bool b currentPos = i; } - if (storePos == items.size()) + if (storePos == items.getCount()) return -1; if (storePos > currentPos) { @@ -165,15 +166,15 @@ int ExtraIconGroup::internalSetIcon(int id, HANDLE hContact, void *value, bool b if (storePos < currentPos) { if (setValidExtraIcon) - db_set_dw(hContact, MODULE_NAME, name.c_str(), items[storePos]->getID()); + db_set_dw(hContact, MODULE_NAME, szName, items[storePos]->getID()); } else if (storePos == currentPos) { if (!setValidExtraIcon) { - db_set_dw(hContact, MODULE_NAME, name.c_str(), 0); + db_set_dw(hContact, MODULE_NAME, szName, 0); insideApply = true; - for (++storePos; storePos < (int)items.size(); ++storePos) { + for (++storePos; storePos < items.getCount(); ++storePos) { items[storePos]->applyIcon(hContact); if (setValidExtraIcon) break; @@ -182,7 +183,7 @@ int ExtraIconGroup::internalSetIcon(int id, HANDLE hContact, void *value, bool b insideApply = false; if (setValidExtraIcon) - db_set_dw(hContact, MODULE_NAME, name.c_str(), items[storePos]->getID()); + db_set_dw(hContact, MODULE_NAME, szName, items[storePos]->getID()); } } @@ -196,7 +197,7 @@ const TCHAR *ExtraIconGroup::getDescription() const const char *ExtraIconGroup::getDescIcon() const { - for (unsigned int i = 0; i < items.size(); i++) + for (int i = 0; i < items.getCount(); i++) if (!IsEmpty(items[i]->getDescIcon())) return items[i]->getDescIcon(); diff --git a/src/modules/extraicons/IcolibExtraIcon.cpp b/src/modules/extraicons/IcolibExtraIcon.cpp index 8b77e29cb5..78c020ce3a 100644 --- a/src/modules/extraicons/IcolibExtraIcon.cpp +++ b/src/modules/extraicons/IcolibExtraIcon.cpp @@ -53,7 +53,7 @@ void IcolibExtraIcon::applyIcon(HANDLE hContact) HANDLE hImage = INVALID_HANDLE_VALUE; - ptrA szIconName(db_get_sa(hContact, MODULE_NAME, name.c_str())); + ptrA szIconName(db_get_sa(hContact, MODULE_NAME, szName)); if (!IsEmpty(szIconName)) hImage = GetIcon(szIconName); @@ -69,7 +69,7 @@ int IcolibExtraIcon::setIcon(int id, HANDLE hContact, HANDLE hIcoLib) hIcoLib = NULL; if (isEnabled()) { - ptrA szIconName(db_get_sa(hContact, MODULE_NAME, name.c_str())); + ptrA szIconName(db_get_sa(hContact, MODULE_NAME, szName)); if (!IsEmpty(szIconName)) RemoveIcon(szIconName); } @@ -93,7 +93,7 @@ int IcolibExtraIcon::setIconByName(int id, HANDLE hContact, const char *icon) icon = NULL; if (isEnabled()) { - ptrA szIconName(db_get_sa(hContact, MODULE_NAME, name.c_str())); + ptrA szIconName(db_get_sa(hContact, MODULE_NAME, szName)); if (!IsEmpty(szIconName)) RemoveIcon(szIconName); } @@ -113,7 +113,7 @@ void IcolibExtraIcon::storeIcon(HANDLE hContact, void *icon) const char *icolibName = (const char *)icon; if (IsEmpty(icolibName)) - db_unset(hContact, MODULE_NAME, name.c_str()); + db_unset(hContact, MODULE_NAME, szName); else - db_set_s(hContact, MODULE_NAME, name.c_str(), icolibName); + db_set_s(hContact, MODULE_NAME, szName, icolibName); } diff --git a/src/modules/extraicons/extraicons.cpp b/src/modules/extraicons/extraicons.cpp index 332d6f92f4..c96dd3629f 100644 --- a/src/modules/extraicons/extraicons.cpp +++ b/src/modules/extraicons/extraicons.cpp @@ -128,10 +128,10 @@ BaseExtraIcon* GetExtraIconByName(const char *name) return NULL; } -static void LoadGroups(vector &groups) +static void LoadGroups(LIST &groups) { - unsigned int count = db_get_w(NULL, MODULE_NAME "Groups", "Count", 0); - for (unsigned int i = 0; i < count; i++) { + int count = db_get_w(NULL, MODULE_NAME "Groups", "Count", 0); + for (int i=0; i < count; i++) { char setting[512]; mir_snprintf(setting, SIZEOF(setting), "%d_count", i); unsigned int items = db_get_w(NULL, MODULE_NAME "Groups", setting, 0); @@ -143,36 +143,33 @@ static void LoadGroups(vector &groups) for (unsigned int j = 0; j < items; j++) { mir_snprintf(setting, SIZEOF(setting), "%d_%d", i, j); + ptrA szIconName(db_get_sa(NULL, MODULE_NAME "Groups", setting)); + if (IsEmpty(szIconName)) + continue; + + BaseExtraIcon *extra = GetExtraIconByName(szIconName); + if (extra == NULL) + continue; - DBVARIANT dbv; - if (!db_get_s(NULL, MODULE_NAME "Groups", setting, &dbv)) { - if (!IsEmpty(dbv.pszVal)) { - BaseExtraIcon *extra = GetExtraIconByName(dbv.pszVal); - if (extra != NULL) { - group->items.push_back(extra); - - if (extra->getSlot() >= 0) - group->setSlot(extra->getSlot()); - } - } - db_free(&dbv); - } + group->items.insert(extra); + if (extra->getSlot() >= 0) + group->setSlot(extra->getSlot()); } - if (group->items.size() < 2) { + if (group->items.getCount() < 2) { delete group; continue; } - groups.push_back(group); + groups.insert(group); } } -static ExtraIconGroup* IsInGroup(vector &groups, BaseExtraIcon *extra) +static ExtraIconGroup* IsInGroup(LIST &groups, BaseExtraIcon *extra) { - for (unsigned int i = 0; i < groups.size(); i++) { + for (int i = 0; i < groups.getCount(); i++) { ExtraIconGroup *group = groups[i]; - for (unsigned int j = 0; j < group->items.size(); j++) { + for (int j = 0; j < group->items.getCount(); j++) { if (extra == group->items[j]) return group; } @@ -180,31 +177,30 @@ static ExtraIconGroup* IsInGroup(vector &groups, BaseExtraIcon return NULL; } -void RebuildListsBasedOnGroups(vector &groups) +void RebuildListsBasedOnGroups(LIST &groups) { extraIconsByHandle.destroy(); - int k; - for (k=0; k < registeredExtraIcons.getCount(); k++) - extraIconsByHandle.insert(registeredExtraIcons[k]); - for (k=0; k < extraIconsBySlot.getCount(); k++) { + for (int i=0; i < registeredExtraIcons.getCount(); i++) + extraIconsByHandle.insert(registeredExtraIcons[i]); + + for (int k=0; k < extraIconsBySlot.getCount(); k++) { ExtraIcon *extra = extraIconsBySlot[k]; if (extra->getType() == EXTRAICON_TYPE_GROUP) delete extra; } extraIconsBySlot.destroy(); - unsigned int i; - for (i = 0; i < groups.size(); i++) { + for (int i=0; i < groups.getCount(); i++) { ExtraIconGroup *group = groups[i]; - for (unsigned int j = 0; j < group->items.size(); j++) + for (int j = 0; j < group->items.getCount(); j++) extraIconsByHandle.put(group->items[j]->getID()-1, group); extraIconsBySlot.insert(group); } - for (k = 0; k < extraIconsByHandle.getCount(); k++) { + for (int k=0; k < extraIconsByHandle.getCount(); k++) { ExtraIcon *extra = extraIconsByHandle[k]; if (extra->getType() != EXTRAICON_TYPE_GROUP) extraIconsBySlot.insert(extra); @@ -228,9 +224,10 @@ void KillModuleExtraIcons(int hLangpack) if (arDeleted.getCount() == 0) return; - vector groups; + LIST groups(1); LoadGroups(groups); RebuildListsBasedOnGroups(groups); + groups.destroy(); for (int k=0; k < arDeleted.getCount(); k++) delete arDeleted[k]; @@ -429,14 +426,14 @@ INT_PTR ExtraIcon_Register(WPARAM wParam, LPARAM lParam) registeredExtraIcons.insert(extra); extraIconsByHandle.insert(extra); - vector groups; + LIST groups(1); LoadGroups(groups); ExtraIconGroup *group = IsInGroup(groups, extra); if (group != NULL) RebuildListsBasedOnGroups(groups); else { - for (unsigned int i = 0; i < groups.size(); i++) + for (int i = 0; i < groups.getCount(); i++) delete groups[i]; extraIconsBySlot.insert(extra); @@ -460,6 +457,7 @@ INT_PTR ExtraIcon_Register(WPARAM wParam, LPARAM lParam) } } + groups.destroy(); return id; } diff --git a/src/modules/extraicons/extraicons.h b/src/modules/extraicons/extraicons.h index e2c15572bf..3926cdc963 100644 --- a/src/modules/extraicons/extraicons.h +++ b/src/modules/extraicons/extraicons.h @@ -22,7 +22,7 @@ Boston, MA 02111-1307, USA. #ifndef __COMMONS_H__ # define __COMMONS_H__ -#define MODULE_NAME "ExtraIcons" +#define MODULE_NAME "ExtraIcons" // Global Variables extern HINSTANCE hInst; @@ -35,7 +35,7 @@ extern HINSTANCE hInst; extern LIST registeredExtraIcons; extern LIST extraIconsByHandle, extraIconsBySlot; -void RebuildListsBasedOnGroups(vector &groups); +void RebuildListsBasedOnGroups(LIST &groups); ExtraIcon * GetExtraIconBySlot(int slot); int GetNumberOfSlots(); diff --git a/src/modules/extraicons/options_ei.cpp b/src/modules/extraicons/options_ei.cpp index 369efa6315..7529f29153 100644 --- a/src/modules/extraicons/options_ei.cpp +++ b/src/modules/extraicons/options_ei.cpp @@ -445,13 +445,13 @@ static INT_PTR CALLBACK OptionsDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LP ExtraIcon *extra = extraIconsBySlot[k]; if (extra->getType() == EXTRAICON_TYPE_GROUP) { - ExtraIconGroup *group = (ExtraIconGroup *) extra; + ExtraIconGroup *group = (ExtraIconGroup *)extra; vector ids; - for (unsigned int j = 0; j < group->items.size(); j++) + for (int j = 0; j < group->items.getCount(); j++) ids.push_back(group->items[j]->getID()); Tree_AddExtraIconGroup(tree, ids, extra->isEnabled()); } - else Tree_AddExtraIcon(tree, (BaseExtraIcon *) extra, extra->isEnabled()); + else Tree_AddExtraIcon(tree, (BaseExtraIcon *)extra, extra->isEnabled()); } TVSORTCB sort = { 0 }; @@ -481,7 +481,7 @@ static INT_PTR CALLBACK OptionsDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LP lastUsedSlot = MIN(lastUsedSlot, GetNumberOfSlots()); // Get user data and create new groups - vector groups; + LIST groups(1); BYTE pos = 0; int firstEmptySlot = 0; @@ -509,7 +509,7 @@ static INT_PTR CALLBACK OptionsDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LP } else { char name[128]; - mir_snprintf(name, SIZEOF(name), "__group_%d", groups.size()); + mir_snprintf(name, SIZEOF(name), "__group_%d", groups.getCount()); ExtraIconGroup *group = new ExtraIconGroup(name); @@ -521,7 +521,7 @@ static INT_PTR CALLBACK OptionsDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LP } group->setSlot(slot); - groups.push_back(group); + groups.insert(group); } ht = TreeView_GetNextSibling(tree, ht); @@ -540,15 +540,15 @@ static INT_PTR CALLBACK OptionsDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LP } CallService(MS_DB_MODULE_DELETE, 0, (LPARAM) MODULE_NAME "Groups"); - db_set_w(NULL, MODULE_NAME "Groups", "Count", (WORD)groups.size()); - for (unsigned k = 0; k < groups.size(); k++) { + db_set_w(NULL, MODULE_NAME "Groups", "Count", groups.getCount()); + for (int k = 0; k < groups.getCount(); k++) { ExtraIconGroup *group = groups[k]; char setting[512]; mir_snprintf(setting, SIZEOF(setting), "%d_count", k); - db_set_w(NULL, MODULE_NAME "Groups", setting, (WORD)group->items.size()); + db_set_w(NULL, MODULE_NAME "Groups", setting, (WORD)group->items.getCount()); - for (unsigned j = 0; j < group->items.size(); j++) { + for (int j = 0; j < group->items.getCount(); j++) { BaseExtraIcon *extra = group->items[j]; mir_snprintf(setting, SIZEOF(setting), "%d_%d", k, j); @@ -573,6 +573,7 @@ static INT_PTR CALLBACK OptionsDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LP } delete[] oldSlots; + groups.destroy(); return TRUE; } @@ -600,8 +601,9 @@ static INT_PTR CALLBACK OptionsDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LP SendMessage(GetParent(hwndDlg), PSM_CHANGED, (WPARAM) hwndDlg, 0); } } - break; } + break; + case TVN_KEYDOWN: { TV_KEYDOWN *nmkd = (TV_KEYDOWN *) lpnmhdr; @@ -611,34 +613,32 @@ static INT_PTR CALLBACK OptionsDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LP if (hItem != NULL) SendMessage(GetParent(hwndDlg), PSM_CHANGED, (WPARAM) hwndDlg, 0); } - break; } + break; + case NM_RCLICK: - { - HTREEITEM hSelected = (HTREEITEM) SendMessage(tree, TVM_GETNEXTITEM, TVGN_DROPHILITE, 0); - if (hSelected != NULL && !IsSelected(tree, hSelected)) { - UnselectAll(tree); - TreeView_SelectItem(tree, hSelected); - } + HTREEITEM hSelected = (HTREEITEM) SendMessage(tree, TVM_GETNEXTITEM, TVGN_DROPHILITE, 0); + if (hSelected != NULL && !IsSelected(tree, hSelected)) { + UnselectAll(tree); + TreeView_SelectItem(tree, hSelected); + } - int sels = GetNumSelected(tree); - if (sels > 1) { - if (ShowPopup(hwndDlg, 0) == ID_GROUP) { - GroupSelectedItems(tree); - SendMessage(GetParent(hwndDlg), PSM_CHANGED, (WPARAM) hwndDlg, 0); - } + int sels = GetNumSelected(tree); + if (sels > 1) { + if (ShowPopup(hwndDlg, 0) == ID_GROUP) { + GroupSelectedItems(tree); + SendMessage(GetParent(hwndDlg), PSM_CHANGED, (WPARAM) hwndDlg, 0); } - else if (sels == 1) { - HTREEITEM hItem = TreeView_GetSelection(tree); - vector*ids = Tree_GetIDs(tree, hItem); - if (ids->size() > 1) { - if (ShowPopup(hwndDlg, 1) == ID_UNGROUP) { - UngroupSelectedItems(tree); - SendMessage(GetParent(hwndDlg), PSM_CHANGED, (WPARAM) hwndDlg, 0); - } + } + else if (sels == 1) { + HTREEITEM hItem = TreeView_GetSelection(tree); + vector*ids = Tree_GetIDs(tree, hItem); + if (ids->size() > 1) { + if (ShowPopup(hwndDlg, 1) == ID_UNGROUP) { + UngroupSelectedItems(tree); + SendMessage(GetParent(hwndDlg), PSM_CHANGED, (WPARAM) hwndDlg, 0); } } - break; } } } -- cgit v1.2.3