This is the mail archive of the
cygwin-apps@cygwin.com
mailing list for the Cygwin project.
Ping: [setup PATCH] Rework do_download [next_dialog removal (2b)]
- From: "Max Bowsher" <maxb at ukf dot net>
- To: "Max Bowsher" <maxb at ukf dot net>,<cygwin-apps at cygwin dot com>
- Date: Sun, 3 Aug 2003 22:23:03 +0100
- Subject: Ping: [setup PATCH] Rework do_download [next_dialog removal (2b)]
Ping? I'm feeling that this might have gone unnoticed.
Max Bowsher wrote:
> 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: