SpikeStream Application  0.2
Main.cpp
Go to the documentation of this file.
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 
 All Files Functions