소스 검색

Merge pull request #374 from lassoan/373-grabVTKWidget-hangs

373 - Added check to only grab visible child widgets
Steve Pieper 11 년 전
부모
커밋
e469437231
2개의 변경된 파일8개의 추가작업 그리고 0개의 파일을 삭제
  1. 4 0
      Libs/Visualization/VTK/Widgets/ctkVTKWidgetsUtils.cpp
  2. 4 0
      Libs/Widgets/ctkWidgetsUtils.cpp

+ 4 - 0
Libs/Visualization/VTK/Widgets/ctkVTKWidgetsUtils.cpp

@@ -47,6 +47,10 @@ QImage ctk::grabVTKWidget(QWidget* widget, QRect rectangle)
   painter.begin(&widgetImage);
   painter.begin(&widgetImage);
   foreach(QVTKWidget* vtkWidget, widget->findChildren<QVTKWidget*>())
   foreach(QVTKWidget* vtkWidget, widget->findChildren<QVTKWidget*>())
     {
     {
+    if (!vtkWidget->isVisible())
+    {
+      continue;
+    }
     QRect subWidgetRect = QRect(vtkWidget->mapTo(widget, QPoint(0,0)), vtkWidget->size());
     QRect subWidgetRect = QRect(vtkWidget->mapTo(widget, QPoint(0,0)), vtkWidget->size());
     if (!rectangle.intersects(subWidgetRect))
     if (!rectangle.intersects(subWidgetRect))
       {
       {

+ 4 - 0
Libs/Widgets/ctkWidgetsUtils.cpp

@@ -56,6 +56,10 @@ QImage ctk::grabWidget(QWidget* widget, QRect rectangle)
   painter.begin(&widgetImage);
   painter.begin(&widgetImage);
   foreach(QGLWidget* glWidget, widget->findChildren<QGLWidget*>())
   foreach(QGLWidget* glWidget, widget->findChildren<QGLWidget*>())
     {
     {
+    if (!glWidget->isVisible())
+    {
+      continue;
+    }
     QRect subWidgetRect = QRect(glWidget->mapTo(widget, QPoint(0,0)), glWidget->size());
     QRect subWidgetRect = QRect(glWidget->mapTo(widget, QPoint(0,0)), glWidget->size());
     if (!rectangle.intersects(subWidgetRect))
     if (!rectangle.intersects(subWidgetRect))
       {
       {