summaryrefslogtreecommitdiff
path: root/worldtime_protocol
diff options
context:
space:
mode:
Diffstat (limited to 'worldtime_protocol')
-rw-r--r--worldtime_protocol/timezone.cpp7
-rw-r--r--worldtime_protocol/timezone_list.cpp13
-rw-r--r--worldtime_protocol/worldtimeproto.cpp2
3 files changed, 16 insertions, 6 deletions
diff --git a/worldtime_protocol/timezone.cpp b/worldtime_protocol/timezone.cpp
index ee4a8ed..5b2c31b 100644
--- a/worldtime_protocol/timezone.cpp
+++ b/worldtime_protocol/timezone.cpp
@@ -19,7 +19,6 @@ bool build_timezone_list() {
DWORD dwcbDLT;
LS_TZREG Temp;
FILETIME ftLastWrite;
- unsigned int list_index = 0;
bool win9x = false;
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, TZREG, 0, KEY_ENUMERATE_SUB_KEYS, &HKlmtz) != ERROR_SUCCESS) {
@@ -28,7 +27,7 @@ bool build_timezone_list() {
return false;
}
- while(RegEnumKeyEx(HKlmtz, dwIndex++, tcName, &dwcbName, NULL, NULL, NULL, &ftLastWrite) != ERROR_NO_MORE_ITEMS) {
+ while(RegEnumKeyEx(HKlmtz, dwIndex, tcName, &dwcbName, NULL, NULL, NULL, &ftLastWrite) != ERROR_NO_MORE_ITEMS) {
if(RegOpenKeyEx(HKlmtz, tcName, 0,KEY_QUERY_VALUE, &KKtz) != ERROR_SUCCESS) {
RegCloseKey(HKlmtz);
@@ -53,11 +52,11 @@ bool build_timezone_list() {
RegCloseKey(KKtz);
- Temp.list_index = list_index;
+ Temp.list_index = dwIndex;
timezone_list.push_back(Temp);
dwcbName = MAX_SIZE;
- list_index++;
+ dwIndex++;
}
RegCloseKey(HKlmtz);
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 );
diff --git a/worldtime_protocol/worldtimeproto.cpp b/worldtime_protocol/worldtimeproto.cpp
index 5ee4724..f782c0c 100644
--- a/worldtime_protocol/worldtimeproto.cpp
+++ b/worldtime_protocol/worldtimeproto.cpp
@@ -112,7 +112,7 @@ int GetStatus(WPARAM wParam,LPARAM lParam)
PLUGININFOEX pluginInfo={
sizeof(PLUGININFOEX),
"World Time Protocol",
- PLUGIN_MAKE_VERSION(0, 1, 0, 1),
+ PLUGIN_MAKE_VERSION(0, 1, 1, 0),
"Adds 'contacts' showing the time at specified locations around the world.",
"Scott Ellis",
"mail@scottellis.com.au",