Skip to content

Commit 466e864

Browse files
author
mhugent
committed
[FEATURE]: text and form annotation tools are now in gui and app
git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@13189 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 93d8bdc commit 466e864

33 files changed

+2814
-5
lines changed

images/images.qrc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@
108108
<file>themes/default/mActionAddSpatiaLiteLayer.png</file>
109109
<file>themes/default/mActionAddVertex.png</file>
110110
<file>themes/default/mActionAddWmsLayer.png</file>
111+
<file>themes/default/mActionAnnotation.png</file>
111112
<file>themes/default/mActionAlignBottom.png</file>
112113
<file>themes/default/mActionAlignHCenter.png</file>
113114
<file>themes/default/mActionAlignLeft.png</file>
@@ -146,6 +147,7 @@
146147
<file>themes/default/mActionFileSaveAs.png</file>
147148
<file>themes/default/mActionFileSmall.png</file>
148149
<file>themes/default/mActionFolder.png</file>
150+
<file>themes/default/mActionFormAnnotation.png</file>
149151
<file>themes/default/mActionFromSelectedFeature.png</file>
150152
<file>themes/default/mActionGroupItems.png</file>
151153
<file>themes/default/mActionHelpAbout.png</file>
@@ -198,6 +200,7 @@
198200
<file>themes/default/mActionShowPluginManager.png</file>
199201
<file>themes/default/mActionSimplify.png</file>
200202
<file>themes/default/mActionSplitFeatures.png</file>
203+
<file>themes/default/mActionTextAnnotation.png</file>
201204
<file>themes/default/mActionToggleEditing.png</file>
202205
<file>themes/default/mActionUndo.png</file>
203206
<file>themes/default/mActionUngroupItems.png</file>
1 KB
Loading
844 Bytes
Loading
730 Bytes
Loading

python/gui/gui.sip

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,13 @@
77

88
%Import core/core.sip
99

10+
%Include qgsannotationitem.sip
1011
%Include qgscolorbutton.sip
1112
%Include qgslegendinterface.sip
1213
%Include qgisinterface.sip
1314
%Include qgscomposerview.sip
1415
%Include qgsencodingfiledialog.sip
16+
%Include qgsformannotationitem.sip
1517
%Include qgsgenericprojectionselector.sip
1618
%Include qgsmapcanvas.sip
1719
%Include qgsmapcanvasitem.sip
@@ -28,6 +30,7 @@
2830
%Include qgsprojectionselector.sip
2931
%Include qgsquickprint.sip
3032
%Include qgsrubberband.sip
33+
%Include qgstextannotationitem.sip
3134
%Include qgsvertexmarker.sip
3235

3336
%Include symbology-ng-gui.sip

python/gui/qgsannotationitem.sip

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
/**An annotation item can be either placed either on screen corrdinates or on map coordinates.
2+
It may reference a feature and displays that associatiation with a balloon like appearance*/
3+
class QgsAnnotationItem: QgsMapCanvasItem
4+
{
5+
%TypeHeaderCode
6+
#include <qgsannotationitem.h>
7+
%End
8+
9+
public:
10+
enum MouseMoveAction
11+
{
12+
NoAction,
13+
MoveMapPosition,
14+
MoveFramePosition,
15+
ResizeFrameUp,
16+
ResizeFrameDown,
17+
ResizeFrameLeft,
18+
ResizeFrameRight,
19+
ResizeFrameLeftUp,
20+
ResizeFrameRightUp,
21+
ResizeFrameLeftDown,
22+
ResizeFrameRightDown
23+
};
24+
25+
QgsAnnotationItem( QgsMapCanvas* mapCanvas );
26+
virtual ~QgsAnnotationItem();
27+
28+
/**Creates an editor widget (caller takes ownership)*/
29+
virtual QDialog* createEditor() = 0;
30+
31+
void updatePosition();
32+
33+
QRectF boundingRect() const;
34+
35+
virtual QSizeF minimumFrameSize() const;
36+
37+
/**Returns the mouse move behaviour for a given position
38+
@param pos the position in scene coordinates*/
39+
QgsAnnotationItem::MouseMoveAction moveActionForPosition( const QPointF& pos) const;
40+
/**Returns suitable cursor shape for mouse move action*/
41+
Qt::CursorShape cursorShapeForAction( MouseMoveAction moveAction ) const;
42+
43+
//setters and getters
44+
void setMapPositionFixed( bool fixed );
45+
bool mapPositionFixed() const;
46+
47+
virtual void setMapPosition( const QgsPoint& pos );
48+
QgsPoint mapPosition() const;
49+
50+
void setFrameSize( const QSizeF& size );
51+
QSizeF frameSize() const;
52+
53+
void setOffsetFromReferencePoint( const QPointF& offset );
54+
QPointF offsetFromReferencePoint() const;
55+
56+
/**Set symbol that is drawn on map position. Takes ownership*/
57+
void setMarkerSymbol( QgsMarkerSymbolV2* symbol );
58+
const QgsMarkerSymbolV2* markerSymbol() const;
59+
60+
void setFrameBorderWidth( double w );
61+
double frameBorderWidth() const;
62+
63+
void setFrameColor( const QColor& c );
64+
QColor frameColor() const;
65+
66+
void setFrameBackgroundColor( const QColor& c );
67+
QColor frameBackgroundColor() const;
68+
69+
virtual void writeXML( QDomDocument& doc ) const = 0;
70+
virtual void readXML( const QDomDocument& doc, const QDomElement& itemElem ) = 0;
71+
72+
void _writeXML( QDomDocument& doc, QDomElement& itemElem ) const;
73+
void _readXML( const QDomDocument& doc, const QDomElement& annotationElem );
74+
};
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
class QgsFormAnnotationItem: QObject, QgsAnnotationItem
2+
{
3+
%TypeHeaderCode
4+
#include <qgsformannotationitem.h>
5+
%End
6+
7+
public:
8+
QgsFormAnnotationItem( QgsMapCanvas* canvas, QgsVectorLayer* vlayer = 0, bool hasFeature = false, int feature = 0);
9+
~QgsFormAnnotationItem();
10+
11+
void paint( QPainter * painter );
12+
13+
//! paint function called by map canvas
14+
void paint( QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0 );
15+
16+
/**Create a configuration dialog*/
17+
QDialog* createEditor();
18+
19+
QSizeF minimumFrameSize() const;
20+
/**Returns the optimal frame size*/
21+
QSizeF preferredFrameSize() const;
22+
23+
/**Reimplemented from QgsAnnotationItem*/
24+
void setMapPosition( const QgsPoint& pos );
25+
26+
void setDesignerForm( const QString& uiFile );
27+
QString designerForm() const;
28+
29+
void writeXML( QDomDocument& doc ) const;
30+
void readXML( const QDomDocument& doc, const QDomElement& itemElem );
31+
};
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
class QgsTextAnnotationItem: QgsAnnotationItem
2+
{
3+
%TypeHeaderCode
4+
#include <qgstextannotationitem.h>
5+
%End
6+
public:
7+
QgsTextAnnotationItem( QgsMapCanvas* canvas );
8+
~QgsTextAnnotationItem();
9+
10+
QDialog* createEditor();
11+
12+
/**Returns document (caller takes ownership)*/
13+
QTextDocument* document() const;
14+
/**Sets document (does not take ownership)*/
15+
void setDocument( const QTextDocument* doc );
16+
17+
void writeXML( QDomDocument& doc ) const;
18+
void readXML( const QDomDocument& doc, const QDomElement& itemElem );
19+
20+
void paint( QPainter* painter );
21+
};

src/app/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,13 @@ SET(QGIS_APP_SRCS
3131
qgsmaptooladdvertex.cpp
3232
qgsmaptooladdisland.cpp
3333
qgsmaptooladdring.cpp
34+
qgsmaptoolannotation.cpp
3435
qgsmaptoolcapture.cpp
3536
qgsmaptooldeletering.cpp
3637
qgsmaptooldeletepart.cpp
3738
qgsmaptooldeletevertex.cpp
3839
qgsmaptooledit.cpp
40+
qgsmaptoolformannotation.cpp
3941
qgsmaptoolidentify.cpp
4042
qgsmaptoolmeasureangle.cpp
4143
qgsmaptoolmovefeature.cpp
@@ -46,6 +48,7 @@ SET(QGIS_APP_SRCS
4648
qgsmaptoolselect.cpp
4749
qgsmaptoolsimplify.cpp
4850
qgsmaptoolsplitfeatures.cpp
51+
qgsmaptooltextannotation.cpp
4952
qgsmaptoolvertexedit.cpp
5053
qgsmeasuredialog.cpp
5154
qgsmeasuretool.cpp

0 commit comments

Comments
 (0)