diff options
Diffstat (limited to 'worldtime_protocol/timezone_list.cpp')
-rw-r--r-- | worldtime_protocol/timezone_list.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/worldtime_protocol/timezone_list.cpp b/worldtime_protocol/timezone_list.cpp index 4927515..d70455e 100644 --- a/worldtime_protocol/timezone_list.cpp +++ b/worldtime_protocol/timezone_list.cpp @@ -17,7 +17,16 @@ void load_listbox_items() { proto = ( char* )CallService( MS_PROTO_GETCONTACTBASEPROTO, ( WPARAM )hContact,0 );
if ( proto && !lstrcmp( PROTO, proto)) {
pa.hContact = hContact;
- pa.timezone_list_index = DBGetContactSettingDword(pa.hContact, PROTO, "TimezoneListIndex", -1);
+ 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;
+ break;
+ }
+ }
+ DBFreeVariant(&dbv);
+ } else
+ pa.timezone_list_index = DBGetContactSettingDword(pa.hContact, PROTO, "TimezoneListIndex", -1);
if(!DBGetContactSetting(pa.hContact, PROTO, "Nick", &dbv)) {
strncpy(pa.pszText, dbv.pszVal, MAX_NAME_LENGTH);
DBFreeVariant(&dbv);
@@ -46,7 +55,9 @@ void save_listbox_items() { 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);
}
+ DBWriteContactSettingWord(0, PROTO, "DataVersion", 1);
// remove contacts in DB that have been removed from the list
HANDLE hContact = ( HANDLE )CallService( MS_DB_CONTACT_FINDFIRST, 0, 0 );
|