Procházet zdrojové kódy

COMP: Fix deprecated use of "QPixmap::grabWidget" in Qt5

Jean-Christophe Fillion-Robin před 8 roky
rodič
revize
06b943125d

+ 3 - 2
Libs/Visualization/VTK/Widgets/Testing/Cpp/ctkVTKMagnifyViewTest2.cpp

@@ -31,6 +31,7 @@
 #include "ctkVTKMagnifyView.h"
 #include "ctkCommandLineParser.h"
 #include "ctkVTKSliceView.h"
+#include "ctkWidgetsUtils.h"
 
 // VTK includes
 #include <vtkImageReader2Factory.h>
@@ -48,7 +49,7 @@
 bool imageCompare(ctkVTKMagnifyView * magnify, QString baselineDirectory,
                   QString baselineFilename)
   {
-  QImage output = QPixmap::grabWidget(magnify).toImage();
+  QImage output = ctk::grabWidget(magnify);
   QImage baseline(baselineDirectory + "/" + baselineFilename);
   return output == baseline;
   }
@@ -58,7 +59,7 @@ bool imageCompare(ctkVTKMagnifyView * magnify, QString baselineDirectory,
 void imageSave(ctkVTKMagnifyView * magnify, QString baselineDirectory,
                QString baselineFilename)
   {
-  QImage output = QPixmap::grabWidget(magnify).toImage();
+  QImage output = ctk::grabWidget(magnify);
   output.save(baselineDirectory + "/" + baselineFilename);
   }
 

+ 4 - 3
Libs/Visualization/VTK/Widgets/Testing/Cpp/ctkVTKRenderViewEventTranslatorPlayerTest1.cpp

@@ -47,6 +47,7 @@
 #include "ctkVTKRenderViewEventPlayer.h"
 #include "ctkVTKRenderViewEventTranslator.h"
 #include "ctkEventTranslatorPlayerWidget.h"
+#include "ctkWidgetsUtils.h"
 
 #include <pqTestUtility.h>
 #include <pqEventTranslator.h>
@@ -71,9 +72,9 @@ void checkFinalWidgetState(void* data)
   {
   ctkVTKRenderView* widget = reinterpret_cast<ctkVTKRenderView*>(data);
 
-  QPixmap actualImage = QPixmap::grabWidget(widget, widget->rect());
+  QImage actualImage = ctk::grabWidget(widget, widget->rect());
   actualImage.save(xmlDirectory + "ctkVTKRenderViewEventTranslatorPlayerTest1ScreenshotTest.png");
-  CTKCOMPARE(actualImage.toImage(),
+  CTKCOMPARE(actualImage,
              QImage(xmlDirectory + "ctkVTKRenderViewEventTranslatorPlayerTest1Screenshot.png"));
   }
 //-----------------------------------------------------------------------------
@@ -82,7 +83,7 @@ void screenshot(void* data)
   if (save)
     {
     ctkVTKRenderView* widget = reinterpret_cast<ctkVTKRenderView*>(data);
-    QPixmap expectedImage = QPixmap::grabWidget(widget, widget->rect());
+    QImage expectedImage = ctk::grabWidget(widget, widget->rect());
     expectedImage.save(xmlDirectory + "ctkVTKRenderViewEventTranslatorPlayerTest1Screenshot.png");
     save = false;
     }

+ 1 - 1
Libs/Visualization/VTK/Widgets/ctkVTKWidgetsUtils.h

@@ -38,7 +38,7 @@ namespace ctk {
 /// \ingroup Visualization_VTK_Widgets
 /// Grab the contents of a QWidget and all its children.
 /// Handle correctly the case of QVTKWidget.
-/// \sa ctk::grabWidget QWidget::grabWidget
+/// \sa ctk::grabWidget QWidget::grab
 QImage CTK_VISUALIZATION_VTK_WIDGETS_EXPORT grabVTKWidget(QWidget* widget, QRect rectangle = QRect());
 
 ///

+ 3 - 2
Libs/Widgets/Testing/Cpp/ctkCrosshairLabelTest2.cpp

@@ -29,6 +29,7 @@
 #include "ctkCrosshairLabel.h"
 #include "ctkCommandLineParser.h"
 #include "ctkWidgetsTestingUtilities.h"
+#include "ctkWidgetsUtils.h"
 
 // STD includes
 #include <cstdlib>
@@ -38,7 +39,7 @@
 bool imageCompare(ctkCrosshairLabel& crosshair, QString baselineDirectory,
                   QString baselineFilename)
 {
-  QImage output = QPixmap::grabWidget(&crosshair).toImage();
+  QImage output = ctk::grabWidget(&crosshair);
   QImage baseline(baselineDirectory + "/" + baselineFilename);
   const float percentThreshold = 1.5f;
   return ctkWidgetsTestingUtilities::CheckImagesEqual(output, baseline, percentThreshold);
@@ -49,7 +50,7 @@ bool imageCompare(ctkCrosshairLabel& crosshair, QString baselineDirectory,
 void imageSave(ctkCrosshairLabel& crosshair, QString baselineDirectory,
                QString baselineFilename)
 {
-  QImage output = QPixmap::grabWidget(&crosshair).toImage();
+  QImage output = ctk::grabWidget(&crosshair);
   output.save(baselineDirectory + "/" + baselineFilename);
 }
 

+ 3 - 1
Libs/Widgets/ctkBasePopupWidget.cpp

@@ -36,6 +36,7 @@
 
 // CTK includes
 #include "ctkBasePopupWidget_p.h"
+#include "ctkWidgetsUtils.h"
 
 // -------------------------------------------------------------------------
 QGradient* duplicateGradient(const QGradient* gradient)
@@ -238,7 +239,8 @@ void ctkBasePopupWidgetPrivate::setupPopupPixmapWidget()
     }
   else
     {
-    pixmap = QPixmap::grabWidget(q, QRect(QPoint(0,0), q->geometry().size()));
+    pixmap = QPixmap::fromImage(
+      ctk::grabWidget(q, QRect(QPoint(0,0), q->geometry().size())));
     }
   this->PopupPixmapWidget->setPixmap(pixmap);
   this->PopupPixmapWidget->setAttribute(

+ 5 - 3
Libs/Widgets/ctkScreenshotDialog.cpp

@@ -26,6 +26,7 @@
 // CTK includes
 #include "ctkScreenshotDialog.h"
 #include "ctkScreenshotDialog_p.h"
+#include "ctkWidgetsUtils.h"
 
 //-----------------------------------------------------------------------------
 // ctkScreenshotDialogPrivate methods
@@ -229,8 +230,8 @@ void ctkScreenshotDialog::enforceResolution(QSize size)
 QSize ctkScreenshotDialog::widgetSize()
 {
   Q_D(ctkScreenshotDialog);
-  QPixmap viewportPixmap = QPixmap::grabWidget(d->WidgetToGrab.data());
-  return viewportPixmap.size();
+  QImage viewportImage = ctk::grabWidget(d->WidgetToGrab.data());
+  return viewportImage.size();
 }
 
 //-----------------------------------------------------------------------------
@@ -359,7 +360,8 @@ void ctkScreenshotDialog::instantScreenshot()
     return;
     }
 
-  QPixmap viewportPixmap = QPixmap::grabWidget(d->WidgetToGrab.data());
+  QPixmap viewportPixmap = QPixmap::fromImage(
+    ctk::grabWidget(d->WidgetToGrab.data()));
 
   if (d->isWaitingForScreenshot() && d->DelaySpinBox->value() != 0)
     {

+ 4 - 0
Libs/Widgets/ctkWidgetsUtils.cpp

@@ -50,7 +50,11 @@ QImage ctk::grabWidget(QWidget* widget, QRect rectangle)
     {
     rectangle = QRect(0,0,widget->width(),widget->height());
     }
+#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0))
   QPixmap widgetPixmap = QPixmap::grabWidget(widget, rectangle);
+#else
+  QPixmap widgetPixmap = widget->grab(rectangle);
+#endif
   QImage widgetImage = widgetPixmap.toImage();
   QPainter painter;
   painter.begin(&widgetImage);

+ 1 - 1
Libs/Widgets/ctkWidgetsUtils.h

@@ -39,7 +39,7 @@ QString CTK_WIDGETS_EXPORT base64HTMLImageTagSrc(const QImage& image);
 /// \ingroup Widgets
 /// Grab the contents of a QWidget and all its children.
 /// Handle correctly the case of QGLWidgets.
-/// \sa QWidget::grabWidget
+/// \sa QWidget::grab
 QImage CTK_WIDGETS_EXPORT grabWidget(QWidget* widget, QRect rectangle = QRect());
 
 ///