source: trunk/source/visualization/OpenGL/src/G4OpenGLQtMovieDialog.cc @ 1310

Last change on this file since 1310 was 955, checked in by garnier, 15 years ago

prepartion du tag

  • Property svn:mime-type set to text/cpp
File size: 18.9 KB
RevLine 
[730]1//
2// ********************************************************************
3// * License and Disclaimer                                           *
4// *                                                                  *
5// * The  Geant4 software  is  copyright of the Copyright Holders  of *
6// * the Geant4 Collaboration.  It is provided  under  the terms  and *
7// * conditions of the Geant4 Software License,  included in the file *
8// * LICENSE and available at  http://cern.ch/geant4/license .  These *
9// * include a list of copyright holders.                             *
10// *                                                                  *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work  make  any representation or  warranty, express or implied, *
14// * regarding  this  software system or assume any liability for its *
15// * use.  Please see the license in the file  LICENSE  and URL above *
16// * for the full disclaimer and the limitation of liability.         *
17// *                                                                  *
18// * This  code  implementation is the result of  the  scientific and *
19// * technical work of the GEANT4 collaboration.                      *
20// * By using,  copying,  modifying or  distributing the software (or *
21// * any work based  on the software)  you  agree  to acknowledge its *
22// * use  in  resulting  scientific  publications,  and indicate your *
23// * acceptance of all terms of the Geant4 Software license.          *
24// ********************************************************************
25//
26//
[873]27// $Id: G4OpenGLQtMovieDialog.cc,v 1.8 2008/10/24 13:49:19 lgarnier Exp $
[955]28// GEANT4 tag $Name:  $
[730]29//
30//
31
32#ifdef G4VIS_BUILD_OPENGLQT_DRIVER
33
34#include "G4OpenGLQtMovieDialog.hh"
35#include "G4OpenGLQtViewer.hh"
36
37#include <qpushbutton.h>
[732]38#include <qpalette.h>
[730]39#include <qlabel.h>
[733]40#include <qgroupbox.h>
[730]41#include <qlayout.h>
42#include <qlineedit.h>
43#include <qfiledialog.h>
44#include <qprocess.h>
45
46
47// +---------------------------------------+
48// +        Path for encoder               +
49// +  _______                              +
50// + | select| ____________________        +
51// +  -------                              +
[732]52// +        Temp path                      +
53// +  _______                              +
54// + | select| ____________________        +
55// +  -------                              +
[730]56// +                                       +
57// + max number of frames  ________        +
58// + ....                                  +
59// +                                       +
60// +     Label : X frames Saves/Encoding   +
61// +         Cancel        Encode          +
62// +---------------------------------------+
63
64G4OpenGLQtMovieDialog::G4OpenGLQtMovieDialog(
[731]65 G4OpenGLQtViewer* parentViewer,
66 QWidget* parentWidget
[730]67)
[731]68  : QDialog( parentWidget ),
69    fParentViewer(parentViewer)
[730]70{
[754]71#if QT_VERSION > 0x030200
[730]72  setModal(false);
[754]73#endif
[730]74#if QT_VERSION < 0x040000
75  setCaption( tr( " Movie parameters" ));
76#else
77  setWindowTitle( tr( " Movie parameters" ));
78#endif
79
80
81  // global layout
82  QVBoxLayout* globalVLayout = new QVBoxLayout(this);
83  globalVLayout->setMargin(10);
84  globalVLayout->setSpacing(10);
85 
[733]86  // Encoder group box
[755]87  QGroupBox *encoderGroupBox = new QGroupBox(tr("Encoder path"),this);         
[734]88  QVBoxLayout *encoderVGroupBoxLayout = new QVBoxLayout(encoderGroupBox);
[730]89
[732]90  // Encoder Path
[733]91  QWidget *encoderHBox = new QWidget(encoderGroupBox);
92  QHBoxLayout *encoderHBoxLayout = new QHBoxLayout(encoderHBox);
93  fEncoderPath = new QLineEdit("",encoderHBox);
[730]94
[733]95  QPushButton *encoderButton = new QPushButton(tr("..."),encoderHBox);
[732]96  encoderButton->setMaximumWidth (30);
[730]97
[733]98  fEncoderStatus = new QLabel(encoderGroupBox);
[754]99
100#if QT_VERSION > 0x040000
[748]101  fEncoderStatus->setWordWrap(true);
[755]102  encoderVGroupBoxLayout->setMargin(15);
[754]103#else
104  fEncoderStatus->setAlignment ( Qt::AlignAuto |Qt::WordBreak );
[755]105  encoderGroupBox->setInsideMargin(15);
[754]106#endif
107
[733]108  fEncoderStatus->setText("");
109
[732]110#if QT_VERSION < 0x040000
[733]111  encoderHBoxLayout->add(fEncoderPath);
112  encoderHBoxLayout->add(encoderButton);
[734]113  encoderVGroupBoxLayout->add(encoderHBox);
114  encoderVGroupBoxLayout->add(fEncoderStatus);
[735]115
116  globalVLayout->add(encoderGroupBox);
[732]117#else
[733]118  encoderHBoxLayout->addWidget(fEncoderPath);
119  encoderHBoxLayout->addWidget(encoderButton);
[734]120  encoderVGroupBoxLayout->addWidget(encoderHBox);
121  encoderVGroupBoxLayout->addWidget(fEncoderStatus);
[730]122
[734]123  encoderGroupBox->setLayout(encoderVGroupBoxLayout);
[735]124  globalVLayout->addWidget(encoderGroupBox);
[732]125#endif
[735]126
[733]127  connect( encoderButton, SIGNAL( clicked( ) ), this, SLOT(selectEncoderPathAction() ) );
[732]128
[730]129
[733]130  // temp folder group box
[755]131  QGroupBox *tempFolderGroupBox = new QGroupBox(tr("Temporary folder path"),this);
[734]132  QVBoxLayout *tempFolderVGroupBoxLayout = new QVBoxLayout(tempFolderGroupBox);
[733]133
[732]134  // temp folder Path
[733]135  QWidget *tempFolderHBox = new QWidget(tempFolderGroupBox);
[734]136  QHBoxLayout *tempFolderHBoxLayout = new QHBoxLayout(tempFolderHBox);
[732]137
[733]138  fTempFolderPath = new QLineEdit("",tempFolderHBox);
139
140  QPushButton *tempButton = new QPushButton(tr("..."),tempFolderHBox);
141  tempButton->setMaximumWidth (30);
142
143  fTempFolderStatus = new QLabel(tempFolderGroupBox);
[754]144#if QT_VERSION > 0x040000
[748]145  fTempFolderStatus->setWordWrap(true);
[755]146  tempFolderVGroupBoxLayout->setMargin(15);
[754]147#else
148  fTempFolderStatus->setAlignment ( Qt::AlignAuto |Qt::WordBreak );
[755]149  tempFolderGroupBox->setInsideMargin(15);
[754]150#endif
[733]151  fTempFolderStatus->setText("");
152
[730]153#if QT_VERSION < 0x040000
[733]154  tempFolderHBoxLayout->add(fTempFolderPath);
155  tempFolderHBoxLayout->add(tempButton);
[734]156  tempFolderVGroupBoxLayout->add(tempFolderHBox);
157  tempFolderVGroupBoxLayout->add(fTempFolderStatus);
[735]158
159  globalVLayout->add(tempFolderGroupBox);
[730]160#else
[733]161  tempFolderHBoxLayout->addWidget(fTempFolderPath);
162  tempFolderHBoxLayout->addWidget(tempButton);
[734]163  tempFolderVGroupBoxLayout->addWidget(tempFolderHBox);
164  tempFolderVGroupBoxLayout->addWidget(fTempFolderStatus);
[730]165
[734]166  tempFolderGroupBox->setLayout(tempFolderVGroupBoxLayout);
[735]167  globalVLayout->addWidget(tempFolderGroupBox);
[733]168#endif
[735]169
[733]170  connect( tempButton, SIGNAL( clicked( ) ), this, SLOT(selectTempPathAction() ) );
[732]171
[733]172
[734]173
174
[733]175  // save file group box
[755]176  QGroupBox *saveFileGroupBox = new QGroupBox(tr("Save as"),this);
[734]177  QVBoxLayout *saveFileVGroupBoxLayout = new QVBoxLayout(saveFileGroupBox);
[733]178
179  // save file
180  QWidget *saveFileHBox = new QWidget(saveFileGroupBox);
181  QHBoxLayout *saveFileHBoxLayout = new QHBoxLayout(saveFileHBox);
182
[857]183  fSaveFileName = new QLineEdit("G4Movie.mpeg",saveFileHBox);
[733]184
185  QPushButton *saveButton = new QPushButton(tr("..."),saveFileHBox);
186  saveButton->setMaximumWidth (30);
187
188  fSaveFileStatus = new QLabel(saveFileGroupBox);
[754]189#if QT_VERSION > 0x040000
[748]190  fSaveFileStatus->setWordWrap(true);
[755]191  saveFileVGroupBoxLayout->setMargin(15);
[754]192#else
193  fSaveFileStatus->setAlignment ( Qt::AlignAuto |Qt::WordBreak );
[755]194  saveFileGroupBox->setInsideMargin(15);
[754]195#endif
[733]196  fSaveFileStatus->setText("");
197
198#if QT_VERSION < 0x040000
[734]199  saveFileHBoxLayout->add(fSaveFileName);
[733]200  saveFileHBoxLayout->add(saveButton);
[734]201  saveFileVGroupBoxLayout->add(saveFileHBox);
202  saveFileVGroupBoxLayout->add(fSaveFileStatus);
[735]203
204  globalVLayout->add(saveFileGroupBox);
[733]205#else
[734]206  saveFileHBoxLayout->addWidget(fSaveFileName);
[733]207  saveFileHBoxLayout->addWidget(saveButton);
[734]208  saveFileVGroupBoxLayout->addWidget(saveFileHBox);
209  saveFileVGroupBoxLayout->addWidget(fSaveFileStatus);
[733]210
[734]211  saveFileGroupBox->setLayout(saveFileVGroupBoxLayout);
[735]212  globalVLayout->addWidget(saveFileGroupBox);
[730]213#endif
[735]214
[733]215  connect( saveButton, SIGNAL( clicked( ) ), this, SLOT(selectSaveFileNameAction() ) );
[730]216
217
218
[732]219  // label
220
[754]221  QLabel *infoLabel = new QLabel("  Press SPACE to Start/Pause video recording \n  Press RETURN to Stop video recording",this);
[730]222
[733]223  // global status
[755]224  QGroupBox *statusGroupBox = new QGroupBox(tr("Status"),this);
[735]225  QVBoxLayout *statusVGroupBoxLayout = new QVBoxLayout(statusGroupBox);
[733]226
[744]227  fRecordingStatus = new QLabel(statusGroupBox);
[754]228#if QT_VERSION > 0x040000
[755]229  statusVGroupBoxLayout->setMargin(15);
[748]230  fRecordingStatus->setWordWrap(true);
[754]231#else
[755]232  statusGroupBox->setInsideMargin(15);
[754]233  fRecordingStatus->setAlignment ( Qt::AlignAuto |Qt::WordBreak );
234#endif
[744]235  QPalette palette( fRecordingStatus->palette() );
[754]236#if QT_VERSION > 0x040000
[744]237  palette.setColor( QPalette::Text, Qt::green);
[754]238#else
239  palette.setColor( QColorGroup::Text, Qt::green);
240#endif
[744]241  fRecordingStatus->setPalette(palette);
242
243  fRecordingInfos = new QLabel(statusGroupBox);
[754]244#if QT_VERSION > 0x040000
[748]245  fRecordingInfos->setWordWrap(true);
[754]246#else
247  fRecordingInfos->setAlignment ( Qt::AlignAuto |Qt::WordBreak );
248#endif
[744]249  setRecordingInfos("");
250
[730]251#if QT_VERSION < 0x040000
[744]252  statusVGroupBoxLayout->add(fRecordingStatus);
253  statusVGroupBoxLayout->add(fRecordingInfos);
[735]254
[730]255  globalVLayout->add(infoLabel);
[735]256  globalVLayout->add(statusGroupBox);
[730]257#else
[744]258  statusVGroupBoxLayout->addWidget(fRecordingStatus);
259  statusVGroupBoxLayout->addWidget(fRecordingInfos);
[735]260
261  statusGroupBox->setLayout(statusVGroupBoxLayout);
[730]262  globalVLayout->addWidget(infoLabel);
[735]263  globalVLayout->addWidget(statusGroupBox);
[730]264#endif
[732]265
266  // buttons
[730]267  QWidget *buttonBox = new QWidget(this);
268
269  QHBoxLayout *buttonBoxLayout = new QHBoxLayout(buttonBox);
270
[750]271  QPushButton *buttonReset = new QPushButton( tr( "&Reset" ),buttonBox );
272  buttonReset->setAutoDefault( TRUE );
273  buttonBoxLayout->addWidget(buttonReset);
[733]274
[857]275  fButtonStartPause = new QPushButton( tr( "  &Start " ),buttonBox );
276  fButtonStartPause->setEnabled(true);
277  fButtonStartPause->setAutoDefault( TRUE );
278  buttonBoxLayout->addWidget(fButtonStartPause);
[750]279
[857]280  fButtonStopFinishClose = new QPushButton( tr( "&Stop" ),buttonBox );
281  fButtonStopFinishClose->setEnabled(false);
282  fButtonStopFinishClose->setAutoDefault( TRUE );
283  buttonBoxLayout->addWidget(fButtonStopFinishClose);
[730]284
[857]285  fButtonSave = new QPushButton( tr( "&Save" ),buttonBox );
286  fButtonSave->setEnabled(false);
287  fButtonSave->setAutoDefault( TRUE );
288  buttonBoxLayout->addWidget(fButtonSave);
289
290  QPushButton *buttonCancel = new QPushButton( tr( "&Cancel" ),buttonBox );
291  buttonCancel->setAutoDefault( TRUE );
292  buttonBoxLayout->addWidget(buttonCancel);
293
[730]294#if QT_VERSION >= 0x040000
295  buttonBox->setLayout(buttonBoxLayout);
296#endif
297  globalVLayout->addWidget(buttonBox);
298
299
300
301#if QT_VERSION >= 0x040000
302  setLayout(globalVLayout);
303#endif
304
305  // signals and slots connections
[857]306  connect( fButtonStartPause, SIGNAL( clicked() ), fParentViewer, SLOT(    startPauseVideo() ) );
[750]307  connect( buttonReset, SIGNAL( clicked() ), this, SLOT( resetRecording() ) );
[730]308  connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( reject() ) );
[857]309  connect( fButtonStopFinishClose, SIGNAL( clicked() ), this, SLOT( stopFinishClose() ) );
310  connect( fButtonSave, SIGNAL( clicked() ), this, SLOT( save() ) );
[737]311
312  // fill
[748]313  setRecordingStatus("");
[737]314  fEncoderPath->setText(fParentViewer->getEncoderPath());
315  fTempFolderPath->setText(fParentViewer->getTempFolderPath());
316
[750]317  // connect line edit signals
[857]318  connect (fEncoderPath,SIGNAL(textChanged ( const QString&)),this,SLOT(checkEncoderSwParameters()));
319  connect (fTempFolderPath,SIGNAL(textChanged ( const QString&)),this,SLOT(checkTempFolderParameters()));
320  connect (fSaveFileName,SIGNAL(textChanged ( const QString&)),this,SLOT(checkSaveFileNameParameters()));
[750]321
[755]322#if QT_VERSION >= 0x040000
[857]323  connect (fEncoderPath,SIGNAL(editingFinished ()),this,SLOT(checkEncoderSwParameters()));
324  connect (fTempFolderPath,SIGNAL(editingFinished ()),this,SLOT(checkTempFolderParameters()));
325  connect (fSaveFileName,SIGNAL(editingFinished ()),this,SLOT(checkSaveFileNameParameters()));
[755]326#else
[857]327  connect (fEncoderPath,SIGNAL(lostFocus ()),this,SLOT(checkEncoderSwParameters()));
328  connect (fTempFolderPath,SIGNAL(lostFocus ()),this,SLOT(checkTempFolderParameters()));
329  connect (fSaveFileName,SIGNAL(lostFocus ()),this,SLOT(checkSaveFileNameParameters()));
[755]330#endif
[751]331
[730]332}
333
334
335
336G4OpenGLQtMovieDialog::~G4OpenGLQtMovieDialog()
337{
338}
339
[733]340void G4OpenGLQtMovieDialog::selectEncoderPathAction()
[730]341{
[754]342#if QT_VERSION < 0x040000
343  QString nomFich =  QFileDialog::getOpenFileName ( ".",
344                                                    NULL,
345                                                    this,
346                                                    "Select your encoder",
347                                                    tr("Select your encoder ..."));
348#else
[730]349  QString nomFich =  QFileDialog::getOpenFileName ( this,
350                                                    "Select your encoder",
351                                                    tr("Select your encoder ..."));
[754]352
353#endif
354
[730]355  if (nomFich == "") {
356    return;
357  }
[750]358  fEncoderPath->setText(nomFich);
[857]359  checkEncoderSwParameters();
[733]360 }
361
[750]362
[733]363void G4OpenGLQtMovieDialog::selectTempPathAction()
364{
[754]365#if QT_VERSION < 0x040000
[755]366  QString nomFich =  QFileDialog::getExistingDirectory (NULL,
[754]367                                                    this,
368                                                    "Select temporary folder",
369                                                    tr("Select temporary folder ..."));
370#else
[755]371  QString nomFich =  QFileDialog::getExistingDirectory ( this,
[733]372                                                    "Select temporary folder",
373                                                    tr("Select temporary folder ..."));
[754]374
375#endif
[733]376  if (nomFich == "") {
377    return;
378  }
[750]379  fTempFolderPath->setText(nomFich);
[857]380  checkTempFolderParameters();
[733]381 }
382
[750]383
[733]384void G4OpenGLQtMovieDialog::selectSaveFileNameAction()
385{
[754]386#if QT_VERSION < 0x040000
387  QString nomFich =  QFileDialog::getSaveFileName ( ".",
388                                                    NULL,
389                                                    this,
390                                                    "Select saved file",
391                                                    tr("Select saved file ..."));
392#else
[742]393  QString nomFich =  QFileDialog::getSaveFileName ( this,
[733]394                                                    "Select saved file",
395                                                    tr("Select saved file ..."));
[754]396
397#endif
[733]398  if (nomFich == "") {
399    return;
400  }
[750]401  fSaveFileName->setText(nomFich);
[857]402  checkSaveFileNameParameters();
[733]403 }
404
[750]405
[857]406void G4OpenGLQtMovieDialog::stopFinishClose() {
407  fParentViewer->stopVideo();
[730]408}
409
[857]410void G4OpenGLQtMovieDialog::save() {
411  if (((fParentViewer->isPaused()) || fParentViewer->isRecording() || fParentViewer->isStopped())) {
412    fParentViewer->saveVideo();
[747]413  }
[733]414}
415
416        /**
[732]417 * If one of parameter is incorrect, put it in red and don't valid it
[733]418 * If valid, save it
[732]419 */
[857]420bool G4OpenGLQtMovieDialog::checkEncoderSwParameters() {
[730]421
[747]422  bool status = true;
[732]423  QPalette palette( fEncoderPath->palette() );
424
[857]425  QString temp = fParentViewer->setEncoderPath(fEncoderPath->text());
[744]426  setRecordingInfos("");
[740]427  fEncoderStatus->setText(temp);
[733]428  if (temp != "") {
[754]429#if QT_VERSION > 0x040000
[732]430    palette.setColor( QPalette::Base, Qt::red);
[754]431#else
432    palette.setColor( QColorGroup::Base, Qt::red);
433#endif
[746]434    if (fParentViewer->isReadyToEncode()) {
[748]435      setRecordingInfos("No valid encode defined, screen capture had been saved in the temp folder in ppm format.\nPlease define a encoder and clic on Apply button");
[747]436        }
437    status = false;
[732]438  } else {
[754]439#if QT_VERSION > 0x040000
[732]440    palette.setColor( QPalette::Base, Qt::white);
[754]441#else
442    palette.setColor( QColorGroup::Base, Qt::white);
443#endif
[733]444    fEncoderPath->setText(fParentViewer->getEncoderPath());
[732]445  }
446  fEncoderPath->setPalette(palette);
[747]447  return status;
[733]448}
[732]449
450
[733]451/**
452 * If one of parameter is incorrect, put it in red and don't valid it
453 * If valid, save it
454 */
[857]455bool G4OpenGLQtMovieDialog::checkTempFolderParameters() {
[732]456
[747]457  bool status = true;
[733]458  QPalette palette( fTempFolderPath->palette() );
459
[857]460  QString temp = fParentViewer->setTempFolderPath(fTempFolderPath->text());
[736]461  fTempFolderStatus->setText(temp);
462  if (temp != "") {
[754]463#if QT_VERSION > 0x040000
[732]464    palette.setColor( QPalette::Base, Qt::red);
[754]465#else
466    palette.setColor( QColorGroup::Base, Qt::red);
467#endif
[747]468    status = false;
[732]469  } else {
[754]470#if QT_VERSION > 0x040000
[732]471    palette.setColor( QPalette::Base, Qt::white);
[754]472#else
473    palette.setColor( QColorGroup::Base, Qt::white);
474#endif
[736]475    fTempFolderPath->setText(fParentViewer->getTempFolderPath());
[732]476  }
[733]477  fTempFolderPath->setPalette(palette);
[747]478  return status;
[732]479}
480
[733]481
482/**
483 * If one of parameter is incorrect, put it in red and don't valid it
484 * If valid, save it
485 */
[857]486bool G4OpenGLQtMovieDialog::checkSaveFileNameParameters() {
[733]487
[747]488  bool status = true;
[733]489  QPalette palette( fSaveFileName->palette() );
490
[857]491  QString temp = fParentViewer->setSaveFileName(fSaveFileName->text());
[750]492  fSaveFileStatus->setText(temp);
[733]493  if (temp != "") {
[754]494#if QT_VERSION > 0x040000
[733]495    palette.setColor( QPalette::Base, Qt::red);
[754]496#else
497    palette.setColor( QColorGroup::Base, Qt::red);
498#endif
[747]499    status = false;
[733]500  } else {
[754]501#if QT_VERSION > 0x040000
[733]502    palette.setColor( QPalette::Base, Qt::white);
[754]503#else
504    palette.setColor( QColorGroup::Base, Qt::white);
505#endif
[733]506    fSaveFileName->setText(fParentViewer->getSaveFileName());
507  }
508  fSaveFileName->setPalette(palette);
[747]509  return status;
[733]510}
[737]511
512
[750]513void G4OpenGLQtMovieDialog::resetRecording() {
514  fParentViewer->resetRecording();
515}
516
517
[744]518void G4OpenGLQtMovieDialog::setRecordingStatus(QString txt) {
519  fRecordingStatus->setText(txt);
[857]520  if (fParentViewer->isWaiting()) {
521    fButtonStartPause->setText("  &Start ");
522    fButtonStartPause->setEnabled(true);
523    fButtonStopFinishClose->setEnabled(false);
524    fButtonSave->setEnabled(false);
525
526  } else if (fParentViewer->isPaused()) {
527
528    fButtonStartPause->setText("  &Continue ");
529    fButtonStartPause->setEnabled(true);
530    fButtonStopFinishClose->setEnabled(true);
531    fButtonSave->setEnabled(false);
532
533  } else if (fParentViewer->isRecording()) {
534
535    fButtonStartPause->setText("  &Pause ");
536    fButtonStartPause->setEnabled(true);
537    fButtonStopFinishClose->setEnabled(true);
538    fButtonSave->setEnabled(false);
539
540  } else if (fParentViewer->isBadOutput()) {
541
542    fButtonStartPause->setText("  &Start ");
543    fButtonStartPause->setEnabled(true);
544    fButtonStopFinishClose->setEnabled(false);
545    fButtonSave->setEnabled(false);
546
547  } else if (fParentViewer->isBadTmp()) {
548
549    fButtonStartPause->setText("  &Start ");
550    fButtonStartPause->setEnabled(false);
551    fButtonStopFinishClose->setEnabled(false);
552    fButtonSave->setEnabled(false);
553
554  } else if (fParentViewer->isBadEncoder()) {
555
556    fButtonStartPause->setText("  &Start ");
557    fButtonStartPause->setEnabled(true);
558    fButtonStopFinishClose->setEnabled(false);
559    fButtonSave->setEnabled(false);
560
561  } else if (fParentViewer->isSuccess()) {
562
563    fButtonStartPause->setText("  &Start ");
564    fButtonStartPause->setEnabled(false);
565    fButtonStopFinishClose->setEnabled(false);
566    fButtonSave->setEnabled(false);
567
568  } else if (fParentViewer->isFailed()) {
569
570    fButtonStartPause->setText("  &Start ");
571    fButtonStartPause->setEnabled(false);
572    fButtonStopFinishClose->setEnabled(false);
573    fButtonSave->setEnabled(false);
574
575  } else if (fParentViewer->isStopped()) {
576
577    fButtonStartPause->setText("  &Start ");
578    fButtonStartPause->setEnabled(false);
579    fButtonStopFinishClose->setEnabled(false);
580    fButtonSave->setEnabled(true);
581  }
[737]582}
583
[750]584
[744]585void G4OpenGLQtMovieDialog::setRecordingInfos(QString txt) {
586  fRecordingInfos->setText(txt);
587}
588
[751]589
590void G4OpenGLQtMovieDialog::enabledApplyButton() {
[857]591  fButtonStartPause->setEnabled(true);
[751]592}
593
[730]594#endif
Note: See TracBrowser for help on using the repository browser.