@@ -17,25 +17,17 @@ class TestWidget : public QLabel
1717public:
1818 TestWidget (QgsMapLayer* layer)
1919 {
20- // p = QPixmap(200,200);
21- // p.fill(Qt::red);
22-
23- i = QImage (size (), QImage::Format_ARGB32_Premultiplied);
24- i.fill (Qt::gray);
25-
2620 job = 0 ;
2721
2822 // init renderer
2923 ms.setLayers (QStringList (layer->id ()));
3024 ms.setExtent (layer->extent ());
31- ms.setOutputSize (i. size ());
25+ ms.setOutputSize (size ());
3226 ms.setOutputDpi (120 );
3327
3428 if (ms.hasValidSettings ())
3529 qDebug (" map renderer settings valid" );
3630
37- setPixmap (QPixmap::fromImage (i));
38-
3931 connect (&timer, SIGNAL (timeout ()), SLOT (onMapUpdateTimeout ()));
4032 timer.setInterval (100 );
4133 }
@@ -65,13 +57,11 @@ class TestWidget : public QLabel
6557 job = 0 ;
6658 }
6759
68- i.fill (Qt::gray);
69-
70- painter = new QPainter (&i);
71-
72- job = new QgsMapRendererCustomPainterJob (ms, painter);
60+ job = new QgsMapRendererSequentialJob (ms);
7361 connect (job, SIGNAL (finished ()), SLOT (f ()));
7462
63+ job->start ();
64+
7565 timer.start ();
7666 }
7767 }
@@ -81,29 +71,23 @@ protected slots:
8171 {
8272 qDebug (" finished!" );
8373
84- painter->end ();
85- delete painter;
86-
8774 timer.stop ();
8875
89- // update();
90-
91- setPixmap (QPixmap::fromImage (i));
76+ if (job)
77+ setPixmap (QPixmap::fromImage ( job->renderedImage () ));
9278 }
9379
9480 void onMapUpdateTimeout ()
9581 {
9682 qDebug (" update timer!" );
9783
98- setPixmap (QPixmap::fromImage (i));
84+ if (job)
85+ setPixmap (QPixmap::fromImage ( job->renderedImage () ));
9986 }
10087
10188protected:
102- // QPixmap p;
103- QImage i;
104- QPainter* painter;
10589 QgsMapSettings ms;
106- QgsMapRendererJob * job;
90+ QgsMapRendererQImageJob * job;
10791 QTimer timer;
10892};
10993
0 commit comments