https://git.reactos.org/?p=reactos.git;a=commitdiff;h=25f78cda99c6ad4d982e53927bd17e8517cc6a4d

commit 25f78cda99c6ad4d982e53927bd17e8517cc6a4d
Author:     Oleg Dubinskiy <oleg.dubinskij2...@yandex.ua>
AuthorDate: Thu Jul 23 21:30:05 2020 +0300
Commit:     Stanislav Motylkov <x86co...@gmail.com>
CommitDate: Sun Aug 16 02:25:44 2020 +0300

    [REGEDIT] Improve message box for importing registry files (#3006)
    
    - Change the messagebox's icon type from warning icon to question icon, 
because this is done in Windows Regedit too.
    - Use two buttons (Yes and No) or three buttons (Yes, No, and Cancel) 
depending on the file count.
    
    CORE-15494
    
    Co-authored-by: Stanislav Motylkov <x86co...@gmail.com>
---
 base/applications/regedit/regedit.c | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/base/applications/regedit/regedit.c 
b/base/applications/regedit/regedit.c
index 5f553d8bdf2..e26b0e564f0 100644
--- a/base/applications/regedit/regedit.c
+++ b/base/applications/regedit/regedit.c
@@ -140,16 +140,31 @@ BOOL PerformRegAction(REGEDIT_ACTION action, LPWSTR s, 
BOOL silent)
         {
             WCHAR szText[512];
             WCHAR filename[MAX_PATH];
+            LPWSTR command_line = s;
+            UINT count = 0, mbType = MB_YESNO;
             FILE *fp;
 
-            get_file_name(&s, filename);
-            if (!filename[0])
+            get_file_name(&command_line, filename);
+            while (filename[0])
+            {
+                count++;
+                get_file_name(&command_line, filename);
+            }
+
+            if (count == 0)
             {
                 InfoMessageBox(NULL, MB_OK | MB_ICONINFORMATION, NULL, L"No 
file name is specified.");
                 InfoMessageBox(NULL, MB_OK | MB_ICONINFORMATION, szTitle, 
usage);
                 exit(4);
             }
 
+            if (count > 1)
+            {
+                /* Enable three buttons if we have more than one file */
+                mbType = MB_YESNOCANCEL;
+            }
+
+            get_file_name(&s, filename);
             while (filename[0])
             {
                 /* Request import confirmation */
@@ -159,7 +174,7 @@ BOOL PerformRegAction(REGEDIT_ACTION action, LPWSTR s, BOOL 
silent)
 
                     LoadStringW(hInst, IDS_IMPORT_PROMPT, szText, 
COUNT_OF(szText));
 
-                    choice = InfoMessageBox(NULL, MB_YESNOCANCEL | 
MB_ICONWARNING, szTitle, szText, filename);
+                    choice = InfoMessageBox(NULL, mbType | MB_ICONQUESTION, 
szTitle, szText, filename);
 
                     switch (choice)
                     {

Reply via email to