- Timestamp:
- Nov 9, 2009, 6:57:11 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/visualization/OpenGL/src/G4OpenGLQtViewer.cc
r1152 r1160 79 79 #include <qdialog.h> 80 80 #include <qevent.h> //include <qcontextmenuevent.h> 81 #include <qmainwindow.h> 82 83 #ifdef G4DEBUG_VIS_OGL 84 #include "G4UImanager.hh" 85 #include "G4UIsession.hh" 86 #include "G4UIQt.hh" 87 #endif 88 89 // #define G4DEBUG_VIS_OGL_QTPARENT 81 90 82 91 83 ////////////////////////////////////////////////////////////////////////////// … … 112 104 //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// 113 105 { 114 106 #ifdef G4DEBUG_VIS_OGL 107 printf("G4OpenGLQtViewer::CreateMainWindow :: BEGIN \n"); 108 #endif 115 109 if(fWindow) return; //Done. 116 110 … … 118 112 // fWindow->makeCurrent(); 119 113 120 fGLWindow = getParentWidget();121 if (fGLWindow != NULL) {122 #if QT_VERSION < 0x040000123 glWidget->reparent(fGLWindow,0,QPoint(0,0));124 #else125 #ifdef G4DEBUG_VIS_OGL_QTPARENT126 G4UImanager* UI = G4UImanager::GetUIpointer();127 if(UI!=NULL) {128 if (glWidget->thread()) {129 if (((G4UIQt*)UI->GetSession())->getMainWindow()) {130 if (((G4UIQt*)UI->GetSession())->getMainWindow()->thread()) {131 if (glWidget->thread() != ((G4UIQt*)UI->GetSession())->getMainWindow()->thread()) {132 114 #ifdef G4DEBUG_VIS_OGL 133 printf("G4OpenGLQtViewer::CreateMainWindow not in te same thread ...move to\n"); 134 #endif 135 glWidget->moveToThread(((G4UIQt*)UI->GetSession())->getMainWindow()->thread()); 136 } else { 137 printf("G4OpenGLQtViewer::CreateMainWindow 1\n"); 138 } 139 140 glWidget->setParent(fGLWindow); 141 } else { 142 printf("G4OpenGLQtViewer::CreateMainWindow 2\n"); 143 } 144 } else { 145 printf("G4OpenGLQtViewer::CreateMainWindow 3 UI:%d session(UIQt):%d\n",UI,((G4UIQt*)UI->GetSession())); 146 } 147 } else { 148 printf("G4OpenGLQtViewer::CreateMainWindow 4\n"); 149 } 150 } 151 #else 152 glWidget->setParent(fGLWindow); 153 #endif 154 #endif 155 } 156 157 QHBoxLayout *mainLayout = new QHBoxLayout; 158 mainLayout->setMargin(0); 159 mainLayout->setSpacing(0); 160 mainLayout->addWidget(glWidget); 161 162 #if QT_VERSION < 0x040000 163 fGLWindow->setCaption(name ); 164 #else 165 fGLWindow->setLayout(mainLayout); 166 fGLWindow->setWindowTitle( name); 167 #endif 115 printf("G4OpenGLQtViewer::CreateMainWindow :: ++++++++++++++ add new TAB %s\n",name.toStdString().c_str()); 116 #endif 117 G4Qt* interactorManager = G4Qt::getInstance (); 118 119 // FIXME L.Garnier 9/11/09 Has to be check !!! 120 // Qt UI with Qt Vis 121 // Qt UI with X Vis 122 // X UI with Qt Vis 123 // X UI with X Vis 124 // Ne marche pas avec un UIBatch !! (ecran blanc) 125 126 // return false if G4UIQt was not launch 127 bool res = interactorManager->AddTabVisWidget(fWindow,name); 128 129 if (!res) { // we have to do a dialog 130 131 #ifdef G4DEBUG_VIS_OGL 132 printf("G4OpenGLQtViewer::CreateMainWindow :: get Parent ? \n"); 133 #endif 134 QWidget *myParent = getParentWidget(); 135 #ifdef G4DEBUG_VIS_OGL 136 printf("G4OpenGLQtViewer::CreateMainWindow :: getParent OK \n"); 137 #endif 138 if (myParent != NULL) { 139 #if QT_VERSION < 0x040000 140 fWindow->reparent(myParent,0,QPoint(0,0)); 141 #else 142 fWindow->setParent(myParent); 143 #endif 144 } 145 QHBoxLayout *mainLayout = new QHBoxLayout(fGLWindow); 146 147 mainLayout->setMargin(0); 148 mainLayout->setSpacing(0); 149 mainLayout->addWidget(fWindow); 150 if (fGLWindow->inherits("QMainWindow")) { 151 #if QT_VERSION < 0x040000 152 fGLWindow->setCaption(name ); 153 #else 154 fGLWindow->setWindowTitle( name); 155 #endif 156 } 157 #if QT_VERSION >= 0x040000 158 fGLWindow->setLayout(mainLayout); 159 #endif 160 } else { 161 fGLWindow = fWindow; 162 } 163 164 168 165 ResizeWindow(fVP.GetWindowSizeHintX(),fVP.GetWindowSizeHintY()); 169 166 170 167 //useful for MACOSX, we have to compt the menuBar height 171 168 int offset = QApplication::desktop()->height() 172 173 169 - QApplication::desktop()->availableGeometry().height(); 170 174 171 G4int YPos= fVP.GetWindowAbsoluteLocationHintY(QApplication::desktop()->height()); 175 172 if (fVP.GetWindowAbsoluteLocationHintY(QApplication::desktop()->height())< offset) { … … 181 178 182 179 if(!fWindow) return; 183 180 184 181 if (!fContextMenu) 185 182 createPopupMenu(); 186 183 184 #ifdef G4DEBUG_VIS_OGL 185 printf("G4OpenGLQtViewer::CreateMainWindow :: END \n"); 186 #endif 187 187 } 188 188 … … 241 241 242 242 #ifdef G4DEBUG_VIS_OGL 243 G4UImanager* UI = G4UImanager::GetUIpointer(); 244 printf("G4OpenGLQtViewer::getParentWidget :: UImanager %d++++++++++++\n",UI); 245 #endif 246 247 #ifdef G4DEBUG_VIS_OGL 243 248 printf("G4OpenGLQtViewer::G4OpenGLQtViewer END\n"); 244 249 #endif … … 2542 2547 2543 2548 2544 void G4OpenGLQtViewer::drawText(2545 const char * str2546 ,int x2547 ,int y2548 ,int z2549 ,int size ) {2550 2551 #ifdef G4DEBUG_VIS_OGL2552 printf ("G4OpenGLStoredQtViewer::drawText-position %d,%d,%d-----------------------------------------\n",x,y,z);2553 #endif2554 2555 QFont f1 = QFont("Courrier", size, QFont::Bold);2556 #if QT_VERSION > 0x0400002557 f1.setPointSizeF(20);2558 #else2559 f1.setPointSizeFloat(20);2560 #endif2561 2562 // FIXME : Interesting border effect : resizing world resize detector2563 // but not traces !2564 glColor3d (0.123456,0.1234560,0.123456);2565 fWindow->renderText (x,y,z,str,f1);2566 glColor3d (0.321,0.321,0.321);2567 }2568 2569 2570 2549 // FIXME : does not work on Qt3 2571 2550 void G4OpenGLQtViewer::processEncodeStdout() … … 2669 2648 // launch Qt if not 2670 2649 G4Qt* interactorManager = G4Qt::getInstance (); 2671 // G4UImanager* UI = G4UImanager::GetUIpointer();2672 2673 2674 #ifdef G4DEBUG_VIS_OGL_QTPARENT2675 2650 G4UImanager* UI = G4UImanager::GetUIpointer(); 2676 if(UI!=NULL) { 2677 if (((G4UIQt*)UI->GetSession())->getViewWidget()) { 2678 printf("G4OpenGLQtViewer::getParentWidget ok :%d\n",((G4UIQt*)UI->GetSession())->getViewWidget()); 2679 return ((G4UIQt*)UI->GetSession())->getViewWidget(); 2680 // fGLWindow = new QWidget(((G4UIQt*)UI->GetSession())->getViewWidget(),Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::WindowMinMaxButtonsHint); 2681 } else { 2682 return 0; 2683 } 2684 // fGLWindow = new QWidget(0,Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::WindowMinMaxButtonsHint); 2685 } 2686 #else 2687 2651 #ifdef G4DEBUG_VIS_OGL 2652 // printf("G4OpenGLQtViewer::getParentWidget :: UImanager %d G4Qt:%d et via GetUIQt:%d---------------------\n",UI,UI->GetSession(),interactorManager,interactorManager->GetUIVisWidget()); 2653 #endif 2654 2655 // if (interactorManager) { 2656 // if (interactorManager->GetUIVisWidget()) { 2657 // fGLWindow = interactorManager->GetUIVisWidget(); 2658 // return interactorManager->GetUIVisWidget(); 2659 // } 2660 // } 2661 // 2688 2662 2689 2663 … … 2733 2707 return NULL; 2734 2708 } 2735 #endif2736 2709 } 2737 2710
Note: See TracChangeset
for help on using the changeset viewer.