Quantum GIS API Documentation
1.8
|
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 #ifndef QGISINTERFACE_H 00019 #define QGISINTERFACE_H 00020 00021 class QAction; 00022 class QMenu; 00023 class QToolBar; 00024 class QDockWidget; 00025 class QMainWindow; 00026 class QWidget; 00027 00028 class QgsComposerView; 00029 class QgsMapLayer; 00030 class QgsMapCanvas; 00031 class QgsRasterLayer; 00032 class QgsVectorLayer; 00033 class QgsLegendInterface; 00034 class QgsFeature; 00035 00036 #include <QObject> 00037 #include <QPair> 00038 #include <map> 00039 00040 #include <qgis.h> 00041 00042 #ifdef _MSC_VER 00043 # pragma warning( push ) 00044 # pragma warning( disable: 4996 ) // was declared deprecated 00045 #endif 00046 00059 class GUI_EXPORT QgisInterface : public QObject 00060 { 00061 Q_OBJECT 00062 00063 public: 00064 00066 QgisInterface(); 00067 00069 virtual ~QgisInterface(); 00070 00074 virtual QgsLegendInterface* legendInterface() = 0; 00075 00076 00077 public slots: // TODO: do these functions really need to be slots? 00078 00080 virtual void zoomFull() = 0; 00081 00083 virtual void zoomToPrevious() = 0; 00084 00086 virtual void zoomToNext() = 0; 00087 00089 virtual void zoomToActiveLayer() = 0; 00090 00092 virtual QgsVectorLayer* addVectorLayer( QString vectorLayerPath, QString baseName, QString providerKey ) = 0; 00093 00095 virtual QgsRasterLayer* addRasterLayer( QString rasterLayerPath, QString baseName = QString() ) = 0; 00096 00098 virtual QgsRasterLayer* addRasterLayer( const QString& url, const QString& layerName, const QString& providerKey, const QStringList& layers, 00099 const QStringList& styles, const QString& format, const QString& crs ) = 0; 00100 00102 virtual bool addProject( QString theProject ) = 0; 00104 virtual void newProject( bool thePromptToSaveFlag = false ) = 0; 00105 00107 virtual QgsMapLayer *activeLayer() = 0; 00108 00112 virtual bool setActiveLayer( QgsMapLayer * ) = 0; 00113 00115 virtual int addToolBarIcon( QAction *qAction ) = 0; 00116 00118 virtual void removeToolBarIcon( QAction *qAction ) = 0; 00119 00122 virtual int addRasterToolBarIcon( QAction *qAction ) = 0; 00123 00126 virtual void removeRasterToolBarIcon( QAction *qAction ) = 0; 00127 00130 virtual int addVectorToolBarIcon( QAction *qAction ) = 0; 00131 00134 virtual void removeVectorToolBarIcon( QAction *qAction ) = 0; 00135 00138 virtual int addDatabaseToolBarIcon( QAction *qAction ) = 0; 00139 00142 virtual void removeDatabaseToolBarIcon( QAction *qAction ) = 0; 00143 00146 virtual int addWebToolBarIcon( QAction *qAction ) = 0; 00147 00150 virtual void removeWebToolBarIcon( QAction *qAction ) = 0; 00151 00153 virtual QToolBar * addToolBar( QString name ) = 0; 00154 00156 virtual QgsMapCanvas * mapCanvas() = 0; 00157 00159 virtual QWidget * mainWindow() = 0; 00160 00162 virtual QList<QgsComposerView*> activeComposers() = 0; 00163 00165 virtual void addPluginToMenu( QString name, QAction* action ) = 0; 00166 00168 virtual void removePluginMenu( QString name, QAction* action ) = 0; 00169 00173 virtual void insertAddLayerAction( QAction *action ) = 0; 00174 00178 virtual void removeAddLayerAction( QAction *action ) = 0; 00179 00183 virtual void addPluginToDatabaseMenu( QString name, QAction* action ) = 0; 00184 00188 virtual void removePluginDatabaseMenu( QString name, QAction* action ) = 0; 00189 00193 virtual void addPluginToRasterMenu( QString name, QAction* action ) = 0; 00194 00198 virtual void removePluginRasterMenu( QString name, QAction* action ) = 0; 00199 00203 virtual void addPluginToVectorMenu( QString name, QAction* action ) = 0; 00204 00208 virtual void removePluginVectorMenu( QString name, QAction* action ) = 0; 00209 00213 virtual void addPluginToWebMenu( QString name, QAction* action ) = 0; 00214 00218 virtual void removePluginWebMenu( QString name, QAction* action ) = 0; 00219 00220 00222 virtual void addDockWidget( Qt::DockWidgetArea area, QDockWidget * dockwidget ) = 0; 00223 00227 virtual void removeDockWidget( QDockWidget * dockwidget ) = 0; 00228 00232 #ifndef Q_MOC_RUN 00233 Q_DECL_DEPRECATED 00234 #endif 00235 virtual void refreshLegend( QgsMapLayer *l ) = 0; 00236 00240 virtual void showLayerProperties( QgsMapLayer *l ) = 0; 00241 00245 virtual void showAttributeTable( QgsVectorLayer *l ) = 0; 00246 00249 virtual void addWindow( QAction *action ) = 0; 00250 00253 virtual void removeWindow( QAction *action ) = 0; 00254 00258 virtual bool registerMainWindowAction( QAction* action, QString defaultShortcut ) = 0; 00259 00263 virtual bool unregisterMainWindowAction( QAction* action ) = 0; 00264 00265 // @todo is this deprecated in favour of QgsContextHelp? 00273 #ifndef Q_MOC_RUN 00274 Q_DECL_DEPRECATED 00275 #endif 00276 virtual void openURL( QString url, bool useQgisDocDirectory = true ) = 0; 00277 00278 00283 00284 virtual QMenu *fileMenu() = 0; 00285 virtual QMenu *editMenu() = 0; 00286 virtual QMenu *viewMenu() = 0; 00287 virtual QMenu *layerMenu() = 0; 00288 virtual QMenu *settingsMenu() = 0; 00289 virtual QMenu *pluginMenu() = 0; 00290 virtual QMenu *rasterMenu() = 0; 00293 virtual QMenu *databaseMenu() = 0; 00296 virtual QMenu *vectorMenu() = 0; 00299 virtual QMenu *webMenu() = 0; 00300 virtual QMenu *firstRightStandardMenu() = 0; 00301 virtual QMenu *windowMenu() = 0; 00302 virtual QMenu *helpMenu() = 0; 00303 00305 virtual QToolBar *fileToolBar() = 0; 00306 virtual QToolBar *layerToolBar() = 0; 00307 virtual QToolBar *mapNavToolToolBar() = 0; 00308 virtual QToolBar *digitizeToolBar() = 0; 00309 virtual QToolBar *advancedDigitizeToolBar() = 0; // added in v1.5 00310 virtual QToolBar *attributesToolBar() = 0; 00311 virtual QToolBar *pluginToolBar() = 0; 00312 virtual QToolBar *helpToolBar() = 0; 00315 virtual QToolBar *rasterToolBar() = 0; 00318 virtual QToolBar *vectorToolBar() = 0; 00321 virtual QToolBar *databaseToolBar() = 0; 00324 virtual QToolBar *webToolBar() = 0; 00325 00327 virtual QAction *actionNewProject() = 0; 00328 virtual QAction *actionOpenProject() = 0; 00329 #ifndef Q_MOC_RUN 00330 Q_DECL_DEPRECATED 00331 #endif 00332 virtual QAction *actionFileSeparator1() = 0; 00333 virtual QAction *actionSaveProject() = 0; 00334 virtual QAction *actionSaveProjectAs() = 0; 00335 virtual QAction *actionSaveMapAsImage() = 0; 00336 #ifndef Q_MOC_RUN 00337 Q_DECL_DEPRECATED 00338 #endif 00339 virtual QAction *actionFileSeparator2() = 0; 00340 virtual QAction *actionProjectProperties() = 0; 00341 #ifndef Q_MOC_RUN 00342 Q_DECL_DEPRECATED 00343 #endif 00344 virtual QAction *actionFileSeparator3() = 0; 00345 virtual QAction *actionPrintComposer() = 0; 00346 #ifndef Q_MOC_RUN 00347 Q_DECL_DEPRECATED 00348 #endif 00349 virtual QAction *actionFileSeparator4() = 0; 00350 virtual QAction *actionExit() = 0; 00351 00353 virtual QAction *actionCutFeatures() = 0; 00354 virtual QAction *actionCopyFeatures() = 0; 00355 virtual QAction *actionPasteFeatures() = 0; 00356 #ifndef Q_MOC_RUN 00357 Q_DECL_DEPRECATED 00358 #endif 00359 virtual QAction *actionEditSeparator1() = 0; 00360 virtual QAction *actionAddFeature() = 0; 00361 #ifndef Q_MOC_RUN 00362 Q_DECL_DEPRECATED 00363 #endif 00364 virtual QAction *actionCapturePoint() = 0; 00365 #ifndef Q_MOC_RUN 00366 Q_DECL_DEPRECATED 00367 #endif 00368 virtual QAction *actionCaptureLine() = 0; 00369 #ifndef Q_MOC_RUN 00370 Q_DECL_DEPRECATED 00371 #endif 00372 virtual QAction *actionCapturePolygon() = 0; 00373 virtual QAction *actionDeleteSelected() = 0; 00374 virtual QAction *actionMoveFeature() = 0; 00375 virtual QAction *actionSplitFeatures() = 0; 00376 #ifndef Q_MOC_RUN 00377 Q_DECL_DEPRECATED 00378 #endif 00379 virtual QAction *actionAddVertex() = 0; 00380 #ifndef Q_MOC_RUN 00381 Q_DECL_DEPRECATED 00382 #endif 00383 virtual QAction *actionDeleteVertex() = 0; 00384 #ifndef Q_MOC_RUN 00385 Q_DECL_DEPRECATED 00386 #endif 00387 virtual QAction *actionMoveVertex() = 0; 00388 virtual QAction *actionAddRing() = 0; 00389 #ifndef Q_MOC_RUN 00390 Q_DECL_DEPRECATED 00391 #endif 00392 virtual QAction *actionAddIsland() = 0; 00393 virtual QAction *actionAddPart() = 0; 00394 virtual QAction *actionSimplifyFeature() = 0; 00395 virtual QAction *actionDeleteRing() = 0; 00396 virtual QAction *actionDeletePart() = 0; 00397 virtual QAction *actionNodeTool() = 0; 00398 #ifndef Q_MOC_RUN 00399 Q_DECL_DEPRECATED 00400 #endif 00401 virtual QAction *actionEditSeparator2() = 0; 00402 00404 virtual QAction *actionPan() = 0; 00405 virtual QAction *actionPanToSelected() = 0; 00406 virtual QAction *actionZoomIn() = 0; 00407 virtual QAction *actionZoomOut() = 0; 00408 virtual QAction *actionSelect() = 0; 00409 virtual QAction *actionSelectRectangle() = 0; 00410 virtual QAction *actionSelectPolygon() = 0; 00411 virtual QAction *actionSelectFreehand() = 0; 00412 virtual QAction *actionSelectRadius() = 0; 00413 virtual QAction *actionIdentify() = 0; 00414 virtual QAction *actionMeasure() = 0; 00415 virtual QAction *actionMeasureArea() = 0; 00416 #ifndef Q_MOC_RUN 00417 Q_DECL_DEPRECATED 00418 #endif 00419 virtual QAction *actionViewSeparator1() = 0; 00420 virtual QAction *actionZoomFullExtent() = 0; 00421 virtual QAction *actionZoomToLayer() = 0; 00422 virtual QAction *actionZoomToSelected() = 0; 00423 virtual QAction *actionZoomLast() = 0; 00424 virtual QAction *actionZoomActualSize() = 0; 00425 #ifndef Q_MOC_RUN 00426 Q_DECL_DEPRECATED 00427 #endif 00428 virtual QAction *actionViewSeparator2() = 0; 00429 virtual QAction *actionMapTips() = 0; 00430 virtual QAction *actionNewBookmark() = 0; 00431 virtual QAction *actionShowBookmarks() = 0; 00432 virtual QAction *actionDraw() = 0; 00433 #ifndef Q_MOC_RUN 00434 Q_DECL_DEPRECATED 00435 #endif 00436 virtual QAction *actionViewSeparator3() = 0; 00437 00439 virtual QAction *actionNewVectorLayer() = 0; 00440 virtual QAction *actionAddOgrLayer() = 0; 00441 virtual QAction *actionAddRasterLayer() = 0; 00442 virtual QAction *actionAddPgLayer() = 0; 00443 virtual QAction *actionAddWmsLayer() = 0; 00444 #ifndef Q_MOC_RUN 00445 Q_DECL_DEPRECATED 00446 #endif 00447 virtual QAction *actionLayerSeparator1() = 0; 00448 virtual QAction *actionOpenTable() = 0; 00449 virtual QAction *actionToggleEditing() = 0; 00450 virtual QAction *actionLayerSaveAs() = 0; 00451 virtual QAction *actionLayerSelectionSaveAs() = 0; 00452 virtual QAction *actionRemoveLayer() = 0; 00453 virtual QAction *actionLayerProperties() = 0; 00454 #ifndef Q_MOC_RUN 00455 Q_DECL_DEPRECATED 00456 #endif 00457 virtual QAction *actionLayerSeparator2() = 0; 00458 virtual QAction *actionAddToOverview() = 0; 00459 virtual QAction *actionAddAllToOverview() = 0; 00460 virtual QAction *actionRemoveAllFromOverview() = 0; 00461 #ifndef Q_MOC_RUN 00462 Q_DECL_DEPRECATED 00463 #endif 00464 virtual QAction *actionLayerSeparator3() = 0; 00465 virtual QAction *actionHideAllLayers() = 0; 00466 virtual QAction *actionShowAllLayers() = 0; 00467 00469 virtual QAction *actionManagePlugins() = 0; 00470 #ifndef Q_MOC_RUN 00471 Q_DECL_DEPRECATED 00472 #endif 00473 virtual QAction *actionPluginSeparator1() = 0; 00474 virtual QAction *actionPluginListSeparator() = 0; 00475 #ifndef Q_MOC_RUN 00476 Q_DECL_DEPRECATED 00477 #endif 00478 virtual QAction *actionPluginSeparator2() = 0; 00479 virtual QAction *actionPluginPythonSeparator() = 0; 00480 virtual QAction *actionShowPythonDialog() = 0; 00481 00483 virtual QAction *actionToggleFullScreen() = 0; 00484 #ifndef Q_MOC_RUN 00485 Q_DECL_DEPRECATED 00486 #endif 00487 virtual QAction *actionSettingsSeparator1() = 0; 00488 virtual QAction *actionOptions() = 0; 00489 virtual QAction *actionCustomProjection() = 0; 00490 00492 virtual QAction *actionHelpContents() = 0; 00493 #ifndef Q_MOC_RUN 00494 Q_DECL_DEPRECATED 00495 #endif 00496 virtual QAction *actionHelpSeparator1() = 0; 00497 virtual QAction *actionQgisHomePage() = 0; 00498 virtual QAction *actionCheckQgisVersion() = 0; 00499 #ifndef Q_MOC_RUN 00500 Q_DECL_DEPRECATED 00501 #endif 00502 virtual QAction *actionHelpSeparator2() = 0; 00503 virtual QAction *actionAbout() = 0; 00504 00506 // returns true when dialog was accepted 00507 // @added in 1.6 00508 virtual bool openFeatureForm( QgsVectorLayer *vlayer, QgsFeature &f, bool updateFeatureOnly = false ) = 0; 00509 00510 signals: 00514 void currentLayerChanged( QgsMapLayer * layer ); 00518 void composerAdded( QgsComposerView* v ); 00522 void composerWillBeRemoved( QgsComposerView* v ); 00526 void initializationCompleted(); 00535 void projectRead(); 00546 void newProjectCreated(); 00547 00548 }; 00549 00550 #ifdef _MSC_VER 00551 # pragma warning( pop ) 00552 # pragma warning( disable: 4190 ) 00553 #endif 00554 00555 // FIXME: also in core/qgis.h 00556 #ifndef QGISEXTERN 00557 #ifdef WIN32 00558 # define QGISEXTERN extern "C" __declspec( dllexport ) 00559 #else 00560 # define QGISEXTERN extern "C" 00561 #endif 00562 #endif 00563 00564 #endif //#ifndef QGISINTERFACE_H