SpikeStream Application
0.2
|
00001 //SpikeStream includes 00002 #include "SpikeStreamMainWindow.h" 00003 #include "SpikeStreamApplication.h" 00004 #include "SpikeStreamException.h" 00005 using namespace spikestream; 00006 00007 //Qt includes 00008 #include <QApplication> 00009 #include <QDebug> 00010 #include <QMessageBox> 00011 00012 //Other includes 00013 #include <iostream> 00014 #include <stdio.h> 00015 using namespace std; 00016 00017 00019 void logMessageOutput(QtMsgType type, const char *msg){ 00020 switch (type) { 00021 case QtDebugMsg: 00022 cout<<"Debug: "<<msg<<endl; 00023 break; 00024 case QtWarningMsg: 00025 QMessageBox::warning( 0, "Warning", msg); 00026 fprintf(stderr, "Warning: %s\n", msg); 00027 break; 00028 case QtCriticalMsg: 00029 QMessageBox::critical( 0, "Critical Error", msg); 00030 fprintf(stderr, "Critical: %s\n", msg); 00031 break; 00032 case QtFatalMsg: 00033 QMessageBox::critical( 0, "Fatal Error", msg); 00034 fprintf(stderr, "Fatal: %s\n", msg); 00035 abort(); 00036 } 00037 } 00038 00039 00041 int main( int argc, char ** argv ) { 00042 //Install message handler for logging 00043 qInstallMsgHandler(logMessageOutput); 00044 00045 try{ 00046 //Create QApplication 00047 SpikeStreamApplication spikeStrApp(argc, argv); 00048 00049 //Start up main window of application 00050 SpikeStreamMainWindow *spikeStrMainWin = new SpikeStreamMainWindow(); 00051 spikeStrMainWin->show(); 00052 00053 //Listen for window closing events 00054 spikeStrApp.connect( &spikeStrApp, SIGNAL(lastWindowClosed()), &spikeStrApp, SLOT(quit()) ); 00055 00056 //Execute application 00057 return spikeStrApp.exec(); 00058 } 00059 catch(SpikeStreamException& ex){ 00060 qCritical()<<"Fatal error: "<<ex.getMessage(); 00061 } 00062 catch(...){ 00063 qCritical()<<"SpikeStream has thrown an unknown exception and will now exit."; 00064 return EXIT_FAILURE; 00065 } 00066 } 00067