ctkQtTestingMainWindow.cpp 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. // QT includes
  2. #include <QDebug>
  3. #include <QFileDialog>
  4. #include <QMainWindow>
  5. #include <QTextStream>
  6. #include <QXmlStreamAttributes>
  7. #include <QXmlStreamReader>
  8. #include <QXmlStreamWriter>
  9. // QtTesting includes
  10. #include "pqTestUtility.h"
  11. #include "pqEventObserver.h"
  12. #include "pqEventSource.h"
  13. // VTK includes
  14. #include <vtkActor.h>
  15. #include <vtkCubeSource.h>
  16. #include <vtkLineSource.h>
  17. #include <vtkPlaneWidget.h>
  18. #include <vtkPolyDataMapper.h>
  19. #include <vtkProperty.h>
  20. #include <vtkRenderer.h>
  21. #include <vtkSmartPointer.h>
  22. #include <vtkSphereSource.h>
  23. #include <vtkRenderWindow.h>
  24. #include <vtkRenderWindowInteractor.h>
  25. #include <vtkSplineWidget2.h>
  26. #include <vtkBoxWidget.h>
  27. // CTK includes
  28. #include "ctkQtTestingMainWindow.h"
  29. #include "ctkXMLEventObserver.h"
  30. #include "ctkXMLEventSource.h"
  31. //-----------------------------------------------------------------------------
  32. ctkQtTestingMainWindow::ctkQtTestingMainWindow()
  33. {
  34. this->Ui.setupUi(this);
  35. QObject::connect(Ui.RecordButton, SIGNAL(clicked(bool)), this, SLOT(record()));
  36. QObject::connect(Ui.PlayBackButton, SIGNAL(clicked(bool)), this, SLOT(play()));
  37. this->TestUtility = new ctkQtTestingUtility(this);
  38. this->TestUtility->addEventObserver("xml", new ctkXMLEventObserver(this));
  39. this->TestUtility->addEventSource("xml", new ctkXMLEventSource(this));
  40. Ui.renderView->setBackgroundColor(QColor(Qt::gray));
  41. Ui.renderView->setBackgroundColor2(QColor(Qt::darkBlue));
  42. Ui.renderView->setGradientBackground(true);
  43. Ui.renderView->setCornerAnnotationText("ctk Qt test");
  44. Ui.renderView->show();
  45. // Create a cube.
  46. vtkSmartPointer<vtkCubeSource> cubeSource =
  47. vtkSmartPointer<vtkCubeSource>::New();
  48. // Create a mapper and actor.
  49. vtkSmartPointer<vtkPolyDataMapper> mapper =
  50. vtkSmartPointer<vtkPolyDataMapper>::New();
  51. mapper->SetInputConnection(cubeSource->GetOutputPort());
  52. vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();
  53. actor->SetMapper(mapper);
  54. // Add the actors to the scene
  55. Ui.renderView->renderer()->AddActor(actor);
  56. // vtkSmartPointer<vtkBoxWidget> boxWidget =
  57. // vtkSmartPointer<vtkBoxWidget>::New();
  58. // boxWidget->SetInteractor(Ui.renderView->interactor());
  59. // boxWidget->SetPlaceFactor(1.0);
  60. // boxWidget->PlaceWidget();
  61. // boxWidget->On();
  62. // Render and interact
  63. // Ui.renderView->renderWindow()->Render();
  64. // Ui.renderView->interactor()->Start();
  65. Ui.renderView->resetCamera();
  66. }
  67. //-----------------------------------------------------------------------------
  68. ctkQtTestingMainWindow::~ctkQtTestingMainWindow()
  69. {
  70. if(TestUtility)
  71. {
  72. delete this->TestUtility;
  73. }
  74. }
  75. //-----------------------------------------------------------------------------
  76. void ctkQtTestingMainWindow::record()
  77. {
  78. qDebug() << "Start Record";
  79. QString filename = QFileDialog::getSaveFileName (this, "Test File Name",
  80. QString(), "XML Files (*.xml)");
  81. if (!filename.isEmpty())
  82. {
  83. this->TestUtility->recordTests(filename);
  84. }
  85. }
  86. //-----------------------------------------------------------------------------
  87. void ctkQtTestingMainWindow::play()
  88. {
  89. qDebug() << "Start Playback";
  90. QString filename = QFileDialog::getOpenFileName (this, "Test File Name",
  91. QString(), "XML Files (*.xml)");
  92. if (!filename.isEmpty())
  93. {
  94. this->TestUtility->playTests(filename);
  95. }
  96. }