Skip to content

Commit 01b1171

Browse files
author
timlinux
committed
1) svg related
Removed deprecated references to qgssvgcache Some additional small changes to src/core/qgsmarkercatalogue to support svg from directly in the catalog Added static method too src/core/qgsmarkercatalogue to retrun a pixmap of svg given a filename and a scale factor 2) Vector props Removed unimplemented collision detection option on vetor label properties dialog and signal slot setup for that option in lable subclass git-svn-id: http://svn.osgeo.org/qgis/trunk@5140 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 5ac7396 commit 01b1171

12 files changed

+60
-48
lines changed

src/core/qgsmarkercatalogue.cpp

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@
2626
#include <QPolygon>
2727
#include <QDir>
2828
#include <QPicture>
29+
#include <QSvgRenderer>
2930

3031
#include "qgsapplication.h"
31-
#include "qgssvgcache.h"
3232
#include "qgsmarkercatalogue.h"
3333

3434
QgsMarkerCatalogue *QgsMarkerCatalogue::mMarkerCatalogue = 0;
@@ -122,11 +122,42 @@ QPixmap QgsMarkerCatalogue::marker ( QString fullName, int size, QPen pen, QBrus
122122
return QPixmap(); // empty
123123
}
124124

125-
QPixmap QgsMarkerCatalogue::svgMarker ( QString name, int s)
125+
QPixmap QgsMarkerCatalogue::svgMarker ( QString filename, int scaleFactor)
126126
{
127-
QPixmap pixmap = QgsSVGCache::instance().getPixmap(name,s);
127+
QSvgRenderer mySVG;
128+
mySVG.load(filename);
129+
130+
// TODO Change this logic so width is scaleFactor and height is same
131+
// proportion of scale factor as in oritignal SVG TS XXX
132+
if (scaleFactor < 1) scaleFactor=1;
133+
134+
//QPixmap myPixmap = QPixmap(width,height);
135+
QPixmap myPixmap = QPixmap(scaleFactor,scaleFactor);
136+
137+
// The following is window-system-conditional since (at least)
138+
// the combination of Qt 4.1.0 and RealVNC's Xvnc 4.1
139+
// will result in the pixmap becoming invisible if it is filled
140+
// with a non-opaque colour.
141+
// This is probably because Xvnc 4.1 doesn't have the RENDER
142+
// extension compiled into it.
143+
#if defined(Q_WS_X11)
144+
// Do a runtime test to see if the X RENDER extension is available
145+
if ( myPixmap.x11PictureHandle() )
146+
{
147+
#endif
148+
myPixmap.fill(QColor(255,255,255,0)); // transparent
149+
#if defined(Q_WS_X11)
150+
}
151+
else
152+
{
153+
myPixmap.fill(QColor(255,255,255)); // opaque
154+
}
155+
#endif
156+
QPainter myPainter(&myPixmap);
157+
myPainter.setRenderHint(QPainter::Antialiasing);
158+
mySVG.render(&myPainter);
128159

129-
return pixmap;
160+
return myPixmap;
130161
}
131162

132163
QPicture QgsMarkerCatalogue::hardMarker ( QString name, int s, QPen pen, QBrush brush, bool qtBug )

src/core/qgsmarkercatalogue.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ class QgsMarkerCatalogue{
4343
*/
4444
QPixmap marker ( QString fullName, int size, QPen pen, QBrush brush, bool qtBug = true );
4545

46+
/* Returns a pixmap given a filename of a svg marker */
47+
static QPixmap svgMarker ( QString name, int size );
4648
private:
4749

4850
/**Constructor*/
@@ -56,8 +58,6 @@ class QgsMarkerCatalogue{
5658
/** Hard coded */
5759
QPicture hardMarker ( QString name, int size, QPen pen, QBrush brush, bool qtBug = true );
5860

59-
/** Hard coded */
60-
QPixmap svgMarker ( QString name, int size );
6161
};
6262

6363
#endif // QGSMARKERCATALOGUE_H

src/core/qgssymbol.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121

2222
#include "qgssymbol.h"
2323
#include "qgssymbologyutils.h"
24-
#include "qgssvgcache.h"
2524
#include "qgsmarkercatalogue.h"
2625

2726
#include <QPainter>

src/gui/qgsgraduatedsymbolrenderer.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
#include "qgsgraduatedsymbolrenderer.h"
2222
#include "qgslegendsymbologyitem.h"
2323
#include "qgssymbologyutils.h"
24-
#include "qgssvgcache.h"
2524
#include <QDomNode>
2625
#include <QDomElement>
2726
#include <QPixmap>

src/gui/qgslabeldialog.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,6 @@ QgsLabelDialog::QgsLabelDialog ( QgsLabel *label, QWidget *parent )
6464
this, SLOT(changeFontColor()) );
6565
connect( chkUseBuffer, SIGNAL(toggled(bool)),
6666
this, SLOT(chkUseBuffer_toggled(bool)) );
67-
connect( cbxUseCollisionDetection, SIGNAL(toggled(bool)),
68-
this, SLOT(cbxUseCollisionDetection_toggled(bool)) );
6967
}
7068

7169

src/gui/qgsmarkerdialog.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@
1818

1919
#include "qgsmarkerdialog.h"
2020
#include "qgsapplication.h"
21-
#include "qgssvgcache.h"
2221

2322
#include <QDir>
2423
#include <QFileDialog>
2524
#include <Q3IconView>
2625
#include <QPixmap>
2726

2827
#include "qgsconfig.h"
28+
#include <qgsmarkercatalogue.h>
2929

3030
QgsMarkerDialog::QgsMarkerDialog(QString startdir):
3131
//paramters removed by Tim during qt4 ui port - FIXME!!!
@@ -88,7 +88,7 @@ void QgsMarkerDialog::visualizeMarkers(QString directory)
8888
qWarning((*it).toLocal8Bit().data());
8989

9090
//render the SVG file to a pixmap and put it into mIconView
91-
QPixmap pix = QgsSVGCache::instance().getPixmap(mCurrentDir + "/" +
91+
QPixmap pix = QgsMarkerCatalogue::svgMarker(mCurrentDir + "/" +
9292
(*it), 1);
9393
Q3IconViewItem* ivi=new Q3IconViewItem(mIconView,*it,pix);
9494

src/gui/qgsoptions.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
#include "qgis.h"
2222
#include "qgisapp.h"
2323
#include "qgslayerprojectionselector.h"
24-
#include "qgssvgcache.h"
2524
#include "qgsspatialrefsys.h"
2625
#include <QFileDialog>
2726
#include <QSettings>

src/gui/qgssinglesymboldialog.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
#include "qgssinglesymboldialog.h"
2020
#include "qgsmarkercatalogue.h"
2121
#include "qgssinglesymbolrenderer.h"
22-
#include "qgssvgcache.h"
2322
#include "qgssymbol.h"
2423
#include "qgssymbologyutils.h"
2524
#include "qgsvectorlayer.h"

src/gui/qgssinglesymbolrenderer.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
#include "qgsvectorlayer.h"
2323
#include "qgslegenditem.h"
2424
#include "qgssymbologyutils.h"
25-
#include "qgssvgcache.h"
2625

2726
#include <QString>
2827
#include <QDomNode>

src/gui/qgsuniquevaluerenderer.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
#include "qgsvectorlayer.h"
2222
#include "qgssymbol.h"
2323
#include "qgssymbologyutils.h"
24-
#include "qgssvgcache.h"
2524
#include <QDomNode>
2625
#include <QPainter>
2726
#include <QPixmap>

src/gui/qgsvectorlayer.cpp

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -50,40 +50,39 @@
5050
#include <QString>
5151
#include <QSettings>
5252

53-
#include "qgsapplication.h"
53+
#include "qgis.h" //for globals
5454
#include "qgisapp.h"
55-
#include "qgsproject.h"
56-
#include "qgsrect.h"
57-
#include "qgspoint.h"
58-
#include "qgsmaptopixel.h"
59-
#include "qgsvectorlayer.h"
55+
#include "qgsapplication.h"
56+
#include "qgsattributedialog.h"
6057
#include "qgsattributetable.h"
58+
#include "qgsattributetabledisplay.h"
59+
#include "qgscontinuouscolorrenderer.h"
60+
#include "qgscoordinatetransform.h"
61+
#include "qgsdistancearea.h"
6162
#include "qgsfeature.h"
6263
#include "qgsfield.h"
64+
#include "qgsgraduatedsymbolrenderer.h"
65+
#include "qgslabel.h"
66+
#include "qgslabelattributes.h"
6367
#include "qgslegend.h"
64-
#include "qgsvectorlayerproperties.h"
68+
#include "qgsmaplayerregistry.h"
69+
#include "qgsmaptopixel.h"
70+
#include "qgspoint.h"
71+
#include "qgsproject.h"
72+
#include "qgsproviderregistry.h"
73+
#include "qgsrect.h"
74+
#include "qgsrect.h"
6575
#include "qgsrenderer.h"
76+
#include "qgsrenderitem.h"
6677
#include "qgssinglesymbolrenderer.h"
67-
#include "qgsgraduatedsymbolrenderer.h"
68-
#include "qgscontinuouscolorrenderer.h"
78+
#include "qgsspatialrefsys.h"
6979
#include "qgsuniquevaluerenderer.h"
70-
#include "qgsrenderitem.h"
71-
#include "qgsproviderregistry.h"
72-
#include "qgsrect.h"
73-
#include "qgslabelattributes.h"
74-
#include "qgslabel.h"
75-
#include "qgscoordinatetransform.h"
76-
#include "qgsmaplayerregistry.h"
77-
#include "qgsattributedialog.h"
78-
#include "qgsattributetabledisplay.h"
79-
#include "qgsdistancearea.h"
8080
#include "qgsvectordataprovider.h"
81+
#include "qgsvectorlayer.h"
82+
#include "qgsvectorlayerproperties.h"
8183
#ifdef Q_WS_X11
8284
#include "qgsclipper.h"
8385
#endif
84-
#include "qgssvgcache.h"
85-
#include "qgsspatialrefsys.h"
86-
#include "qgis.h" //for globals
8786
//#include "wkbheader.h"
8887

8988
#ifdef TESTPROVIDERLIB

src/ui/qgslabeldialogbase.ui

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -295,16 +295,6 @@
295295
</layout>
296296
</widget>
297297
</item>
298-
<item row="1" column="0" colspan="3" >
299-
<widget class="QCheckBox" name="cbxUseCollisionDetection" >
300-
<property name="enabled" >
301-
<bool>false</bool>
302-
</property>
303-
<property name="text" >
304-
<string>Use best judgement when labels collide</string>
305-
</property>
306-
</widget>
307-
</item>
308298
<item row="0" column="2" >
309299
<widget class="QSpinBox" name="spinAngle" >
310300
<property name="suffix" >

0 commit comments

Comments
 (0)