Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/trunk@15573 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
033dad68d2
commit
30441f5706
@ -1921,6 +1921,8 @@ protected:
|
|||||||
bool WriteRootRegistryKey(const wxString strKey, const wxString& strValue) const;
|
bool WriteRootRegistryKey(const wxString strKey, const wxString& strValue) const;
|
||||||
bool WriteLocalMachineRegistryKey(const wxString strKey, const wxString& strValue) const;
|
bool WriteLocalMachineRegistryKey(const wxString strKey, const wxString& strValue) const;
|
||||||
|
|
||||||
|
void CheckAndMakeDir(const wxString& strDir, const wxString& strMsg) const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual bool OnInit();
|
virtual bool OnInit();
|
||||||
};
|
};
|
||||||
@ -2114,6 +2116,38 @@ bool CampoSetup::CreateIcon(unsigned int csidl, const wxFileName& strExeFile) co
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CampoSetup::CheckAndMakeDir(const wxString& strDir, const wxString& strMsg) const
|
||||||
|
{
|
||||||
|
if (!wxDir::Exists(strDir))
|
||||||
|
{
|
||||||
|
const wxFileName fname(strDir + "\\*.*");
|
||||||
|
const wxArrayString& asDirs = fname.GetDirs();
|
||||||
|
wxString strCartella = fname.GetVolume();
|
||||||
|
strCartella += fname.GetVolumeSeparator();
|
||||||
|
for (size_t i = 0; i < asDirs.GetCount(); i++)
|
||||||
|
{
|
||||||
|
strCartella += "\\";
|
||||||
|
strCartella += asDirs[i];
|
||||||
|
if (!wxDir::Exists(strCartella) && !wxMkdir(strCartella))
|
||||||
|
{
|
||||||
|
wxString strError = "Impossibile creare la cartella dei ";
|
||||||
|
strError += strMsg;
|
||||||
|
strError += " ";
|
||||||
|
strError += strCartella;
|
||||||
|
strError += "\nAssicurarsi di avere il permesso di scrittura sul disco e che vi sia spazio a sufficienza";
|
||||||
|
ErrorBox(strMsg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
wxDir dirDir(strDir);
|
||||||
|
if(dirDir.HasFiles()) //se la dir di destinazione dovesse esistere gia' (installazione abortita) almeno sia vuota
|
||||||
|
{
|
||||||
|
ErrorBox("La cartella di destinazione non e' vuota!\nInstallazione interrotta!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void CampoSetup::OnTimer(wxTimerEvent& WXUNUSED(e))
|
void CampoSetup::OnTimer(wxTimerEvent& WXUNUSED(e))
|
||||||
{
|
{
|
||||||
CampoWizard* pWizard = new CampoWizard(m_pMainFrame);
|
CampoWizard* pWizard = new CampoWizard(m_pMainFrame);
|
||||||
@ -2137,12 +2171,11 @@ void CampoSetup::OnTimer(wxTimerEvent& WXUNUSED(e))
|
|||||||
//se nuova installazione deve anche creare la directory di destinazione
|
//se nuova installazione deve anche creare la directory di destinazione
|
||||||
if (uInstallationType < 3)
|
if (uInstallationType < 3)
|
||||||
{
|
{
|
||||||
const wxString strPrgDir = pWizard->GetPrgLocPath();
|
//creazione della directory dei programmi
|
||||||
if (!wxMkdir(strPrgDir))
|
CheckAndMakeDir(pWizard->GetPrgLocPath(), "programmi");
|
||||||
{
|
|
||||||
ErrorBox("Impossibile creare la cartella di installazione dei programmi!\nAssicurarsi di avere il permesso di scrittura sul disco, che vi sia spazio a sufficienza,\nche la cartella indicata non esista gia' vuota");
|
//creazione della directory dei dati
|
||||||
return;
|
CheckAndMakeDir(pWizard->GetDataPath(), "dati");
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//copia del contenuto della cartella campo nella cartella di destinazione (installaz/aggiornam)
|
//copia del contenuto della cartella campo nella cartella di destinazione (installaz/aggiornam)
|
||||||
@ -2157,29 +2190,40 @@ void CampoSetup::OnTimer(wxTimerEvent& WXUNUSED(e))
|
|||||||
|
|
||||||
//prende la cartella di destinazione...
|
//prende la cartella di destinazione...
|
||||||
const wxString strDestPath = pWizard->GetPrgLocPath();
|
const wxString strDestPath = pWizard->GetPrgLocPath();
|
||||||
|
const wxString strDataPath = pWizard->GetDataPath();
|
||||||
//...e copia tutti i files nella cartella di destinazione, tranne i .ini che devono essere compilati
|
//...e copia tutti i files nella cartella di destinazione, tranne i .ini che devono essere compilati
|
||||||
wxString strFileCurr;
|
wxString strFileCurr;
|
||||||
const size_t nPathLenght = strSourcePath.GetPath().Len();
|
const size_t nPathLenght = strSourcePath.GetPath().Len();
|
||||||
for (size_t i = 0; i < uFilesToCopy; i++)
|
for (size_t i = 0; i < uFilesToCopy; i++)
|
||||||
{
|
{
|
||||||
strFileCurr = strDestPath;
|
//files dei dati standard!
|
||||||
strFileCurr += asFilesList[i].Mid(nPathLenght);
|
if (asFilesList[i].Lower().Find("\\dati\\") > 0)
|
||||||
|
{
|
||||||
|
strFileCurr = strDataPath;
|
||||||
|
strFileCurr += asFilesList[i].Mid(nPathLenght + 5);
|
||||||
|
}
|
||||||
|
else //files dei programmi
|
||||||
|
{
|
||||||
|
strFileCurr = strDestPath;
|
||||||
|
strFileCurr += asFilesList[i].Mid(nPathLenght);
|
||||||
|
}
|
||||||
|
|
||||||
strFileCurr.MakeLower();
|
strFileCurr.MakeLower();
|
||||||
|
|
||||||
const wxFileName strFileName(strFileCurr);
|
const wxFileName strFileName(strFileCurr);
|
||||||
|
|
||||||
if (strFileName.GetExt() == "ini")
|
//i files .ini vanno trattati con i guanti
|
||||||
|
if (strFileName.GetExt() == ".ini")
|
||||||
{
|
{
|
||||||
const wxString strName = strFileName.GetName();
|
const wxString strName = strFileName.GetName();
|
||||||
//campo.ini e install.ini vanno lasciati stare se aggiornamento!!!
|
//campo.ini e install.ini vanno lasciati stare se aggiornamento!!!
|
||||||
if ((strName == "campo" || strName == "install") && strFileName.FileExists())
|
if ((strName == "campo" || strName == "install") && strFileName.FileExists())
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
//eventuali sottodirectory le crea
|
||||||
if (!wxDirExists(strFileName.GetPath()))
|
const wxString strDir = strFileName.GetPath();
|
||||||
{
|
if (!wxDirExists(strDir))
|
||||||
wxMkdir(strFileName.GetPath());
|
wxMkdir(strDir);
|
||||||
}
|
|
||||||
|
|
||||||
if(!wxCopyFile(asFilesList[i], strFileCurr))
|
if(!wxCopyFile(asFilesList[i], strFileCurr))
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user