diff options
author | (no author) <(no author)@4f64403b-2f21-0410-a795-97e2b3489a10> | 2010-11-14 18:14:01 +0000 |
---|---|---|
committer | (no author) <(no author)@4f64403b-2f21-0410-a795-97e2b3489a10> | 2010-11-14 18:14:01 +0000 |
commit | a0c86284a825ddc47a94309aed721b32545697fc (patch) | |
tree | 393bf1b29a58c785c6e4e781f8a425256587d341 /updater/options.cpp | |
parent | 4021dc0bd5e228fa59f06dcc6b1c404d4c290ec8 (diff) |
Removed folder selection dialog
git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@571 4f64403b-2f21-0410-a795-97e2b3489a10
Diffstat (limited to 'updater/options.cpp')
-rw-r--r-- | updater/options.cpp | 235 |
1 files changed, 30 insertions, 205 deletions
diff --git a/updater/options.cpp b/updater/options.cpp index 312adbd..aa51a07 100644 --- a/updater/options.cpp +++ b/updater/options.cpp @@ -373,84 +373,6 @@ static INT_PTR CALLBACK DlgProcOpts1(HWND hwndDlg, UINT msg, WPARAM wParam, LPAR return FALSE;
}
-static INT_PTR CALLBACK DlgProcOpts2(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- switch ( msg )
- {
- case WM_INITDIALOG:
- TranslateDialogDefault( hwndDlg );
-
- SetDlgItemText(hwndDlg, IDC_ED_DATA, options.data_folder);
- SetDlgItemText(hwndDlg, IDC_ED_BACKUPS, options.backup_folder);
- SetDlgItemText(hwndDlg, IDC_ED_ZIPS, options.zip_folder);
-
- return FALSE;
- case WM_COMMAND:
- if ( HIWORD( wParam ) == EN_CHANGE && ( HWND )lParam == GetFocus()) {
- switch( LOWORD( wParam )) {
- case IDC_ED_DATA:
- case IDC_ED_BACKUPS:
- case IDC_ED_ZIPS:
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- }
- }
- if ( HIWORD( wParam ) == BN_CLICKED ) {
-
- TCHAR folder_buff[MAX_PATH];
- BROWSEINFO bi = {0};
- LPCITEMIDLIST pidl;
-
- bi.hwndOwner = hwndDlg;
- bi.pidlRoot = 0;
- bi.pszDisplayName = folder_buff;
- bi.lpszTitle = TranslateT("Select Folder");
- bi.ulFlags = 0;
- bi.lpfn = 0;
- bi.lParam = 0;
- bi.iImage = 0;
-
- if((pidl = SHBrowseForFolder(&bi)) != 0) {
- SHGetPathFromIDList(pidl, folder_buff);
- CoTaskMemFree((void *)pidl);
-
- switch( LOWORD( wParam )) {
- case IDC_BTN_BRDATA:
- SetDlgItemText(hwndDlg, IDC_ED_DATA, folder_buff);
- SendMessage( GetParent( hwndDlg ), PSM_CHANGED, 0, 0 );
- break;
- case IDC_BTN_BRBACKUPS:
- SetDlgItemText(hwndDlg, IDC_ED_BACKUPS, folder_buff);
- SendMessage( GetParent( hwndDlg ), PSM_CHANGED, 0, 0 );
- break;
- case IDC_BTN_BRZIPS:
- SetDlgItemText(hwndDlg, IDC_ED_ZIPS, folder_buff);
- SendMessage( GetParent( hwndDlg ), PSM_CHANGED, 0, 0 );
- break;
- }
-
-
- return TRUE;
- }
- }
- return FALSE;
- case WM_NOTIFY:
- if (((LPNMHDR)lParam)->code == (unsigned)PSN_APPLY ) {
- GetDlgItemText(hwndDlg, IDC_ED_DATA, options.data_folder, MAX_PATH);
- GetDlgItemText(hwndDlg, IDC_ED_BACKUPS, options.backup_folder, MAX_PATH);
- GetDlgItemText(hwndDlg, IDC_ED_ZIPS, options.zip_folder, MAX_PATH);
-
- _tcscpy(options.temp_folder, options.data_folder);
- _tcscat(options.temp_folder, _T("\\updates"));
-
- SaveOptions();
-
- return TRUE;
- }
- break;
- }
- return FALSE;
-}
-
int OptInit(WPARAM wParam,LPARAM lParam)
{
DWORD mirVir = (DWORD)CallService(MS_SYSTEM_GETVERSION, 0, 0);
@@ -461,36 +383,12 @@ int OptInit(WPARAM wParam,LPARAM lParam) odp.position = -790000000;
odp.hInstance = hInst;
- if(ServiceExists(MS_FOLDERS_GET_PATH)) {
- odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT1);
- //odp.pszTitle = LPGEN("Settings");
- //odp.pszGroup = LPGEN("Updates");
- odp.ptszTitle = LPGENT("Updater");
- odp.ptszGroup = LPGENT("Services");
- odp.nIDBottomSimpleControl = 0;
- odp.pfnDlgProc = DlgProcOpts1;
- CallService( MS_OPT_ADDPAGE, wParam,( LPARAM )&odp );
- } else {
- odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT1);
- //odp.pszTitle = LPGEN("Settings");
- //odp.pszGroup = LPGEN("Updates");
- odp.ptszTitle = (mirVir >= 0x00060000 ? LPGENT("Updater") : LPGENT("Settings"));
- odp.ptszGroup = (mirVir >= 0x00060000 ? LPGENT("Services") : LPGENT("Updates"));
- odp.nIDBottomSimpleControl = 0;
- odp.pfnDlgProc = DlgProcOpts1;
- odp.ptszTab = LPGENT("Settings");
- CallService( MS_OPT_ADDPAGE, wParam,( LPARAM )&odp );
-
- odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT2);
- //odp.pszTitle = LPGEN("Folders");
- //odp.pszGroup = LPGEN("Updates");
- odp.ptszTitle = (mirVir >= 0x00060000 ? LPGENT("Updater") : LPGENT("Folders"));
- odp.ptszGroup = (mirVir >= 0x00060000 ? LPGENT("Services") : LPGENT("Updates"));
- odp.nIDBottomSimpleControl = 0;
- odp.pfnDlgProc = DlgProcOpts2;
- odp.ptszTab = LPGENT("Folders");
- CallService( MS_OPT_ADDPAGE, wParam,( LPARAM )&odp );
- }
+ odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT1);
+ odp.ptszTitle = LPGENT("Updater");
+ odp.ptszGroup = LPGENT("Services");
+ odp.nIDBottomSimpleControl = 0;
+ odp.pfnDlgProc = DlgProcOpts1;
+ CallService( MS_OPT_ADDPAGE, wParam,( LPARAM )&odp );
return 0;
}
@@ -510,7 +408,8 @@ void InitOptionsMenuItems() { add_update_and_exit_menu_item();
}
-int FoldersPathChanged(WPARAM wParam, LPARAM lParam) {
+int FoldersPathChanged(WPARAM wParam, LPARAM lParam)
+{
FOLDERSGETDATA fgd = {0};
fgd.cbSize = sizeof(fgd);
fgd.nMaxPathSize = MAX_PATH;
@@ -524,13 +423,13 @@ int FoldersPathChanged(WPARAM wParam, LPARAM lParam) { fgd.szPathT = options.zip_folder;
CallService(MS_FOLDERS_GET_PATH, (WPARAM)hArchivePath, (WPARAM)&fgd);
- _tcscpy(options.temp_folder, options.data_folder);
- _tcscat(options.temp_folder, _T("\\updates"));
+ mir_sntprintf(options.temp_folder, SIZEOF(options.temp_folder), _T("%s\\updates"), options.data_folder);
return 0;
}
-void LoadOptions() {
+void LoadOptions(void)
+{
options.check_on_startup = (DBGetContactSettingByte(0, MODULE, "CheckOnStartup", 1) == 1);
options.check_once = (DBGetContactSettingByte(0, MODULE, "CheckOnce", 1) == 1);
options.check_daily = (DBGetContactSettingByte(0, MODULE, "CheckDaily", 1) == 1);
@@ -552,89 +451,45 @@ void LoadOptions() { options.ver_req = (VersionRequirement)DBGetContactSettingByte(0, MODULE, "VersionRequirement", VR_BUILD);
options.auto_dll_only = (DBGetContactSettingByte(0, MODULE, "AutoDLLOnly", 0) == 1);
- if(ServiceExists(MS_FOLDERS_GET_PATH)) {
+ if(ServiceExists(MS_FOLDERS_GET_PATH))
+ {
FOLDERSDATA fd = {0};
fd.cbSize = sizeof(fd);
#ifdef _UNICODE
fd.flags = FF_UNICODE;
#endif
- strncpy(fd.szSection, "Updates", 64);
+ strcpy(fd.szSection, "Updates");
- strncpy(fd.szName, "Backups", 64);
- fd.szFormatT = _T(MIRANDA_PATH) _T("\\updater\\backups");
+ strcpy(fd.szName, "Backups");
+ fd.szFormatT = _T("%miranda_userdata%\\updater\\backups");
hBackupPath = (HANDLE)CallService(MS_FOLDERS_REGISTER_PATH, 0, (LPARAM)&fd);
- strncpy(fd.szName, "Data", 64);
- fd.szFormatT = _T(MIRANDA_PATH) _T("\\updater\\data");
+ strcpy(fd.szName, "Data");
+ fd.szFormatT = _T("%miranda_userdata%\\updater\\data");
hDataPath = (HANDLE)CallService(MS_FOLDERS_REGISTER_PATH, 0, (LPARAM)&fd);
- strncpy(fd.szName, "Saved Archives", 64);
- fd.szFormatT = _T(MIRANDA_PATH) _T("\\updater\\archives");
+ strcpy(fd.szName, "Saved Archives");
+ fd.szFormatT = _T("%miranda_userdata%\\updater\\archives");
hArchivePath = (HANDLE)CallService(MS_FOLDERS_REGISTER_PATH, 0, (LPARAM)&fd);
HookEvent(ME_FOLDERS_PATH_CHANGED, FoldersPathChanged);
FoldersPathChanged(0, 0);
-
- return;
}
+ else
+ {
+ TCHAR* mir_path = Utils_ReplaceVarsT(_T("%miranda_userdata%"));
- REPLACEVARSDATA dat = {0};
- dat.cbSize = sizeof(dat);
- dat.dwFlags = RVF_TCHAR;
-
- TCHAR* mir_path = (TCHAR*)CallService(MS_UTILS_REPLACEVARS, (WPARAM)_T("%miranda_userdata%"), (LPARAM)&dat);
-
- DBVARIANT dbv;
- if(!DBGetString(0, MODULE, "BackupFolder", &dbv)) {
- if(_tcslen(dbv.ptszVal) >= 2 && dbv.ptszVal[1] == _T(':')) // detect an absolute path?
- _tcsncpy(options.backup_folder, dbv.ptszVal, MAX_PATH);
- else {
- _tcscpy(options.backup_folder, mir_path);
- _tcscat(options.backup_folder, dbv.ptszVal);
- }
- DBFreeVariant(&dbv);
- } else {
-
- _tcscpy(options.backup_folder, mir_path);
- _tcscat(options.backup_folder, _T("\\Updater"));
- _tcscat(options.backup_folder, _T("\\Backups"));
- }
+ mir_sntprintf(options.backup_folder, SIZEOF(options.backup_folder), _T("%s\\Updater\\Backups"), mir_path);
+ mir_sntprintf(options.data_folder, SIZEOF(options.data_folder), _T("%s\\Updater\\Data"), mir_path);
+ mir_sntprintf(options.zip_folder, SIZEOF(options.zip_folder), _T("%s\\Updater\\Archives"), mir_path);
+ mir_sntprintf(options.temp_folder, SIZEOF(options.temp_folder), _T("%s\\updates"), options.data_folder);
- if(!DBGetString(0, MODULE, " DataFolder", &dbv)) {
- if(_tcslen(dbv.ptszVal) >= 2 && dbv.ptszVal[1] == _T(':')) // detect an absolute path?
- _tcsncpy(options.data_folder, dbv.ptszVal, MAX_PATH);
- else {
- _tcscpy(options.data_folder, mir_path);
- _tcscat(options.data_folder, dbv.ptszVal);
- }
- DBFreeVariant(&dbv);
- } else {
- _tcscpy(options.data_folder, mir_path);
- _tcscat(options.data_folder, _T("\\Updater"));
- _tcscat(options.data_folder, _T("\\Data"));
+ mir_free(mir_path);
}
-
- if(!DBGetString(0, MODULE, "ZipFolder", &dbv)) {
- if(_tcslen(dbv.ptszVal) >= 2 && dbv.ptszVal[1] == _T(':')) // detect an absolute path?
- _tcsncpy(options.zip_folder, dbv.ptszVal, MAX_PATH);
- else {
- _tcscpy(options.zip_folder, mir_path);
- _tcscat(options.zip_folder, dbv.ptszVal);
- }
- DBFreeVariant(&dbv);
- } else {
- _tcscpy(options.zip_folder, mir_path);
- _tcscat(options.zip_folder, _T("\\Updater"));
- _tcscat(options.zip_folder, _T("\\Archives"));
- }
-
- _tcscpy(options.temp_folder, options.data_folder);
- _tcscat(options.temp_folder, _T("\\updates"));
-
- mir_free(mir_path);
}
-void SaveOptions() {
+void SaveOptions()
+{
DBWriteContactSettingByte(0, MODULE, "CheckOnStartup", options.check_on_startup ? 1 : 0);
DBWriteContactSettingByte(0, MODULE, "CheckOnce", options.check_once ? 1 : 0);
DBWriteContactSettingByte(0, MODULE, "CheckDaily", options.check_daily ? 1 : 0);
@@ -649,36 +504,6 @@ void SaveOptions() { DBWriteContactSettingByte(0, MODULE, "SaveZips", (int)options.save_zips);
DBWriteContactSettingByte(0, MODULE, "NoUnzip", (int)options.no_unzip);
DBWriteContactSettingByte(0, MODULE, "AutoDLLOnly", options.auto_dll_only ? 1 : 0);
-
- REPLACEVARSDATA dat = {0};
- dat.cbSize = sizeof(dat);
- dat.dwFlags = RVF_TCHAR;
-
- TCHAR* mir_path = (TCHAR*)CallService(MS_UTILS_REPLACEVARS, (WPARAM)_T("%miranda_userdata%"), (LPARAM)&dat);
- size_t mp_len = _tcslen(mir_path);
-
- // remove mir_path from the front of folder names, so that profile can be moved
- if(_tcslen(options.backup_folder) > mp_len && _tcsncmp(options.backup_folder, mir_path, mp_len) == 0) {
- TCHAR *p = options.backup_folder + mp_len;
- DBWriteString(0, MODULE, "BackupFolder", p);
- } else {
- DBWriteString(0, MODULE, "BackupFolder", options.backup_folder);
- }
-
- if(_tcslen(options.data_folder) > mp_len && _tcsncmp(options.data_folder, mir_path, mp_len) == 0) {
- TCHAR *p = options.data_folder + mp_len;
- DBWriteString(0, MODULE, "DataFolder", p);
- } else {
- DBWriteString(0, MODULE, "DataFolder", options.data_folder);
- }
-
- if(_tcslen(options.zip_folder) > mp_len && _tcsncmp(options.zip_folder, mir_path, mp_len) == 0) {
- TCHAR *p = options.zip_folder + mp_len;
- DBWriteString(0, MODULE, "ZipFolder", p);
- } else {
- DBWriteString(0, MODULE, "ZipFolder", options.zip_folder);
- }
- mir_free(mir_path);
}
|