--- Vago/trunk/Vago/mainwindow.cpp 2013/04/06 21:08:35 791 +++ Vago/trunk/Vago/mainwindow.cpp 2013/04/10 19:32:13 802 @@ -9,25 +9,26 @@ MainWindow::MainWindow(QWidget *parent) { ui->setupUi(this); - ui->pbConvertGeneral->setMinimumSize(ui->pbConvertGeneral->minimumSizeHint()); - ui->pbConvertGeneral->setMinimumWidth(50); - ui->pbConvertGeneral->setMinimumHeight(ui->pbConvertGeneral->minimumHeight()*1.4); + this->AppDir=getOSIndependentAppPath(); - qDebug() << ui->pbConvertGeneral->minimumHeight() << ui->pbConvertGeneral->minimumHeight(); + this->myLogger = new Logger(); //start logger + + this->myLogger->writeString("Detected AppDir: "+this->AppDir); + this->myLogger->writeString("True app dir: "+QDir::currentPath()); this->setWindowTitle("Vago v"+GlobalVars::AppVersion); - if(!QFile::exists(QDir::currentPath()+"/"+GlobalVars::OniSplitString)){ + if(!QFile::exists(this->AppDir+"/"+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::XmlToolsString)){ + if(!QFile::exists(this->AppDir+"/"+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); } - this->vagoSettings = new QSettings(QDir::currentPath() + "/" + this->VagoSettingsName, QSettings::IniFormat); + this->vagoSettings = new QSettings(this->AppDir + "/" + this->VagoSettingsName, QSettings::IniFormat); //First Execution? Old configuration? Settings missed? bool iniChanged=false; @@ -36,7 +37,7 @@ MainWindow::MainWindow(QWidget *parent) iniChanged=true; } if(!this->vagoSettings->contains("Workspace")){ - this->vagoSettings->setValue("Workspace", QDir::currentPath()+"/VagoWorkspace"); + this->vagoSettings->setValue("Workspace", this->AppDir+"/VagoWorkspace"); iniChanged=true; } if(!this->vagoSettings->contains("AeFolder")){ @@ -94,8 +95,6 @@ MainWindow::MainWindow(QWidget *parent) ui->statusBar->addPermanentWidget(myBar); //this adds automatically in right - this->myLogger = new Logger(); //start logger - //Initialize list pointers this->listToProccess = new QStringList; @@ -113,6 +112,8 @@ 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 @@ -121,10 +122,10 @@ MainWindow::MainWindow(QWidget *parent) ui->menuTarget_Platform->addAction(ui->actionWindows); ui->actionWindows->setChecked(false); ui->actionMac_Windows_demo->setChecked(true); - // Hide file menu on mac (not needed) - ui->menuFile->hide(); - ui->menuFile->close(); - //ui->menuBar->macMenu(); + 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 +#else + resize(640,480); #endif connectSlots(); @@ -164,7 +165,7 @@ void MainWindow::on_actionAE_Package_Cre void MainWindow::on_actionSound_Wizard_triggered() { - SoundWizard myWizard (this->workspaceWizardsLocation, this->myLogger, &this->commandMap); + SoundWizard myWizard (this->AppDir, this->workspaceWizardsLocation, this->myLogger, &this->commandMap); myWizard.exec(); } @@ -1490,6 +1491,36 @@ 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); +} + +/** + Gets application directory. In mac os gets the .app directory + **/ +QString MainWindow::getOSIndependentAppPath(){ +#ifdef Q_WS_MAC + QDir dir = QDir::current(); + if(dir.absolutePath().contains(".app")){ // include bundle, but we don't want it + dir.cdUp(); + dir.cdUp(); + dir.cdUp(); + } + return dir.absolutePath(); +#else + return QDir::currentPath(); +#endif +} + void MainWindow::connectSlots(){ //This signal is for thread that is working setup the progress bar (make it visible and set it's min-max)