mirror of
https://github.com/reactos/wine.git
synced 2025-02-10 06:14:29 +00:00
msi: Make sure reported progress adds up to projected progress.
This commit is contained in:
parent
ebf323cfcb
commit
ac994860af
@ -2565,7 +2565,7 @@ static UINT ITERATE_WriteRegistryValues(MSIRECORD *row, LPVOID param)
|
||||
BOOL check_first = FALSE;
|
||||
UINT rc;
|
||||
|
||||
msi_ui_progress( package, 2, 0, 0, 0 );
|
||||
msi_ui_progress( package, 2, REG_PROGRESS_VALUE, 0, 0 );
|
||||
|
||||
component = MSI_RecordGetString(row, 6);
|
||||
comp = msi_get_loaded_component(package,component);
|
||||
@ -2679,9 +2679,6 @@ static UINT ACTION_WriteRegistryValues(MSIPACKAGE *package)
|
||||
if (rc != ERROR_SUCCESS)
|
||||
return ERROR_SUCCESS;
|
||||
|
||||
/* increment progress bar each time action data is sent */
|
||||
msi_ui_progress( package, 1, REG_PROGRESS_VALUE, 1, 0 );
|
||||
|
||||
rc = MSI_IterateRecords(view, NULL, ITERATE_WriteRegistryValues, package);
|
||||
msiobj_release(&view->hdr);
|
||||
return rc;
|
||||
@ -2734,7 +2731,7 @@ static UINT ITERATE_RemoveRegistryValuesOnUninstall( MSIRECORD *row, LPVOID para
|
||||
UINT size;
|
||||
INT root;
|
||||
|
||||
msi_ui_progress( package, 2, 0, 0, 0 );
|
||||
msi_ui_progress( package, 2, REG_PROGRESS_VALUE, 0, 0 );
|
||||
|
||||
component = MSI_RecordGetString( row, 6 );
|
||||
comp = msi_get_loaded_component( package, component );
|
||||
@ -2783,7 +2780,6 @@ static UINT ITERATE_RemoveRegistryValuesOnUninstall( MSIRECORD *row, LPVOID para
|
||||
uirow = MSI_CreateRecord( 2 );
|
||||
MSI_RecordSetStringW( uirow, 1, ui_key_str );
|
||||
MSI_RecordSetStringW( uirow, 2, deformated_name );
|
||||
|
||||
msi_ui_actiondata( package, szRemoveRegistryValues, uirow );
|
||||
msiobj_release( &uirow->hdr );
|
||||
|
||||
@ -2804,8 +2800,6 @@ static UINT ITERATE_RemoveRegistryValuesOnInstall( MSIRECORD *row, LPVOID param
|
||||
UINT size;
|
||||
INT root;
|
||||
|
||||
msi_ui_progress( package, 2, 0, 0, 0 );
|
||||
|
||||
component = MSI_RecordGetString( row, 5 );
|
||||
comp = msi_get_loaded_component( package, component );
|
||||
if (!comp)
|
||||
@ -2850,7 +2844,6 @@ static UINT ITERATE_RemoveRegistryValuesOnInstall( MSIRECORD *row, LPVOID param
|
||||
uirow = MSI_CreateRecord( 2 );
|
||||
MSI_RecordSetStringW( uirow, 1, ui_key_str );
|
||||
MSI_RecordSetStringW( uirow, 2, deformated_name );
|
||||
|
||||
msi_ui_actiondata( package, szRemoveRegistryValues, uirow );
|
||||
msiobj_release( &uirow->hdr );
|
||||
|
||||
@ -2870,9 +2863,6 @@ static UINT ACTION_RemoveRegistryValues( MSIPACKAGE *package )
|
||||
{'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ',
|
||||
'`','R','e','m','o','v','e','R','e','g','i','s','t','r','y','`',0 };
|
||||
|
||||
/* increment progress bar each time action data is sent */
|
||||
msi_ui_progress( package, 1, REG_PROGRESS_VALUE, 1, 0 );
|
||||
|
||||
rc = MSI_DatabaseOpenViewW( package->db, registry_query, &view );
|
||||
if (rc == ERROR_SUCCESS)
|
||||
{
|
||||
@ -2905,8 +2895,7 @@ static UINT ACTION_InstallInitialize(MSIPACKAGE *package)
|
||||
static UINT ACTION_InstallValidate(MSIPACKAGE *package)
|
||||
{
|
||||
MSICOMPONENT *comp;
|
||||
DWORD progress = 0;
|
||||
DWORD total = 0;
|
||||
DWORD total = 0, count = 0;
|
||||
static const WCHAR q1[]=
|
||||
{'S','E','L','E','C','T',' ','*',' ', 'F','R','O','M',' ',
|
||||
'`','R','e','g','i','s','t','r','y','`',0};
|
||||
@ -2920,11 +2909,10 @@ static UINT ACTION_InstallValidate(MSIPACKAGE *package)
|
||||
rc = MSI_DatabaseOpenViewW(package->db, q1, &view);
|
||||
if (rc == ERROR_SUCCESS)
|
||||
{
|
||||
MSI_IterateRecords( view, &progress, NULL, package );
|
||||
MSI_IterateRecords( view, &count, NULL, package );
|
||||
msiobj_release( &view->hdr );
|
||||
total += progress * REG_PROGRESS_VALUE;
|
||||
total += count * REG_PROGRESS_VALUE;
|
||||
}
|
||||
|
||||
LIST_FOR_EACH_ENTRY( comp, &package->components, MSICOMPONENT, entry )
|
||||
total += COMPONENT_PROGRESS_VALUE;
|
||||
|
||||
@ -3200,8 +3188,6 @@ static UINT ACTION_ProcessComponents(MSIPACKAGE *package)
|
||||
TRACE("\n");
|
||||
|
||||
squash_guid(package->ProductCode,squished_pc);
|
||||
msi_ui_progress( package, 1, COMPONENT_PROGRESS_VALUE, 1, 0 );
|
||||
|
||||
msi_set_sourcedir_props(package, FALSE);
|
||||
|
||||
LIST_FOR_EACH_ENTRY( comp, &package->components, MSICOMPONENT, entry )
|
||||
@ -3209,7 +3195,7 @@ static UINT ACTION_ProcessComponents(MSIPACKAGE *package)
|
||||
MSIRECORD *uirow;
|
||||
INSTALLSTATE action;
|
||||
|
||||
msi_ui_progress( package, 2, 0, 0, 0 );
|
||||
msi_ui_progress( package, 2, COMPONENT_PROGRESS_VALUE, 0, 0 );
|
||||
if (!comp->ComponentId)
|
||||
continue;
|
||||
|
||||
|
@ -261,11 +261,9 @@ static BOOL installfiles_cb(MSIPACKAGE *package, LPCWSTR file, DWORD action,
|
||||
TRACE("unknown file in cabinet (%s)\n", debugstr_w(file));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (f->disk_id != disk_id || (f->state != msifs_missing && f->state != msifs_overwrite))
|
||||
return FALSE;
|
||||
|
||||
msi_file_update_ui(package, f, szInstallFiles);
|
||||
if (!f->Component->assembly || f->Component->assembly->application)
|
||||
{
|
||||
msi_create_directory(package, f->Component->Directory);
|
||||
@ -317,14 +315,13 @@ UINT ACTION_InstallFiles(MSIPACKAGE *package)
|
||||
UINT rc = ERROR_SUCCESS;
|
||||
MSIFILE *file;
|
||||
|
||||
/* increment progress bar each time action data is sent */
|
||||
msi_ui_progress( package, 1, 1, 0, 0 );
|
||||
|
||||
schedule_install_files(package);
|
||||
mi = msi_alloc_zero( sizeof(MSIMEDIAINFO) );
|
||||
|
||||
LIST_FOR_EACH_ENTRY( file, &package->files, MSIFILE, entry )
|
||||
{
|
||||
msi_file_update_ui( package, file, szInstallFiles );
|
||||
|
||||
rc = msi_load_media_info( package, file->Sequence, mi );
|
||||
if (rc != ERROR_SUCCESS)
|
||||
{
|
||||
@ -368,7 +365,6 @@ UINT ACTION_InstallFiles(MSIPACKAGE *package)
|
||||
|
||||
TRACE("copying %s to %s\n", debugstr_w(source), debugstr_w(file->TargetPath));
|
||||
|
||||
msi_file_update_ui(package, file, szInstallFiles);
|
||||
if (!file->Component->assembly || file->Component->assembly->application)
|
||||
{
|
||||
msi_create_directory(package, file->Component->Directory);
|
||||
@ -455,9 +451,6 @@ static BOOL patchfiles_cb(MSIPACKAGE *package, LPCWSTR file, DWORD action,
|
||||
TRACE("unknown file in cabinet (%s)\n", debugstr_w(file));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
msi_file_update_ui(package, p->File, szPatchFiles);
|
||||
|
||||
GetTempFileNameW(temp_folder, NULL, 0, patch_path);
|
||||
|
||||
*path = strdupW(patch_path);
|
||||
@ -499,9 +492,6 @@ UINT ACTION_PatchFiles( MSIPACKAGE *package )
|
||||
|
||||
TRACE("%p\n", package);
|
||||
|
||||
/* increment progress bar each time action data is sent */
|
||||
msi_ui_progress( package, 1, 1, 0, 0 );
|
||||
|
||||
mi = msi_alloc_zero( sizeof(MSIMEDIAINFO) );
|
||||
|
||||
LIST_FOR_EACH_ENTRY( patch, &package->filepatches, MSIFILEPATCH, entry )
|
||||
@ -1273,6 +1263,8 @@ UINT ACTION_RemoveFiles( MSIPACKAGE *package )
|
||||
VS_FIXEDFILEINFO *ver;
|
||||
MSICOMPONENT *comp = file->Component;
|
||||
|
||||
msi_file_update_ui( package, file, szRemoveFiles );
|
||||
|
||||
comp->Action = msi_get_component_action( package, comp );
|
||||
if (comp->Action != INSTALLSTATE_ABSENT || comp->Installed == INSTALLSTATE_SOURCE)
|
||||
continue;
|
||||
@ -1324,8 +1316,6 @@ UINT ACTION_RemoveFiles( MSIPACKAGE *package )
|
||||
MSI_RecordSetStringW( uirow, 9, comp->Directory );
|
||||
msi_ui_actiondata( package, szRemoveFiles, uirow );
|
||||
msiobj_release( &uirow->hdr );
|
||||
/* FIXME: call msi_ui_progress here? */
|
||||
}
|
||||
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user