Added patch to display animations for SHFileOperation progress dialog.

This commit is contained in:
Sebastian Lackner 2015-02-27 21:06:05 +01:00
parent 480bab002e
commit 9146caa7ae
3 changed files with 65 additions and 0 deletions

1
debian/changelog vendored
View File

@ -15,6 +15,7 @@ wine-staging (1.7.38) UNRELEASED; urgency=low
* Added patches for ntoskrnl.ProbeFor{Read,Write}.
* Added patch for support of shell32 file operation progress dialog.
* Added patch for basic implementation of job objects.
* Added patch to display animations for SHFileOperation progress dialog.
* Removed patch to properly call DriverUnload when unloading device drivers (accepted upstream).
* Removed patch to allow Accept-Encoding for HTTP/1.0 in wininet (accepted upstream).
* Removed patch to declare pDirectInputCreateEx in a MSVC compatible way (accepted upstream).

View File

@ -3437,10 +3437,12 @@ if test "$enable_shell32_Progress_Dialog" -eq 1; then
patch_apply shell32-Progress_Dialog/0001-shell32-Correct-indentation-in-shfileop.c.patch
patch_apply shell32-Progress_Dialog/0002-shell32-Pass-FILE_INFORMATION-into-SHNotify-function.patch
patch_apply shell32-Progress_Dialog/0003-shell32-Implement-file-operation-progress-dialog.patch
patch_apply shell32-Progress_Dialog/0004-shell32-Show-animation-during-SHFileOperation.patch
(
echo '+ { "Michael Müller", "shell32: Correct indentation in shfileop.c.", 1 },';
echo '+ { "Michael Müller", "shell32: Pass FILE_INFORMATION into SHNotify* functions.", 1 },';
echo '+ { "Michael Müller", "shell32: Implement file operation progress dialog.", 1 },';
echo '+ { "Michael Müller", "shell32: Show animation during SHFileOperation.", 1 },';
) >> "$patchlist"
fi

View File

@ -0,0 +1,62 @@
From 29f275d5e7b270af22e40934d29237adc4641be0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 27 Feb 2015 17:57:05 +0100
Subject: shell32: Show animation during SHFileOperation.
---
dlls/shell32/shlfileop.c | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
diff --git a/dlls/shell32/shlfileop.c b/dlls/shell32/shlfileop.c
index cef2246..05fade1 100644
--- a/dlls/shell32/shlfileop.c
+++ b/dlls/shell32/shlfileop.c
@@ -1992,7 +1992,7 @@ static void progressbar_calc_totalsize(FILE_OPERATION *op, const FILE_LIST *from
static void progressbar_update_title(FILE_OPERATION *op)
{
WCHAR buf[64];
- UINT title_id, builder_id;
+ UINT title_id, builder_id, animation_id;
if (op->progress == NULL)
return;
@@ -2000,18 +2000,21 @@ static void progressbar_update_title(FILE_OPERATION *op)
switch (op->req->wFunc)
{
case FO_COPY:
- title_id = IDS_FILEOP_COPYING;
- builder_id = IDS_FILEOP_FROM_TO;
+ title_id = IDS_FILEOP_COPYING;
+ builder_id = IDS_FILEOP_FROM_TO;
+ animation_id = IDR_AVI_FILECOPY;
break;
case FO_DELETE:
- title_id = IDS_FILEOP_DELETING;
- builder_id = IDS_FILEOP_FROM;
+ title_id = IDS_FILEOP_DELETING;
+ builder_id = IDS_FILEOP_FROM;
+ animation_id = IDR_AVI_FILEDELETE;
break;
case FO_MOVE:
- title_id = IDS_FILEOP_MOVING;
- builder_id = IDS_FILEOP_FROM_TO;
+ title_id = IDS_FILEOP_MOVING;
+ builder_id = IDS_FILEOP_FROM_TO;
+ animation_id = IDR_AVI_FILEMOVE;
break;
default:
@@ -2026,6 +2029,8 @@ static void progressbar_update_title(FILE_OPERATION *op)
LoadStringW(shell32_hInstance, IDS_FILEOP_PREFLIGHT, buf, sizeof(buf)/sizeof(WCHAR));
IProgressDialog_SetLine(op->progress, 1, buf, FALSE, NULL);
+
+ IProgressDialog_SetAnimation(op->progress, shell32_hInstance, animation_id);
}
static void progressbar_update_files(FILE_OPERATION *op, LPCWSTR src, LPCWSTR dst)
--
2.3.0