summaryrefslogtreecommitdiff
path: root/worldtime_protocol/timezone_list.cpp
diff options
context:
space:
mode:
authorsje <sje@4f64403b-2f21-0410-a795-97e2b3489a10>2007-06-05 01:28:37 +0000
committersje <sje@4f64403b-2f21-0410-a795-97e2b3489a10>2007-06-05 01:28:37 +0000
commitb3861e72ec527e73bcbb44978e531f5731237c0c (patch)
tree512dc43e54920a25798215344a2de5a9647183b4 /worldtime_protocol/timezone_list.cpp
parent991f409e2eec6c19aed25c9daffd5f7297c96811 (diff)
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
Diffstat (limited to 'worldtime_protocol/timezone_list.cpp')
-rw-r--r--worldtime_protocol/timezone_list.cpp13
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 );