ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/s10k/Vago/mainwindow.cpp
(Generate patch)

Comparing Vago/trunk/Vago/mainwindow.cpp (file contents):
Revision 1054 by s10k, Wed Oct 12 21:35:13 2016 UTC vs.
Revision 1058 by s10k, Sun Oct 30 14:42:39 2016 UTC

# Line 128 | Line 128 | MainWindow::MainWindow(QWidget *parent)
128      ui->statusBar->addPermanentWidget(this->myBar); //this adds automatically in right
129      ui->statusBar->addPermanentWidget(ui->tbAbortConversion);
130  
131    //Initialize list pointers
132    this->listToProccess = new QStringList;
133
131      // User interface
132      ui->mainToolBar->addWidget(ui->tbAE); //add ae installer launch button
133      ui->mainToolBar->addWidget(ui->emptySpacerLabel); //trick, we can't add directly a space so we add an empty
# Line 138 | Line 135 | MainWindow::MainWindow(QWidget *parent)
135      ui->mainToolBar->addWidget(ui->emptySpacerLabel2); //same as before
136      ui->mainToolBar->addWidget(ui->tbCommand); //add option to manual onisplit commands
137      ui->mainToolBar->addWidget(ui->emptySpacerLabel3); //same as before
138 +    ui->mainToolBar->addWidget(ui->tbXmlToolsInterface); //add option to manual onisplit commands
139 +    ui->mainToolBar->addWidget(ui->emptySpacerLabel4); //same as before
140      ui->mainToolBar->addWidget(ui->tbOpenFolder); //add option to open folder with files converted etc
141  
142      ui->mainToolBar->setLayoutDirection(Qt::RightToLeft);
# Line 207 | Line 206 | void MainWindow::applicationWasLoaded(){
206      this->win7TaskBarProgress = this->win7TaskBarButton->progress();
207  
208      //Create a thread for do the conversion in background
209 <    this->myConverter = new Converter(UtilVago::getAppPath(), this->myLogger, this->listToProccess, this->win7TaskBarProgress);
209 >    this->myConverter = new Converter(UtilVago::getAppPath(), this->myLogger, &this->listToProccess, this->win7TaskBarProgress);
210   #else
211 <    this->myConverter = new Converter(UtilVago::getAppPath(), this->myLogger, this->listToProccess);
211 >    this->myConverter = new Converter(UtilVago::getAppPath(), this->myLogger, &this->listToProccess);
212   #endif
213  
214      connectSlots();
# Line 292 | Line 291 | void MainWindow::on_tbOpenFolder_clicked
291      QDesktopServices::openUrl(QUrl("file:///"+this->outputFolder));
292   }
293  
294 +
295 + void MainWindow::on_tbXmlToolsInterface_clicked()
296 + {
297 +    //We pass no parent because we want to have an independent window for XmlToolsInterface,
298 +    //so we can minimize it or maximize indepently from the MainWindow
299 +    XmlToolsInterface *xmlToolsWindow = new XmlToolsInterface(this->myLogger);
300 +    xmlToolsWindow->show(); //it destroys itself when finished.
301 + }
302 +
303   void MainWindow::on_tbAbortConversion_clicked()
304   {
305      if(Util::showQuestionPopUp(this,"Are you sure you want to abort the current conversion?")){
# Line 741 | Line 749 | void MainWindow::startConversion(){
749      for(int i=0; i<currTable->rowCount(); i++){
750          //Only process enabled items
751          if(currTable->item(i,2)->background()!=currTable->disabledBackStyle){
752 <            this->listToProccess->append(currTable->item(i,2)->text());
752 >            this->listToProccess.append(currTable->item(i,2)->text());
753          }
754      }
755  
# Line 1186 | Line 1194 | void MainWindow::closeEvent(QCloseEvent
1194          QMessageBox::StandardButton result = askToSaveCurrentProject();
1195          if(result == QMessageBox::StandardButton::Cancel){
1196              event->ignore();
1197 +            return;
1198          }
1199      }
1200 +
1201 +    // Exit application (this will also close all other windows which don't have parent, for instance ManualCommands)
1202 +    QApplication::quit();
1203   }
1204  
1205   QMessageBox::StandardButton MainWindow::askToSaveCurrentProject(){
# Line 1224 | Line 1236 | void MainWindow::on_cbBnvLevels_toggled(
1236      ui->leBnvLevels->setEnabled(checked);
1237      ui->cbGridsLevels->setEnabled(checked);
1238      ui->cbGridsLevels->setChecked(checked);
1239 <    if(checked){
1239 >    if(checked && !projectIsLoading){
1240          QString file=QFileDialog::getOpenFileName(this,"Choose the BNV.dae file...","./" , "All Files (*.*)");
1241          if(!file.isEmpty()){
1242              ui->leBnvLevels->setText(file);
# Line 1236 | Line 1248 | void MainWindow::on_cbAdditionalSourcesL
1248   {
1249      ui->leAdditSourcesLevels->setEnabled(checked);
1250  
1251 <    if(checked){
1251 >    if(checked && !projectIsLoading){
1252          QStringList filesSelected=QFileDialog::getOpenFileNames(this,"Choose the additional .dae files...","./" , "All Files (*.*)");
1253          QString filesJoined;
1254          int size=filesSelected.size();
# Line 1305 | Line 1317 | void MainWindow::rowsWereChangedInDropTa
1317  
1318   void MainWindow::on_tbCommand_clicked()
1319   {
1320 <    //Show preferences
1321 <    ManualCommands *commandsWindow = new ManualCommands(this);
1320 >    //We pass no parent because we want to have an independent window for ManualCommands,
1321 >    //so we can minimize it or maximize indepently from the MainWindow
1322 >    ManualCommands *commandsWindow = new ManualCommands();
1323      commandsWindow->show(); //it destroys itself when finished.
1324   }
1325  
# Line 2001 | Line 2014 | QList<DropTableWidget*> MainWindow::getA
2014   void MainWindow::loadProjectState(const QString &filePath)
2015   {
2016  
2017 +    this->projectIsLoading = true;
2018 +
2019      if(this->vagoSettings->value("AskSaveProject").toBool() && this->unsavedChangesExist){
2020          QMessageBox::StandardButton result = askToSaveCurrentProject();
2021          if(result == QMessageBox::StandardButton::Cancel){
2022 +            this->projectIsLoading = false;
2023              return;
2024          }
2025      }
# Line 2017 | Line 2033 | void MainWindow::loadProjectState(const
2033      if(result.status!=pugi::status_ok){
2034          UtilVago::showAndLogErrorPopUpLogButton(this->myLogger, "An error ocurred while loading project file.\n" + QString(result.description()));
2035          showErrStatusMessage(statusError);
2036 +        this->projectIsLoading = false;
2037          return;
2038      }
2039  
# Line 2024 | Line 2041 | void MainWindow::loadProjectState(const
2041      if(QString(doc.root().first_child().name()) != "VagoProject"){
2042          UtilVago::showAndLogErrorPopUpLogButton(this->myLogger, QString(doc.root().name()) + "The file opened is not a valid VagoProject file. Load aborted.");
2043          showErrStatusMessage(statusError);
2044 +        this->projectIsLoading = false;
2045          return;
2046      }
2047  
# Line 2036 | Line 2054 | void MainWindow::loadProjectState(const
2054      {
2055          UtilVago::showAndLogErrorPopUpLogButton(this->myLogger, "Couldn't find the vagoVersion of the current project. Load aborted.\n" + QString(e.what()));
2056          showErrStatusMessage(statusError);
2057 +        this->projectIsLoading = false;
2058          return;
2059      }
2060  
2061      if(!projVagoVersion.startsWith(GlobalVars::LastCompatibleVersion)){
2062          UtilVago::showAndLogErrorPopUpLogButton(this->myLogger, "The project that you are trying to load seems it is not compatible with your Vago Version. Please update Vago and try again.");
2063          showErrStatusMessage(statusError);
2064 +        this->projectIsLoading = false;
2065          return;
2066      }
2067  
# Line 2057 | Line 2077 | void MainWindow::loadProjectState(const
2077      catch(const std::exception& e){
2078          UtilVago::showAndLogErrorPopUpLogButton(this->myLogger, "Couldn't load the vago project. Error: " + QString(e.what()));
2079          showErrStatusMessage(statusError);
2080 +        this->projectIsLoading = false;
2081          return;
2082      }
2083  
# Line 2069 | Line 2090 | void MainWindow::loadProjectState(const
2090  
2091      setVagoWindowTitle();
2092  
2093 +    this->projectIsLoading = false;
2094 +
2095      showSuccessStatusMessage("Project loaded sucessfully.");
2096   }
2097  
# Line 2131 | Line 2154 | void MainWindow::loadProjectWidget(pugi:
2154          ui->leBnvLevels->setText(QString(doc.select_node(Util::qStrToCstr("/VagoProject/"+tabName+"/Options/@bnvSourceValue")).attribute().value()));
2155          ui->cbGridsLevels->setChecked(doc.select_node(Util::qStrToCstr("/VagoProject/"+tabName+"/Options/@generateGrids")).attribute().as_bool());
2156          ui->cbAdditionalSourcesLevels->setChecked(doc.select_node(Util::qStrToCstr("/VagoProject/"+tabName+"/Options/@additionalSources")).attribute().as_bool());
2157 <        ui->leAdditSourcesLevels->setText(QString(doc.select_node(Util::qStrToCstr("/VagoProject/"+tabName+"/Options/@bnvSource")).attribute().value()));
2157 >        ui->leAdditSourcesLevels->setText(QString(doc.select_node(Util::qStrToCstr("/VagoProject/"+tabName+"/Options/@additionalSourcesValue")).attribute().value()));
2158      }
2159      else{
2160          ui->cbFromMisc->setCurrentText(from);

Diff Legend

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