From d267c7e3f3462693a6264029308e239de115eda5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20P=C3=B6sel?= Date: Sun, 7 Sep 2014 12:36:33 +0000 Subject: PluginUpdater: Final fixes git-svn-id: http://svn.miranda-ng.org/main/trunk@10392 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/PluginUpdater/src/Common.h | 1 + plugins/PluginUpdater/src/Options.cpp | 23 +++++++-------------- plugins/PluginUpdater/src/Utils.cpp | 38 ++++++++++++++++++----------------- 3 files changed, 28 insertions(+), 34 deletions(-) diff --git a/plugins/PluginUpdater/src/Common.h b/plugins/PluginUpdater/src/Common.h index 3c7bd6d7c4..0daf395231 100644 --- a/plugins/PluginUpdater/src/Common.h +++ b/plugins/PluginUpdater/src/Common.h @@ -207,6 +207,7 @@ void BackupFile(TCHAR *ptszSrcFileName, TCHAR *ptszBackFileName); bool ParseHashes(const TCHAR *ptszUrl, ptrT &baseUrl, SERVLIST &arHashes); int CompareHashes(const ServListEntry *p1, const ServListEntry *p2); +int GetUpdateMode(); TCHAR* GetDefaultUrl(); bool DownloadFile(FILEURL *pFileURL, HANDLE &nlc); diff --git a/plugins/PluginUpdater/src/Options.cpp b/plugins/PluginUpdater/src/Options.cpp index aa59496ac0..cd199df741 100644 --- a/plugins/PluginUpdater/src/Options.cpp +++ b/plugins/PluginUpdater/src/Options.cpp @@ -45,7 +45,7 @@ INT_PTR CALLBACK UpdateNotifyOptsProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPA ComboBox_InsertString(GetDlgItem(hwndDlg, IDC_PERIODMEASURE), 1, TranslateT("days")); ComboBox_SetCurSel(GetDlgItem(hwndDlg, IDC_PERIODMEASURE), opts.bPeriodMeasure); - BYTE UpdateMode = db_get_b(NULL, MODNAME, "UpdateMode", UPDATE_MODE_STABLE); + int UpdateMode = GetUpdateMode(); if (UpdateMode == UPDATE_MODE_STABLE) { SetDlgItemText(hwndDlg, IDC_CUSTOMURL, _T(DEFAULT_UPDATE_URL)); CheckDlgButton(hwndDlg, IDC_STABLE, TRUE); @@ -61,13 +61,9 @@ INT_PTR CALLBACK UpdateNotifyOptsProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPA else { CheckDlgButton(hwndDlg, IDC_CUSTOM, TRUE); EnableWindow(GetDlgItem(hwndDlg, IDC_CUSTOMURL), TRUE); - DBVARIANT dbv; - if (!db_get_s(NULL, MODNAME, "UpdateURL", &dbv)) { - SetDlgItemTextA(hwndDlg, IDC_CUSTOMURL, dbv.pszVal); - db_free(&dbv); - } - else - SetDlgItemText(hwndDlg, IDC_CUSTOMURL, ptrT(GetDefaultUrl())); + + ptrT url(db_get_tsa(NULL, MODNAME, "UpdateURL")); + SetDlgItemText(hwndDlg, IDC_CUSTOMURL, (url == NULL) ? ptrT(GetDefaultUrl()) : url); } } return TRUE; @@ -110,13 +106,8 @@ INT_PTR CALLBACK UpdateNotifyOptsProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPA case IDC_CUSTOM: EnableWindow(GetDlgItem(hwndDlg, IDC_CUSTOMURL), TRUE); { - DBVARIANT dbv; - if (!db_get_ts(NULL, MODNAME, "UpdateURL", &dbv)) { - SetDlgItemText(hwndDlg, IDC_CUSTOMURL, dbv.ptszVal); - db_free(&dbv); - } - else - SetDlgItemText(hwndDlg, IDC_CUSTOMURL, ptrT(GetDefaultUrl())); + ptrT url(db_get_tsa(NULL, MODNAME, "UpdateURL")); + SetDlgItemText(hwndDlg, IDC_CUSTOMURL, (url == NULL) ? ptrT(GetDefaultUrl()) : url); } SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); break; @@ -181,7 +172,7 @@ INT_PTR CALLBACK UpdateNotifyOptsProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPA else if ( IsDlgButtonChecked(hwndDlg, IDC_TRUNK)) db_set_b(NULL, MODNAME, "UpdateMode", UPDATE_MODE_TRUNK); else if ( IsDlgButtonChecked(hwndDlg, IDC_TRUNK_SYMBOLS)) { - BYTE oldMode = db_get_b(NULL, MODNAME, "UpdateMode",0); + int oldMode = GetUpdateMode(); if(oldMode != UPDATE_MODE_TRUNK_SYMBOLS) { opts.bForceRedownload = true; db_set_b(NULL, MODNAME, "ForceRedownload", 1); diff --git a/plugins/PluginUpdater/src/Utils.cpp b/plugins/PluginUpdater/src/Utils.cpp index 2ee3402a76..24832935cc 100644 --- a/plugins/PluginUpdater/src/Utils.cpp +++ b/plugins/PluginUpdater/src/Utils.cpp @@ -142,19 +142,14 @@ int Get_CRC(unsigned char* buffer, ULONG bufsize) return crc^0xffffffff; } -TCHAR* GetDefaultUrl() +int GetUpdateMode() { -#if MIRANDA_VER < 0x0A00 - return mir_tstrdup(_T("http://miranda-ng.org/distr/deprecated/0.94.9/x%platform%")); -#else int UpdateMode = db_get_b(NULL, MODNAME, "UpdateMode", -1); - TCHAR *url = NULL; - // Check if there is url for custom mode if (UpdateMode == UPDATE_MODE_CUSTOM) { - url = db_get_tsa(NULL, MODNAME, "UpdateUrl"); - if (url == NULL) { + ptrT url( db_get_tsa(NULL, MODNAME, "UpdateUrl")); + if (url == NULL || !_tcslen(url)) { // No url for custom mode, reset that setting so it will be determined automatically db_unset(NULL, MODNAME, "UpdateMode"); UpdateMode = -1; @@ -168,17 +163,24 @@ TCHAR* GetDefaultUrl() UpdateMode = (strstr(coreVersion, "alpha") == NULL) ? UPDATE_MODE_STABLE : UPDATE_MODE_TRUNK; } - if (UpdateMode == UPDATE_MODE_STABLE) { - url = mir_tstrdup(_T(DEFAULT_UPDATE_URL)); - } else if (UpdateMode == UPDATE_MODE_TRUNK) { - url = mir_tstrdup(_T(DEFAULT_UPDATE_URL_TRUNK)); - } else if (UpdateMode == UPDATE_MODE_TRUNK_SYMBOLS) { - url = mir_tstrdup(_T(DEFAULT_UPDATE_URL_TRUNK_SYMBOLS)); - } else if (UpdateMode == UPDATE_MODE_CUSTOM) { - // url was loaded in the beginning, no need to load it again - } + return UpdateMode; +} - return url; +TCHAR* GetDefaultUrl() +{ +#if MIRANDA_VER < 0x0A00 + return mir_tstrdup(_T("http://miranda-ng.org/distr/deprecated/0.94.9/x%platform%")); +#else + switch (GetUpdateMode()) { + case UPDATE_MODE_STABLE: + return mir_tstrdup(_T(DEFAULT_UPDATE_URL)); + case UPDATE_MODE_TRUNK: + return mir_tstrdup(_T(DEFAULT_UPDATE_URL_TRUNK)); + case UPDATE_MODE_TRUNK_SYMBOLS: + return mir_tstrdup(_T(DEFAULT_UPDATE_URL_TRUNK_SYMBOLS)); + case UPDATE_MODE_CUSTOM: + return db_get_tsa(NULL, MODNAME, "UpdateUrl"); + } #endif } -- cgit v1.2.3