Module: wine Branch: refs/heads/master Commit: ea0a102d555be53f9650104bddb8085299918345 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=ea0a102d555be53f9650104b...
Author: Mikołaj Zalewski mikolaj@zalewski.pl Date: Thu Jul 6 20:46:21 2006 +0200
shell32: Show a confirmation before deleting files with syscalls.
---
dlls/shell32/shell32_En.rc | 1 + dlls/shell32/shell32_main.h | 1 + dlls/shell32/shfldr_unixfs.c | 4 ++++ dlls/shell32/shlfileop.c | 5 +++++ dlls/shell32/shresdef.h | 1 + 5 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/dlls/shell32/shell32_En.rc b/dlls/shell32/shell32_En.rc index 689858d..2cf8047 100644 --- a/dlls/shell32/shell32_En.rc +++ b/dlls/shell32/shell32_En.rc @@ -164,6 +164,7 @@ STRINGTABLE DISCARDABLE IDS_DELETEFOLDER_CAPTION "Confirm folder deletion" IDS_DELETEITEM_TEXT "Are you sure you want to delete '%1'?" IDS_DELETEMULTIPLE_TEXT "Are you sure you want to delete these %1 items?" + IDS_DELETESELECTED_TEXT "Are you sure you want to delete the selected item(s)?" IDS_OVERWRITEFILE_TEXT "OverWrite File %1?" IDS_OVERWRITEFILE_CAPTION "Confirm File OverWrite"
diff --git a/dlls/shell32/shell32_main.h b/dlls/shell32/shell32_main.h index cc021d1..1ba0126 100644 --- a/dlls/shell32/shell32_main.h +++ b/dlls/shell32/shell32_main.h @@ -147,6 +147,7 @@ #define ASK_DELETE_FOLDER 2 #define ASK_DELETE_MULTIPLE_ITEM 3 #define ASK_CREATE_FOLDER 4 #define ASK_OVERWRITE_FILE 5 +#define ASK_DELETE_SELECTED 6
BOOL SHELL_DeleteDirectoryW(HWND hwnd, LPCWSTR pwszDir, BOOL bShowUI); BOOL SHELL_ConfirmDialogW(HWND hWnd, int nKindOfDialog, LPCWSTR szDir); diff --git a/dlls/shell32/shfldr_unixfs.c b/dlls/shell32/shfldr_unixfs.c index 2fd7de5..7d458b7 100644 --- a/dlls/shell32/shfldr_unixfs.c +++ b/dlls/shell32/shfldr_unixfs.c @@ -1825,8 +1825,12 @@ static HRESULT UNIXFS_delete_with_shfile static HRESULT UNIXFS_delete_with_syscalls(UnixFolder *This, UINT cidl, LPCITEMIDLIST *apidl) { char szAbsolute[FILENAME_MAX], *pszRelative; + static const WCHAR empty[] = {0}; int i;
+ if (!SHELL_ConfirmDialogW(GetActiveWindow(), ASK_DELETE_SELECTED, empty)) + return S_OK; + lstrcpyA(szAbsolute, This->m_pszPath); pszRelative = szAbsolute + lstrlenA(szAbsolute);
diff --git a/dlls/shell32/shlfileop.c b/dlls/shell32/shlfileop.c index 977e301..e1d7ba9 100644 --- a/dlls/shell32/shlfileop.c +++ b/dlls/shell32/shlfileop.c @@ -91,6 +91,11 @@ static BOOL SHELL_ConfirmIDs(int nKindOf ids->caption_resource_id = IDS_DELETEITEM_CAPTION; ids->text_resource_id = IDS_DELETEMULTIPLE_TEXT; return TRUE; + case ASK_DELETE_SELECTED: + ids->icon_resource_id = IDI_SHELL_CONFIRM_DELETE; + ids->caption_resource_id = IDS_DELETEITEM_CAPTION; + ids->text_resource_id = IDS_DELETESELECTED_TEXT; + return TRUE; case ASK_OVERWRITE_FILE: ids->hIconInstance = NULL; ids->icon_resource_id = IDI_WARNING; diff --git a/dlls/shell32/shresdef.h b/dlls/shell32/shresdef.h index aa95d33..7acd382 100644 --- a/dlls/shell32/shresdef.h +++ b/dlls/shell32/shresdef.h @@ -52,6 +52,7 @@ #define IDS_DELETEITEM_TEXT 34 #define IDS_DELETEMULTIPLE_TEXT 35 #define IDS_OVERWRITEFILE_CAPTION 36 #define IDS_OVERWRITEFILE_TEXT 37 +#define IDS_DELETESELECTED_TEXT 38
#define IDS_RESTART_TITLE 40 #define IDS_RESTART_PROMPT 41