Ignore:
Timestamp:
Sep 18, 2007, 6:39:37 PM (17 years ago)
Author:
garnier
Message:

r599@mac-90108: laurentgarnier | 2007-09-18 18:43:19 +0200
correction du ticket #72 et la suppresion de la fenetre OpenGL entraine desormais un message d erreur lors du prochain BeamOn

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/geant4/visualization/OpenGL/src/G4OpenGLQtViewer.cc

    r571 r579  
    6868  //   ::wglMakeCurrent(fHDC,fHGLRC);
    6969  //  fWindow->makeCurrent();
    70   G4OpenGLViewer::SetView (); 
     70  G4OpenGLViewer::SetView ();
    7171  printf("G4OpenGLQtViewer::SetView --------------------\n");
    7272}
     
    8585  printf("G4OpenGLQtViewer::ShowView  +++++++++++++++++++++\n");
    8686  glFlush ();
    87   GLWindow->activateWindow();
    88   printf("G4OpenGLQtViewer::ShowView -----------------------\n");
    89 
     87  if (!GLWindow) {
     88    G4cerr << "Visualization window not defined, please choose one before" << G4endl;
     89  } else {
     90    GLWindow->activateWindow();
     91    printf("G4OpenGLQtViewer::ShowView -----------------------\n");
     92  }
    9093  //   // Empty the Windows message queue :
    9194  //   MSG event;
     
    132135    foreach (QWidget *widget, QApplication::allWidgets()) {
    133136      if ((found== false) && (widget->inherits("QMainWindow"))) {
    134         GLWindow = new QDialog(widget);
     137        printf("G4OpenGLQtViewer::CreateMainWindow case Qapp exist\n");
     138        GLWindow = new QDialog(widget,Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::WindowMinMaxButtonsHint);
    135139        found = true;
    136140      }
    137141    }
    138142    if (found==false) {
     143      printf("G4OpenGLQtViewer::CreateMainWindow case Qapp exist, but not found\n");
    139144      GLWindow = new QDialog();
    140145    }
    141146  } else {
     147    printf("G4OpenGLQtViewer::CreateMainWindow case Qapp exist\n");
    142148    GLWindow = new QDialog();
    143149  }
     
    152158  GLWindow->show();
    153159 
     160  // delete the pointer if close this
     161  //  GLWindow->setAttribute(Qt::WA_DeleteOnClose);
     162
     163  QObject ::connect(GLWindow,
     164                    SIGNAL(rejected()),
     165                    this,
     166                    SLOT(dialogClosed()));
     167
    154168  WinSize_x = 400;
    155169  WinSize_y = 400;
     
    166180
    167181}
     182
     183/**  Close the dialog and set the pointer to NULL
     184 */
     185void G4OpenGLQtViewer::dialogClosed() {
     186  GLWindow = NULL;
     187}
     188
    168189
    169190//////////////////////////////////////////////////////////////////////////////
     
    187208{
    188209  printf("G4OpenGLQtViewer::~G4OpenGLQtViewer \n");
    189   delete fContextMenu;   
     210  delete fContextMenu;
    190211}
    191212
     
    357378void G4OpenGLQtViewer::manageContextMenuEvent(QContextMenuEvent *e)
    358379{
    359   if (!GLWindow) return;
     380  if (!GLWindow) {
     381    G4cerr << "Visualization window not defined, please choose one before" << G4endl;
     382  } else {
    360383 
    361   if (!fContextMenu)
    362     createPopupMenu();
    363 
    364   // launch menu
    365   if ( fContextMenu ) {
    366     fContextMenu->exec( e->globalPos() );
    367     //    delete fContextMenu;
     384    if (!fContextMenu)
     385      createPopupMenu();
     386   
     387    // launch menu
     388    if ( fContextMenu ) {
     389      fContextMenu->exec( e->globalPos() );
     390      //    delete fContextMenu;
     391    }
    368392  }
    369393  e->accept();
Note: See TracChangeset for help on using the changeset viewer.