--- AE/Installer/trunk/source/installer.cpp 2010/04/05 02:11:45 506 +++ AE/Installer/trunk/source/installer.cpp 2010/04/24 21:58:56 511 @@ -27,6 +27,7 @@ using namespace boost::posix_time; // externs declared in installer.h string strInstallCfg = "../GameDataFolder/Add.cfg"; string strEUFN = "Edition"; // GetUpdateStatus() may set this to "Edition-patch" later, but this is the assumed name of the new Edition folder in Updates/ +extern MainWindow* TheWindow; int globalizeData(void) { @@ -978,18 +979,19 @@ int GetUpdateStatus(Install_info_cfg *cu fstream file; file.open((install_iter->path().string() + "/Mod_Info.cfg").c_str()); if (!file.fail()) - ModPackage updatePackage = fileToModPackage(file, install_iter->path().filename()); + updatePackage = fileToModPackage(file, install_iter->path().filename()); else { file.close(); continue; } - if (exists("packages" + install_iter->path().filename() + "/Mod_Info.cfg")) + if (exists("packages/" + install_iter->path().filename() + "/Mod_Info.cfg")) { file.close(); - file.open(("packages" + install_iter->path().filename() + "/Mod_Info.cfg").c_str()); + file.clear(); + file.open(("packages/" + install_iter->path().filename() + "/Mod_Info.cfg").c_str()); if (!file.fail()) - ModPackage installedPackage = fileToModPackage(file, install_iter->path().filename()); + installedPackage = fileToModPackage(file, install_iter->path().filename()); file.close(); if (updatePackage.modStringVersion > installedPackage.modStringVersion) { @@ -1023,7 +1025,7 @@ bool ReadInstallInfoCfg(fstream *fileHan string strDaodanVersion = "Daodan_Version"; string strOniSplitVersion = "OniSplit_Version"; string strGUIWinVersion = "GUI_Win_Version"; - string strGUIMacVersion = "GUI_Mac_Version"; + string strGUIMacVersion = "GUI_Mac_Version"; string strReglobalize = "Reglobalize"; string strDeleteList = "Delete_List"; string strArrow = "->"; @@ -1486,7 +1488,8 @@ bool ProcessAEUpdate(Install_info_cfg *c globalPackages = getPackages(); // refresh the list in memory // TODO: Refresh the packages list in the window - + wxCommandEvent e; + TheWindow->OnRefreshButtonClick( e ); return true; } @@ -1540,32 +1543,31 @@ void ProcessPackageUpdates(string pathTo if (!file.fail()) { installedPackage = fileToModPackage(file, updtFolder); - file.close(); - if (updatePackage.modStringVersion > installedPackage.modStringVersion) - { - if (updatePackage.installerVersion <= INSTALLER_VERSION) - { + } + file.close(); + } + file.close(); + if (updatePackage.modStringVersion > installedPackage.modStringVersion) + { + if (updatePackage.installerVersion <= INSTALLER_VERSION) + { + if(exists(strPathToPackages + "/" + updatePackage.modStringName)) { #ifdef WIN32 - remove_all((path)(strPathToPackages + "/" + installedPackage.modStringName)); + remove_all((path)(strPathToPackages + "/" + updatePackage.modStringName)); #else - if (needNewTrashDir) - { - strTrashDir = strTrashDir + "Old_packages_" + boost::lexical_cast(tmStartTime.tm_hour) + "-" + - boost::lexical_cast(tmStartTime.tm_min) + "-" + boost::lexical_cast(tmStartTime.tm_sec) + "/"; - create_directory(strTrashDir); - needNewTrashDir = false; - } - rename((path)(strPathToPackages + "/" + installedPackage.modStringName), (path)(strTrashDir + installedPackage.modStringName)); -#endif - rename((path)(pathToUpdate + "/" + updatePackage.modStringName), (path)(strPathToPackages + "/" + updatePackage.modStringName)); + if (needNewTrashDir) + { + strTrashDir = strTrashDir + "Old_packages_" + boost::lexical_cast(tmStartTime.tm_hour) + "-" + + boost::lexical_cast(tmStartTime.tm_min) + "-" + boost::lexical_cast(tmStartTime.tm_sec) + "/"; + create_directory(strTrashDir); + needNewTrashDir = false; } + rename((path)(strPathToPackages + "/" + updatePackage.modStringName), (path)(strTrashDir + updatePackage.modStringName)); +#endif } + rename((path)(pathToUpdate + "/" + updatePackage.modStringName), (path)(strPathToPackages + "/" + updatePackage.modStringName)); } - else - file.close(); } - file.close(); - file.clear(); } } } @@ -1573,6 +1575,8 @@ void ProcessPackageUpdates(string pathTo { setStatusArea("Warning, handled exception: " + (string)ex.what()); } + wxCommandEvent e; + TheWindow->OnRefreshButtonClick( e ); } /* MakePathLocalToGlobalize is a function used once by ProcessAEUpdate() that takes a file in an \