From c12debcb441a2078c30372ba77cfcf6bdb219bfd Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@4f64403b-2f21-0410-a795-97e2b3489a10> Date: Wed, 21 Apr 2010 13:01:53 +0000 Subject: Added beta indication when update More performance improvements git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@509 4f64403b-2f21-0410-a795-97e2b3489a10 --- updater/conf_dialog.cpp | 64 ++++++++++++++++++++++++++++++------------------- 1 file changed, 39 insertions(+), 25 deletions(-) (limited to 'updater/conf_dialog.cpp') diff --git a/updater/conf_dialog.cpp b/updater/conf_dialog.cpp index cbd6887..8ccaedf 100644 --- a/updater/conf_dialog.cpp +++ b/updater/conf_dialog.cpp @@ -1,13 +1,15 @@ #include "common.h" #include "conf_dialog.h" -INT_PTR CALLBACK DlgProcConfirm(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { +INT_PTR CALLBACK DlgProcConfirm(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) +{ + HWND hwndList = GetDlgItem(hwndDlg, IDC_LIST_UPDATES); switch ( msg ) { case WM_INITDIALOG: TranslateDialogDefault( hwndDlg ); SetWindowLongPtr(hwndDlg, GWLP_USERDATA, 0); - SendMessage(GetDlgItem(hwndDlg, IDC_LIST_UPDATES),LVM_SETEXTENDEDLISTVIEWSTYLE, 0,LVS_EX_FULLROWSELECT | LVS_EX_CHECKBOXES); + SendMessage(hwndList, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT | LVS_EX_CHECKBOXES); if(options.save_zips && options.no_unzip) { CheckDlgButton(hwndDlg, IDC_CHK_CONFALL, FALSE); @@ -39,23 +41,28 @@ INT_PTR CALLBACK DlgProcConfirm(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lP lvc.iSubItem = 0; lvc.pszText = TranslateT("Component Name"); lvc.cx = 145; // width of column in pixels - ListView_InsertColumn(GetDlgItem(hwndDlg, IDC_LIST_UPDATES), 0, &lvc); + ListView_InsertColumn(hwndList, 0, &lvc); lvc.iSubItem = 1; lvc.pszText = TranslateT("New Version"); lvc.cx = 80; // width of column in pixels - ListView_InsertColumn(GetDlgItem(hwndDlg, IDC_LIST_UPDATES), 1, &lvc); + ListView_InsertColumn(hwndList, 1, &lvc); lvc.iSubItem = 2; lvc.pszText = TranslateT("Current Version"); lvc.cx = 90; // width of column in pixels - ListView_InsertColumn(GetDlgItem(hwndDlg, IDC_LIST_UPDATES), 2, &lvc); + ListView_InsertColumn(hwndList, 2, &lvc); + + lvc.iSubItem = 3; + lvc.pszText = TranslateT("Beta"); + lvc.cx = 90; // width of column in pixels + ListView_InsertColumn(hwndList, 3, &lvc); } //enumerate plugins, fill in list { bool one_enabled = false; - ListView_DeleteAllItems(GetDlgItem(hwndDlg, IDC_LIST_UPDATES)); + ListView_DeleteAllItems(hwndList); LVITEM lvI = {0}; TCHAR *temp_str; @@ -66,37 +73,44 @@ INT_PTR CALLBACK DlgProcConfirm(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lP lvI.mask = LVIF_TEXT | LVIF_PARAM | LVIF_NORECOMPUTE;// | LVIF_IMAGE; UpdateList &todo = *(UpdateList *)lParam; - for(int i=0; inewVersion; - lvI.pszText = (temp_str = GetTString(((UpdateInternal *)lvI.lParam)->newVersion)); - ListView_SetItem(GetDlgItem(hwndDlg, IDC_LIST_UPDATES), &lvI); + lvI.pszText = (temp_str = mir_a2t(((UpdateInternal *)lvI.lParam)->newVersion)); + ListView_SetItem(hwndList, &lvI); mir_free(temp_str); lvI.iSubItem = 2; //lvI.pszText = LPSTR_TEXTCALLBACK; //i->newVersion; - lvI.pszText = (temp_str = GetTString((char *)((UpdateInternal *)lvI.lParam)->update.pbVersion)); - ListView_SetItem(GetDlgItem(hwndDlg, IDC_LIST_UPDATES), &lvI); + lvI.pszText = (temp_str = mir_a2t((char *)((UpdateInternal *)lvI.lParam)->update.pbVersion)); + ListView_SetItem(hwndList, &lvI); mir_free(temp_str); - //MessageBox(0, i->newVersion, + + lvI.iSubItem = 3; + lvI.pszText = ((UpdateInternal *)lvI.lParam)->update_options.use_beta ? + TranslateT("Yes") : TranslateT("No"); + ListView_SetItem(hwndList, &lvI); + + //MessageBox(0, todo[i].newVersion, //"Version", MB_OK); - //i->update.szComponentName, MB_OK); + //todo[i].update.szComponentName, MB_OK); // remember whether the user has decided not to update this component with this particular new version char stored_setting[256]; mir_snprintf(stored_setting, 256, "DisabledVer%s", todo[i].update.szComponentName); DBVARIANT dbv; bool check = todo[i].update_options.enabled; - if(!DBGetContactSetting(0, "Updater", stored_setting, &dbv)) { + if(!DBGetContactSettingString(0, "Updater", stored_setting, &dbv)) { if(dbv.pszVal && strcmp(dbv.pszVal, ((UpdateInternal *)lvI.lParam)->newVersion) == 0) check = false; else @@ -104,7 +118,7 @@ INT_PTR CALLBACK DlgProcConfirm(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lP DBFreeVariant(&dbv); } one_enabled |= check; - ListView_SetCheckState(GetDlgItem(hwndDlg, IDC_LIST_UPDATES), lvI.iItem, check); + ListView_SetCheckState(hwndList, lvI.iItem, check); } HWND hwOk = GetDlgItem(hwndDlg, IDOK); @@ -118,7 +132,7 @@ INT_PTR CALLBACK DlgProcConfirm(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lP return TRUE; case WM_NOTIFY: - if(((LPNMHDR) lParam)->hwndFrom == GetDlgItem(hwndDlg, IDC_LIST_UPDATES)) { + if(((LPNMHDR) lParam)->hwndFrom == hwndList) { switch (((LPNMHDR) lParam)->code) { case LVN_ITEMCHANGED: @@ -130,11 +144,11 @@ INT_PTR CALLBACK DlgProcConfirm(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lP lvI.iItem = nmlv->iItem; lvI.iSubItem = 0; lvI.mask = LVIF_PARAM; - ListView_GetItem(GetDlgItem(hwndDlg, IDC_LIST_UPDATES), &lvI); + ListView_GetItem(hwndList, &lvI); - //if(IsWindowVisible(GetDlgItem(hwndDlg, IDC_LIST_UPDATES)) && ((nmlv->uNewState ^ nmlv->uOldState) & LVIS_STATEIMAGEMASK)) { + //if(IsWindowVisible(hwndList) && ((nmlv->uNewState ^ nmlv->uOldState) & LVIS_STATEIMAGEMASK)) { if((nmlv->uNewState ^ nmlv->uOldState) & LVIS_STATEIMAGEMASK) { - ((UpdateInternal *)lvI.lParam)->update_options.enabled = ListView_GetCheckState(GetDlgItem(hwndDlg, IDC_LIST_UPDATES), nmlv->iItem) ? true : false; + ((UpdateInternal *)lvI.lParam)->update_options.enabled = ListView_GetCheckState(hwndList, nmlv->iItem) != 0; char stored_setting[256]; mir_snprintf(stored_setting, 256, "DisabledVer%s", ((UpdateInternal *)lvI.lParam)->update.szComponentName); @@ -143,7 +157,7 @@ INT_PTR CALLBACK DlgProcConfirm(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lP DBDeleteContactSetting(0, "Updater", stored_setting); // user has re-enabled update to this version - remove setting from db else DBWriteContactSettingString(0, "Updater", stored_setting, ((UpdateInternal *)lvI.lParam)->newVersion); - //ListView_SetItem(GetDlgItem(hwndDlg, IDC_LIST_UPDATES), &lvI); + //ListView_SetItem(hwndList, &lvI); UpdateList &todo = *(UpdateList *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA); @@ -175,7 +189,7 @@ INT_PTR CALLBACK DlgProcConfirm(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lP lvi.mask = LVIF_PARAM; lvi.iItem = ((NMLVDISPINFO *)lParam)->item.iItem; lvi.iSubItem = 0; - SendMessage(GetDlgItem(hwndDlg, IDC_LIST_UPDATES), LVM_GETITEM, 0, (LPARAM)&lvi); + SendMessage(hwndList, LVM_GETITEM, 0, (LPARAM)&lvi); switch (((NMLVDISPINFO *)lParam)->item.iSubItem) { case 0: MessageBox(0, _T("LVN_GETDISPINFO (0)"), _T("msg"), MB_OK); @@ -199,13 +213,13 @@ INT_PTR CALLBACK DlgProcConfirm(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lP case IDC_BTN_CHANGELOG: { char url[256]; - int sel = ListView_GetSelectionMark(GetDlgItem(hwndDlg, IDC_LIST_UPDATES)); + int sel = ListView_GetSelectionMark(hwndList); LVITEM lvI = {0}; lvI.iItem = sel; lvI.iSubItem = 0; lvI.mask = LVIF_PARAM; - ListView_GetItem(GetDlgItem(hwndDlg, IDC_LIST_UPDATES), &lvI); + ListView_GetItem(hwndList, &lvI); if(!((UpdateInternal *)lvI.lParam)->update_options.use_beta && ((UpdateInternal *)lvI.lParam)->file_id != -1) { sprintf(url, MIM_CHANGELOG_URL_PREFIX "%d", ((UpdateInternal *)lvI.lParam)->file_id); -- cgit v1.2.3