ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/AE/Installer/trunk/source/main_window.cpp
(Generate patch)

Comparing AE/Installer/trunk/source/main_window.cpp (file contents):
Revision 355 by gumby, Thu Jun 18 22:30:30 2009 UTC vs.
Revision 372 by iritscen, Tue Jun 23 02:53:59 2009 UTC

# Line 3 | Line 3 | AE/Mod Installer
3   by Gumby and Iritscen
4   */
5  
6 < // To-do: -
6 > // To-do: - Load credits from text resource file
7 > //                - Version number in credits should be universalized
8   //                - Institute lots of checks into file-handling
9 < //                - Clear mod info fields when mod is de-selected ???
9 > //                - Clear mod info fields when mod is de-selected
10  
11   #define DEBUG
12   #include <stdio.h>
# Line 34 | Line 35 | const string strInstallerVersion = "1.0"
35   const bool SPLIT = 1;
36   const bool NOT_SPLIT = 0;
37   bool splitInstances = SPLIT;
38 <
38 > bool busy = 0;
39   #ifdef WIN32
40   const string strOniSplit = "Onisplit.exe";
41   string strImportOption = "-import:nosep";
# Line 60 | Line 61 | using namespace std;
61  
62   int globalizeData(void)
63   {
64 <            using boost::lexical_cast;
65 <    using boost::bad_lexical_cast;
66 < // using namespace boost::posix_time;
64 >        busy = 1;
65 >        using boost::lexical_cast;
66 >        using boost::bad_lexical_cast;
67 >        // using namespace boost::posix_time;
68          using namespace boost::gregorian;
69          using namespace boost::posix_time;
70          ptime start_time(second_clock::local_time());
# Line 76 | Line 78 | int globalizeData(void)
78          ofstream logfile("Globalize.log");
79          logfile << "Globalization started " << to_simple_string(start_time) << endl;
80          try {
81 <                
81 >
82                  char levels_cstr[15][3] = {"0", "1", "2", "3", "4", "6", "8", "9", "10", "11", "12", "13", "14", "18", "19"}; // the levels Oni has...probably should have made a string array. Oops.
83                  //const vector<double> ck(cv, &cv[CvSize]);
84                  vector<string> levels;
# Line 95 | Line 97 | int globalizeData(void)
97                  path Animations = "../GameDataFolder/level0_Animations";
98                  path TRAC = Animations / "level0_TRAC";
99                  path TRAM = Animations / "level0_TRAM";
100 <                
100 >
101                  vector<path> GDFPaths;
102                  GDFPaths.push_back(Characters);
103                  GDFPaths.push_back(Particles);
# Line 103 | Line 105 | int globalizeData(void)
105                  GDFPaths.push_back(Sounds);
106                  GDFPaths.push_back(TRAC);
107                  GDFPaths.push_back(TRAM);
108 <                
109 <                        
108 >
109 >
110                  path VanillaCharacters = "packages/VanillaDats/level0_Final/level0_Characters/level0_Characters.oni";
111                  path VanillaParticles = "packages/VanillaDats/level0_Final/level0_Particles/level0_Particles.oni";
112                  path VanillaTextures  = "packages/VanillaDats/level0_Final/level0_Textures/level0_Textures.oni";
# Line 114 | Line 116 | int globalizeData(void)
116                  path VanillaTRAM = "packages/VanillaDats/level0_Final/level0_Animations/level0_TRAM.oni";
117  
118                  vector<path> VanillaPaths;
119 <                
119 >
120                  VanillaPaths.push_back(VanillaCharacters);
121                  VanillaPaths.push_back(VanillaParticles);
122                  VanillaPaths.push_back(VanillaTextures);
123                  VanillaPaths.push_back(VanillaSounds);
124                  VanillaPaths.push_back(VanillaTRAC);
125                  VanillaPaths.push_back(VanillaTRAM);
126 <                
126 >
127                  /*
128                  if (exists("../GameDataFolder/"))
129                  {
# Line 142 | Line 144 | int globalizeData(void)
144                  setStatusArea("Creating needed directories...");
145                  logfile <<  "Creating needed directories...\n";
146                  create_directory( "../GameDataFolder/" );
147 <                
147 >
148                  create_directory( "packages" );
149 <                
149 >
150                  if (exists("packages/VanillaDats")) remove_all("packages/VanillaDats");
151                  create_directory( "packages/VanillaDats" );
152 <                
152 >
153                  create_directory( "packages/VanillaDats/level0_Final/" );
154                  //blah blah finish this.
155                  //logfile <<  "packages/VanillaDats/level0_Final/ created";
# Line 162 | Line 164 | int globalizeData(void)
164                  int num_levels = 0;
165                  for(int i = 1; i < 15; i++)
166                  {
167 <                                if (exists("../../GameDataFolder/level" + levels[i] + "_Final.dat")) {
167 >                        if (exists("../../GameDataFolder/level" + levels[i] + "_Final.dat")) {
168                                  num_levels++;
169  
170                          }
# Line 171 | Line 173 | int globalizeData(void)
173                  int total_steps =  8 + 2 * num_levels;
174                  for(int i = 0; i < 15; i++)
175                  {
176 <                        
176 >
177                          //printf(levels[i],"%d",levels[i]); // int to char array
178 <                        
178 >
179                          if (exists("../../GameDataFolder/level" + levels[i] + "_Final.dat")) {
180                                  logfile << "level" << levels[i] << "_Final\n";
181                                  logfile << "\tExporting level" << levels[i] << "_Final.dat\n";
182                                  //printf(Step_x_x,"Step %d/%d: exporting level%d_final.dat", parts_done + 1,, levels[i]); setStatusArea((string)Step_x_x);
183                                  setStatusArea("Step " + lexical_cast<std::string>(parts_done + 1) + "/" + lexical_cast<std::string>(total_steps) + " exporting level" + levels[i]+"_Final.dat");
184                                  create_directory( "../GameDataFolder/level" + levels[i] + "_Final" );
185 < //                              setStatusArea(strOniSplit + " -export ../GameDataFolder/level" + levels[i] + "_Final ../../GameDataFolder/level" + levels[i] + "_Final.dat");
185 >                                //                              setStatusArea(strOniSplit + " -export ../GameDataFolder/level" + levels[i] + "_Final ../../GameDataFolder/level" + levels[i] + "_Final.dat");
186                                  system((strOniSplit + " -export ../GameDataFolder/level" + levels[i] + "_Final ../../GameDataFolder/level" + levels[i] + "_Final.dat").c_str());
187                                  create_directory( "packages/VanillaDats/level" + levels[i] + "_Final" );
188                                  create_directory( "packages/VanillaDats/level" + levels[i] + "_Final/level" + levels[i] + "_Final" );
# Line 256 | Line 258 | int globalizeData(void)
258                                                  else if (dir_itr->path().filename().substr(0,4) == "AGDB"
259                                                          || dir_itr->path().filename().substr(0,4) == "TRCM") {
260                                                                  cout <<dir_itr->path().filename() << "\n";
261 <                                        
261 >
262                                                                  if(!exists( Archive / dir_itr->filename())) rename(dir_itr->path(), Archive / dir_itr->filename());
263                                                                  else remove(dir_itr->path());
264                                                  }
# Line 264 | Line 266 | int globalizeData(void)
266  
267                                                  }
268                                                  else {
269 <                                                        logfile << "\tMoved file: " << dir_itr->path().filename() << "\n";
269 >                                                        //logfile << "\tMoved file: " << dir_itr->path().filename() << "\n";
270                                                  }
271                                          }
272  
273  
274 <                                                
274 >
275                                  }
276                                  logfile << "\tCleaning up TXMPs...\n";
277                                  system( (strOniSplit + " -move:delete " + Textures.string() + " ../GameDataFolder/level" + levels[i] + "_Final/TXMP*.oni").c_str());
278                                  parts_done++;
279  
280                                  setProgressBar( (int)(1000 * (float)(parts_done) / (float)(total_steps) ));
281 <                                
281 >
282                          }
283                  }
284                  logfile << "Reimporting levels\n";
# Line 287 | Line 289 | int globalizeData(void)
289                          //printf(Step_x_x,"Step %d/%d: reimporting level", parts_done + 1, 7 + 2 * num_levels); setStatusArea((string)Step_x_x + levels[i] + (string)"_Final.dat");
290                          setStatusArea("Step " + lexical_cast<std::string>(parts_done + 1) + "/" + lexical_cast<std::string>(total_steps) + " reimporting level" + levels[i]+"_Final.oni");
291                          system( (strOniSplit + " " + strImportOption + " ../GameDataFolder/level" + levels[i] + "_Final packages/VanillaDats/level" + levels[i] + "_Final/level"
292 <                                + levels[i] + "_Final/level" + levels[i] + "_Final.oni > Globalize.oni").c_str());
292 >                                + levels[i] + "_Final/level" + levels[i] + "_Final.oni >> Globalize.log").c_str());
293                          setProgressBar( (int)(1000 * (float)(parts_done) / (float)(total_steps) ));
294 <                                parts_done++;
294 >                        parts_done++;
295                  }
296                  create_directory( VanillaCharacters.parent_path() );
297                  create_directory( VanillaParticles.parent_path() );
298                  create_directory( VanillaTextures.parent_path() );
299                  create_directory( VanillaSounds.parent_path() );
300                  create_directory( VanillaAnimations.remove_filename() );
301 <                
301 >
302                  for(int j = 0; j < GDFPaths.size(); j++) {
303                          logfile << "\tReimporting " << GDFPaths[j].filename() << ".oni\n";
304 <                        setStatusArea("Step" + lexical_cast<std::string>(parts_done + 1) + "/" + lexical_cast<std::string>(total_steps) + ": reimporting " + GDFPaths[j].filename() );
304 >                        setStatusArea("Step " + lexical_cast<std::string>(parts_done + 1) + "/" + lexical_cast<std::string>(total_steps) + ": reimporting " + GDFPaths[j].filename() );
305                          system((strOniSplit + " " + strImportOption + " " + GDFPaths[j].string() + " " + VanillaPaths[j].string()).c_str());
306                          parts_done++;
307                          setProgressBar( (int)(1000 * (float)(parts_done) / (float)(total_steps) ));
308                  }
309 < /*
309 >                /*
310                  printf(Step_x_x,"Step %d/%d: reimporting level0_Characters", parts_done,7 + 2 * num_levels); setStatusArea((string)Step_x_x);setProgressBar( (int)(1000 * (float)(parts_done) / (float)(7 + 2 * num_levels) ));
311                  system((strOniSplit + " " + strImportOption + " " + Characters.string() + " " + VanillaCharacters.string()).c_str());
312                  parts_done++; printf(Step_x_x,"Step %d/%d: reimporting level0_Particles", parts_done,7 + 2 * num_levels); setStatusArea((string)Step_x_x);setProgressBar( (int)(1000 * (float)(parts_done) / (float)(7 + 2 * num_levels) ));
# Line 320 | Line 322 | int globalizeData(void)
322                  system((strOniSplit + " " + strImportOption + " " + TRAM.string() + " " + VanillaTRAM.string()).c_str());
323                  //parts_done++; setStatusArea((string)"Copying level scripts...");setProgressBar( (int)(1000 * (float)(parts_done) / (float)(7 + 2 * num_levels) ));
324                  if (exists("../GameDataFolder/IGMD")) remove_all("../GameDataFolder/IGMD");
325 < */
325 >                */
326                  create_directory((path)"../GameDataFolder/IGMD");
327 <                copy((path)"packages/VanillaBSL/", (path)"../GameDataFolder");
327 >                copy((path)"packages/VanillaBSL/IGMD", (path)"../GameDataFolder");
328                  setProgressBar( 1000 );
329                  setStatusArea((string)"Done! Now select your mod packages and click install.");
330 <        //      while(1) Sleep(-1);
331 <                
330 >                //      while(1) Sleep(-1);
331 >
332          }
333          catch (exception ex) {
334                  setStatusArea("Warning, handled exception: " + (string)ex.what());
335          }
334        
335                ptime end_time(second_clock::local_time());
336                time_period total_time (start_time, end_time);
337                logfile << "\n\nGlobalization ended " << to_simple_string(end_time) << "\nThe process took " << total_time.length();
338                //total_time.length().hours();
339        logfile.close();
336  
337 +        ptime end_time(second_clock::local_time());
338 +        time_period total_time (start_time, end_time);
339 +        logfile << "\n\nGlobalization ended " << to_simple_string(end_time) << "\nThe process took " << total_time.length();
340 +        //total_time.length().hours();
341 +        logfile.close();
342 +        busy = 0;
343          return err;
344   }
345  
# Line 490 | Line 492 | ModPackage fileToModPackage(fstream &fil
492  
493   void recompileAll(vector<string> installedMods)
494   {
495 +        busy = 1;
496          using namespace boost::gregorian;
497          using namespace boost::posix_time;
498 +        using boost::lexical_cast;
499 +        using boost::bad_lexical_cast;
500          
501          setStatusArea("Importing levels...");
502          //setStatusArea("Recompiling Data...");
# Line 550 | Line 555 | void recompileAll(vector<string> install
555                                                  }
556                                                  importCommand += " ../GameDataFolder/" + dir_itr->path().filename() + ".dat >> Install.log";
557  
558 <                                                printf(statusString,"%d/%i\0",j,numberOfDats);  
558 >                                                
559                                                  setProgressBar( (int)(1000 * (float)(j-1) / (float)numberOfDats) ); //100% * dat we're on / total dats
560 <                                                setStatusArea("Importing " +  dir_itr->path().filename() + " " + statusString);
560 >                                                setStatusArea("Step " + lexical_cast<std::string>(j) + '/' + lexical_cast<std::string>(numberOfDats)+ ": Importing " +  dir_itr->path().filename() + " ");
561  
562                                                  system(importCommand.c_str());
563                                                  //Sleep(1000);
# Line 563 | Line 568 | void recompileAll(vector<string> install
568                                  }
569                                  catch ( const std::exception & ex )
570                                  {
571 <                                        
572 <        remove("Install.log");
573 <        ofstream logfile("Install.log");
574 <        
575 <        
571 >
572 >                                        remove("Install.log");
573 >                                        ofstream logfile("Install.log");
574 >
575 >
576                                          logfile << "Warning, exception " << ex.what() << "!";
577                                          setStatusArea("Warning, exception " + (string)ex.what() + "!");
578 < logfile.close();        
578 >                                        logfile.close();        
579                                  }
580                          }
581  
582                  }
583                  catch( const std::exception & ex ) {
584 <        
585 <        remove("Install.log");
586 <        ofstream logfile("Install.log");
587 <        
588 <        
589 <                                        logfile << "Warning, exception " << ex.what() << "!";
590 <                                        setStatusArea("Warning, exception " + (string)ex.what() + "!");
591 < logfile.close();
584 >
585 >                        remove("Install.log");
586 >                        ofstream logfile("Install.log");
587 >
588 >
589 >                        logfile << "Warning, exception " << ex.what() << "!";
590 >                        setStatusArea("Warning, exception " + (string)ex.what() + "!");
591 >                        logfile.close();
592                  }
593  
594          }
# Line 622 | Line 627 | logfile.close();
627                                          }
628                                          importCommand += " ../GameDataFolder/" + dir_itr->path().filename() + ".dat >> Install.log";
629  
630 <                                        printf(statusString,"%d/%i\0",j,numberOfDats);  
630 >
631                                          setProgressBar( (int)(1000 * (float)(j-1) / (float)numberOfDats) ); //100% * dat we're on / total dats
632 <                                        setStatusArea("Importing " +  dir_itr->path().filename() + " " + statusString);
632 >                                        setStatusArea("Step " + lexical_cast<std::string>(j) + '/' + lexical_cast<std::string>(numberOfDats)+ ": Importing " +  dir_itr->path().filename() + " ");
633  
634                                          system(importCommand.c_str());
635  
# Line 633 | Line 638 | logfile.close();
638                          }
639                          catch ( const std::exception & ex )
640                          {
641 <        
642 <        remove("Install.log");
643 <        ofstream logfile("Install.log");
644 <        
645 <        
646 <                                        logfile << "Warning, exception " << ex.what() << "!";
647 <                                        setStatusArea("Warning, exception " + (string)ex.what() + "!");
648 < logfile.close();
641 >
642 >                                remove("Install.log");
643 >                                ofstream logfile("Install.log");
644 >
645 >
646 >                                logfile << "Warning, exception " << ex.what() << "!";
647 >                                setStatusArea("Warning, exception " + (string)ex.what() + "!");
648 >                                logfile.close();
649                          }}
650          }
651          logfile << "Writing config file";
652          writeInstalledMods(installedMods);
653          setProgressBar(1000);
654          setStatusArea("Done! You can now play Oni.");
650        
651                ptime end_time(second_clock::local_time());
652                time_period total_time (start_time, end_time);
653                        
654        
655                ofstream logfile2("Install.log", ios::app | ios::ate);
656                string outstring = (string)"\n\nGlobalization ended " + to_simple_string(end_time) + "\nThe process took ";// + (string)total_time.length();
657                
658                logfile2 << "\nGlobalization ended " << to_simple_string(end_time) << "\nThe process took " << total_time.length();
659                
660                //logfile2.write(outstring.c_str(), outstring.length());
661 logfile2.close();
655  
656 <                //total_time.length().hours();
657 <        
656 >        ptime end_time(second_clock::local_time());
657 >        time_period total_time (start_time, end_time);
658 >
659 >
660 >        ofstream logfile2("Install.log", ios::app | ios::ate);
661 >        string outstring = (string)"\n\nGlobalization ended " + to_simple_string(end_time) + "\nThe process took ";// + (string)total_time.length();
662 >
663 >        logfile2 << "\nGlobalization ended " << to_simple_string(end_time) << "\nThe process took " << total_time.length();
664 >
665 >        //logfile2.write(outstring.c_str(), outstring.length());
666 >        logfile2.close();
667 >
668 >        //total_time.length().hours();
669 >
670          Sleep(1000);
671          setProgressBar(0);
672 +        busy = 0;
673   }
674  
675   void writeInstalledMods(vector<string> installedMods)
# Line 868 | Line 874 | bool MainWindow::Create( wxWindow* paren
874          CreateControls();
875          SetIcon(GetIconResource(wxT("oni_special.ico")));
876          Centre();
877 <        
878 <        
877 >
878 >
879          ////@end MainWindow creation
880          return true;
881   }
# Line 957 | Line 963 | void MainWindow::CreateControls()
963          itemMenu44->Append(wxID_ABOUT, _("About"), wxEmptyString, wxITEM_NORMAL);
964          menuBar->Append(itemMenu44, _("Help"));
965          itemFrame1->SetMenuBar(menuBar);
966 <
966 >        
967          wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
968          itemFrame1->SetSizer(itemBoxSizer2);
969  
# Line 1115 | Line 1121 | void MainWindow::CreateControls()
1121  
1122          if(strImportOption == "-import:nosep") NoSepRadio->SetValue(true);
1123          else SepRadio->SetValue(true);
1124 <        
1125 <        
1124 >
1125 >
1126   #ifdef WIN32
1127          RedirectIOToConsole();
1128          HWND hWnd = GetConsoleWindow();
1129          ShowWindow( hWnd, SW_HIDE );
1130   #endif
1131 <        
1132 <                //MainWindow::SetSize(MainWindow::GetRect().GetWidth(), MainWindow::GetRect().GetHeight()-OptionsPanel->GetRect().GetHeight() );
1131 >
1132 >        //MainWindow::SetSize(MainWindow::GetRect().GetWidth(), MainWindow::GetRect().GetHeight()-OptionsPanel->GetRect().GetHeight() );
1133   }
1134  
1135  
# Line 1217 | Line 1223 | wxIcon MainWindow::GetIconResource( cons
1223          wxUnusedVar(name);
1224          if (name == _T("oni_special.ico"))
1225          {
1226 <        //      wxIcon icon(_T("oni_special.ico"), wxBITMAP_TYPE_ICO);
1227 <        //      return icon;
1226 >                //      wxIcon icon(_T("oni_special.ico"), wxBITMAP_TYPE_ICO);
1227 >                //      return icon;
1228          }
1229          return wxNullIcon;
1230          ////@end MainWindow icon retrieval
# Line 1270 | Line 1276 | void MainWindow::OnOptionsClick( wxComma
1276   {
1277  
1278  
1279 <        
1279 >
1280  
1281          if (!event.GetInt() ) {
1282                  OptionsPanel->Hide();
1283 <                MainWindow::SetSize(MainWindow::GetRect().GetWidth(), MainWindow::GetRect().GetHeight()-OptionsPanel->GetRect().GetHeight());}
1283 >                this->SetSize(this->GetRect().GetWidth(), this->GetRect().GetHeight()-OptionsPanel->GetRect().GetHeight());}
1284          else {
1285 <                //Uncomment this when we release, it gets annoying if you are testing globalization a lot ;)
1286 <                //wxMessageDialog* YesNoDialog = new wxMessageDialog(this,                      "WARNING: These options are for advanced users only, use with caution.", "AE Installer Alert",  wxOK | wxICON_EXCLAMATION       , wxDefaultPosition);
1287 <                //YesNoDialog->ShowModal();
1285 > //              Uncomment this when we release, it gets annoying if you are testing globalization a lot ;)
1286 >                wxMessageDialog* YesNoDialog = new wxMessageDialog(this,                        "WARNING: These options are for advanced users only, use with caution.", "AE Installer Alert",  wxOK | wxICON_EXCLAMATION       , wxDefaultPosition);
1287 >                YesNoDialog->ShowModal();
1288                  OptionsPanel->Show();
1289 <                MainWindow::SetSize(MainWindow::GetRect().GetWidth(), MainWindow::GetRect().GetHeight()+OptionsPanel->GetRect().GetHeight());
1289 >                this->SetSize(this->GetRect().GetWidth(), this->GetRect().GetHeight()+OptionsPanel->GetRect().GetHeight());
1290          }
1291 +        
1292   }
1293  
1294  
# Line 1320 | Line 1327 | void MainWindow::OnInstallButtonClick( w
1327          localPackages.push_back("Globalize");
1328          for(int i = 0; i < globalPackages.size(); i++) if(Mods_CheckboxList->IsChecked(i)) localPackages.push_back( globalPackages[i].modStringName );
1329          if ( !localPackages.empty() )   {
1330 <
1330 >        
1331                  //MainWindow::MainWindow().Hide();      
1332                  //      boost::thread thrd2(recompileAll(localPackages) );
1333                  //MainWindow::MainWindow().Show();
1334 +                this->InstallButton->Disable();
1335 +                this->ReglobalizeButton->Disable();
1336   #ifdef WIN32
1337                  recompile packages(localPackages);
1338                  boost::thread thrd(packages);
1339   #else
1331                this->Disable();
1340                  recompileAll(localPackages);
1333                this->Enable();
1341   #endif
1342  
1343 +                this->InstallButton->Enable();
1344 +                this->ReglobalizeButton->Enable();
1345          }
1346  
1347  
# Line 1459 | Line 1468 | void MainWindow::refreshMods (vector<str
1468  
1469   void MainWindow::OnLoadClick( wxCommandEvent& event )
1470   {
1471 +        if (busy == 1) return;
1472          static const wxChar *FILETYPES = _T(
1473                  "Mod Loadouts (*.cfg)|*.cfg|"
1474                  "All files (*.*)|*.*"
# Line 1483 | Line 1493 | void MainWindow::OnLoadClick( wxCommandE
1493  
1494   void MainWindow::OnSaveClick( wxCommandEvent& event )
1495   {
1496 +        if (busy == 1) return;
1497          static const wxChar *FILETYPES = _T(
1498                  "Mod Loadouts (*.cfg)|*.cfg|"
1499                  "All files (*.*)|*.*"
# Line 1541 | Line 1552 | void MainWindow::OnReGlobalizeButtonClic
1552          wxMessageDialog* YesNoDialog = new wxMessageDialog(this,                        "WARNING: This will DELETE the Edition's GameDataFolder and reglobalize all of your data. \n Are you SURE you want to do this? ", "AE Installer Alert",  wxYES_NO | wxICON_EXCLAMATION  , wxDefaultPosition);
1553  
1554          if (YesNoDialog->ShowModal() == wxID_NO) { //if the user said no...
1555 <                
1555 >
1556          }
1557          else {
1547                
1558          
1559 +                this->InstallButton->Disable();
1560 +                this->ReglobalizeButton->Disable();
1561  
1562   #ifdef WIN32
1563  
1564 <        boost::thread thrd2(globalizeData);
1565 <        //globalizeData();
1566 <        //boost::thread::create_thread(&globalizeData);
1567 <        //       boost::thread_group Tg;
1568 <        // Tg.create_thread( &globalizeData(), this );
1564 >                boost::thread thrd2(globalizeData);
1565 >                //globalizeData();
1566 >                //boost::thread::create_thread(&globalizeData);
1567 >                //       boost::thread_group Tg;
1568 >                // Tg.create_thread( &globalizeData(), this );
1569   #else
1570 <        globalizeData();
1559 <        setProgressBar(1000);
1560 <        setStatusArea("Done!");
1570 >                globalizeData();
1571   #endif
1572 < }
1572 >                
1573 >                this->InstallButton->Enable();
1574 >                this->ReglobalizeButton->Enable();
1575 >        }
1576  
1577   }
1578   /*

Diff Legend

Removed lines
+ Added lines
< Changed lines (old)
> Changed lines (new)