source: subversion/applications/editors/merkaartor/LayerWidget.h @ 13989

Last change on this file since 13989 was 13501, checked in by Chris Browet, 11 years ago

ADD : Include build of translations during make
ADD : Use a builtin shapefile of the world as a background
ADD : Support for ESRI shapefile import (and, potentially, every GDAL supported file formats) via the GDAL library

File size: 3.8 KB
Line 
1#ifndef MERKATOR_LAYERWIDGET_H_
2#define MERKATOR_LAYERWIDGET_H_
3
4#include "Map/MapLayer.h"
5
6#include <QActionGroup>
7#include <QAbstractButton>
8
9class MainWindow;
10class MapLayer;
11
12class LayerWidget : public QAbstractButton
13{
14        Q_OBJECT
15
16        public:
17                LayerWidget(MapLayer* aLayer, QWidget* aParent = 0);
18                virtual ~LayerWidget();
19
20                virtual QSize sizeHint () const;
21                virtual QSize minimumSizeHint () const;
22
23                virtual void paintEvent(QPaintEvent* anEvent);
24                virtual void mouseReleaseEvent(QMouseEvent* anEvent);
25
26                virtual MapLayer* getMapLayer();
27                virtual void setLayerVisible(bool b);
28                virtual void setLayerReadonly(bool b);
29                virtual void initActions();
30
31                QMenu* getAssociatedMenu();
32
33        protected:
34                virtual void contextMenuEvent(QContextMenuEvent* anEvent);
35
36                virtual void checkStateSet();
37                virtual void nextCheckState();
38
39                MapLayer* theLayer;
40                QPixmap visibleIcon;
41                QPixmap hiddenIcon;
42                QBrush backColor;
43                QMenu* ctxMenu;
44                QAction* closeAction;
45                QAction* actZoom;
46                QAction* actVisible;
47                QAction* actReadonly;
48                QMenu* associatedMenu;
49
50        signals:
51                void layerSelected(LayerWidget *);
52                void layerChanged(LayerWidget *, bool adjustViewport);
53                void layerClosed(MapLayer *);
54                void layerCleared(MapLayer *);
55                void layerZoom(MapLayer *);
56
57        protected slots:
58                void setOpacity(QAction*);
59                void zoomLayer(bool);
60                void visibleLayer(bool);
61                void readonlyLayer(bool);
62                void close();
63                void clear();
64                void associatedAboutToShow();
65};
66
67class DrawingLayerWidget : public LayerWidget
68{
69        Q_OBJECT
70
71        public:
72                DrawingLayerWidget(DrawingMapLayer* aLayer, QWidget* aParent = 0);
73                virtual ~DrawingLayerWidget() {};
74
75        public:
76                virtual void initActions();
77
78        private:
79                //DrawingMapLayer* theLayer;
80};
81
82class TrackLayerWidget : public LayerWidget
83{
84        Q_OBJECT
85
86        public:
87                TrackLayerWidget(TrackMapLayer* aLayer, QWidget* aParent = 0);
88                virtual ~TrackLayerWidget();
89
90        public:
91                virtual void initActions();
92
93        private slots:
94                void extractLayer(bool);
95};
96
97class ImageLayerWidget : public LayerWidget
98{
99        Q_OBJECT
100
101        public:
102                ImageLayerWidget(ImageMapLayer* aLayer, QWidget* aParent = 0);
103                virtual ~ImageLayerWidget();
104
105        public:
106                virtual void initActions();
107
108        private:
109                //ImageMapLayer* theLayer;
110
111//              QActionGroup* actgrAdapter;
112//              QActionGroup* actgrWms;
113//              QActionGroup* actgrTms;
114
115#ifdef USE_GDAL
116                QAction* actShape;
117#endif
118#ifdef YAHOO
119                QAction* actLegalYahoo;
120#endif
121#ifdef YAHOO_ILLEGAL
122                QAction* actYahoo;
123#endif
124#ifdef GOOGLE_ILLEGAL
125                QAction* actGoogle;
126#endif
127#ifdef MSLIVEMAP_ILLEGAL
128                QAction* actVirtEarth;
129#endif
130                QAction* actNone;
131//              QAction* actOSM;
132                QMenu* wmsMenu;
133                QMenu* tmsMenu;
134
135        private slots:
136                void setWms(QAction*);
137                void setTms(QAction*);
138#ifdef USE_GDAL
139                void setShape(bool);
140#endif
141#ifdef YAHOO
142                void setLegalYahoo(bool);
143#endif
144#ifdef YAHOO_ILLEGAL
145                void setYahoo(bool);
146#endif
147#ifdef GOOGLE_ILLEGAL
148                void setGoogle(bool);
149#endif
150#ifdef MSLIVEMAP_ILLEGAL
151                void setMsVirtualEarth(bool);
152#endif
153//              void setOSM(bool);
154                void setNone(bool);
155};
156
157class DirtyLayerWidget : public LayerWidget
158{
159        Q_OBJECT
160
161        public:
162                DirtyLayerWidget(DirtyMapLayer* aLayer, QWidget* aParent = 0);
163                virtual ~DirtyLayerWidget() {};
164
165        public:
166                virtual void initActions();
167};
168
169class UploadedLayerWidget : public LayerWidget
170{
171        Q_OBJECT
172
173        public:
174                UploadedLayerWidget(UploadedMapLayer* aLayer, QWidget* aParent = 0);
175                virtual ~UploadedLayerWidget() {};
176
177        public:
178                virtual void initActions();
179};
180
181class ExtractedLayerWidget : public LayerWidget
182{
183        Q_OBJECT
184
185        public:
186                ExtractedLayerWidget(ExtractedMapLayer* aLayer, QWidget* aParent = 0);
187                virtual ~ExtractedLayerWidget() {};
188
189        public:
190                virtual void initActions();
191};
192
193class OsbLayerWidget : public LayerWidget
194{
195        Q_OBJECT
196
197        public:
198                OsbLayerWidget(OsbMapLayer* aLayer, QWidget* aParent = 0);
199                virtual ~OsbLayerWidget() {};
200
201        public:
202                virtual void initActions();
203};
204
205
206#endif
207
208
Note: See TracBrowser for help on using the repository browser.