Ignore:
Timestamp:
Feb 7, 2008, 4:40:14 PM (16 years ago)
Author:
garnier
Message:

Correction du tocket #122. Correction du fullScreen

Location:
trunk/geant4/visualization/OpenGL
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/geant4/visualization/OpenGL/include/G4OpenGLQtViewer.hh

    r713 r717  
    121121  /** To ensure key event are keep one by one */
    122122  bool holdKeyEvent;
     123  QAction *fRotateAction;
     124  QAction *fMoveAction;
     125  QAction *fPickAction;
     126  QAction *fShortcutsAction;
     127  QAction *fFullScreenOn;
     128  QAction *fFullScreenOff;
    123129#if QT_VERSION < 0x040000
    124   QPopupMenu *fMouseRotate;
    125   QPopupMenu *fMouseMove;
    126   QPopupMenu *fMousePick;
    127   QPopupMenu *fMouseShortcuts;
    128130  QPopupMenu *fDrawingWireframe;
    129131  QPopupMenu *fDrawingLineRemoval;
     
    131133  QPopupMenu *fDrawingLineSurfaceRemoval;
    132134#else
    133   QAction *fMouseRotate;
    134   QAction *fMouseMove;
    135   QAction *fMousePick;
    136   QAction *fMouseShortcuts;
    137135  QAction *fDrawingWireframe;
    138136  QAction *fDrawingLineRemoval;
     
    161159  void toggleHaloing(bool);
    162160  void toggleAux(bool);
    163   void toggleFullScreen();
     161  void toggleFullScreen(bool);
    164162  // Only use for Qt>4.0
    165163  //  void dialogClosed();
  • trunk/geant4/visualization/OpenGL/src/G4OpenGLQtViewer.cc

    r716 r717  
    323323#if QT_VERSION < 0x040000
    324324  QPopupMenu *mMouseAction = new QPopupMenu( fContextMenu );
    325   fContextMenu->insertItem("&Mouse actions");
     325  fContextMenu->insertItem("&Mouse actions",mMouseAction);
     326#if QT_VERSION < 0x030200
     327  fRotateAction =  new QAction("&Rotate","&Rotate",CTRL+Key_R,mMouseAction,0,true);
     328  fMoveAction =  new QAction("&Move","&Move",CTRL+Key_M,mMouseAction,0,true);
     329  fPickAction =  new QAction("&Pick","&Pick",CTRL+Key_P,mMouseAction,0,true);
     330  fShortcutsAction =  new QAction("&Show shortcuts","&Show shortcuts",CTRL+Key_S,mMouseAction,0,true);
     331#else
     332  fRotateAction =  new QAction("&Rotate",CTRL+Key_R,mMouseAction,0,true);
     333  fMoveAction =  new QAction("&Move",CTRL+Key_M,mMouseAction,0,true);
     334  fPickAction =  new QAction("&Pick",CTRL+Key_P,mMouseAction,0,true);
     335  fShortcutsAction =  new QAction("&Show shortcuts",CTRL+Key_S,mMouseAction,0,true);
     336#endif
     337  fRotateAction->addTo(mMouseAction);
     338  fMoveAction->addTo(mMouseAction);
     339  fPickAction->addTo(mMouseAction);
     340  fShortcutsAction->addTo(mMouseAction);
     341
     342  fRotateAction->setToggleAction(true);
     343  fMoveAction->setToggleAction(true);
     344  fPickAction->setToggleAction(true);
     345  fShortcutsAction->setToggleAction(true);
     346
     347  fRotateAction->setOn(true);
     348  fMoveAction->setOn(false);
     349  fPickAction->setOn(false);
     350  fShortcutsAction->setOn(false);
     351
     352
     353  QObject ::connect(fRotateAction,
     354                    SIGNAL(activated()),
     355                    this,
     356                    SLOT(actionMouseRotate()));
     357
     358  QObject ::connect(fMoveAction,
     359                    SIGNAL(activated()),
     360                    this,
     361                    SLOT(actionMouseMove()));
     362
     363  QObject ::connect(fPickAction,
     364                    SIGNAL(activated()),
     365                    this,
     366                    SLOT(actionMousePick()));
     367
     368  QObject ::connect(fShortcutsAction,
     369                    SIGNAL(activated()),
     370                    this,
     371                    SLOT(actionMouseShortcuts()));
     372
    326373#else
    327374  QMenu *mMouseAction = fContextMenu->addMenu("&Mouse actions");
    328 #endif
    329 
    330 #if QT_VERSION < 0x040000
    331   // === Mouse menu ===
    332 
    333   mMouseAction->setCheckable(true);
    334 
    335   fMouseRotate = new QPopupMenu(mMouseAction);
    336   mMouseAction->insertItem("&Rotate",fMouseRotate);
    337   fMouseRotate->setCheckable(true);
    338 
    339   fMouseMove = new QPopupMenu(mMouseAction);
    340   mMouseAction->insertItem("&Move",fMouseMove);
    341   fMouseMove->setCheckable(true);
    342 
    343   fMousePick = new QPopupMenu(mMouseAction);
    344   mMouseAction->insertItem("&Pick",fMousePick);
    345   fMousePick->setCheckable(true);
    346 
    347   fMouseShortcuts = new QPopupMenu(mMouseAction);
    348   mMouseAction->insertItem("&Show Shortcuts",fMouseShortcuts);
    349   fMouseShortcuts->setCheckable(true);
    350 
    351 #else
    352   // === Mouse menu ===
    353 
    354   fMouseRotate = mMouseAction->addAction("Rotate");
    355   fMouseRotate->setCheckable(true);
    356 
    357   fMouseMove = mMouseAction->addAction("Move");
    358   fMouseMove->setCheckable(true);
    359 
    360   fMousePick = mMouseAction->addAction("Pick");
    361   fMousePick->setCheckable(true);
    362 
    363   fMouseShortcuts = mMouseAction->addAction("Show Shortcuts");
    364   fMouseShortcuts->setCheckable(true);
    365 #endif
    366 
    367   // INIT mMouse
    368 #if QT_VERSION < 0x040000
    369   fMouseRotate->setItemChecked(0,true);
    370 
    371   QObject ::connect(fMouseRotate,
    372                     SIGNAL(activated(int)),
    373                     this,
    374                     SLOT(actionMouseRotate()));
    375 
    376   QObject ::connect(fMouseMove,
    377                     SIGNAL(activated(int)),
    378                     this,
    379                     SLOT(actionMouseMove()));
    380 
    381   QObject ::connect(fMousePick,
    382                     SIGNAL(activated(int)),
    383                     this,
    384                     SLOT(actionMousePick()));
    385 
    386   QObject ::connect(fMouseShortcuts,
    387                     SIGNAL(activated(int)),
    388                     this,
    389                     SLOT(actionMouseShortcuts()));
    390 
    391 #else
    392   fMouseRotate->setChecked(true);
    393 
    394   QObject ::connect(fMouseRotate,
     375
     376  fRotateAction = mMouseAction->addAction("Rotate");
     377  fMoveAction = mMouseAction->addAction("Move");
     378  fPickAction = mMouseAction->addAction("Pick");
     379  fShortcutsAction = mMouseAction->addAction("Show shortcuts");
     380
     381  fRotateAction->setCheckable(true);
     382  fMoveAction->setCheckable(false);
     383  fPickAction->setCheckable(false);
     384  fShortcutsAction->setCheckable(false);
     385
     386  fRotateAction->setChecked(true);
     387  fMoveAction->setChecked(false);
     388  fPickAction->setChecked(false);
     389  fShortcutsAction->setChecked(false);
     390
     391  QObject ::connect(fRotateAction,
    395392                    SIGNAL(triggered(bool)),
    396393                    this,
    397394                    SLOT(actionMouseRotate()));
    398395
    399   QObject ::connect(fMouseMove,
     396  QObject ::connect(fMoveAction,
    400397                    SIGNAL(triggered(bool)),
    401398                    this,
    402399                    SLOT(actionMouseMove()));
    403400
    404   QObject ::connect(fMousePick,
     401  QObject ::connect(fPickAction,
    405402                    SIGNAL(triggered(bool)),
    406403                    this,
    407404                    SLOT(actionMousePick()));
    408405
    409   QObject ::connect(fMouseShortcuts,
     406  QObject ::connect(fShortcutsAction,
    410407                    SIGNAL(triggered(bool)),
    411408                    this,
     
    539536#endif
    540537  QObject ::connect(fDrawingWireframe,
    541                     SIGNAL(activated(int)),
     538                    SIGNAL(activated()),
    542539                    this,
    543540                    SLOT(actionDrawingWireframe()));
     
    546543#endif
    547544  QObject ::connect(fDrawingLineRemoval,
    548                     SIGNAL(activated(int)),
     545                    SIGNAL(activated()),
    549546                    this,
    550547                    SLOT(actionDrawingLineRemoval()));
    551548  QObject ::connect(fDrawingSurfaceRemoval,
    552                     SIGNAL(activated(int)),
     549                    SIGNAL(activated()),
    553550                    this,
    554551                    SLOT(actionDrawingSurfaceRemoval()));
    555552  QObject ::connect(fDrawingLineSurfaceRemoval,
    556                     SIGNAL(activated(int)),
     553                    SIGNAL(activated()),
    557554                    this,
    558555                    SLOT(actionDrawingLineSurfaceRemoval()));
     
    629626#else
    630627  QAction *createEPS =  new QAction("&Save as ...",CTRL+Key_S,mActions);
    631   createEPS->setToggleAction(true);
    632628#endif
    633629  createEPS->addTo(mActions);
     
    778774
    779775#if QT_VERSION < 0x030200
    780   QAction *fullOn = new QAction("&On","&On",CTRL+Key_O,mFullScreen,0,true);
    781   QAction *fullOff = new QAction("&Off","&Off",CTRL+Key_F,mFullScreen,0,true);
    782 #else
    783   QAction *fullOn = new QAction("&On",CTRL+Key_O,mFullScreen);
    784   QAction *fullOff = new QAction("&Off",CTRL+Key_F,mFullScreen);
    785   fullOn->setToggleAction(true);
    786   fullOff->setToggleAction(true);
    787 #endif
    788   fullOn->addTo(mFullScreen);
    789   fullOff->addTo(mFullScreen);
     776  fFullScreenOn = new QAction("&On","&On",CTRL+Key_O,mFullScreen,0,true);
     777  fFullScreenOff = new QAction("&Off","&Off",CTRL+Key_F,mFullScreen,0,true);
     778#else
     779  fFullScreenOn = new QAction("&On",CTRL+Key_O,mFullScreen);
     780  fFullScreenOff = new QAction("&Off",CTRL+Key_F,mFullScreen);
     781  fFullScreenOn->setToggleAction(true);
     782  fFullScreenOff->setToggleAction(true);
     783#endif
     784  fFullScreenOn->addTo(mFullScreen);
     785  fFullScreenOff->addTo(mFullScreen);
    790786#else
    791787  QMenu *mFullScreen = mSpecial->addMenu("&Full screen");
    792   QAction *fullOn = mFullScreen->addAction("On");
    793   QAction *fullOff = mFullScreen->addAction("Off");
    794 #endif
    795   createRadioAction(fullOn,fullOff,SLOT(toggleFullScreen()),2);
     788  fFullScreenOn = mFullScreen->addAction("On");
     789  fFullScreenOff = mFullScreen->addAction("Off");
     790#endif
     791  createRadioAction(fFullScreenOn,fFullScreenOff,SLOT(toggleFullScreen(bool)),2);
    796792
    797793}
     
    839835    action2->setOn(true);
    840836   
     837  //FIXME : Should not work on Qt3
    841838  QObject ::connect(action1, SIGNAL(activated()),action2, SLOT(toggle()));
    842839  QObject ::connect(action2, SIGNAL(activated()),action1, SLOT(toggle()));
     
    940937      (aAction == STYLE4))  {
    941938#if QT_VERSION < 0x040000
    942     fMouseRotate->setItemChecked (0,false);
    943     fMouseMove->setItemChecked (0,false);
    944     fMousePick->setItemChecked (0,false);
    945     fMouseShortcuts->setItemChecked (0,false);
    946 #else
    947     fMouseRotate->setChecked (false);
    948     fMouseMove->setChecked (false);
    949     fMousePick->setChecked (false);
    950     fMouseShortcuts->setChecked (false);
     939    fRotateAction->setOn (false);
     940    fMoveAction->setOn (false);
     941    fPickAction->setOn (false);
     942    fShortcutsAction->setOn (false);
     943#else
     944    fRotateAction->setChecked (false);
     945    fMoveAction->setChecked (false);
     946    fPickAction->setChecked (false);
     947    fShortcutsAction->setChecked (false);
    951948#endif
    952949    fVP.SetPicking(false);
     
    958955    G4cout << "Press left/right arrows to move volume left/right\n" << G4endl;
    959956    G4cout << "Press up/down arrows to move volume up/down\n" << G4endl;
    960     G4cout << "Press CONTROL+up/down arrows to move volume toward/forward\n" << G4endl;
     957    G4cout << "Press ALT+up/down arrows to move volume toward/forward\n" << G4endl;
    961958    G4cout << "Press SHIFT+left/right arrows to rotate volume left/right\n" << G4endl;
    962959    G4cout << "Press SHIFT+up/down arrows to rotate volume up/down\n" << G4endl;
    963960    G4cout << "Press +/- to zoom into volume\n" << G4endl;
    964961#if QT_VERSION < 0x040000
    965     fMouseRotate->setItemChecked (0,true);
    966 #else
    967     fMouseRotate->setChecked (true);
     962    fRotateAction->setOn (true);
     963#else
     964    fRotateAction->setChecked (true);
    968965#endif
    969966  } else  if (aAction == STYLE2) { //move
    970967    G4cout << "Move camera point of view with mouse\n" << G4endl;
    971968#if QT_VERSION < 0x040000
    972     fMouseMove->setItemChecked (0,true);
    973 #else
    974     fMouseMove->setChecked (true);
     969    fMoveAction->setOn (true);
     970#else
     971    fMoveAction->setChecked (true);
    975972#endif
    976973  } else  if (aAction == STYLE3) { //pick
    977974    G4cout << "Click and pick \n" << G4endl;
    978975#if QT_VERSION < 0x040000
    979     fMousePick->setItemChecked (0,true);
    980 #else
    981     fMousePick->setChecked (true);
     976    fPickAction->setOn (true);
     977#else
     978    fPickAction->setChecked (true);
    982979#endif
    983980    fVP.SetPicking(true);
    984981  } else  if (aAction == STYLE4) {  // display shortcuts
    985982#if QT_VERSION < 0x040000
    986     fMouseShortcuts->setItemChecked (0,true);
    987 #else
    988     fMouseShortcuts->setChecked (true);
     983    fShortcutsAction->setOn (true);
     984#else
     985    fShortcutsAction->setChecked (true);
    989986#endif
    990987
     
    12591256   SLOT Activate by a click on the full screen menu
    12601257*/
    1261 void G4OpenGLQtViewer::toggleFullScreen() {
     1258void G4OpenGLQtViewer::toggleFullScreen(bool check) {
     1259#ifdef GEANT4_QT_DEBUG
     1260  printf("G4OpenGLQtViewer::toggleFullScreen checked:%d() \n",check);
     1261#endif
     1262  if (check != GLWindow->isFullScreen()) { //toggle
    12621263#if QT_VERSION >= 0x030200
    1263   GLWindow->setWindowState(GLWindow->windowState() ^ Qt::WindowFullScreen);
    1264 #else
    1265   G4cerr << "This version of G4UI Could not generate the selected format\n" << G4endl;
    1266 #endif
     1264#if QT_VERSION < 0x040000
     1265    GLWindow->setWindowState(GLWindow->windowState() ^ Qt::WindowFullScreen);
     1266//     fFullScreenOn->setOn(check);
     1267//     fFullScreenOff->setOn(!check);
     1268#else
     1269    GLWindow->setWindowState(GLWindow->windowState() ^ Qt::WindowFullScreen);
     1270//     fFullScreenOn->setChecked(check);
     1271//     fFullScreenOff->setChecked(!check);
     1272#endif
     1273#else
     1274    G4cerr << "This version of Qt could not do fullScreen. Resizing the widget is the only solution available.\n" << G4endl;
     1275#endif
     1276  }
    12671277}
    12681278
     
    18771887  }
    18781888  if (event->key() == Qt::Key_Escape) { // escaped from full screen
    1879     toggleFullScreen();
     1889#if QT_VERSION >= 0x030200
     1890    if (GLWindow->isFullScreen()) {
     1891#if QT_VERSION < 0x040000
     1892      fFullScreenOn->activated();
     1893#else
     1894      fFullScreenOn->trigger();
     1895#endif
     1896    }
     1897#endif
    18801898  }
    18811899  if (event->key() == Qt::Key_Plus) { // zoom in
Note: See TracChangeset for help on using the changeset viewer.