--- Vago/trunk/Vago/mainwindow.cpp 2013/03/31 19:02:16 771 +++ Vago/trunk/Vago/mainwindow.cpp 2013/04/06 23:30:00 793 @@ -11,14 +11,12 @@ MainWindow::MainWindow(QWidget *parent) this->setWindowTitle("Vago v"+GlobalVars::AppVersion); - // QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale ()); - - if(!QFile::exists(QDir::currentPath()+"/"+GlobalVars::OniSplitExeName)){ + if(!QFile::exists(QDir::currentPath()+"/"+GlobalVars::OniSplitString)){ Util::showErrorPopUp("OniSplit not found. Please download it at "+GlobalVars::ModsDomain+" and put it in the same folder of Vago. \n\nProgram will now exit."); exit(1); } - if(!QFile::exists(QDir::currentPath()+"/"+GlobalVars::XmlToolsExeName)){ + if(!QFile::exists(QDir::currentPath()+"/"+GlobalVars::XmlToolsString)){ Util::showErrorPopUp("xmlTools not found. Please download it at "+GlobalVars::ModsDomain+" and put it in the same folder of Vago. \n\nProgram will now exit."); exit(1); } @@ -41,7 +39,7 @@ MainWindow::MainWindow(QWidget *parent) QString aefolder=Util::normalizePath(QFileDialog::getExistingDirectory(this,"Choose Anniversary Edition (AE) folder...")); if(aefolder.isEmpty()){ - Util::showErrorPopUp("AE folder is mandatory. Application will exit."); + Util::showErrorPopUp("AE folder is mandatory. Application will now exit."); exit(1); } @@ -98,6 +96,7 @@ MainWindow::MainWindow(QWidget *parent) //Create a thread for do the conversion in background this->myConverter = new Converter(this->myLogger,this->listToProccess); + // User interface ui->mainToolBar->addWidget(ui->tbAE); //add ae installer launch button ui->mainToolBar->addWidget(ui->emptySpacerLabel); //trick, we can't add directly a space so we add an empty ui->mainToolBar->addWidget(ui->tbOni); //add oni launch buttonlabel @@ -108,6 +107,20 @@ MainWindow::MainWindow(QWidget *parent) ui->mainToolBar->setLayoutDirection(Qt::RightToLeft); + setConverterButtonsSize(); + +#ifdef Q_WS_MAC + // setUnifiedTitleAndToolBarOnMac(true); // Qt suggests to use it on mac | http://www.slideshare.net/qtbynokia/how-to-make-your-qt-app-look-native // align on left doesn't work if active + ui->tbOni->setIcon(QIcon(":/new/icons/oni_icon_mac.png")); // Oni executable on mac have a different icon than windows + // Set mac platform the first one in the menu, and also make it checkable by default + ui->menuTarget_Platform->removeAction(ui->actionWindows); + ui->menuTarget_Platform->addAction(ui->actionWindows); + ui->actionWindows->setChecked(false); + ui->actionMac_Windows_demo->setChecked(true); + resize(800,600); // Mac OS pcs should be able to render this resolution without any problem. It's also better + // because the components on mac use more space +#endif + connectSlots(); //Commands Mapping @@ -153,16 +166,18 @@ void MainWindow::on_tbOni_clicked() { QStringList arguments; - if(this->vagoSettings->value("OniWindow").toBool()){ //Run in a window? + if(this->vagoSettings->value("OniWindow").toBool()){ // Run in a window? arguments << "-noswitch"; } +#ifdef Q_WS_WIN else{ - arguments << "-switch"; + arguments << "-switch"; // only supported on windows. Was added by daodan dll. } +#endif - arguments << " -debugfiles"; + arguments << "-debugfiles"; - if(!QProcess::startDetached(this->AeLocation+"/Oni.exe",arguments,this->AeLocation)){ + if(!QProcess::startDetached(this->AeLocation+"/"+GlobalVars::OniExe,arguments,this->AeLocation)){ showErrStatusMessage("Oni could not be started!"); } } @@ -171,7 +186,7 @@ void MainWindow::on_tbAE_clicked() { // If the app turn out someday to a native app use QProcess::startDetached instead... - if(!QDesktopServices::openUrl(this->AeLocation+"/AEInstaller/bin/AEInstaller2.jar")){ + if(!QDesktopServices::openUrl("file:///"+this->AeLocation+"/AEInstaller/bin/AEInstaller2.jar")){ showErrStatusMessage("Could not start AE Installer!"); } } @@ -1469,6 +1484,19 @@ QString MainWindow::getCommand(DropTable } +/** + This is OS indepented. It maintain size ratio over the Windows and Mac. + **/ +void MainWindow::setConverterButtonsSize(){ + int height=ui->pbConvertGeneral->sizeHint().height()*1.3; + ui->pbConvertGeneral->setMinimumHeight(height); + ui->pbConvertTextures->setMinimumHeight(height); + ui->pbConvertModels->setMinimumHeight(height); + ui->pbConvertAnimations->setMinimumHeight(height); + ui->pbConvertLevels->setMinimumHeight(height); + ui->pbConvertMisc->setMinimumHeight(height); +} + void MainWindow::connectSlots(){ //This signal is for thread that is working setup the progress bar (make it visible and set it's min-max)