X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2Fmain.cxx;h=1d1b8d67b7cfe97babdd437a525c05b6e6da753c;hb=7f20464cbfdbb123c2880002895cdbb454e63fbf;hp=c8d518d84dd0afc6d0534b9db006ed6e56cbdd9f;hpb=b2f455f9c32667f9adee3ae066a51d85fb94ea04;p=tools%2Finstall.git diff --git a/src/main.cxx b/src/main.cxx index c8d518d..1d1b8d6 100644 --- a/src/main.cxx +++ b/src/main.cxx @@ -1,9 +1,9 @@ // File : main.cxx // Created : Thu Dec 18 12:01:00 2002 -// Author : Vadim SANDLER +// Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com) // Project : SALOME // Module : Installation Wizard -// Copyright : 2004-2005 CEA +// Copyright : 2002-2007 CEA #include "globals.h" @@ -18,7 +18,13 @@ * Qt's messages handler funcion */ // ================================================================ -void MessageOutput( QtMsgType type, const char *msg ) +void MessageOutput( QtMsgType type, +#ifdef QT_DEBUG + const char* msg +#else + const char* +#endif + ) { switch ( type ) { case QtDebugMsg: @@ -42,25 +48,88 @@ void MessageOutput( QtMsgType type, const char *msg ) int main( int argc, char **argv ) { qInstallMsgHandler( MessageOutput ); - QApplication a( argc, argv ); - QString xmlFileName( argc == 2 ? argv[1] : "config.xml" ); - - int result = -1; - QFile xmlfile(xmlFileName); - if ( xmlfile.exists() ) { - SALOME_InstallWizard wizard(xmlFileName); - a.setMainWidget( &wizard ); - wizard.show(); - result = a.exec(); + + QString xmlFileName; + QString targetDirPath; + QString tmpDirPath; + bool has_xml = false; + bool has_target = false; + bool has_tmp = false; + for( int i = 1; i < argc; i++ ) { + QString a = QString( argv[i] ); + if ( a == "--version" || a == "-v" ) { + printf("SALOME Installation Wizard version %d.%d.%d ", + ( __IW_VERSION__ / 10000 ), + ( __IW_VERSION__ / 100 % 100 ), + ( __IW_VERSION__ % 100 ) ); + printf("(Qt version %d.%d.%d)\n", + ( QT_VERSION >> 16 ) & 0xFF, + ( QT_VERSION >> 8 ) & 0xFF, + ( QT_VERSION ) & 0xFF ); + return 0; + } + else if ( a == "--target" || a == "-d" ) { + has_target = true; + if ( i < argc-1 && !QString( argv[i+1] ).startsWith("-") ) { + targetDirPath = argv[i+1]; + i++; + } + else { + targetDirPath = QString::null; + } + } + else if ( a == "--tmp" || a == "-t" ) { + has_tmp = true; + if ( i < argc-1 && !QString( argv[i+1] ).startsWith("-") ) { + tmpDirPath = argv[i+1]; + i++; + } + else { + tmpDirPath = QString::null; + } + } + else if ( a == "--file" || a == "-f" ) { + has_xml = true; + if ( i < argc-1 && !QString( argv[i+1] ).startsWith("-") ) { + xmlFileName = argv[i+1]; + i++; + } + else { + xmlFileName = QString::null; + } + } + } + if ( has_xml && xmlFileName.isEmpty() ) { + printf("Please specify the configuration XML file!\n"); + return 1; + } + if ( has_target && targetDirPath.isEmpty() ) { + printf("Please specify the target directory path!\n"); + return 1; } - else { - QMessageBox::critical( 0, - QObject::tr( "Error" ), - QObject::tr( "Can't open config file:\n%1\n\nQuitting...").arg( xmlFileName ), - QMessageBox::Ok, - QMessageBox::NoButton, - QMessageBox::NoButton ); + if ( has_tmp && tmpDirPath.isEmpty() ) { + printf("Please specify the temprary directory path!\n"); + return 1; + } + + QApplication a( argc, argv ); + a.setFont( QFont( "Sans", 12 ) ); + + if ( has_xml ) { + QFile xmlfile(xmlFileName); + if ( !xmlfile.exists() ) { + QMessageBox::critical( 0, + QObject::tr( "Error" ), + QObject::tr( "Can't open config file:\n%1\n\nQuitting...").arg( xmlFileName ), + QMessageBox::Ok, + QMessageBox::NoButton, + QMessageBox::NoButton ); + return -1; + } } - return result; + SALOME_InstallWizard wizard(xmlFileName, targetDirPath, tmpDirPath); + a.setMainWidget( &wizard ); + wizard.show(); + return a.exec(); }