Quantum GIS API Documentation
1.7.4
|
00001 /*************************************************************************** 00002 qgisinterface.h 00003 Interface class for exposing functions in QgisApp for use by plugins 00004 ------------------- 00005 begin : 2004-02-11 00006 copyright : (C) 2004 by Gary E.Sherman 00007 email : sherman at mrcc.com 00008 ***************************************************************************/ 00009 00010 /*************************************************************************** 00011 * * 00012 * This program is free software; you can redistribute it and/or modify * 00013 * it under the terms of the GNU General Public License as published by * 00014 * the Free Software Foundation; either version 2 of the License, or * 00015 * (at your option) any later version. * 00016 * * 00017 ***************************************************************************/ 00018 /* $Id$ */ 00019 #ifndef QGISINTERFACE_H 00020 #define QGISINTERFACE_H 00021 00022 class QAction; 00023 class QMenu; 00024 class QToolBar; 00025 class QDockWidget; 00026 class QMainWindow; 00027 class QWidget; 00028 00029 class QgsComposerView; 00030 class QgsMapLayer; 00031 class QgsMapCanvas; 00032 class QgsRasterLayer; 00033 class QgsVectorLayer; 00034 class QgsLegendInterface; 00035 class QgsFeature; 00036 00037 #include <QObject> 00038 #include <QPair> 00039 #include <map> 00040 00041 #include <qgis.h> 00042 00043 #ifdef _MSC_VER 00044 # pragma warning( push ) 00045 # pragma warning( disable: 4996 ) // was declared deprecated 00046 #endif 00047 00060 class GUI_EXPORT QgisInterface : public QObject 00061 { 00062 Q_OBJECT 00063 00064 public: 00065 00067 QgisInterface(); 00068 00070 virtual ~QgisInterface(); 00071 00075 virtual QgsLegendInterface* legendInterface() = 0; 00076 00077 00078 public slots: // TODO: do these functions really need to be slots? 00079 00081 virtual void zoomFull() = 0; 00082 00084 virtual void zoomToPrevious() = 0; 00085 00087 virtual void zoomToNext() = 0; 00088 00090 virtual void zoomToActiveLayer() = 0; 00091 00093 virtual QgsVectorLayer* addVectorLayer( QString vectorLayerPath, QString baseName, QString providerKey ) = 0; 00094 00096 virtual QgsRasterLayer* addRasterLayer( QString rasterLayerPath, QString baseName = QString() ) = 0; 00097 00099 virtual QgsRasterLayer* addRasterLayer( const QString& url, const QString& layerName, const QString& providerKey, const QStringList& layers, 00100 const QStringList& styles, const QString& format, const QString& crs ) = 0; 00101 00103 virtual bool addProject( QString theProject ) = 0; 00105 virtual void newProject( bool thePromptToSaveFlag = false ) = 0; 00106 00108 virtual QgsMapLayer *activeLayer() = 0; 00109 00113 virtual bool setActiveLayer( QgsMapLayer * ) = 0; 00114 00116 virtual int addToolBarIcon( QAction *qAction ) = 0; 00117 00119 virtual void removeToolBarIcon( QAction *qAction ) = 0; 00120 00122 virtual QToolBar * addToolBar( QString name ) = 0; 00123 00125 virtual QgsMapCanvas * mapCanvas() = 0; 00126 00128 virtual QWidget * mainWindow() = 0; 00129 00131 virtual QList<QgsComposerView*> activeComposers() = 0; 00132 00134 virtual void addPluginToMenu( QString name, QAction* action ) = 0; 00135 00137 virtual void removePluginMenu( QString name, QAction* action ) = 0; 00138 00142 virtual void insertAddLayerAction( QAction *action ) = 0; 00143 00147 virtual void removeAddLayerAction( QAction *action ) = 0; 00148 00152 virtual void addPluginToDatabaseMenu( QString name, QAction* action ) = 0; 00153 00157 virtual void removePluginDatabaseMenu( QString name, QAction* action ) = 0; 00158 00160 virtual void addDockWidget( Qt::DockWidgetArea area, QDockWidget * dockwidget ) = 0; 00161 00165 virtual void removeDockWidget( QDockWidget * dockwidget ) = 0; 00166 00170 #ifndef Q_MOC_RUN 00171 Q_DECL_DEPRECATED 00172 #endif 00173 virtual void refreshLegend( QgsMapLayer *l ) = 0; 00174 00178 virtual void showLayerProperties( QgsMapLayer *l ) = 0; 00179 00183 virtual void showAttributeTable( QgsVectorLayer *l ) = 0; 00184 00187 virtual void addWindow( QAction *action ) = 0; 00188 00191 virtual void removeWindow( QAction *action ) = 0; 00192 00196 virtual bool registerMainWindowAction( QAction* action, QString defaultShortcut ) = 0; 00197 00201 virtual bool unregisterMainWindowAction( QAction* action ) = 0; 00202 00203 // @todo is this deprecated in favour of QgsContextHelp? 00211 #ifndef Q_MOC_RUN 00212 Q_DECL_DEPRECATED 00213 #endif 00214 virtual void openURL( QString url, bool useQgisDocDirectory = true ) = 0; 00215 00216 00221 00222 virtual QMenu *fileMenu() = 0; 00223 virtual QMenu *editMenu() = 0; 00224 virtual QMenu *viewMenu() = 0; 00225 virtual QMenu *layerMenu() = 0; 00226 virtual QMenu *settingsMenu() = 0; 00227 virtual QMenu *pluginMenu() = 0; 00228 virtual QMenu *firstRightStandardMenu() = 0; 00229 virtual QMenu *windowMenu() = 0; 00230 virtual QMenu *helpMenu() = 0; 00231 00233 virtual QToolBar *fileToolBar() = 0; 00234 virtual QToolBar *layerToolBar() = 0; 00235 virtual QToolBar *mapNavToolToolBar() = 0; 00236 virtual QToolBar *digitizeToolBar() = 0; 00237 virtual QToolBar *advancedDigitizeToolBar() = 0; // added in v1.5 00238 virtual QToolBar *attributesToolBar() = 0; 00239 virtual QToolBar *pluginToolBar() = 0; 00240 virtual QToolBar *helpToolBar() = 0; 00243 virtual QToolBar *rasterToolBar() = 0; 00244 00246 virtual QAction *actionNewProject() = 0; 00247 virtual QAction *actionOpenProject() = 0; 00248 #ifndef Q_MOC_RUN 00249 Q_DECL_DEPRECATED 00250 #endif 00251 virtual QAction *actionFileSeparator1() = 0; 00252 virtual QAction *actionSaveProject() = 0; 00253 virtual QAction *actionSaveProjectAs() = 0; 00254 virtual QAction *actionSaveMapAsImage() = 0; 00255 #ifndef Q_MOC_RUN 00256 Q_DECL_DEPRECATED 00257 #endif 00258 virtual QAction *actionFileSeparator2() = 0; 00259 virtual QAction *actionProjectProperties() = 0; 00260 #ifndef Q_MOC_RUN 00261 Q_DECL_DEPRECATED 00262 #endif 00263 virtual QAction *actionFileSeparator3() = 0; 00264 virtual QAction *actionPrintComposer() = 0; 00265 #ifndef Q_MOC_RUN 00266 Q_DECL_DEPRECATED 00267 #endif 00268 virtual QAction *actionFileSeparator4() = 0; 00269 virtual QAction *actionExit() = 0; 00270 00272 virtual QAction *actionCutFeatures() = 0; 00273 virtual QAction *actionCopyFeatures() = 0; 00274 virtual QAction *actionPasteFeatures() = 0; 00275 #ifndef Q_MOC_RUN 00276 Q_DECL_DEPRECATED 00277 #endif 00278 virtual QAction *actionEditSeparator1() = 0; 00279 virtual QAction *actionCapturePoint() = 0; 00280 virtual QAction *actionCaptureLine() = 0; 00281 virtual QAction *actionCapturePolygon() = 0; 00282 virtual QAction *actionDeleteSelected() = 0; 00283 virtual QAction *actionMoveFeature() = 0; 00284 virtual QAction *actionSplitFeatures() = 0; 00285 #ifndef Q_MOC_RUN 00286 Q_DECL_DEPRECATED 00287 #endif 00288 virtual QAction *actionAddVertex() = 0; 00289 #ifndef Q_MOC_RUN 00290 Q_DECL_DEPRECATED 00291 #endif 00292 virtual QAction *actionDeleteVertex() = 0; 00293 #ifndef Q_MOC_RUN 00294 Q_DECL_DEPRECATED 00295 #endif 00296 virtual QAction *actionMoveVertex() = 0; 00297 virtual QAction *actionAddRing() = 0; 00298 virtual QAction *actionAddIsland() = 0; 00299 virtual QAction *actionSimplifyFeature() = 0; 00300 virtual QAction *actionDeleteRing() = 0; 00301 virtual QAction *actionDeletePart() = 0; 00302 virtual QAction *actionNodeTool() = 0; 00303 #ifndef Q_MOC_RUN 00304 Q_DECL_DEPRECATED 00305 #endif 00306 virtual QAction *actionEditSeparator2() = 0; 00307 00309 virtual QAction *actionPan() = 0; 00310 virtual QAction *actionZoomIn() = 0; 00311 virtual QAction *actionZoomOut() = 0; 00312 virtual QAction *actionSelect() = 0; 00313 virtual QAction *actionSelectRectangle() = 0; 00314 virtual QAction *actionSelectPolygon() = 0; 00315 virtual QAction *actionSelectFreehand() = 0; 00316 virtual QAction *actionSelectRadius() = 0; 00317 virtual QAction *actionIdentify() = 0; 00318 virtual QAction *actionMeasure() = 0; 00319 virtual QAction *actionMeasureArea() = 0; 00320 #ifndef Q_MOC_RUN 00321 Q_DECL_DEPRECATED 00322 #endif 00323 virtual QAction *actionViewSeparator1() = 0; 00324 virtual QAction *actionZoomFullExtent() = 0; 00325 virtual QAction *actionZoomToLayer() = 0; 00326 virtual QAction *actionZoomToSelected() = 0; 00327 virtual QAction *actionZoomLast() = 0; 00328 virtual QAction *actionZoomActualSize() = 0; 00329 #ifndef Q_MOC_RUN 00330 Q_DECL_DEPRECATED 00331 #endif 00332 virtual QAction *actionViewSeparator2() = 0; 00333 virtual QAction *actionMapTips() = 0; 00334 virtual QAction *actionNewBookmark() = 0; 00335 virtual QAction *actionShowBookmarks() = 0; 00336 virtual QAction *actionDraw() = 0; 00337 #ifndef Q_MOC_RUN 00338 Q_DECL_DEPRECATED 00339 #endif 00340 virtual QAction *actionViewSeparator3() = 0; 00341 00343 virtual QAction *actionNewVectorLayer() = 0; 00344 virtual QAction *actionAddOgrLayer() = 0; 00345 virtual QAction *actionAddRasterLayer() = 0; 00346 virtual QAction *actionAddPgLayer() = 0; 00347 virtual QAction *actionAddWmsLayer() = 0; 00348 #ifndef Q_MOC_RUN 00349 Q_DECL_DEPRECATED 00350 #endif 00351 virtual QAction *actionLayerSeparator1() = 0; 00352 virtual QAction *actionOpenTable() = 0; 00353 virtual QAction *actionToggleEditing() = 0; 00354 virtual QAction *actionLayerSaveAs() = 0; 00355 virtual QAction *actionLayerSelectionSaveAs() = 0; 00356 virtual QAction *actionRemoveLayer() = 0; 00357 virtual QAction *actionLayerProperties() = 0; 00358 #ifndef Q_MOC_RUN 00359 Q_DECL_DEPRECATED 00360 #endif 00361 virtual QAction *actionLayerSeparator2() = 0; 00362 virtual QAction *actionAddToOverview() = 0; 00363 virtual QAction *actionAddAllToOverview() = 0; 00364 virtual QAction *actionRemoveAllFromOverview() = 0; 00365 #ifndef Q_MOC_RUN 00366 Q_DECL_DEPRECATED 00367 #endif 00368 virtual QAction *actionLayerSeparator3() = 0; 00369 virtual QAction *actionHideAllLayers() = 0; 00370 virtual QAction *actionShowAllLayers() = 0; 00371 00373 virtual QAction *actionManagePlugins() = 0; 00374 #ifndef Q_MOC_RUN 00375 Q_DECL_DEPRECATED 00376 #endif 00377 virtual QAction *actionPluginSeparator1() = 0; 00378 virtual QAction *actionPluginListSeparator() = 0; 00379 #ifndef Q_MOC_RUN 00380 Q_DECL_DEPRECATED 00381 #endif 00382 virtual QAction *actionPluginSeparator2() = 0; 00383 virtual QAction *actionPluginPythonSeparator() = 0; 00384 virtual QAction *actionShowPythonDialog() = 0; 00385 00387 virtual QAction *actionToggleFullScreen() = 0; 00388 #ifndef Q_MOC_RUN 00389 Q_DECL_DEPRECATED 00390 #endif 00391 virtual QAction *actionSettingsSeparator1() = 0; 00392 virtual QAction *actionOptions() = 0; 00393 virtual QAction *actionCustomProjection() = 0; 00394 00396 virtual QAction *actionHelpContents() = 0; 00397 #ifndef Q_MOC_RUN 00398 Q_DECL_DEPRECATED 00399 #endif 00400 virtual QAction *actionHelpSeparator1() = 0; 00401 virtual QAction *actionQgisHomePage() = 0; 00402 virtual QAction *actionCheckQgisVersion() = 0; 00403 #ifndef Q_MOC_RUN 00404 Q_DECL_DEPRECATED 00405 #endif 00406 virtual QAction *actionHelpSeparator2() = 0; 00407 virtual QAction *actionAbout() = 0; 00408 00410 // returns true when dialog was accepted 00411 // @added in 1.6 00412 virtual bool openFeatureForm( QgsVectorLayer *vlayer, QgsFeature &f, bool updateFeatureOnly = false ) = 0; 00413 00414 signals: 00418 void currentLayerChanged( QgsMapLayer * layer ); 00422 void composerAdded( QgsComposerView* v ); 00426 void composerWillBeRemoved( QgsComposerView* v ); 00430 void initializationCompleted(); 00439 void projectRead(); 00450 void newProjectCreated(); 00451 00452 }; 00453 00454 #ifdef _MSC_VER 00455 # pragma warning( pop ) 00456 # pragma warning( disable: 4190 ) 00457 #endif 00458 00459 // FIXME: also in core/qgis.h 00460 #ifndef QGISEXTERN 00461 #ifdef WIN32 00462 # define QGISEXTERN extern "C" __declspec( dllexport ) 00463 #else 00464 # define QGISEXTERN extern "C" 00465 #endif 00466 #endif 00467 00468 #endif //#ifndef QGISINTERFACE_H