[RAPPS] Don't use CDownloadManager outside loaddlg.cpp

This commit is contained in:
Giannis Adamopoulos 2019-04-28 06:19:43 +03:00 committed by Mark Jansen
parent 2c965f67d5
commit 1807dbfd6d
No known key found for this signature in database
GPG key ID: B39240EE84BEAE8B
5 changed files with 79 additions and 66 deletions

View file

@ -300,7 +300,7 @@ BOOL CAvailableApps::UpdateAppsDB()
return TRUE;
}
CDownloadManager::DownloadApplicationsDB(APPLICATION_DATABASE_URL);
DownloadApplicationsDB(APPLICATION_DATABASE_URL);
if (!ExtractFilesFromCab(m_Strings.szCabName,
m_Strings.szCabDir,

View file

@ -1470,11 +1470,11 @@ private:
{
if (nSelectedApps > 0)
{
CDownloadManager::DownloadListOfApplications(m_AvailableApps.GetSelected());
DownloadListOfApplications(m_AvailableApps.GetSelected(), FALSE);
UpdateApplicationsList(-1);
m_ListView->SetSelected(-1, FALSE);
}
else if (CDownloadManager::DownloadApplication(m_ListView->GetSelectedData()))
else if (DownloadApplication(m_ListView->GetSelectedData(), FALSE))
{
UpdateApplicationsList(-1);
}

View file

@ -5,38 +5,16 @@
#include <windef.h>
#include <atlsimpcoll.h>
// Download dialog (loaddlg.cpp)
class CDowloadingAppsListView;
struct DownloadInfo;
class CDownloadManager
{
static ATL::CSimpleArray<DownloadInfo> AppsToInstallList;
static CDowloadingAppsListView DownloadsListView;
static VOID Download(const DownloadInfo& DLInfo, BOOL bIsModal = FALSE);
static VOID SetProgressMarquee(HWND Item, BOOL Enable);
public:
static INT_PTR CALLBACK DownloadDlgProc(HWND Dlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
static LRESULT CALLBACK DownloadProgressProc(HWND hWnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam,
UINT_PTR uIdSubclass,
DWORD_PTR dwRefData);
static DWORD WINAPI ThreadFunc(LPVOID Context);
static BOOL DownloadListOfApplications(const ATL::CSimpleArray<CAvailableApplicationInfo>& AppsList, BOOL bIsModal = FALSE);
static BOOL DownloadApplication(CAvailableApplicationInfo* pAppInfo, BOOL bIsModal = FALSE);
static VOID DownloadApplicationsDB(LPCWSTR lpUrl);
static VOID LaunchDownloadDialog(BOOL);
};
// Settings dialog (settingsdlg.cpp)
VOID CreateSettingsDlg(HWND hwnd);
// About dialog (aboutdlg.cpp)
VOID ShowAboutDialog();
//Main window
VOID ShowMainWindow(INT nShowCmd);
// Download dialogs
VOID DownloadApplicationsDB(LPCWSTR lpUrl);
BOOL DownloadApplication(CAvailableApplicationInfo* pAppInfo, BOOL bIsModal);
BOOL DownloadListOfApplications(const ATL::CSimpleArray<CAvailableApplicationInfo>& AppsList, BOOL bIsModal);

View file

@ -384,10 +384,43 @@ inline VOID MessageBox_LoadString(HWND hMainWnd, INT StringID)
}
}
// Download dialog (loaddlg.cpp)
class CDownloadManager
{
static ATL::CSimpleArray<DownloadInfo> AppsToInstallList;
static CDowloadingAppsListView DownloadsListView;
static VOID SetProgressMarquee(HWND Item, BOOL Enable);
public:
static VOID Add(DownloadInfo info);
static VOID Download(const DownloadInfo& DLInfo, BOOL bIsModal = FALSE);
static INT_PTR CALLBACK DownloadDlgProc(HWND Dlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
static LRESULT CALLBACK DownloadProgressProc(HWND hWnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam,
UINT_PTR uIdSubclass,
DWORD_PTR dwRefData);
static DWORD WINAPI ThreadFunc(LPVOID Context);
static BOOL DownloadListOfApplications(const ATL::CSimpleArray<CAvailableApplicationInfo>& AppsList, BOOL bIsModal = FALSE);
static BOOL DownloadApplication(CAvailableApplicationInfo* pAppInfo, BOOL bIsModal = FALSE);
static VOID DownloadApplicationsDB(LPCWSTR lpUrl);
static VOID LaunchDownloadDialog(BOOL);
};
// CDownloadManager
ATL::CSimpleArray<DownloadInfo> CDownloadManager::AppsToInstallList;
CDowloadingAppsListView CDownloadManager::DownloadsListView;
VOID CDownloadManager::Add(DownloadInfo info)
{
AppsToInstallList.Add(info);
}
VOID CDownloadManager::Download(const DownloadInfo &DLInfo, BOOL bIsModal)
{
AppsToInstallList.RemoveAll();
@ -927,40 +960,6 @@ end:
return 0;
}
BOOL CDownloadManager::DownloadListOfApplications(const ATL::CSimpleArray<CAvailableApplicationInfo>& AppsList, BOOL bIsModal)
{
if (AppsList.GetSize() == 0)
return FALSE;
// Initialize shared variables
for (INT i = 0; i < AppsList.GetSize(); ++i)
{
AppsToInstallList.Add(AppsList[i]); // implicit conversion to DownloadInfo
}
// Create a dialog and issue a download process
LaunchDownloadDialog(bIsModal);
return TRUE;
}
BOOL CDownloadManager::DownloadApplication(CAvailableApplicationInfo* pAppInfo, BOOL bIsModal)
{
if (!pAppInfo)
return FALSE;
Download(*pAppInfo, bIsModal);
return TRUE;
}
VOID CDownloadManager::DownloadApplicationsDB(LPCWSTR lpUrl)
{
static DownloadInfo DatabaseDLInfo;
DatabaseDLInfo.szUrl = lpUrl;
DatabaseDLInfo.szName.LoadStringW(IDS_DL_DIALOG_DB_DISP);
Download(DatabaseDLInfo, TRUE);
}
//TODO: Reuse the dialog
VOID CDownloadManager::LaunchDownloadDialog(BOOL bIsModal)
{
@ -980,3 +979,39 @@ VOID CDownloadManager::LaunchDownloadDialog(BOOL bIsModal)
}
}
// CDownloadManager
BOOL DownloadListOfApplications(const ATL::CSimpleArray<CAvailableApplicationInfo>& AppsList, BOOL bIsModal)
{
if (AppsList.GetSize() == 0)
return FALSE;
// Initialize shared variables
for (INT i = 0; i < AppsList.GetSize(); ++i)
{
CDownloadManager::Add(AppsList[i]); // implicit conversion to DownloadInfo
}
// Create a dialog and issue a download process
CDownloadManager::LaunchDownloadDialog(bIsModal);
return TRUE;
}
BOOL DownloadApplication(CAvailableApplicationInfo* pAppInfo, BOOL bIsModal)
{
if (!pAppInfo)
return FALSE;
CDownloadManager::Download(*pAppInfo, bIsModal);
return TRUE;
}
VOID DownloadApplicationsDB(LPCWSTR lpUrl)
{
static DownloadInfo DatabaseDLInfo;
DatabaseDLInfo.szUrl = lpUrl;
DatabaseDLInfo.szName.LoadStringW(IDS_DL_DIALOG_DB_DISP);
CDownloadManager::Download(DatabaseDLInfo, TRUE);
}

View file

@ -67,7 +67,7 @@ BOOL UseCmdParameters(LPWSTR lpCmdLine)
ATL::CSimpleArray<CAvailableApplicationInfo> arrAppInfo = apps.FindInfoList(arrNames);
if (arrAppInfo.GetSize() > 0)
{
CDownloadManager::DownloadListOfApplications(arrAppInfo, TRUE);
DownloadListOfApplications(arrAppInfo, TRUE);
return TRUE;
}