summaryrefslogtreecommitdiff
path: root/worldtime/plugwin.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/plugwin.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/plugwin.cpp')
-rw-r--r--worldtime/plugwin.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/worldtime/plugwin.cpp b/worldtime/plugwin.cpp
index 48bb576..569f1bb 100644
--- a/worldtime/plugwin.cpp
+++ b/worldtime/plugwin.cpp
@@ -820,19 +820,29 @@ void load_listbox_items() {
int num = DBGetContactSettingDword(0, "WorldTime", "NumEntries", 0);
for(int i = 0; i < num; i++) {
LISTITEM li = {0};
- std::ostringstream p1, p2, p3, p4;
+ std::ostringstream p1, p2, p3, p4, p5;
p1 << "Label" << i;
p2 << "Index" << i;
p3 << "Sunrise" << i;
p4 << "Sunset" << i;
+ p5 << "TZName" << i;
DBVARIANT dbv;
DBGetContactSetting(0, "WorldTime", p1.str().c_str(), &dbv);
strncpy(li.pszText, dbv.pszVal, MAX_NAME_LENGTH);
DBFreeVariant(&dbv);
- li.timezone_list_index = (int)DBGetContactSettingDword(0, "WorldTime", p2.str().c_str(), 0);
+ if(!DBGetContactSetting(0, "WorldTime", p5.str().c_str(), &dbv)) {
+ for(TimeList::iterator j = timezone_list.begin(); j != timezone_list.end(); j++) {
+ if(!strcmp(j->tcName, dbv.pszVal)) {
+ li.timezone_list_index = j->list_index;
+ break;
+ }
+ }
+ DBFreeVariant(&dbv);
+ } else
+ li.timezone_list_index = (int)DBGetContactSettingDword(0, "WorldTime", p2.str().c_str(), 0);
GetSystemTime(&li.sunrise);
GetSystemTime(&li.sunset);