diff options
author | (no author) <(no author)@4f64403b-2f21-0410-a795-97e2b3489a10> | 2010-04-04 23:41:11 +0000 |
---|---|---|
committer | (no author) <(no author)@4f64403b-2f21-0410-a795-97e2b3489a10> | 2010-04-04 23:41:11 +0000 |
commit | 0c2db8f67782848603cdd845713ca70e285c0f49 (patch) | |
tree | 9ee0652d8c23593b567b91cd5e34c13c62d61611 /worldtime_protocol/timezone_list.cpp | |
parent | d11bac94bbcbd92bf550ccca094a10bb50e6df4b (diff) |
Fixed incorrect time after time zone table changes
Reduced size plugin size
git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@487 4f64403b-2f21-0410-a795-97e2b3489a10
Diffstat (limited to 'worldtime_protocol/timezone_list.cpp')
-rw-r--r-- | worldtime_protocol/timezone_list.cpp | 43 |
1 files changed, 23 insertions, 20 deletions
diff --git a/worldtime_protocol/timezone_list.cpp b/worldtime_protocol/timezone_list.cpp index d70455e..2e28bc1 100644 --- a/worldtime_protocol/timezone_list.cpp +++ b/worldtime_protocol/timezone_list.cpp @@ -1,9 +1,7 @@ #include "common.h"
#include "timezone_list.h"
-#include <sstream>
-
-ITEMLIST listbox_items;
+ITEMLIST listbox_items(5);
void load_listbox_items() {
@@ -12,15 +10,15 @@ void load_listbox_items() { DBVARIANT dbv;
char *proto;
- listbox_items.clear();
+ listbox_items.destroy();
while ( hContact != NULL ) {
proto = ( char* )CallService( MS_PROTO_GETCONTACTBASEPROTO, ( WPARAM )hContact,0 );
if ( proto && !lstrcmp( PROTO, proto)) {
pa.hContact = hContact;
if(!DBGetContactSetting(pa.hContact, PROTO, "TZName", &dbv)) {
- for(TimeList::iterator j = timezone_list.begin(); j != timezone_list.end(); j++) {
- if(!strcmp(j->tcName, dbv.pszVal)) {
- pa.timezone_list_index = j->list_index;
+ for (int j = 0; j < timezone_list.getCount(); ++j) {
+ if(!strcmp(timezone_list[j].tcName, dbv.pszVal)) {
+ pa.timezone_list_index = timezone_list[j].list_index;
break;
}
}
@@ -32,7 +30,7 @@ void load_listbox_items() { DBFreeVariant(&dbv);
}
- listbox_items.push_back(pa);
+ listbox_items.insert(new LISTITEM(pa));
}
hContact = ( HANDLE )CallService( MS_DB_CONTACT_FINDNEXT,( WPARAM )hContact, 0 );
@@ -43,19 +41,19 @@ void save_listbox_items() { bool is_contact;
- for(ITEMLIST::iterator i = listbox_items.begin(); i != listbox_items.end(); i++) {
- is_contact = (int)CallService(MS_DB_CONTACT_IS, (WPARAM)i->hContact, 0) == 1;
+ for(int i = 0; i < listbox_items.getCount(); ++i) {
+ is_contact = (int)CallService(MS_DB_CONTACT_IS, (WPARAM)listbox_items[i].hContact, 0) == 1;
if(!is_contact) {
- i->hContact = (HANDLE)CallService(MS_DB_CONTACT_ADD, 0, 0);
- CallService( MS_PROTO_ADDTOCONTACT, ( WPARAM )i->hContact, ( LPARAM )PROTO );
- CallService(MS_IGNORE_IGNORE, (WPARAM)i->hContact, (WPARAM)IGNOREEVENT_USERONLINE);
+ listbox_items[i].hContact = (HANDLE)CallService(MS_DB_CONTACT_ADD, 0, 0);
+ CallService( MS_PROTO_ADDTOCONTACT, ( WPARAM )listbox_items[i].hContact, ( LPARAM )PROTO );
+ CallService(MS_IGNORE_IGNORE, (WPARAM)listbox_items[i].hContact, (WPARAM)IGNOREEVENT_USERONLINE);
}
- DBWriteContactSettingString(i->hContact, PROTO, "Nick", i->pszText);
- DBWriteContactSettingDword(i->hContact, PROTO, "TimezoneListIndex", i->timezone_list_index);
- DBWriteContactSettingWord(i->hContact, PROTO, "Status", ID_STATUS_ONLINE);
- DBWriteContactSettingString(i->hContact, PROTO, "TZName", timezone_list[i->timezone_list_index].tcName);
+ DBWriteContactSettingString(listbox_items[i].hContact, PROTO, "Nick", listbox_items[i].pszText);
+ DBWriteContactSettingDword(listbox_items[i].hContact, PROTO, "TimezoneListIndex", listbox_items[i].timezone_list_index);
+ DBWriteContactSettingWord(listbox_items[i].hContact, PROTO, "Status", ID_STATUS_ONLINE);
+ DBWriteContactSettingString(listbox_items[i].hContact, PROTO, "TZName", timezone_list[listbox_items[i].timezone_list_index].tcName);
}
DBWriteContactSettingWord(0, PROTO, "DataVersion", 1);
@@ -67,8 +65,8 @@ void save_listbox_items() { proto = ( char* )CallService( MS_PROTO_GETCONTACTBASEPROTO, ( WPARAM )hContact,0 );
if ( proto && !lstrcmp( PROTO, proto)) {
found = false;
- for(ITEMLIST::iterator i = listbox_items.begin(); i != listbox_items.end(); i++) {
- if(i->hContact == hContact) {
+ for(int i = 0; i < listbox_items.getCount(); i++) {
+ if(listbox_items[i].hContact == hContact) {
found = true;
}
}
@@ -87,6 +85,11 @@ void save_listbox_items() { }
}
-
+void copy_listbox_items(ITEMLIST &dest, ITEMLIST &src)
+{
+ dest.destroy();
+ for (int i=0; i < src.getCount(); ++i)
+ dest.insert(new LISTITEM(src[i]));
+}
|