Patch level :4.0 setup

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :aggiunto unzippamento patch di sistema e aggiornamento ini


git-svn-id: svn://10.65.10.50/trunk@15586 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2007-09-05 15:55:53 +00:00
parent 7ddd0a6317
commit aacf098860

View File

@ -2262,11 +2262,27 @@ void CampoSetup::UnzipSystem(const wxString& strPrgLocPath) const
strSourcePath.MakeAbsolute();
//..contando anche quanti sono e memorizzandoli in un array asFileList
const size_t uFilesToCopy = wxDir::GetAllFiles(strSourcePath.GetPath(), &asFilesList, strSourcePath.GetFullName());
//ordina le patch per numero crescente ma mette davanti a tutte il pacco (sysinst1)
asFilesList.Sort(PatchCompare);
for (size_t i = 0; i < uFilesToCopy; i++)
{
UnzipFile(asFilesList[i] , strPrgLocPath);
if (uFilesToCopy > 0)
{
//ordina le patch per numero crescente ma mette davanti a tutte il pacco (sysinst1)
asFilesList.Sort(PatchCompare);
for (size_t i = 0; i < uFilesToCopy; i++)
{
UnzipFile(asFilesList[i] , strPrgLocPath);
}
//aggiorna l'install.ini in base al numero di patch e versione dell'ultimo file zip di sistema
//ci vuole un giro allucinogeno per trasformare il .zip in .ini e togliere quel cazzo di 1 in fondo
wxFileName strLastFile(asFilesList[uFilesToCopy - 1]);
wxString strWrk = strLastFile.GetName();
strWrk.Truncate(strWrk.Len() - 1);
strLastFile.SetName(strWrk);
strLastFile.SetExt("ini");
strWrk = strLastFile.GetFullName();
//adesso che ha trovato quello sporco ultimo .ini prende versione e patch
CampoIniFile SyLastPatch(strWrk, "sy");
const wxString strVersion = SyLastPatch.Get("Versione");
const wxString strPatch = SyLastPatch.Get("Patch");
}
}
@ -2311,8 +2327,14 @@ void CampoSetup::OnTimer(wxTimerEvent& WXUNUSED(e))
//per ogni files da copiare controlla i path sorgente e destinazione(problema con sottodirectory tipo dati)
wxString strFileCurr;
const size_t nPathLenght = strSourcePath.GetPath().Len();
//progress bar
wxProgressDialog pi("Installazione Dati e Programmi di base...", "", (int)uFilesToCopy, NULL, wxPD_AUTO_HIDE | wxPD_APP_MODAL | wxPD_CAN_ABORT);
for (size_t i = 0; i < uFilesToCopy; i++)
{
//aggiorna la progind
if (!pi.Update((int)i, asFilesList[i]))
break;
//files dei dati standard! solo in caso di nuova installazione!!
if (asFilesList[i].Lower().Find("\\dati\\") > 0)
{
@ -2428,16 +2450,8 @@ void CampoSetup::OnTimer(wxTimerEvent& WXUNUSED(e))
CreateAutostartMode(iSrvAutostartMode, strPrgLocPath);
}
//creazione dell'icona sul desktop
const wxFileName strExe(strPrgLocPath, wxT("ba0.exe"));
const bool bDesktopShortcut = pWizard->GetDesktopShortcut();
if (bDesktopShortcut)
CreateIcon(CSIDL_COMMON_DESKTOPDIRECTORY, strExe);
// 2) procede poi al caricamento delle patch eventuali di sistema all'interno della dir 'program'
//copia del contenuto della cartella campo nella cartella di destinazione (installaz/aggiornam)
//per prima cosa cerca la cartella dei files sorgente...
UnzipSystem(strPrgLocPath);
@ -2445,6 +2459,12 @@ void CampoSetup::OnTimer(wxTimerEvent& WXUNUSED(e))
// 4) lanciare ba1.exe -6 in uscita (non va qui! e' solo per ricordarsi di farlo!)
//creazione dell'icona sul desktop
const wxFileName strExe(strPrgLocPath, wxT("ba0.exe"));
const bool bDesktopShortcut = pWizard->GetDesktopShortcut();
if (bDesktopShortcut)
CreateIcon(CSIDL_COMMON_DESKTOPDIRECTORY, strExe);
// 1) terminato il tutto scrive/aggiorna/lascia stare il campo.stp
if (bNewInstallation)
{