// Module : VISU
#include "VisuGUI_TimeAnimation.h"
+
#include "VisuGUI.h"
+#include "VisuGUI_Tools.h"
+//#include "VisuGUI_MagnitudeDlg.h"
+#include "VisuGUI_CutPlanesDlg.h"
+#include "VisuGUI_VectorsDlg.h"
+#include "VisuGUI_IsoSurfacesDlg.h"
+#include "VisuGUI_StreamLinesDlg.h"
+
+#include "VISU_TimeAnimation.h"
+
+#include "VISU_ScalarMap_i.hh"
+#include "VISU_IsoSurfaces_i.hh"
+#include "VISU_DeformedShape_i.hh"
+#include "VISU_CutPlanes_i.hh"
+#include "VISU_CutLines_i.hh"
+#include "VISU_Vectors_i.hh"
+#include "VISU_StreamLines_i.hh"
+
+#include "VISU_ScalarBarActor.hxx"
+
+#include "SalomeApp_Application.h"
+
+#include "SUIT_OverrideCursor.h"
+#include "SUIT_MessageBox.h"
+#include "SUIT_Desktop.h"
+#include "SUIT_FileDlg.h"
+
+#include "VTKViewer_ViewWindow.h"
#include <qlayout.h>
#include <qhbox.h>
#include <qhgroupbox.h>
-#include <qmessagebox.h>
#include <qwt_wheel.h>
#include <qlcdnumber.h>
#include <qlistbox.h>
#include <qvgroupbox.h>
-#include <qthread.h>
+#include <qthread.h>
-#include "QAD_Application.h"
-#include "QAD_Desktop.h"
-#include "QAD_FileDlg.h"
+//static double MAXVALUE = 1.0E+300;
-#include "VTKViewer_ViewFrame.h"
-#include "VISU_ScalarBarActor.hxx"
-#include "VisuGUI_MagnitudeDlg.h"
-#include "VisuGUI_CutPlanesDlg.h"
-#include "VisuGUI_VectorsDlg.h"
-#include "VisuGUI_IsoSurfacesDlg.h"
-#include "VisuGUI_StreamLinesDlg.h"
-#include "VISU_TimeAnimation.h"
-
-static double MAXVALUE = 1.0E+300;
-
-
-
-SetupDlg::SetupDlg(QWidget* theParent, VISU_TimeAnimation* theAnimator)
- : QDialog( theParent, "SetupDlg", true, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu )
+SetupDlg::SetupDlg (QWidget* theParent, VISU_TimeAnimation* theAnimator)
+ : QDialog(theParent, "SetupDlg", true, WStyle_Customize |
+ WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
{
setCaption("Setup Animation");
setSizeGripEnabled( TRUE );
myAnimator = theAnimator;
-
+
QVBoxLayout* aMainLayout = new QVBoxLayout(this, 7, 6);
aMainLayout->setSpacing(5);
QFrame* aRangeGrp = new QFrame(this);
- QGridLayout* aRangeLayout = new QGridLayout( aRangeGrp );
+ QGridLayout* aRangeLayout = new QGridLayout( aRangeGrp );
aRangeLayout->setSpacing( 6 );
aRangeLayout->setMargin( 11 );
aRangeGrp->setFrameStyle(QFrame::Box | QFrame::Raised);
myUseRangeChk = new QCheckBox("Use range of time stamps", aRangeGrp);
aRangeLayout->addMultiCellWidget(myUseRangeChk, 0, 0, 0, 3);
myUseRangeChk->setChecked(myAnimator->isRangeDefined());
-
+
QLabel* aMinLbl = new QLabel("From", aRangeGrp);
aMinLbl->setEnabled(myUseRangeChk->isChecked());
aRangeLayout->addWidget(aMinLbl, 1, 0);
double aStep = (myAnimator->getMaxTime() - myAnimator->getMinTime())/(theAnimator->getFieldData(0).myNbTimes - 1);
- myMinVal = new QAD_SpinBoxDbl(aRangeGrp, myAnimator->getMinTime(), myAnimator->getMaxTime(), aStep );
+ myMinVal = new QtxDblSpinBox( myAnimator->getMinTime(), myAnimator->getMaxTime(), aStep, aRangeGrp );
myMinVal->setEnabled(myUseRangeChk->isChecked());
if (myUseRangeChk->isChecked())
myMinVal->setValue( myAnimator->getMinRange() );
else
myMinVal->setValue( myAnimator->getMinTime() );
-
+
connect(myMinVal, SIGNAL( valueChanged(double)),
this, SLOT( onMinValue(double) ));
aRangeLayout->addWidget(myMinVal, 1, 1);
QLabel* aMaxLbl = new QLabel("To", aRangeGrp);
aMaxLbl->setEnabled(myUseRangeChk->isChecked());
aRangeLayout->addWidget(aMaxLbl, 1, 2);
- myMaxVal = new QAD_SpinBoxDbl(aRangeGrp, myAnimator->getMinTime(), myAnimator->getMaxTime(), aStep );
+ myMaxVal = new QtxDblSpinBox( myAnimator->getMinTime(), myAnimator->getMaxTime(), aStep, aRangeGrp );
myMaxVal->setEnabled(myUseRangeChk->isChecked());
if (myUseRangeChk->isChecked())
myMaxVal->setValue( myAnimator->getMaxRange() );
connect(myMaxVal, SIGNAL( valueChanged(double)),
this, SLOT( onMaxValue(double) ));
aRangeLayout->addWidget(myMaxVal, 1, 3);
-
+
connect(myUseRangeChk, SIGNAL( toggled(bool)),
aMinLbl, SLOT( setEnabled(bool) ));
connect(myUseRangeChk, SIGNAL( toggled(bool)),
aMainLayout->addWidget(aRangeGrp);
-
+
QHBox* aPropFrame = new QHBox(this);
aPropFrame->setSpacing(5);
-
- QVGroupBox* aNamesBox = new QVGroupBox("Fields",aPropFrame);
+
+ QVGroupBox* aNamesBox = new QVGroupBox("Fields",aPropFrame);
myFieldLst = new QListBox(aNamesBox);
QStringList aFieldNames;
// Find names of fields
for (int i = 0; i < theAnimator->getNbFields(); i++) {
- aFieldNames.append(VisuGUI::getValue(theAnimator->getFieldData(i).myField, "myName"));
+ _PTR(SObject) aSO = theAnimator->getFieldData(i).myField;
+ aFieldNames.append(VISU::getValue(aSO, "myName"));
}
myFieldLst->insertStringList(aFieldNames);
myFieldLst->setSelected(0, true);
- connect( myFieldLst, SIGNAL( highlighted(int) ),
+ connect( myFieldLst, SIGNAL( highlighted(int) ),
this, SLOT( onFieldChange(int) ) );
-
- QVGroupBox* aPropBox = new QVGroupBox("Properties", aPropFrame);
+
+ QVGroupBox* aPropBox = new QVGroupBox("Properties", aPropFrame);
myTypeCombo = new QComboBox(aPropBox);
- connect( myTypeCombo, SIGNAL( activated(int) ),
+ connect( myTypeCombo, SIGNAL( activated(int) ),
this, SLOT( onTypeChanged(int) ) );
-
- QPushButton* aBarBtn = new QPushButton("Scalar Bar...", aPropBox);
- connect( aBarBtn, SIGNAL( clicked() ),
- this, SLOT( onScalarBarDlg() ) );
-
+
+ // QPushButton* aBarBtn = new QPushButton("Scalar Bar...", aPropBox);
+ //connect( aBarBtn, SIGNAL( clicked() ),
+ // this, SLOT( onScalarBarDlg() ) );
+
myPropBtn = new QPushButton("Properties...", aPropBox);
- myPropBtn->setEnabled(theAnimator->getFieldData(0).myPrsType != VISU::TSCALARMAP);
- connect( myPropBtn, SIGNAL( clicked() ),
+ // myPropBtn->setEnabled(theAnimator->getFieldData(0).myPrsType != VISU::TSCALARMAP);
+ connect( myPropBtn, SIGNAL( clicked() ),
this, SLOT( onPreferencesDlg() ) );
onFieldChange(0);
aMainLayout->addWidget(aPropFrame);
-
+
QHBox* aBtnBox = new QHBox(this);
- QHBoxLayout* aBtnLayout = new QHBoxLayout(aBtnBox->layout());
+ QHBoxLayout* aBtnLayout = new QHBoxLayout(aBtnBox->layout());
aBtnLayout->addStretch();
-
- QPushButton* aCloseBtn = new QPushButton(tr("BUT_CLOSE"), aBtnBox);
+
+ QPushButton* aCloseBtn = new QPushButton(tr("VISU_BUT_OK"), aBtnBox);
connect(aCloseBtn, SIGNAL(clicked()), this, SLOT(close()));
-
+
aMainLayout->addWidget(aBtnBox);
}
-
//************************************************************************
-void SetupDlg::onFieldChange(int theIndex) {
+void SetupDlg::onFieldChange (int theIndex)
+{
FieldData& aData = myAnimator->getFieldData(theIndex);
myTypeCombo->clear();
myTypeCombo->insertItem("Scalar Map");
myTypeCombo->insertItem("Iso Surfaces");
myTypeCombo->insertItem("Cut Planes");
- SALOMEDS::SObject_var aSObject = aData.myField;
- long aNumComp = VisuGUI::getValue(aSObject, "myNumComponent").toLong();
+ _PTR(SObject) aSObject = aData.myField;
+ long aNumComp = VISU::getValue(aSObject, "myNumComponent").toLong();
if (aNumComp > 1) {
myTypeCombo->insertItem("Deformed Shape");
myTypeCombo->insertItem("Vectors");
myTypeCombo->setCurrentItem(5);
aData.myPrsType = VISU::TSTREAMLINES;
break;
- }
- myPropBtn->setEnabled(aData.myPrsType != VISU::TSCALARMAP);
+ }
+ //myPropBtn->setEnabled(aData.myPrsType != VISU::TSCALARMAP);
}
//************************************************************************
-void SetupDlg::onTypeChanged(int theIndex) {
+void SetupDlg::onTypeChanged (int theIndex)
+{
FieldData& aData = myAnimator->getFieldData(myFieldLst->currentItem());
switch (theIndex) {
case 0: //Scalar Map
break;
}
myAnimator->clearData(aData);
- myPropBtn->setEnabled(aData.myPrsType != VISU::TSCALARMAP);
+ //myPropBtn->setEnabled(aData.myPrsType != VISU::TSCALARMAP);
//myAnimator->generatePresentations(myFieldLst->currentItem());
}
-
//************************************************************************
-void SetupDlg::onScalarBarDlg() {
+/*void SetupDlg::onScalarBarDlg() {
QApplication::setOverrideCursor( Qt::waitCursor );
FieldData& aData = myAnimator->getFieldData(myFieldLst->currentItem());
- if (aData.myPrs == 0)
+ if (aData.myPrs == 0)
myAnimator->generatePresentations(myFieldLst->currentItem());
QApplication::restoreOverrideCursor();
aScalarBarDlg->storeToPrsObject(aData.myPrs[i]);
}
}
+*/
//************************************************************************
-void SetupDlg::onPreferencesDlg() {
- QApplication::setOverrideCursor( Qt::waitCursor );
+void SetupDlg::onPreferencesDlg()
+{
+ MESSAGE("SetupDlg::onPreferencesDlg() is not implemented");
+/* SUIT_OverrideCursor c;
FieldData& aData = myAnimator->getFieldData(myFieldLst->currentItem());
- if (aData.myPrs == 0)
+ if (aData.myPrs.empty())
myAnimator->generatePresentations(myFieldLst->currentItem());
- QApplication::restoreOverrideCursor();
+
+// BUG VISU5725 : Compatibility gcc 2.95
+// #define EDITPRS(TYPE, DLG) \
+// { \
+// DLG* aDlg = new DLG(); \
+// aDlg->initFromPrsObject(dynamic_cast<TYPE*>(aData.myPrs.at(0))); \
+// if (aDlg->exec()) { \
+// for (int i = 0; i < aData.myNbFrames; i++) \
+// aDlg->storeToPrsObject(dynamic_cast<TYPE*>(aData.myPrs.at(i))); \
+// } \
+// delete aDlg; \
+// }
+
+
+#define EDITPRS(TYPE, DLG) {DLG* aDlg = new DLG(); aDlg->initFromPrsObject(dynamic_cast<TYPE*>(aData.myPrs[0])); if (aDlg->exec()) { for (int i = 0; i < aData.myNbFrames; i++) aDlg->storeToPrsObject(dynamic_cast<TYPE*>(aData.myPrs[i])); } delete aDlg;}
switch (myTypeCombo->currentItem()) {
+ case 0: //Scalar Map
+ EDITPRS(VISU::ScalarMap_i, VisuGUI_ScalarBarDlg);
+ break;
case 1: //Iso Surfaces
- {
- VisuGUI_IsoSurfacesDlg* aDlg = new VisuGUI_IsoSurfacesDlg();
- aDlg->initFromPrsObject(dynamic_cast<VISU::IsoSurfaces_i*>(aData.myPrs[0]));
- if (aDlg->exec()) {
- for (int i = 0; i < aData.myNbFrames; i++)
- aDlg->storeToPrsObject(dynamic_cast<VISU::IsoSurfaces_i*>(aData.myPrs[i]));
- }
- }
+ EDITPRS(VISU::IsoSurfaces_i, VisuGUI_IsoSurfacesDlg);
break;
case 2: //Cut Planes
+ // EDITPRS(VISU::CutPlanes_i, VisuGUI_CutPlanesDlg);
{
- VisuGUI_CutPlanesDlg* aDlg = new VisuGUI_CutPlanesDlg();
+ VisuGUI_CutPlanesDlg* aDlg = new VisuGUI_CutPlanesDlg(false, true);
+ //_CS_PhB :operator [] .at aDlg->initFromPrsObject(dynamic_cast<VISU::CutPlanes_i*>(aData.myPrs.at(0)));
aDlg->initFromPrsObject(dynamic_cast<VISU::CutPlanes_i*>(aData.myPrs[0]));
+
if (aDlg->exec()) {
for (int i = 0; i < aData.myNbFrames; i++)
+ //_CS_PhB:operator [] .at aDlg->storeToPrsObject(dynamic_cast<VISU::CutPlanes_i*>(aData.myPrs.at(i)));
aDlg->storeToPrsObject(dynamic_cast<VISU::CutPlanes_i*>(aData.myPrs[i]));
}
+ delete aDlg;
}
break;
case 3: //Deformed Shape
- {
- VisuGUI_MagnitudeDlg* aDlg = new VisuGUI_MagnitudeDlg();
- aDlg->initFromPrsObject(dynamic_cast<VISU::DeformedShape_i*>(aData.myPrs[0]));
- if (aDlg->exec()) {
- for (int i = 0; i < aData.myNbFrames; i++)
- aDlg->storeToPrsObject(dynamic_cast<VISU::DeformedShape_i*>(aData.myPrs[i]));
- }
- }
+ EDITPRS(VISU::DeformedShape_i, VisuGUI_MagnitudeDlg);
break;
case 4: //Vectors
- {
- VisuGUI_VectorsDlg* aDlg = new VisuGUI_VectorsDlg();
- aDlg->initFromPrsObject(dynamic_cast<VISU::Vectors_i*>(aData.myPrs[0]));
- if (aDlg->exec()) {
- for (int i = 0; i < aData.myNbFrames; i++)
- aDlg->storeToPrsObject(dynamic_cast<VISU::Vectors_i*>(aData.myPrs[i]));
- }
- }
+ EDITPRS(VISU::Vectors_i, VisuGUI_VectorsDlg);
break;
case 5: //Stream Lines
- {
- VisuGUI_StreamLinesDlg* aDlg = new VisuGUI_StreamLinesDlg();
- aDlg->initFromPrsObject(dynamic_cast<VISU::StreamLines_i*>(aData.myPrs[0]));
- if (aDlg->exec()) {
- for (int i = 0; i < aData.myNbFrames; i++)
- aDlg->storeToPrsObject(dynamic_cast<VISU::StreamLines_i*>(aData.myPrs[i]));
- }
- }
+ EDITPRS(VISU::StreamLines_i, VisuGUI_StreamLinesDlg);
break;
}
+#undef EDITPRS
+*/
}
//************************************************************************
-void SetupDlg::onRangeCheck(bool theCheck) {
- for (int i = 0; i < myAnimator->getNbFields(); i++)
+void SetupDlg::onRangeCheck (bool theCheck)
+{
+ for (int i = 0; i < myAnimator->getNbFields(); i++)
myAnimator->clearData(myAnimator->getFieldData(i));
myMinVal->setEnabled(theCheck);
myAnimator->setAnimationRange(0, 0);
else {
// if (myMinVal->value() < myMaxVal->value())
- myAnimator->setAnimationRange(myMinVal->value(), myMaxVal->value());
+ myAnimator->setAnimationRange(myMinVal->value(), myMaxVal->value());
// else if (myMinVal->value() > myMaxVal->value())
// myAnimator->setAnimationRange(myMaxVal->value(), myMinVal->value());
// else // equal case
}
//************************************************************************
-void SetupDlg::onMinValue(double theVal) {
+void SetupDlg::onMinValue (double theVal)
+{
if (theVal > myAnimator->getMaxRange()) {
myMinVal->setValue( myAnimator->getMinTime() );
myMinVal->setFocus();
return;
}
- for (int i = 0; i < myAnimator->getNbFields(); i++)
+ for (int i = 0; i < myAnimator->getNbFields(); i++)
myAnimator->clearData(myAnimator->getFieldData(i));
myAnimator->setAnimationRange(theVal, myAnimator->getMaxRange());
}
//************************************************************************
-void SetupDlg::onMaxValue(double theVal) {
+void SetupDlg::onMaxValue (double theVal)
+{
if (theVal < myAnimator->getMinRange()) {
myMaxVal->setValue( myAnimator->getMaxTime() );
myMaxVal->setFocus();
return;
}
- for (int i = 0; i < myAnimator->getNbFields(); i++)
+ for (int i = 0; i < myAnimator->getNbFields(); i++)
myAnimator->clearData(myAnimator->getFieldData(i));
myAnimator->setAnimationRange(myAnimator->getMinRange(), theVal);
}
-
static const char * firstIco[] = {
"18 10 2 1",
" g None",
static QPixmap MYplayPixmap(playIco);
-
static const char * rightIco[] = {
"11 10 2 1",
" g None",
static QPixmap MYpausePixmap(pauseIco);
-VisuGUI_TimeAnimationDlg::VisuGUI_TimeAnimationDlg(SALOMEDS::Study_var theStudy)
- : QDialog( QAD_Application::getDesktop(), "VisuGUI_TimeAnimationDlg", false, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | WDestructiveClose)
+VisuGUI_TimeAnimationDlg::VisuGUI_TimeAnimationDlg (QWidget* parent, _PTR(Study) theStudy)
+ : QDialog(parent, "VisuGUI_TimeAnimationDlg", false, WStyle_Customize |
+ WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | WDestructiveClose)
{
setCaption("Animation");
setSizeGripEnabled( TRUE );
myStudy = theStudy;
isClosing = false;
- myAnimator = new VISU_TimeAnimation(theStudy);
+ //myAnimator = new VISU_TimeAnimation (VISU::GetDSStudy(theStudy));
+ myAnimator = new VISU_TimeAnimation (theStudy);
myAnimator->setSpeed(1);
- myAnimator->setViewer(VisuGUI::GetVtkViewFrame());
- connect( myAnimator, SIGNAL( frameChanged(long, double) ),
- this, SLOT( onExecution(long, double) ) );
- connect( myAnimator, SIGNAL( stopped() ),
- this, SLOT( onStop() ) );
+ myAnimator->setViewer(VISU::GetViewWindow());
+ connect(myAnimator, SIGNAL(frameChanged(long, double)), this, SLOT(onExecution(long, double)));
+ connect(myAnimator, SIGNAL(stopped()), this, SLOT(onStop()));
QVBoxLayout* aMainLayout = new QVBoxLayout(this, 7, 6);
aMainLayout->setSpacing(5);
mySetupBtn = new QPushButton("Setup Animation...", this);
- connect( mySetupBtn, SIGNAL( clicked() ),
+ connect( mySetupBtn, SIGNAL( clicked() ),
this, SLOT( onSetupDlg() ) );
- aMainLayout->addWidget(mySetupBtn);
-
+ aMainLayout->addWidget(mySetupBtn);
+
myGenBtn = new QPushButton("Generate frames", this);
- connect( myGenBtn, SIGNAL( clicked() ),
+ connect( myGenBtn, SIGNAL( clicked() ),
this, SLOT( createFrames() ) );
aMainLayout->addWidget(myGenBtn);
myPlayFrame = new QFrame(this);
myPlayFrame->setFrameStyle(QFrame::WinPanel | QFrame::Sunken);
myPlayFrame->setLineWidth( 1 );
-
+
// --- Play controls ---
- QGridLayout* TopLayout = new QGridLayout( myPlayFrame );
+ QGridLayout* TopLayout = new QGridLayout( myPlayFrame );
TopLayout->setSpacing( 6 );
TopLayout->setMargin( 11 );
mySlider->setTickInterval(1);
//mySlider->setTickmarks(QSlider::Below);
mySlider->setTracking(false);
- connect( mySlider, SIGNAL( valueChanged(int) ),
- this, SLOT( onFrameChanged(int) ) );
+ connect( mySlider, SIGNAL( valueChanged(int) ),
+ this, SLOT( onWindowChanged(int) ) );
TopLayout->addMultiCellWidget(mySlider, 1, 1, 0, 2);
myPlayBtn = new QToolButton(myPlayFrame);
myPlayBtn->setIconSet(MYplayPixmap);
myPlayBtn->setToggleButton(true);
- connect( myPlayBtn, SIGNAL( clicked() ),
+ connect( myPlayBtn, SIGNAL( clicked() ),
this, SLOT( onPlayPressed() ) );
TopLayout->addMultiCellWidget(myPlayBtn, 2, 2, 0, 1);
QToolButton* aBackBtn = new QToolButton(myPlayFrame);
aBackBtn->setIconSet(QPixmap(leftIco));
- connect( aBackBtn, SIGNAL( clicked() ),
+ connect( aBackBtn, SIGNAL( clicked() ),
this, SLOT( onBackPressed() ) );
TopLayout->addWidget(aBackBtn, 3, 0);
QToolButton* aForvardBtn = new QToolButton(myPlayFrame);
aForvardBtn->setIconSet(QPixmap(rightIco));
- connect( aForvardBtn, SIGNAL( clicked() ),
+ connect( aForvardBtn, SIGNAL( clicked() ),
this, SLOT( onForvardPressed() ) );
TopLayout->addWidget(aForvardBtn, 3, 1);
QToolButton* aFirstBtn = new QToolButton(myPlayFrame);
aFirstBtn->setIconSet(QPixmap(firstIco));
- connect( aFirstBtn, SIGNAL( clicked() ),
+ connect( aFirstBtn, SIGNAL( clicked() ),
this, SLOT( onFirstPressed() ) );
TopLayout->addWidget(aFirstBtn, 4, 0);
-
+
QToolButton* aLastBtn = new QToolButton(myPlayFrame);
aLastBtn->setIconSet(QPixmap(lastIco));
- connect( aLastBtn, SIGNAL( clicked() ),
+ connect( aLastBtn, SIGNAL( clicked() ),
this, SLOT( onLastPressed() ) );
TopLayout->addWidget(aLastBtn, 4, 1);
-
+
QLabel* aSpeedLbl = new QLabel("Speed", myPlayFrame);
TopLayout->addWidget(aSpeedLbl, 4, 2, Qt::AlignRight);
QwtWheel* aWheel = new QwtWheel(myPlayFrame);
aWheel->setOrientation(Qt::Vertical);
aWheel->setRange(1, 99, 1);
- connect( aWheel, SIGNAL(valueChanged(double)),
+ connect( aWheel, SIGNAL(valueChanged(double)),
aSpeedNum, SLOT(display(double)) );
- connect( aWheel, SIGNAL(valueChanged(double)),
+ connect( aWheel, SIGNAL(valueChanged(double)),
this, SLOT(onSpeedChange(double)) );
TopLayout->addMultiCellWidget(aWheel, 1, 3, 3, 3, Qt::AlignRight);
mySaveCheck = new QCheckBox("Save pictures to directory", aSaveBox);
aSaveLay->addMultiCellWidget(mySaveCheck, 0, 0, 0, 2);
+ connect(mySaveCheck, SIGNAL( toggled(bool)),
+ aWheel, SLOT( setDisabled(bool) ));
QLabel* aPathLbl = new QLabel("Path:", aSaveBox);
aPathLbl->setEnabled(false);
connect(mySaveCheck, SIGNAL( toggled(bool)),
aPathLbl, SLOT( setEnabled(bool) ));
aSaveLay->addWidget(aPathLbl, 1, 0);
-
+
myPathEdit = new QLineEdit(aSaveBox);
myPathEdit->setEnabled(false);
connect(mySaveCheck, SIGNAL( toggled(bool)),
aMainLayout->addWidget(myPlayFrame);
QHBox* aBtnBox = new QHBox(this);
- QHBoxLayout* aBtnLayout = new QHBoxLayout(aBtnBox->layout());
+ QHBoxLayout* aBtnLayout = new QHBoxLayout(aBtnBox->layout());
aBtnLayout->addStretch();
QPushButton* aCloseBtn = new QPushButton(tr("BUT_CLOSE"), aBtnBox);
connect(aCloseBtn, SIGNAL(clicked()), this, SLOT(close()));
-
+
aMainLayout->addWidget(aBtnBox);
myPlayFrame->setEnabled(false);
}
-
//************************************************************************
-VisuGUI_TimeAnimationDlg::~VisuGUI_TimeAnimationDlg() {
+VisuGUI_TimeAnimationDlg::~VisuGUI_TimeAnimationDlg()
+{
delete myAnimator;
}
-
//************************************************************************
-void VisuGUI_TimeAnimationDlg::onTypeChange(int index) {
+void VisuGUI_TimeAnimationDlg::onTypeChange (int index)
+{
stopAnimation();
myPropBtn->setEnabled(index != 0);
-
+
clearView();
myPlayFrame->setEnabled(false);
}
-
//************************************************************************
-void VisuGUI_TimeAnimationDlg::addField(SALOMEDS::SObject_var theSObject) {
+void VisuGUI_TimeAnimationDlg::addField (_PTR(SObject) theSObject)
+{
myPlayFrame->setEnabled(false);
- myAnimator->addField(theSObject);
+ myAnimator->addField(VISU::GetSObject(theSObject));
}
-
-
//************************************************************************
-void VisuGUI_TimeAnimationDlg::createFrames() {
+void VisuGUI_TimeAnimationDlg::createFrames()
+{
stopAnimation();
- QApplication::setOverrideCursor( Qt::waitCursor );
+ SUIT_OverrideCursor c;
for (int i = 0; i < myAnimator->getNbFields(); i++) {
- if (myAnimator->getFieldData(i).myPrs == 0)
+ if (myAnimator->getFieldData(i).myPrs.empty())
myAnimator->generatePresentations(i);
}
+ if (myAnimator->getNbFrames() == 0) {
+ myPlayFrame->setEnabled(false);
+ c.suspend();
+ SUIT_MessageBox::warn1(this,
+ tr("ERROR"),
+ tr("MSG_NO_ANIMATIONDATA"),
+ tr("OK"));
+ return;
+ }
mySlider->setMaxValue(myAnimator->getNbFrames()-1);
myPlayFrame->setEnabled(true);
if (!myAnimator->generateFrames()) {
- QApplication::restoreOverrideCursor();
+ c.suspend();
//myPlayFrame->setEnabled(false);
- QMessageBox::warning(QAD_Application::getDesktop(), tr("ERROR"), myAnimator->getLastErrorMsg());
+ SUIT_MessageBox::warn1(this,
+ tr("ERROR"),
+ myAnimator->getLastErrorMsg(),
+ tr("OK"));
return;
}
//myPlayFrame->setEnabled(true);
- QApplication::restoreOverrideCursor();
}
-
-
//************************************************************************
-void VisuGUI_TimeAnimationDlg::onPlayPressed() {
- if (myPlayBtn->isOn()) {
+void VisuGUI_TimeAnimationDlg::onPlayPressed()
+{
+ if (myPlayBtn->isOn() && (!myAnimator->running())) {
myPlayBtn->setIconSet(MYpausePixmap);
if (mySaveCheck->isChecked())
myAnimator->dumpTo(myPathEdit->text());
}
//************************************************************************
-void VisuGUI_TimeAnimationDlg::onBackPressed() {
+void VisuGUI_TimeAnimationDlg::onBackPressed()
+{
//stopAnimation();
myAnimator->prevFrame();
}
-
//************************************************************************
-void VisuGUI_TimeAnimationDlg::onForvardPressed() {
+void VisuGUI_TimeAnimationDlg::onForvardPressed()
+{
myAnimator->nextFrame();
}
-
//************************************************************************
-void VisuGUI_TimeAnimationDlg::onLastPressed() {
+void VisuGUI_TimeAnimationDlg::onLastPressed()
+{
myAnimator->lastFrame();
}
-
//************************************************************************
-void VisuGUI_TimeAnimationDlg::onFirstPressed() {
+void VisuGUI_TimeAnimationDlg::onFirstPressed()
+{
myAnimator->firstFrame();
}
-
-
//************************************************************************
-void VisuGUI_TimeAnimationDlg::clearView() {
+void VisuGUI_TimeAnimationDlg::clearView()
+{
myAnimator->clearView();
}
-
//************************************************************************
-void VisuGUI_TimeAnimationDlg::closeEvent(QCloseEvent* theEvent) {
+void VisuGUI_TimeAnimationDlg::closeEvent (QCloseEvent* theEvent)
+{
myAnimator->stopAnimation();
if (myAnimator->running() && (! myAnimator->finished())) {
isClosing = true;
}
}
-
//************************************************************************
-void VisuGUI_TimeAnimationDlg::onFrameChanged(int index) {
+void VisuGUI_TimeAnimationDlg::onWindowChanged (int index)
+{
if (myAnimator->isRunning()) return;
myAnimator->gotoFrame(index);
}
-
//************************************************************************
-void VisuGUI_TimeAnimationDlg::onSpeedChange(double theSpeed) {
+void VisuGUI_TimeAnimationDlg::onSpeedChange (double theSpeed)
+{
myAnimator->setSpeed((int)theSpeed);
}
-
//************************************************************************
-void VisuGUI_TimeAnimationDlg::stopAnimation() {
+void VisuGUI_TimeAnimationDlg::stopAnimation()
+{
myAnimator->stopAnimation();
myPlayBtn->setOn(false);
myPlayBtn->setIconSet(MYplayPixmap);
}
//************************************************************************
-void VisuGUI_TimeAnimationDlg::onExecution(long theNewFrame, double theTime) {
+void VisuGUI_TimeAnimationDlg::onExecution (long theNewFrame, double theTime)
+{
myTimeLbl->setText(QString("%1").arg(theTime));
mySlider->setValue(theNewFrame);
}
-
//************************************************************************
-void VisuGUI_TimeAnimationDlg::onSetupDlg() {
+void VisuGUI_TimeAnimationDlg::onSetupDlg()
+{
+ if (myAnimator->getNbFrames() > 0) myAnimator->firstFrame();
SetupDlg* aDlg = new SetupDlg(this, myAnimator);
aDlg->exec();
myPlayFrame->setEnabled(false);
}
//************************************************************************
-void VisuGUI_TimeAnimationDlg::onBrowse() {
- myPathEdit->setText(QAD_FileDlg::getExistingDirectory(this, "/","Select path"));
+void VisuGUI_TimeAnimationDlg::onBrowse()
+{
+ QString aPath = SUIT_FileDlg::getExistingDirectory(this, "/","Select path");
+ if (!aPath.isEmpty())
+ myPathEdit->setText(aPath);
}
-
//************************************************************************
-void VisuGUI_TimeAnimationDlg::onStop() {
+void VisuGUI_TimeAnimationDlg::onStop()
+{
if (isClosing) {
QDialog::closeEvent(myEvent);
} else {