Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members  

SIG_MainWindow.cpp

00001 #include <qapplication.h>
00002 #include <qvaluelist.h>
00003 #include <qmessagebox.h>
00004 #include <qiconset.h>
00005 #include <qpixmap.h>
00006 #include <qstatusbar.h>
00007 #include <qfontdialog.h>
00008 
00009 #include "SIGEL_MasterGUI/SIG_MainWindow.h"
00010 #include "SIGEL_MasterGUI/SIG_InfoBox.h"
00011 
00012 #include <cstdlib>
00013 
00014 namespace SIGEL_MasterGUI
00015 {
00016 
00017 SIG_MainWindow::SIG_MainWindow( QWidget * parent = 0, const char * name = 0, WFlags f = WType_TopLevel ) : QMainWindow( parent, name, f )
00018 {
00019   QString sigelRoot( std::getenv( "SIGEL_ROOT" ) );
00020 
00021   resize( 940, 690 );
00022   setCaption( "Sigel" );
00023 
00024   splitter = new QSplitter( this, "Splitter" );
00025   splitter->setFrameStyle( QFrame::Box | QFrame::Sunken );
00026 
00027   setCentralWidget( splitter );
00028 
00029   widgetStack = new QWidgetStack( splitter, "WidgetStack" ); // this was splitter before...
00030   widgetStack->setMargin( 6 );
00031   widgetStack->setFrameStyle( QFrame::Box | QFrame::Sunken );
00032 
00033   experimentListView = new SIGEL_MasterGUI::SIG_ExperimentListView( splitter, "ExperimentListView", widgetStack );
00034 
00035   splitter->moveToFirst( experimentListView );
00036   splitter->setOpaqueResize();
00037   
00038   QValueList<int> valList;
00039   valList += 4;
00040   valList += 7;
00041   splitter->setSizes( valList );
00042 
00043   splitter->setMargin( 6 );
00044 
00045   // setUsesBigPixmaps( true );
00046 
00047   // create the file menu and toolbar
00048   fileMenu = new QPopupMenu(this);
00049   fileToolBar = new QToolBar( this, "fileToolbar" );
00050   fileToolBar->setLabel( "File" );
00051 
00052   QToolBar *viewToolBar = new QToolBar( this, "viewToolBar" );
00053   viewToolBar->setLabel( "View" );
00054 
00055   QToolBar *individualsToolBar = new QToolBar( this, "individualsToolBar" );
00056   individualsToolBar->setLabel( "Individuals" );
00057 
00058   // create the new experiment action
00059   QAction *newExperimentAction = new QAction( "New", QIconSet( QPixmap( sigelRoot + "/pixmaps/newExperimentSmall.xpm" ), QPixmap( sigelRoot + "/pixmaps/newExperimentLarge.xpm" ) ), "&New Experiment", CTRL+Key_N, this, "newExperimentAction" );
00060   newExperimentAction->addTo( fileMenu );
00061   newExperimentAction->addTo( fileToolBar );
00062   newExperimentAction->addTo( experimentListView->experimentListViewMenu );
00063   QObject::connect( newExperimentAction,
00064                     SIGNAL( activated() ),
00065                     experimentListView,
00066                     SLOT( slotNewExperiment() ) );
00067   newExperimentAction->setStatusTip( "Create a new experiment..." );
00068 
00069   QAction *renameExperimentAction = new QAction( "Rename", "&Rename Experiment", CTRL+Key_R, this, "renameExperimentAction" );
00070   renameExperimentAction->addTo( fileMenu );
00071   QObject::connect( renameExperimentAction,
00072                     SIGNAL( activated() ),
00073                     experimentListView,
00074                     SLOT( slotRenameExperiment() ) );
00075   renameExperimentAction->setStatusTip( "Rename the currently selected experiment..." );
00076 
00077   QAction *deleteExperimentAction = new QAction( "Delete", QIconSet( QPixmap( sigelRoot + "/pixmaps/deleteExperimentSmall.xpm" ), QPixmap( sigelRoot + "/pixmaps/deleteExperimentLarge.xpm" ) ), "&Delete Experiment", CTRL+Key_D, this, "deleteExperimentAction" );
00078   deleteExperimentAction->addTo( fileMenu );
00079   deleteExperimentAction->addTo( fileToolBar );
00080   deleteExperimentAction->addTo( experimentListView->experimentListViewMenu );
00081   QObject::connect( deleteExperimentAction,
00082                     SIGNAL( activated() ),
00083                     experimentListView,
00084                     SLOT( slotDeleteExperiment() ) );
00085   deleteExperimentAction->setStatusTip( "Delete the selected experiment..." );
00086 
00087   fileMenu->insertSeparator();
00088   fileToolBar->addSeparator();
00089   experimentListView->experimentListViewMenu->insertSeparator();
00090 
00091   QAction *openExperimentAction = new QAction( "Open", QIconSet( QPixmap( sigelRoot + "/pixmaps/openExperimentSmall.xpm" ), QPixmap( sigelRoot + "/pixmaps/openExperimentLarge.xpm" ) ), "&Open Experiment", CTRL+Key_O, this, "openExperimentAction");
00092   openExperimentAction->addTo( fileMenu );
00093   openExperimentAction->addTo( fileToolBar );
00094   openExperimentAction->addTo( experimentListView->experimentListViewMenu );
00095   QObject::connect( openExperimentAction,
00096                     SIGNAL( activated() ),
00097                     experimentListView,
00098                     SLOT( slotLoadExperiment() ) );
00099   openExperimentAction->setStatusTip( "Open an experiment..." );
00100 
00101   QAction *saveExperimentAction = new QAction( "Save", QIconSet( QPixmap( sigelRoot + "/pixmaps/saveExperimentSmall.xpm" ), QPixmap( sigelRoot + "/pixmaps/saveExperimentLarge.xpm" ) ),"&Save Experiment", CTRL+Key_S, this, "saveExperimentAction");
00102   saveExperimentAction->addTo( fileMenu );
00103   saveExperimentAction->addTo( fileToolBar );
00104   saveExperimentAction->addTo( experimentListView->experimentListViewMenu );
00105   QObject::connect( saveExperimentAction,
00106                     SIGNAL( activated() ),
00107                     experimentListView,
00108                     SLOT( slotSaveExperiment() ) );
00109   saveExperimentAction->setStatusTip( "Save the selected experiment..." );
00110 
00111   fileMenu->insertSeparator();
00112 
00113   // create the import menu
00114   QPopupMenu *importMenu = new QPopupMenu( this, "importMenu" );
00115 
00116   // create the actions and insert them into the menu
00117   QAction *importGPParametersAction = new QAction( "Import GP-Parameters", "GP-Parameters", CTRL+SHIFT+Key_G, this, "importGPParametersAction");
00118   importGPParametersAction->addTo( importMenu );
00119   QObject::connect( importGPParametersAction,
00120                     SIGNAL( activated() ),
00121                     experimentListView,
00122                     SLOT( slotGPParametersImport() ) );
00123   QAction *importSimulationParametersAction = new QAction( "Import Simulation-Parameters", "Simulation-Parameters", CTRL+SHIFT+Key_S, this, "importSimulationParametersAction");
00124   importSimulationParametersAction->addTo( importMenu );
00125   QObject::connect( importSimulationParametersAction,
00126                     SIGNAL( activated() ),
00127                     experimentListView,
00128                     SLOT( slotSimulationParametersImport() ) );
00129   QAction *importLanguageParametersAction = new QAction( "Import Language-Parameters", "Language-Parameters", CTRL+SHIFT+Key_L, this, "importLanguageParametersAction");
00130   importLanguageParametersAction->addTo( importMenu );
00131   QObject::connect( importLanguageParametersAction,
00132                     SIGNAL( activated() ),
00133                     experimentListView,
00134                     SLOT( slotLanguageParametersImport() ) );
00135   QAction *importEnvironmentAction = new QAction( "Import Environment", "Environment", CTRL+SHIFT+Key_E, this, "importEnvironmentAction");
00136   importEnvironmentAction->addTo( importMenu );
00137   QObject::connect( importEnvironmentAction,
00138                     SIGNAL( activated() ),
00139                     experimentListView,
00140                     SLOT( slotEnvironmentImport() ) );
00141   QAction *importPopulationAction = new QAction( "Import Population", "Population", CTRL+SHIFT+Key_P, this, "importPopulationAction");
00142   importPopulationAction->addTo( importMenu );
00143   QObject::connect( importPopulationAction,
00144                     SIGNAL( activated() ),
00145                     experimentListView,
00146                     SLOT( slotPopulationImport() ) );
00147   QAction *importRobotAction = new QAction( "Import Robot", "Robot", CTRL+SHIFT+Key_R, this, "importRobotAction");
00148   importRobotAction->addTo( importMenu );
00149   QObject::connect( importRobotAction,
00150                     SIGNAL( activated() ),
00151                     experimentListView,
00152                     SLOT( slotRobotImport() ) );
00153 
00154   importMenu->insertSeparator();
00155 
00156   QAction *importProgramAction = new QAction( "Import Program", "Program", CTRL+SHIFT+Key_K, this, "importProgramAction");
00157   importProgramAction->addTo( importMenu );
00158   QObject::connect( importProgramAction,
00159                     SIGNAL( activated() ),
00160                     experimentListView,
00161                     SLOT( slotProgramImport() ) );
00162 
00163   QAction *importIndividualAction = new QAction( "Import Individual", "Individual", CTRL+SHIFT+Key_L, this, "importIndividualAction");
00164   importIndividualAction->addTo( importMenu );
00165   QObject::connect( importIndividualAction,
00166                     SIGNAL( activated() ),
00167                     experimentListView,
00168                     SLOT( slotIndividualImport() ) );
00169   
00170   fileMenu->insertItem( "Import", importMenu );
00171 
00172   // create the export menu
00173   QPopupMenu *exportMenu = new QPopupMenu( this, "exportMenu" );
00174 
00175   QAction *exportGPParametersAction = new QAction( "Export GP-Parameters", "GP-Parameters", CTRL+ALT+Key_G, this, "exportGPParametersAction");
00176   exportGPParametersAction->addTo( exportMenu );
00177   QObject::connect( exportGPParametersAction,
00178                     SIGNAL( activated() ),
00179                     experimentListView,
00180                     SLOT( slotGPParametersExport() ) );
00181   QAction *exportSimulationParametersAction = new QAction( "Export Simulation-Parameters", "Simulation-Parameters", CTRL+ALT+Key_S, this, "exportSimulationParametersAction");
00182   exportSimulationParametersAction->addTo( exportMenu );
00183   QObject::connect( exportSimulationParametersAction,
00184                     SIGNAL( activated() ),
00185                     experimentListView,
00186                     SLOT( slotSimulationParametersExport() ) );
00187   QAction *exportLanguageParametersAction = new QAction( "Export Language-Parameters", "Language-Parameters", CTRL+ALT+Key_L, this, "exportLanguageParametersAction");
00188   exportLanguageParametersAction->addTo( exportMenu );
00189   QObject::connect( exportLanguageParametersAction,
00190                     SIGNAL( activated() ),
00191                     experimentListView,
00192                     SLOT( slotLanguageParametersExport() ) );
00193   QAction *exportEnvironmentAction = new QAction( "Export Environment", "Environment", CTRL+ALT+Key_E, this, "exportEnvironmentAction");
00194   exportEnvironmentAction->addTo( exportMenu );
00195   QObject::connect( exportEnvironmentAction,
00196                     SIGNAL( activated() ),
00197                     experimentListView,
00198                     SLOT( slotEnvironmentExport() ) );
00199   QAction *exportPopulationAction = new QAction( "Export Population", "Population", CTRL+ALT+Key_P, this, "exportPopulationAction");
00200   exportPopulationAction->addTo( exportMenu );
00201   QObject::connect( exportPopulationAction,
00202                     SIGNAL( activated() ),
00203                     experimentListView,
00204                     SLOT( slotPopulationExport() ) );
00205 
00206   exportMenu->insertSeparator();
00207 
00208   QAction *exportProgramAction = new QAction( "Export Program", "Program", CTRL+ALT+Key_K, this, "exportProgramAction");
00209   exportProgramAction->addTo( exportMenu );
00210   QObject::connect( exportProgramAction,
00211                     SIGNAL( activated() ),
00212                     experimentListView,
00213                     SLOT( slotProgramExport() ) );
00214 
00215   QAction *exportIndividualAction = new QAction( "Export Individual", "Individual", CTRL+ALT+Key_L, this, "exportIndividualAction");
00216   exportIndividualAction->addTo( exportMenu );
00217   QObject::connect( exportIndividualAction,
00218                     SIGNAL( activated() ),
00219                     experimentListView,
00220                     SLOT( slotIndividualExport() ) );
00221 
00222   exportMenu->insertSeparator();
00223 
00224   QAction *exportToGNUPlotAction = new QAction( "Export to GNU plot", "...to GNU plot", ALT+Key_6, this, "exportToGNUPlot");
00225   exportToGNUPlotAction->addTo( exportMenu );
00226   QObject::connect( exportToGNUPlotAction,
00227                     SIGNAL( activated() ),
00228                     experimentListView,
00229                     SLOT( slotGNUPlotExport() ) );
00230 
00231   fileMenu->insertItem( "Export", exportMenu );
00232 
00233   fileMenu->insertSeparator();
00234 
00235   fileToolBar->addSeparator();
00236 
00237   QAction *quitProgramAction = new QAction( "Quit", QIconSet( QPixmap( sigelRoot + "/pixmaps/quitApplicationSmall.xpm" ), QPixmap( sigelRoot + "/pixmaps/quitApplicationLarge.xpm" ) ), "&Quit", CTRL+Key_Q, this, "quitProgramAction" );
00238   quitProgramAction->addTo( fileMenu );
00239   quitProgramAction->addTo( fileToolBar );
00240   QObject::connect( quitProgramAction,
00241                     SIGNAL( activated() ),
00242                     this,
00243                     SLOT( slotAboutToQuit() ) );
00244   quitProgramAction->setStatusTip( "Quit application..." );
00245 
00246   // create the view menu
00247   viewMenu = new QPopupMenu( this, "viewMenu" );
00248  
00249   // insert a lot of actions into the view menu
00250   
00251   QAction *viewPopulationAction = new QAction( "Population", QIconSet( QPixmap( sigelRoot + "/pixmaps/individualSmall.xpm" ), QPixmap( sigelRoot + "/pixmaps/individualLarge.xpm" ) ), "&Population", ALT+Key_P, this, "viewPopulationAction" );
00252   viewPopulationAction->addTo( viewMenu );
00253   viewPopulationAction->addTo( viewToolBar );
00254   QObject::connect( viewPopulationAction,
00255                     SIGNAL( activated() ),
00256                     experimentListView,
00257                     SLOT( slotShowIndividuals() ) );
00258   viewPopulationAction->setStatusTip( "View population." );
00259 
00260   QAction *viewRobotAction = new QAction( "Robot", QIconSet( QPixmap( sigelRoot + "/pixmaps/robotSmall.xpm" ), QPixmap( sigelRoot + "/pixmaps/robotLarge.xpm" ) ), "&Robot", ALT+Key_R, this, "viewRobotAction" );
00261   viewRobotAction->addTo( viewMenu );
00262   viewRobotAction->addTo( viewToolBar );
00263   QObject::connect( viewRobotAction,
00264                     SIGNAL( activated() ),
00265                     experimentListView,
00266                     SLOT( slotShowRobot() ) );
00267   viewRobotAction->setStatusTip( "View robot." );
00268 
00269   QAction *viewLanguageParametersAction = new QAction( "Language", QIconSet( QPixmap( sigelRoot + "/pixmaps/balloonSmall.xpm" ), QPixmap( sigelRoot + "/pixmaps/balloonLarge.xpm" ) ), "&Language Parameters", ALT+Key_L, this, "viewLanguageParametersAction" );
00270   viewLanguageParametersAction->addTo( viewMenu );
00271   viewLanguageParametersAction->addTo( viewToolBar );
00272   QObject::connect( viewLanguageParametersAction,
00273                     SIGNAL( activated() ),
00274                     experimentListView,
00275                     SLOT( slotShowLanguageParameters() ) );
00276   viewLanguageParametersAction->setStatusTip( "View language parameters." );
00277 
00278   QAction *viewGPParametersAction = new QAction( "Genetic", QIconSet( QPixmap( sigelRoot + "/pixmaps/dnaSmall.xpm" ), QPixmap( sigelRoot + "/pixmaps/dnaLarge.xpm" ) ), "&GP Parameters", ALT+Key_G, this, "viewGPParametersAction" );
00279   viewGPParametersAction->addTo( viewMenu );
00280   viewGPParametersAction->addTo( viewToolBar );
00281   QObject::connect( viewGPParametersAction,
00282                     SIGNAL( activated() ),
00283                     experimentListView,
00284                     SLOT( slotShowGPParameters() ) );
00285   viewGPParametersAction->setStatusTip( "View genetic programming parameters." );
00286 
00287   QAction *viewSimulationParametersAction = new QAction( "Simulation", QIconSet( QPixmap( sigelRoot + "/pixmaps/simulationParameterSmall.xpm" ), QPixmap( sigelRoot + "/pixmaps/simulationParameterLarge.xpm" ) ), "&Simulation Parameters", ALT+Key_S, this, "viewSimulaitonParametersAction" );
00288   viewSimulationParametersAction->addTo( viewMenu );
00289   viewSimulationParametersAction->addTo( viewToolBar );
00290   QObject::connect( viewSimulationParametersAction,
00291                     SIGNAL( activated() ),
00292                     experimentListView,
00293                     SLOT( slotShowSimulationParameters() ) );
00294   viewSimulationParametersAction->setStatusTip( "View simulation parameters." );
00295 
00296   QAction *viewEnvironmentAction = new QAction( "Environment", QIconSet( QPixmap( sigelRoot + "/pixmaps/environSmall.xpm" ), QPixmap( sigelRoot + "/pixmaps/environLarge.xpm" ) ),"&Environment", ALT+Key_E, this, "viewEnvironmentAction" );
00297   viewEnvironmentAction->addTo( viewMenu );
00298   viewEnvironmentAction->addTo( viewToolBar );
00299   QObject::connect( viewEnvironmentAction,
00300                     SIGNAL( activated() ),
00301                     experimentListView,
00302                     SLOT( slotShowEnvironment() ) );
00303   viewEnvironmentAction->setStatusTip( "View environment." );
00304 
00305   // viewMenu->insertSeparator();
00306   optionsMenu = new QPopupMenu( this, "optionsMenu" );
00307   optionsMenu->setCheckable( true );
00308   bigPixmapID = optionsMenu->insertItem( "Use big pixmaps", this, SLOT( slotUseBigPixmaps() ) );
00309   textLabelsID = optionsMenu->insertItem( "Use textlabels", this, SLOT( slotUseTextLabels() ) );
00310   optionsMenu->insertSeparator();
00311   optionsMenu->insertItem( "Change font", this, SLOT( slotChangeFont() ) );
00312 
00313   noExperimentActionGroup = new QActionGroup( this, "noExperimentActionGroup", false );
00314   noExperimentActionGroup->insert( renameExperimentAction );
00315   noExperimentActionGroup->insert( deleteExperimentAction );
00316   noExperimentActionGroup->insert( saveExperimentAction );
00317   noExperimentActionGroup->insert( viewGPParametersAction );
00318   noExperimentActionGroup->insert( viewSimulationParametersAction );
00319   noExperimentActionGroup->insert( viewLanguageParametersAction );
00320   noExperimentActionGroup->insert( viewRobotAction );
00321   noExperimentActionGroup->insert( viewEnvironmentAction );
00322   noExperimentActionGroup->insert( viewPopulationAction );
00323 
00324   noExperimentActionGroup->insert( importGPParametersAction );
00325   noExperimentActionGroup->insert( importSimulationParametersAction );
00326   noExperimentActionGroup->insert( importRobotAction );
00327   noExperimentActionGroup->insert( importLanguageParametersAction );
00328   noExperimentActionGroup->insert( importPopulationAction );
00329   noExperimentActionGroup->insert( importEnvironmentAction );
00330   noExperimentActionGroup->insert( importProgramAction );
00331   noExperimentActionGroup->insert( importIndividualAction );
00332   noExperimentActionGroup->insert( exportGPParametersAction );
00333   noExperimentActionGroup->insert( exportSimulationParametersAction );
00334   noExperimentActionGroup->insert( exportLanguageParametersAction );
00335   noExperimentActionGroup->insert( exportEnvironmentAction );
00336   noExperimentActionGroup->insert( exportPopulationAction );
00337   noExperimentActionGroup->insert( exportToGNUPlotAction );
00338   noExperimentActionGroup->insert( exportProgramAction );
00339   noExperimentActionGroup->insert( exportIndividualAction );
00340 
00341   // create the help menu
00342   helpMenu = new QPopupMenu( this, "helpMenu" );
00343   helpMenu->insertItem( "About", this, SLOT( slotAbout() ) );
00344 
00345   // create the action menu
00346   individualsMenu = new QPopupMenu( this, "actionsMenu" );
00347 
00348   QAction *addIndividualsAction = new QAction( "Add", QIconSet( QPixmap( sigelRoot + "/pixmaps/addIndividualsSmall.xpm" ), QPixmap( sigelRoot + "/pixmaps/addIndividualsLarge.xpm" ) ), "&Add", ALT+Key_A, this, "addIndividualsAction" );
00349   addIndividualsAction->addTo( individualsMenu );
00350   addIndividualsAction->addTo( individualsToolBar );
00351   QObject::connect( addIndividualsAction,
00352                     SIGNAL( activated() ),
00353                     experimentListView,
00354                     SLOT( slotAddIndividuals() ) );
00355   addIndividualsAction->setStatusTip( "Add individuals to the current experiment." );
00356 
00357   QAction *deleteIndividualsAction = new QAction( "Delete", QIconSet( QPixmap( sigelRoot + "/pixmaps/deleteIndividualsSmall.xpm" ), QPixmap( sigelRoot + "/pixmaps/deleteIndividualsLarge.xpm" ) ), "&Delete", ALT+Key_D, this, "deleteIndividualsAction" );
00358   deleteIndividualsAction->addTo( individualsMenu );
00359   deleteIndividualsAction->addTo( individualsToolBar );
00360   QObject::connect( deleteIndividualsAction,
00361                     SIGNAL( activated() ),
00362                     experimentListView,
00363                     SLOT( slotDeleteIndividuals() ) );
00364   deleteIndividualsAction->setStatusTip( "Delete the selected individuals from the currently selected experiment." );
00365 
00366   QAction *resetIndividualsAction = new QAction( "Reset", "Reset", ALT+Key_O, this, "resetIndividualsAction" );
00367   resetIndividualsAction->addTo( individualsMenu );
00368   QObject::connect( resetIndividualsAction,
00369                     SIGNAL( activated() ),
00370                     experimentListView,
00371                     SLOT( slotResetIndividuals() ) );
00372   resetIndividualsAction->setStatusTip( "Reset the selected individuals." );
00373 
00374   individualsMenu->insertSeparator();
00375   individualsToolBar->addSeparator();
00376 
00377   QAction *visualizeIndividualsAction = new QAction( "Visualize", QIconSet( QPixmap( sigelRoot + "/pixmaps/visualizeSmall.xpm" ), QPixmap( sigelRoot + "/pixmaps/visualizeLarge.xpm" ) ), "&Visualize", ALT+Key_V, this, "visualizeIndividualsAction" );
00378   visualizeIndividualsAction->addTo( individualsMenu );
00379   visualizeIndividualsAction->addTo( individualsToolBar );
00380   QObject::connect( visualizeIndividualsAction,
00381                     SIGNAL( activated() ),
00382                     experimentListView,
00383                     SLOT( slotVisualizeIndividuals() ) );
00384   visualizeIndividualsAction->setStatusTip( "Visualize the selected individuals." );
00385 
00386   noExperimentActionGroup->insert( addIndividualsAction );
00387   noExperimentActionGroup->insert( deleteIndividualsAction );
00388   noExperimentActionGroup->insert( resetIndividualsAction );
00389   noExperimentActionGroup->insert( visualizeIndividualsAction );
00390 
00391   noExperimentActionGroup->setEnabled( false );
00392 
00393   evolutionRunningActionGroup = new QActionGroup( this, "evolutionRunningActionGroup", false);
00394   evolutionRunningActionGroup->insert( renameExperimentAction );
00395   evolutionRunningActionGroup->insert( deleteExperimentAction );
00396   evolutionRunningActionGroup->insert( saveExperimentAction );
00397   evolutionRunningActionGroup->insert( importGPParametersAction );
00398   evolutionRunningActionGroup->insert( importSimulationParametersAction );
00399   evolutionRunningActionGroup->insert( importRobotAction );
00400   evolutionRunningActionGroup->insert( importLanguageParametersAction );
00401   evolutionRunningActionGroup->insert( importPopulationAction );
00402   evolutionRunningActionGroup->insert( importEnvironmentAction );
00403   evolutionRunningActionGroup->insert( importProgramAction );
00404   evolutionRunningActionGroup->insert( importIndividualAction );
00405   evolutionRunningActionGroup->insert( exportGPParametersAction );
00406   evolutionRunningActionGroup->insert( exportSimulationParametersAction );
00407   evolutionRunningActionGroup->insert( exportLanguageParametersAction );
00408   evolutionRunningActionGroup->insert( exportEnvironmentAction );
00409   evolutionRunningActionGroup->insert( exportPopulationAction );
00410   evolutionRunningActionGroup->insert( exportToGNUPlotAction );
00411   evolutionRunningActionGroup->insert( exportProgramAction );
00412   evolutionRunningActionGroup->insert( exportIndividualAction );
00413   evolutionRunningActionGroup->insert( addIndividualsAction );
00414   evolutionRunningActionGroup->insert( deleteIndividualsAction );
00415   evolutionRunningActionGroup->insert( resetIndividualsAction );
00416   evolutionRunningActionGroup->insert( visualizeIndividualsAction );
00417 
00418   menuBar()->insertItem( "&File", fileMenu );
00419   menuBar()->insertItem( "&View", viewMenu );
00420   menuBar()->insertItem( "&Individuals", individualsMenu );
00421   menuBar()->insertItem( "&Options", optionsMenu );
00422   menuBar()->insertItem( "&Help", helpMenu );
00423 
00424   QObject::connect( experimentListView,
00425                     SIGNAL( isNotEmpty( bool ) ),
00426                     noExperimentActionGroup,
00427                     SLOT( setEnabled( bool ) ) );
00428 
00429   widgetBase = new QLabel( this, "baseWidget" ); // new QLabel( "I am the void", this, "baseWidget");
00430   widgetBase->setPixmap( QPixmap( sigelRoot + "/pixmaps/noExperiment.png" ) );
00431   widgetBase->setScaledContents( true );
00432   widgetStack->addWidget( widgetBase, 0 );
00433   widgetStack->raiseWidget( widgetBase );
00434 
00435   QObject::connect( experimentListView,
00436                     SIGNAL( isNotEmpty( bool ) ),
00437                     this,
00438                     SLOT(slotShowEmpty( bool ) ) );
00439 
00440   QObject::connect( experimentListView,
00441                     SIGNAL( evolutionNotRunning( bool ) ),
00442                     evolutionRunningActionGroup,
00443                     SLOT( setEnabled( bool ) ) );
00444   statusBar()->message( "Ready.", 5000 );
00445 };
00446 
00447 SIG_MainWindow::~SIG_MainWindow(){};
00448 
00449 void SIG_MainWindow::slotAbout()
00450 {
00451   //QMessageBox::about( this, "Sigel", "Sigel Version 1.0\nDeveloped by:\n\tChristian 'Krasstexta' Aue\n\tAbdeladim 'Silent Ad' Benkacem\n\tMichael 'CJ QT' Gregorius\n\tAndree 'MC Overload' Ross\n\tAbdallah 'The Raiyan' Salah Raiyan\n\tDaniel 'Tabmaster Ispell' Sawitzki\n\tVolker 'SEXmaschine' Strunk\n\tHolger 'DJ NOOP' Tuerk\n\tChris 'MC Royal' Varcol" );
00452 
00453   SIG_InfoBox theInfoBox( 0, "InfoBox", true );
00454   theInfoBox.resize( 600, -1 );
00455   theInfoBox.exec();
00456 };
00457 
00458 void SIG_MainWindow::slotShowEmpty( bool isNotEmpty )
00459 {
00460   if( !isNotEmpty )
00461     {
00462       widgetStack->raiseWidget( widgetBase );
00463     }
00464 };
00465 
00466 void SIG_MainWindow::slotAboutToQuit()
00467 {
00468   switch( QMessageBox::warning( this, "Do you really...", "Do you really want to quit?\n"
00469                                 "There may be unsaved experiments!", QMessageBox::Yes | QMessageBox::Default, QMessageBox::No | QMessageBox::Escape ) )
00470     {
00471     case QMessageBox::Yes:
00472       qApp->quit();
00473       break;
00474     }
00475 };
00476 
00477 void SIG_MainWindow::slotUseBigPixmaps()
00478 {
00479   bool usesBigPixmaps = !this->usesBigPixmaps();
00480   optionsMenu->setItemChecked( bigPixmapID, usesBigPixmaps );
00481   this->setUsesBigPixmaps( usesBigPixmaps );
00482 };
00483 
00484 void SIG_MainWindow::slotUseTextLabels()
00485 {
00486   bool usesTextLabels = !this->usesTextLabel();
00487   optionsMenu->setItemChecked( textLabelsID, usesTextLabels);
00488   this->setUsesTextLabel( usesTextLabels );
00489 };
00490 
00491 void SIG_MainWindow::slotChangeFont()
00492 {
00493   bool ok;
00494   QFont newFont = QFontDialog::getFont( &ok, QApplication::font() );
00495   if( ok )
00496     qApp->setFont( newFont, true );
00497 };
00498 
00499 }

Generated at Mon Sep 3 01:32:27 2001 for PG 368 - SIGEL by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000