Changeset 747 for trunk/geant4/visualization/OpenGL
- Timestamp:
- Mar 7, 2008, 10:40:13 AM (17 years ago)
- Location:
- trunk/geant4/visualization/OpenGL
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/geant4/visualization/OpenGL/include/G4OpenGLQtMovieDialog.hh
r744 r747 63 63 void setRecordingStatus(QString); 64 64 void setRecordingInfos(QString); 65 void setEncodeButtonEnabled(bool);66 65 67 66 private : … … 77 76 QPushButton *fButtonEncode; 78 77 79 voidcheckEncoderParameters(QString);80 voidcheckTempFolderParameters(QString);81 voidcheckSaveFileNameParameters(QString);78 bool checkEncoderParameters(QString); 79 bool checkTempFolderParameters(QString); 80 bool checkSaveFileNameParameters(QString); 82 81 83 82 public slots : -
trunk/geant4/visualization/OpenGL/include/G4OpenGLQtViewer.hh
r745 r747 81 81 bool isReadyToEncode(); 82 82 bool encodeVideo(); 83 bool generateMpegEncoderParameters(); 83 84 84 85 protected: … … 109 110 bool hasPendingEvents(); 110 111 void savePPMToTemp(); 111 bool generateMpegEncoderParameters();112 112 int fRecordFrameNumber; 113 113 -
trunk/geant4/visualization/OpenGL/src/G4OpenGLQtMovieDialog.cc
r746 r747 316 316 */ 317 317 void G4OpenGLQtMovieDialog::checkAllParameters() { 318 checkEncoderParameters(fEncoderPath->text());319 checkTempFolderParameters(fTempFolderPath->text());320 checkSaveFileNameParameters(fSaveFileName->text());321 318 322 319 // set state of encode button 323 320 // if frames had been generated and parameters are valid : enabled encode button 324 // if ((fParentViewer->getRecordFrames() == false) && (fRecordFrameNumber >1)) { 325 // } 326 327 } 321 if (checkEncoderParameters(fEncoderPath->text()) 322 && checkTempFolderParameters(fTempFolderPath->text()) 323 && checkSaveFileNameParameters(fSaveFileName->text())) { 324 if (fParentViewer->isReadyToEncode()) { 325 if (fParentViewer->generateMpegEncoderParameters()) { 326 fButtonEncode->setEnabled(fParentViewer->;;isReadyToEncode() ); 327 } 328 } 329 } 330 } 331 328 332 329 333 /** … … 331 335 * If valid, save it 332 336 */ 333 void G4OpenGLQtMovieDialog::checkEncoderParameters(QString param) { 334 337 bool G4OpenGLQtMovieDialog::checkEncoderParameters(QString param) { 338 339 bool status = true; 335 340 QPalette palette( fEncoderPath->palette() ); 336 341 … … 342 347 if (fParentViewer->isReadyToEncode()) { 343 348 setRecordingInfos("No valid encode defined, screen \ncapture are saved in the\ntemp folder in ppm format.Please define a encoder and clic on Apply button"); 344 } 349 } 350 status = false; 345 351 } else { 346 352 palette.setColor( QPalette::Base, Qt::white); … … 348 354 if (fParentViewer->getEncoderPath() == "") { 349 355 setRecordingInfos("mpeg_encode is needed to encode in video format.\nIt is available here: \nhttp://bmrc.berkeley.edu/frame/research/mpeg/"); 356 status = false; 350 357 } 351 358 } 352 359 fEncoderPath->setPalette(palette); 360 return status; 353 361 } 354 362 … … 358 366 * If valid, save it 359 367 */ 360 void G4OpenGLQtMovieDialog::checkTempFolderParameters(QString param) { 361 368 bool G4OpenGLQtMovieDialog::checkTempFolderParameters(QString param) { 369 370 bool status = true; 362 371 QPalette palette( fTempFolderPath->palette() ); 363 372 … … 366 375 if (temp != "") { 367 376 palette.setColor( QPalette::Base, Qt::red); 377 status = false; 368 378 } else { 369 379 palette.setColor( QPalette::Base, Qt::white); … … 371 381 } 372 382 fTempFolderPath->setPalette(palette); 383 return status; 373 384 } 374 385 … … 378 389 * If valid, save it 379 390 */ 380 void G4OpenGLQtMovieDialog::checkSaveFileNameParameters(QString param) { 381 391 bool G4OpenGLQtMovieDialog::checkSaveFileNameParameters(QString param) { 392 393 bool status = true; 382 394 QPalette palette( fSaveFileName->palette() ); 383 395 … … 386 398 if (temp != "") { 387 399 palette.setColor( QPalette::Base, Qt::red); 400 status = false; 388 401 } else { 389 402 palette.setColor( QPalette::Base, Qt::white); … … 391 404 } 392 405 fSaveFileName->setPalette(palette); 406 return status; 393 407 } 394 408 … … 402 416 } 403 417 404 void G4OpenGLQtMovieDialog::setEncodeButtonEnabled(bool b) { 405 fButtonEncode->setEnabled(b); 406 } 407 #endif 418 #endif -
trunk/geant4/visualization/OpenGL/src/G4OpenGLQtViewer.cc
r746 r747 2126 2126 if (fRecordFrameNumber >0) { 2127 2127 // check parameters if they were modified (Re APPLY them...) 2128 // It will enable/disable encode button 2128 2129 fMovieParametersDialog->checkAllParameters(); 2129 pb du check et du bouton encode qui n est pas mis a jour si les param sont mauvais ici2130 if ((getEncoderPath() != "") && (getSaveFileName() != "")) {2131 if (generateMpegEncoderParameters()) {2132 fMovieParametersDialog->setEncodeButtonEnabled(true);2133 setRecordingInfos("Parameter file "+fParameterFileName+" generated in "+fMovieTempFolderPath);2134 } else { // try to encode without dialog2135 setRecordingInfos("Generation of parameter file failed");2136 }2137 }2138 2130 } else { 2139 2131 setRecordingStatus(WAIT); … … 2448 2440 bool G4OpenGLQtViewer::generateMpegEncoderParameters () { 2449 2441 2450 2442 // save the parameter file 2451 2443 FILE* fp; 2452 2444 #if QT_VERSION < 0x040000 … … 2457 2449 2458 2450 if (fp == NULL) { 2451 setRecordingInfos("Generation of parameter file failed"); 2459 2452 return false; 2460 2453 } … … 2637 2630 fclose (fp); 2638 2631 2632 setRecordingInfos("Parameter file "+fParameterFileName+" generated in "+fMovieTempFolderPath); 2633 setRecordingStatus(ENCODE); 2639 2634 return true; 2640 2635 } … … 2642 2637 bool G4OpenGLQtViewer::encodeVideo() 2643 2638 { 2644 setRecordingStatus(ENCODE); 2645 QProcess::execute (fEncoderPath, QStringList(fMovieTempFolderPath+fParameterFileName)); 2646 2647 setRecordingStatus(WAIT); 2648 setRecordingInfos(removeTempFolder()); 2649 2639 if ((getEncoderPath() != "") && (getSaveFileName() != "")) { 2640 QProcess::execute (fEncoderPath, QStringList(fMovieTempFolderPath+fParameterFileName)); 2641 2642 setRecordingStatus(WAIT); 2643 setRecordingInfos(removeTempFolder()); 2644 } else { 2645 return false; 2646 } 2650 2647 return true; 2651 2648 }
Note: See TracChangeset
for help on using the changeset viewer.