From b3861e72ec527e73bcbb44978e531f5731237c0c Mon Sep 17 00:00:00 2001 From: sje Date: Tue, 5 Jun 2007 01:28:37 +0000 Subject: try to override timezone list index by matching timezone name (list index inconsistent accross versions of windows) git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@199 4f64403b-2f21-0410-a795-97e2b3489a10 --- worldtime_protocol/timezone_list.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'worldtime_protocol/timezone_list.cpp') 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 ); -- cgit v1.2.3