Quantum GIS API Documentation  1.7.5-Wroclaw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
qgisinterface.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgisinterface.h
3  Interface class for exposing functions in QgisApp for use by plugins
4  -------------------
5  begin : 2004-02-11
6  copyright : (C) 2004 by Gary E.Sherman
7  email : sherman at mrcc.com
8  ***************************************************************************/
9 
10 /***************************************************************************
11  * *
12  * This program is free software; you can redistribute it and/or modify *
13  * it under the terms of the GNU General Public License as published by *
14  * the Free Software Foundation; either version 2 of the License, or *
15  * (at your option) any later version. *
16  * *
17  ***************************************************************************/
18 /* $Id$ */
19 #ifndef QGISINTERFACE_H
20 #define QGISINTERFACE_H
21 
22 class QAction;
23 class QMenu;
24 class QToolBar;
25 class QDockWidget;
26 class QMainWindow;
27 class QWidget;
28 
29 class QgsComposerView;
30 class QgsMapLayer;
31 class QgsMapCanvas;
32 class QgsRasterLayer;
33 class QgsVectorLayer;
34 class QgsLegendInterface;
35 class QgsFeature;
36 
37 #include <QObject>
38 #include <QPair>
39 #include <map>
40 
41 #include <qgis.h>
42 
43 #ifdef _MSC_VER
44 # pragma warning( push )
45 # pragma warning( disable: 4996 ) // was declared deprecated
46 #endif
47 
60 class GUI_EXPORT QgisInterface : public QObject
61 {
62  Q_OBJECT
63 
64  public:
65 
67  QgisInterface();
68 
70  virtual ~QgisInterface();
71 
75  virtual QgsLegendInterface* legendInterface() = 0;
76 
77 
78  public slots: // TODO: do these functions really need to be slots?
79 
81  virtual void zoomFull() = 0;
82 
84  virtual void zoomToPrevious() = 0;
85 
87  virtual void zoomToNext() = 0;
88 
90  virtual void zoomToActiveLayer() = 0;
91 
93  virtual QgsVectorLayer* addVectorLayer( QString vectorLayerPath, QString baseName, QString providerKey ) = 0;
94 
96  virtual QgsRasterLayer* addRasterLayer( QString rasterLayerPath, QString baseName = QString() ) = 0;
97 
99  virtual QgsRasterLayer* addRasterLayer( const QString& url, const QString& layerName, const QString& providerKey, const QStringList& layers,
100  const QStringList& styles, const QString& format, const QString& crs ) = 0;
101 
103  virtual bool addProject( QString theProject ) = 0;
105  virtual void newProject( bool thePromptToSaveFlag = false ) = 0;
106 
108  virtual QgsMapLayer *activeLayer() = 0;
109 
113  virtual bool setActiveLayer( QgsMapLayer * ) = 0;
114 
116  virtual int addToolBarIcon( QAction *qAction ) = 0;
117 
119  virtual void removeToolBarIcon( QAction *qAction ) = 0;
120 
122  virtual QToolBar * addToolBar( QString name ) = 0;
123 
125  virtual QgsMapCanvas * mapCanvas() = 0;
126 
128  virtual QWidget * mainWindow() = 0;
129 
131  virtual QList<QgsComposerView*> activeComposers() = 0;
132 
134  virtual void addPluginToMenu( QString name, QAction* action ) = 0;
135 
137  virtual void removePluginMenu( QString name, QAction* action ) = 0;
138 
142  virtual void insertAddLayerAction( QAction *action ) = 0;
143 
147  virtual void removeAddLayerAction( QAction *action ) = 0;
148 
152  virtual void addPluginToDatabaseMenu( QString name, QAction* action ) = 0;
153 
157  virtual void removePluginDatabaseMenu( QString name, QAction* action ) = 0;
158 
160  virtual void addDockWidget( Qt::DockWidgetArea area, QDockWidget * dockwidget ) = 0;
161 
165  virtual void removeDockWidget( QDockWidget * dockwidget ) = 0;
166 
170 #ifndef Q_MOC_RUN
171  Q_DECL_DEPRECATED
172 #endif
173  virtual void refreshLegend( QgsMapLayer *l ) = 0;
174 
178  virtual void showLayerProperties( QgsMapLayer *l ) = 0;
179 
183  virtual void showAttributeTable( QgsVectorLayer *l ) = 0;
184 
187  virtual void addWindow( QAction *action ) = 0;
188 
191  virtual void removeWindow( QAction *action ) = 0;
192 
196  virtual bool registerMainWindowAction( QAction* action, QString defaultShortcut ) = 0;
197 
201  virtual bool unregisterMainWindowAction( QAction* action ) = 0;
202 
203  // @todo is this deprecated in favour of QgsContextHelp?
211 #ifndef Q_MOC_RUN
212  Q_DECL_DEPRECATED
213 #endif
214  virtual void openURL( QString url, bool useQgisDocDirectory = true ) = 0;
215 
216 
221  virtual QMenu *fileMenu() = 0;
223  virtual QMenu *editMenu() = 0;
224  virtual QMenu *viewMenu() = 0;
225  virtual QMenu *layerMenu() = 0;
226  virtual QMenu *settingsMenu() = 0;
227  virtual QMenu *pluginMenu() = 0;
228  virtual QMenu *firstRightStandardMenu() = 0;
229  virtual QMenu *windowMenu() = 0;
230  virtual QMenu *helpMenu() = 0;
231 
233  virtual QToolBar *fileToolBar() = 0;
234  virtual QToolBar *layerToolBar() = 0;
235  virtual QToolBar *mapNavToolToolBar() = 0;
236  virtual QToolBar *digitizeToolBar() = 0;
237  virtual QToolBar *advancedDigitizeToolBar() = 0; // added in v1.5
238  virtual QToolBar *attributesToolBar() = 0;
239  virtual QToolBar *pluginToolBar() = 0;
240  virtual QToolBar *helpToolBar() = 0;
243  virtual QToolBar *rasterToolBar() = 0;
244 
246  virtual QAction *actionNewProject() = 0;
247  virtual QAction *actionOpenProject() = 0;
248 #ifndef Q_MOC_RUN
249  Q_DECL_DEPRECATED
250 #endif
251  virtual QAction *actionFileSeparator1() = 0;
252  virtual QAction *actionSaveProject() = 0;
253  virtual QAction *actionSaveProjectAs() = 0;
254  virtual QAction *actionSaveMapAsImage() = 0;
255 #ifndef Q_MOC_RUN
256  Q_DECL_DEPRECATED
257 #endif
258  virtual QAction *actionFileSeparator2() = 0;
259  virtual QAction *actionProjectProperties() = 0;
260 #ifndef Q_MOC_RUN
261  Q_DECL_DEPRECATED
262 #endif
263  virtual QAction *actionFileSeparator3() = 0;
264  virtual QAction *actionPrintComposer() = 0;
265 #ifndef Q_MOC_RUN
266  Q_DECL_DEPRECATED
267 #endif
268  virtual QAction *actionFileSeparator4() = 0;
269  virtual QAction *actionExit() = 0;
270 
272  virtual QAction *actionCutFeatures() = 0;
273  virtual QAction *actionCopyFeatures() = 0;
274  virtual QAction *actionPasteFeatures() = 0;
275 #ifndef Q_MOC_RUN
276  Q_DECL_DEPRECATED
277 #endif
278  virtual QAction *actionEditSeparator1() = 0;
279  virtual QAction *actionCapturePoint() = 0;
280  virtual QAction *actionCaptureLine() = 0;
281  virtual QAction *actionCapturePolygon() = 0;
282  virtual QAction *actionDeleteSelected() = 0;
283  virtual QAction *actionMoveFeature() = 0;
284  virtual QAction *actionSplitFeatures() = 0;
285 #ifndef Q_MOC_RUN
286  Q_DECL_DEPRECATED
287 #endif
288  virtual QAction *actionAddVertex() = 0;
289 #ifndef Q_MOC_RUN
290  Q_DECL_DEPRECATED
291 #endif
292  virtual QAction *actionDeleteVertex() = 0;
293 #ifndef Q_MOC_RUN
294  Q_DECL_DEPRECATED
295 #endif
296  virtual QAction *actionMoveVertex() = 0;
297  virtual QAction *actionAddRing() = 0;
298  virtual QAction *actionAddIsland() = 0;
299  virtual QAction *actionSimplifyFeature() = 0;
300  virtual QAction *actionDeleteRing() = 0;
301  virtual QAction *actionDeletePart() = 0;
302  virtual QAction *actionNodeTool() = 0;
303 #ifndef Q_MOC_RUN
304  Q_DECL_DEPRECATED
305 #endif
306  virtual QAction *actionEditSeparator2() = 0;
307 
309  virtual QAction *actionPan() = 0;
310  virtual QAction *actionZoomIn() = 0;
311  virtual QAction *actionZoomOut() = 0;
312  virtual QAction *actionSelect() = 0;
313  virtual QAction *actionSelectRectangle() = 0;
314  virtual QAction *actionSelectPolygon() = 0;
315  virtual QAction *actionSelectFreehand() = 0;
316  virtual QAction *actionSelectRadius() = 0;
317  virtual QAction *actionIdentify() = 0;
318  virtual QAction *actionMeasure() = 0;
319  virtual QAction *actionMeasureArea() = 0;
320 #ifndef Q_MOC_RUN
321  Q_DECL_DEPRECATED
322 #endif
323  virtual QAction *actionViewSeparator1() = 0;
324  virtual QAction *actionZoomFullExtent() = 0;
325  virtual QAction *actionZoomToLayer() = 0;
326  virtual QAction *actionZoomToSelected() = 0;
327  virtual QAction *actionZoomLast() = 0;
328  virtual QAction *actionZoomActualSize() = 0;
329 #ifndef Q_MOC_RUN
330  Q_DECL_DEPRECATED
331 #endif
332  virtual QAction *actionViewSeparator2() = 0;
333  virtual QAction *actionMapTips() = 0;
334  virtual QAction *actionNewBookmark() = 0;
335  virtual QAction *actionShowBookmarks() = 0;
336  virtual QAction *actionDraw() = 0;
337 #ifndef Q_MOC_RUN
338  Q_DECL_DEPRECATED
339 #endif
340  virtual QAction *actionViewSeparator3() = 0;
341 
343  virtual QAction *actionNewVectorLayer() = 0;
344  virtual QAction *actionAddOgrLayer() = 0;
345  virtual QAction *actionAddRasterLayer() = 0;
346  virtual QAction *actionAddPgLayer() = 0;
347  virtual QAction *actionAddWmsLayer() = 0;
348 #ifndef Q_MOC_RUN
349  Q_DECL_DEPRECATED
350 #endif
351  virtual QAction *actionLayerSeparator1() = 0;
352  virtual QAction *actionOpenTable() = 0;
353  virtual QAction *actionToggleEditing() = 0;
354  virtual QAction *actionLayerSaveAs() = 0;
355  virtual QAction *actionLayerSelectionSaveAs() = 0;
356  virtual QAction *actionRemoveLayer() = 0;
357  virtual QAction *actionLayerProperties() = 0;
358 #ifndef Q_MOC_RUN
359  Q_DECL_DEPRECATED
360 #endif
361  virtual QAction *actionLayerSeparator2() = 0;
362  virtual QAction *actionAddToOverview() = 0;
363  virtual QAction *actionAddAllToOverview() = 0;
364  virtual QAction *actionRemoveAllFromOverview() = 0;
365 #ifndef Q_MOC_RUN
366  Q_DECL_DEPRECATED
367 #endif
368  virtual QAction *actionLayerSeparator3() = 0;
369  virtual QAction *actionHideAllLayers() = 0;
370  virtual QAction *actionShowAllLayers() = 0;
371 
373  virtual QAction *actionManagePlugins() = 0;
374 #ifndef Q_MOC_RUN
375  Q_DECL_DEPRECATED
376 #endif
377  virtual QAction *actionPluginSeparator1() = 0;
378  virtual QAction *actionPluginListSeparator() = 0;
379 #ifndef Q_MOC_RUN
380  Q_DECL_DEPRECATED
381 #endif
382  virtual QAction *actionPluginSeparator2() = 0;
383  virtual QAction *actionPluginPythonSeparator() = 0;
384  virtual QAction *actionShowPythonDialog() = 0;
385 
387  virtual QAction *actionToggleFullScreen() = 0;
388 #ifndef Q_MOC_RUN
389  Q_DECL_DEPRECATED
390 #endif
391  virtual QAction *actionSettingsSeparator1() = 0;
392  virtual QAction *actionOptions() = 0;
393  virtual QAction *actionCustomProjection() = 0;
394 
396  virtual QAction *actionHelpContents() = 0;
397 #ifndef Q_MOC_RUN
398  Q_DECL_DEPRECATED
399 #endif
400  virtual QAction *actionHelpSeparator1() = 0;
401  virtual QAction *actionQgisHomePage() = 0;
402  virtual QAction *actionCheckQgisVersion() = 0;
403 #ifndef Q_MOC_RUN
404  Q_DECL_DEPRECATED
405 #endif
406  virtual QAction *actionHelpSeparator2() = 0;
407  virtual QAction *actionAbout() = 0;
408 
410  // returns true when dialog was accepted
411  // @added in 1.6
412  virtual bool openFeatureForm( QgsVectorLayer *vlayer, QgsFeature &f, bool updateFeatureOnly = false ) = 0;
413 
414  signals:
418  void currentLayerChanged( QgsMapLayer * layer );
422  void composerAdded( QgsComposerView* v );
426  void composerWillBeRemoved( QgsComposerView* v );
430  void initializationCompleted();
439  void projectRead();
450  void newProjectCreated();
451 
452 };
453 
454 #ifdef _MSC_VER
455 # pragma warning( pop )
456 # pragma warning( disable: 4190 )
457 #endif
458 
459 // FIXME: also in core/qgis.h
460 #ifndef QGISEXTERN
461 #ifdef WIN32
462 # define QGISEXTERN extern "C" __declspec( dllexport )
463 #else
464 # define QGISEXTERN extern "C"
465 #endif
466 #endif
467 
468 #endif //#ifndef QGISINTERFACE_H