00001 #include "QtApplication.h"
00002
00003 #ifdef RT_QT
00004
00005 namespace RenderTools{
00006
00007 QtApplication::QtApplication( void ){
00008
00009 }
00010
00011 QtApplication::~QtApplication( void ){
00012
00013 }
00014
00015 PropertyPtr QtApplication::create( const XMLNodePtr & xml ){
00016 ApplicationPtr p( new QtApplication() );
00017 p->setName( xml );
00018 p->createProperties();
00019 p->setProperties( xml, false );
00020 return( dynamic_pointer_cast< AbstractProperty, AbstractApplication >( p ) );
00021 }
00022
00023 void QtApplication::onInitialize( void ){
00024 AbstractApplication::onInitialize();
00025 #ifdef RT_GLEW
00026 if( glewInit() != GLEW_OK ){
00027 Error::error( Error::GLEW_INITIALIZATION_FAILED, __FILE__, __LINE__ );
00028 }
00029 #endif
00030 }
00031
00032 bool QtApplication::notify( QObject *rec, QEvent *ev ){
00033 try{
00034 return QApplication::notify( rec, ev );
00035 }
00036 catch( string error ) {
00037 QMessageBox::critical( 0, tr("RenderTools fatal error:"), tr( error.c_str() ) );
00038 abort();
00039 return( false );
00040 }
00041 catch( int exitCode ){
00042 exit( exitCode );
00043 }
00044 catch (...) {
00045 QMessageBox::critical( 0, tr("fatal error"), tr("unknown exception thrown !") );
00046 abort();
00047 return( false );
00048 }
00049 return( true );
00050 }
00051
00054 int QtApplication::mainloop( void ){
00055 exec();
00056 return( 0 );
00057 }
00058
00059 };
00060
00061 #else
00062 int _______________________________________________________________________________forcedpublicsymbol = 0;
00063 #endif