This is the mail archive of the cygwin-apps@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[setup PATCH] Rework do_download [next_dialog removal (2b)]


And another...

+2003-07-30  Max Bowsher  <maxb@ukf.net>
+
+ * download.cc (do_download_thread): Return bool. Move program flow
+ logic to threebar.cc.
+ (do_download_thread_reflector): Put returned bool in lParam.
+ * threebar.cc: Include "msg.h".
+ (WM_APP_DOWNLOAD_THREAD_COMPLETE): Rework for new meaning of lParam,
+ incorporating program flow logic from download.cc.

Index: download.cc
===================================================================
RCS file: /home/max/cvsmirror/cygwin-apps-cvs/setup/download.cc,v
retrieving revision 2.37
diff -u -p -r2.37 download.cc
--- download.cc 7 Apr 2003 12:46:55 -0000 2.37
+++ download.cc 30 Jul 2003 22:03:05 -0000
@@ -221,7 +221,7 @@ download_one (packagesource & pkgsource,
   return 1;
 }
 
-static void
+static bool
 do_download_thread (HINSTANCE h, HWND owner)
 {
   int errors = 0;
@@ -302,25 +302,7 @@ do_download_thread (HINSTANCE h, HWND ow
  }
     }
 
-  if (errors)
-    {
-      if (yesno (owner, IDS_DOWNLOAD_INCOMPLETE) == IDYES)
- {
-   next_dialog = IDD_SITE;
-   return;
- }
-    }
-
-  if (source == IDC_SOURCE_DOWNLOAD)
-    {
-      if (errors)
- exit_msg = IDS_DOWNLOAD_INCOMPLETE;
-      else if (!unattended_mode)
- exit_msg = IDS_DOWNLOAD_COMPLETE;
-      next_dialog = 0;
-    }
-  else
-    next_dialog = IDD_S_INSTALL;
+  return (errors == 0);
 }
 
 static DWORD WINAPI
@@ -329,10 +311,11 @@ do_download_reflector (void *p)
   HANDLE *context;
   context = (HANDLE *) p;
 
-  do_download_thread ((HINSTANCE) context[0], (HWND) context[1]);
+  bool succeeded = do_download_thread ((HINSTANCE) context[0],
+      (HWND) context[1]);
 
   // Tell the progress page that we're done downloading
-  Progress.PostMessage (WM_APP_DOWNLOAD_THREAD_COMPLETE, 0, next_dialog);
+  Progress.PostMessage (WM_APP_DOWNLOAD_THREAD_COMPLETE, 0, succeeded);
 
   ExitThread(0);
 }
Index: threebar.cc
===================================================================
RCS file: /home/max/cvsmirror/cygwin-apps-cvs/setup/threebar.cc,v
retrieving revision 2.7
diff -u -p -r2.7 threebar.cc
--- threebar.cc 30 Jul 2003 21:49:53 -0000 2.7
+++ threebar.cc 30 Jul 2003 22:05:48 -0000
@@ -27,6 +27,7 @@
 #include "threebar.h"
 #include "cistring.h"
 #include "state.h"
+#include "msg.h"
 
 bool ThreeBarProgressPage::Create ()
 {
@@ -148,21 +149,32 @@ ThreeBarProgressPage::OnMessageApp (UINT
       }
     case WM_APP_DOWNLOAD_THREAD_COMPLETE:
       {
- if (lParam == IDD_S_INSTALL)
+ if (!lParam)
    {
-     // Download is complete and we want to go on to the install.
-     Window::PostMessage (WM_APP_START_INSTALL);
+     if (yesno (GetHWND(), IDS_DOWNLOAD_INCOMPLETE) == IDYES)
+       {
+  // Download failed for some reason,
+  // go back to site selection page
+  GetOwner ()->SetActivePageByID (IDD_SITE);
+  break;
+       }
    }
- else if (lParam != 0)
+
+ if (source == IDC_SOURCE_DOWNLOAD)
    {
-     // Download failed for some reason, go back to site selection page
-     GetOwner ()->SetActivePageByID (lParam);
+     if (!lParam)
+       exit_msg = IDS_DOWNLOAD_INCOMPLETE;
+     else if (!unattended_mode)
+       exit_msg = IDS_DOWNLOAD_COMPLETE;
+     // Was a download-only, and is complete or failed.
+     GetOwner ()->PressButton (PSBTN_CANCEL);
    }
  else
    {
-     // Was a download-only, and is complete or failed.
-     GetOwner ()->PressButton (PSBTN_CANCEL);
+     // Download is complete and we want to go on to the install.
+     Window::PostMessage (WM_APP_START_INSTALL);
    }
+
  break;
       }
     case WM_APP_START_INSTALL:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]