Skip to content

Commit 0a6dbb7

Browse files
author
telwertowski
committed
Add accessors for all menus, toolbars and actions to plugin interface so that plugins can insert actions at any position in any menu or toolbar.
git-svn-id: http://svn.osgeo.org/qgis/trunk@9258 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 95858f5 commit 0a6dbb7

File tree

4 files changed

+501
-16
lines changed

4 files changed

+501
-16
lines changed

python/gui/qgisinterface.sip

Lines changed: 127 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,6 @@ class QgisInterface : QObject
5656
virtual void removeToolBarIcon(QAction *qAction) = 0;
5757
//! Add toolbar with specified name
5858
virtual QToolBar* addToolBar(QString name)=0 /Factory/;
59-
/** Get the file toolbar - intended for use with plugins which
60-
* add a new file type handler.
61-
*/
62-
virtual QToolBar * fileToolBar()=0;
6359

6460
// TODO: is this deprecated in favour of QgsContextHelp?
6561
/** Open a url in the users browser. By default the QGIS doc directory is used
@@ -88,6 +84,133 @@ class QgisInterface : QObject
8884
/** refresh legend of a layer */
8985
virtual void refreshLegend( QgsMapLayer * layer )=0;
9086

87+
/** Add window to Window menu. The action title is the window title
88+
* and the action should raise, unminimize and activate the window. */
89+
virtual void addWindow( QAction *action ) = 0;
90+
/** Remove window from Window menu. Calling this is necessary only for
91+
* windows which are hidden rather than deleted when closed. */
92+
virtual void removeWindow( QAction *action ) = 0;
93+
94+
/** Accessors for inserting items into menus and toolbars.
95+
* An item can be inserted before any existing action.
96+
*/
97+
98+
//! Menus
99+
virtual QMenu *fileMenu() = 0;
100+
virtual QMenu *editMenu() = 0;
101+
virtual QMenu *viewMenu() = 0;
102+
virtual QMenu *layerMenu() = 0;
103+
virtual QMenu *settingsMenu() = 0;
104+
virtual QMenu *pluginMenu() = 0;
105+
virtual QMenu *firstRightStandardMenu() = 0;
106+
virtual QMenu *windowMenu() = 0;
107+
virtual QMenu *helpMenu() = 0;
108+
109+
//! ToolBars
110+
virtual QToolBar *fileToolBar() = 0;
111+
virtual QToolBar *layerToolBar() = 0;
112+
virtual QToolBar *mapNavToolToolBar() = 0;
113+
virtual QToolBar *digitizeToolBar() = 0;
114+
virtual QToolBar *attributesToolBar() = 0;
115+
virtual QToolBar *pluginToolBar() = 0;
116+
virtual QToolBar *helpToolBar() = 0;
117+
118+
//! File menu actions
119+
virtual QAction *actionNewProject() = 0;
120+
virtual QAction *actionOpenProject() = 0;
121+
virtual QAction *actionFileSeparator1() = 0;
122+
virtual QAction *actionSaveProject() = 0;
123+
virtual QAction *actionSaveProjectAs() = 0;
124+
virtual QAction *actionSaveMapAsImage() = 0;
125+
virtual QAction *actionFileSeparator2() = 0;
126+
virtual QAction *actionProjectProperties() = 0;
127+
virtual QAction *actionFileSeparator3() = 0;
128+
virtual QAction *actionPrintComposer() = 0;
129+
virtual QAction *actionFileSeparator4() = 0;
130+
virtual QAction *actionExit() = 0;
131+
132+
//! Edit menu actions
133+
virtual QAction *actionCutFeatures() = 0;
134+
virtual QAction *actionCopyFeatures() = 0;
135+
virtual QAction *actionPasteFeatures() = 0;
136+
virtual QAction *actionEditSeparator1() = 0;
137+
virtual QAction *actionCapturePoint() = 0;
138+
virtual QAction *actionCaptureLine() = 0;
139+
virtual QAction *actionCapturePologon() = 0;
140+
virtual QAction *actionDeleteSelected() = 0;
141+
virtual QAction *actionMoveFeature() = 0;
142+
virtual QAction *actionSplitFeatures() = 0;
143+
virtual QAction *actionAddVertex() = 0;
144+
virtual QAction *actionDelerteVertex() = 0;
145+
virtual QAction *actioMoveVertex() = 0;
146+
virtual QAction *actionAddRing() = 0;
147+
virtual QAction *actionAddIsland() = 0;
148+
virtual QAction *actionEditSeparator2() = 0;
149+
150+
//! View menu actions
151+
virtual QAction *actionPan() = 0;
152+
virtual QAction *actionZoomIn() = 0;
153+
virtual QAction *actionZoomOut() = 0;
154+
virtual QAction *actionSelect() = 0;
155+
virtual QAction *actionIdentify() = 0;
156+
virtual QAction *actionMeasure() = 0;
157+
virtual QAction *actionMeasureArea() = 0;
158+
virtual QAction *actionViewSeparator1() = 0;
159+
virtual QAction *actionZoomFullExtent() = 0;
160+
virtual QAction *actionZoomToLayer() = 0;
161+
virtual QAction *actionZoomToSelected() = 0;
162+
virtual QAction *actionZoomLast() = 0;
163+
virtual QAction *actionZoomActualSize() = 0;
164+
virtual QAction *actionViewSeparator2() = 0;
165+
virtual QAction *actionMapTips() = 0;
166+
virtual QAction *actionNewBookmark() = 0;
167+
virtual QAction *actionShowBookmarks() = 0;
168+
virtual QAction *actionDraw() = 0;
169+
virtual QAction *actionViewSeparator3() = 0;
170+
171+
//! Layer menu actions
172+
virtual QAction *actionNewVectorLayer() = 0;
173+
virtual QAction *actionAddOgrLayer() = 0;
174+
virtual QAction *actionAddRasterLayer() = 0;
175+
virtual QAction *actionAddPgLayer() = 0;
176+
virtual QAction *actionAddWmsLayer() = 0;
177+
virtual QAction *actionLayerSeparator1() = 0;
178+
virtual QAction *actionOpenTable() = 0;
179+
virtual QAction *actionToggleEditing() = 0;
180+
virtual QAction *actionLayerSaveAs() = 0;
181+
virtual QAction *actionLayerSelectionSaveAs() = 0;
182+
virtual QAction *actionRemoveLayer() = 0;
183+
virtual QAction *actionLayerProperties() = 0;
184+
virtual QAction *actionLayerSeparator2() = 0;
185+
virtual QAction *actionAddToOverview() = 0;
186+
virtual QAction *actionAddAllToOverview() = 0;
187+
virtual QAction *actionRemoveAllFromOverview() = 0;
188+
virtual QAction *actionLayerSeparator3() = 0;
189+
virtual QAction *actionHideAllLayers() = 0;
190+
virtual QAction *actionShowAllLayers() = 0;
191+
192+
//! Plugin menu actions
193+
virtual QAction *actionManagePlugins() = 0;
194+
virtual QAction *actionPluginSeparator1() = 0;
195+
virtual QAction *actionPluginListSeparator() = 0;
196+
virtual QAction *actionPluginSeparator2() = 0;
197+
virtual QAction *actionPluginPythonSeparator() = 0;
198+
virtual QAction *actionShowPythonDialog() = 0;
199+
200+
//! Settings menu actions
201+
virtual QAction *actionToggleFullScreen() = 0;
202+
virtual QAction *actionSettingsSeparator1() = 0;
203+
virtual QAction *actionOptions() = 0;
204+
virtual QAction *actionCustomProjection() = 0;
205+
206+
//! Help menu actions
207+
virtual QAction *actionHelpContents() = 0;
208+
virtual QAction *actionHelpSeparator1() = 0;
209+
virtual QAction *actionQgisHomePage() = 0;
210+
virtual QAction *actionCheckQgisVersion() = 0;
211+
virtual QAction *actionHelpSeparator2() = 0;
212+
virtual QAction *actionAbout() = 0;
213+
91214
signals:
92215
/** Emited whenever current (selected) layer changes.
93216
* The pointer to layer can be null if no layer is selected

src/app/qgisappinterface.cpp

Lines changed: 120 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -122,10 +122,7 @@ QToolBar* QgisAppInterface::addToolBar( QString name )
122122
{
123123
return qgis->addToolBar( name );
124124
}
125-
QToolBar * QgisAppInterface::fileToolBar()
126-
{
127-
return qgis->fileToolBar();
128-
}
125+
129126
void QgisAppInterface::openURL( QString url, bool useQgisDocDirectory )
130127
{
131128
qgis->openURL( url, useQgisDocDirectory );
@@ -153,3 +150,122 @@ void QgisAppInterface::refreshLegend( QgsMapLayer *l )
153150
qgis->legend()->refreshLayerSymbology( l->getLayerID() );
154151
}
155152
}
153+
154+
void QgisAppInterface::addWindow( QAction *action ) { qgis->addWindow( action ); }
155+
void QgisAppInterface::removeWindow( QAction *action ) { qgis->removeWindow( action ); }
156+
157+
//! Menus
158+
QMenu *QgisAppInterface::fileMenu() { return qgis->fileMenu(); }
159+
QMenu *QgisAppInterface::editMenu() { return qgis->editMenu(); }
160+
QMenu *QgisAppInterface::viewMenu() { return qgis->viewMenu(); }
161+
QMenu *QgisAppInterface::layerMenu() { return qgis->layerMenu(); }
162+
QMenu *QgisAppInterface::settingsMenu() { return qgis->settingsMenu(); }
163+
QMenu *QgisAppInterface::pluginMenu() { return qgis->pluginMenu(); }
164+
QMenu *QgisAppInterface::firstRightStandardMenu() { return qgis->firstRightStandardMenu(); }
165+
QMenu *QgisAppInterface::windowMenu() { return qgis->windowMenu(); }
166+
QMenu *QgisAppInterface::helpMenu() { return qgis->helpMenu(); }
167+
168+
//! ToolBars
169+
QToolBar *QgisAppInterface::fileToolBar() { return qgis->fileToolBar(); }
170+
QToolBar *QgisAppInterface::layerToolBar() { return qgis->layerToolBar(); }
171+
QToolBar *QgisAppInterface::mapNavToolToolBar() { return qgis->mapNavToolToolBar(); }
172+
QToolBar *QgisAppInterface::digitizeToolBar() { return qgis->digitizeToolBar(); }
173+
QToolBar *QgisAppInterface::attributesToolBar() { return qgis->attributesToolBar(); }
174+
QToolBar *QgisAppInterface::pluginToolBar() { return qgis->pluginToolBar(); }
175+
QToolBar *QgisAppInterface::helpToolBar() { return qgis->helpToolBar(); }
176+
177+
//! File menu actions
178+
QAction *QgisAppInterface::actionNewProject() { return qgis->actionNewProject(); }
179+
QAction *QgisAppInterface::actionOpenProject() { return qgis->actionOpenProject(); }
180+
QAction *QgisAppInterface::actionFileSeparator1() { return qgis->actionFileSeparator1(); }
181+
QAction *QgisAppInterface::actionSaveProject() { return qgis->actionSaveProject(); }
182+
QAction *QgisAppInterface::actionSaveProjectAs() { return qgis->actionSaveProjectAs(); }
183+
QAction *QgisAppInterface::actionSaveMapAsImage() { return qgis->actionSaveMapAsImage(); }
184+
QAction *QgisAppInterface::actionFileSeparator2() { return qgis->actionFileSeparator2(); }
185+
QAction *QgisAppInterface::actionProjectProperties() { return qgis->actionProjectProperties(); }
186+
QAction *QgisAppInterface::actionFileSeparator3() { return qgis->actionFileSeparator3(); }
187+
QAction *QgisAppInterface::actionPrintComposer() { return qgis->actionPrintComposer(); }
188+
QAction *QgisAppInterface::actionFileSeparator4() { return qgis->actionFileSeparator4(); }
189+
QAction *QgisAppInterface::actionExit() { return qgis->actionExit(); }
190+
191+
//! Edit menu actions
192+
QAction *QgisAppInterface::actionCutFeatures() { return qgis->actionCutFeatures(); }
193+
QAction *QgisAppInterface::actionCopyFeatures() { return qgis->actionCopyFeatures(); }
194+
QAction *QgisAppInterface::actionPasteFeatures() { return qgis->actionPasteFeatures(); }
195+
QAction *QgisAppInterface::actionEditSeparator1() { return qgis->actionEditSeparator1(); }
196+
QAction *QgisAppInterface::actionCapturePoint() { return qgis->actionCapturePoint(); }
197+
QAction *QgisAppInterface::actionCaptureLine() { return qgis->actionCaptureLine(); }
198+
QAction *QgisAppInterface::actionCapturePologon() { return qgis->actionCapturePologon(); }
199+
QAction *QgisAppInterface::actionDeleteSelected() { return qgis->actionDeleteSelected(); }
200+
QAction *QgisAppInterface::actionMoveFeature() { return qgis->actionMoveFeature(); }
201+
QAction *QgisAppInterface::actionSplitFeatures() { return qgis->actionSplitFeatures(); }
202+
QAction *QgisAppInterface::actionAddVertex() { return qgis->actionAddVertex(); }
203+
QAction *QgisAppInterface::actionDelerteVertex() { return qgis->actionDelerteVertex(); }
204+
QAction *QgisAppInterface::actioMoveVertex() { return qgis->actioMoveVertex(); }
205+
QAction *QgisAppInterface::actionAddRing() { return qgis->actionAddRing(); }
206+
QAction *QgisAppInterface::actionAddIsland() { return qgis->actionAddIsland(); }
207+
QAction *QgisAppInterface::actionEditSeparator2() { return qgis->actionEditSeparator2(); }
208+
209+
//! View menu actions
210+
QAction *QgisAppInterface::actionPan() { return qgis->actionPan(); }
211+
QAction *QgisAppInterface::actionZoomIn() { return qgis->actionZoomIn(); }
212+
QAction *QgisAppInterface::actionZoomOut() { return qgis->actionZoomOut(); }
213+
QAction *QgisAppInterface::actionSelect() { return qgis->actionSelect(); }
214+
QAction *QgisAppInterface::actionIdentify() { return qgis->actionIdentify(); }
215+
QAction *QgisAppInterface::actionMeasure() { return qgis->actionMeasure(); }
216+
QAction *QgisAppInterface::actionMeasureArea() { return qgis->actionMeasureArea(); }
217+
QAction *QgisAppInterface::actionViewSeparator1() { return qgis->actionViewSeparator1(); }
218+
QAction *QgisAppInterface::actionZoomFullExtent() { return qgis->actionZoomFullExtent(); }
219+
QAction *QgisAppInterface::actionZoomToLayer() { return qgis->actionZoomToLayer(); }
220+
QAction *QgisAppInterface::actionZoomToSelected() { return qgis->actionZoomToSelected(); }
221+
QAction *QgisAppInterface::actionZoomLast() { return qgis->actionZoomLast(); }
222+
QAction *QgisAppInterface::actionZoomActualSize() { return qgis->actionZoomActualSize(); }
223+
QAction *QgisAppInterface::actionViewSeparator2() { return qgis->actionViewSeparator2(); }
224+
QAction *QgisAppInterface::actionMapTips() { return qgis->actionMapTips(); }
225+
QAction *QgisAppInterface::actionNewBookmark() { return qgis->actionNewBookmark(); }
226+
QAction *QgisAppInterface::actionShowBookmarks() { return qgis->actionShowBookmarks(); }
227+
QAction *QgisAppInterface::actionDraw() { return qgis->actionDraw(); }
228+
QAction *QgisAppInterface::actionViewSeparator3() { return qgis->actionViewSeparator3(); }
229+
230+
//! Layer menu actions
231+
QAction *QgisAppInterface::actionNewVectorLayer() { return qgis->actionNewVectorLayer(); }
232+
QAction *QgisAppInterface::actionAddOgrLayer() { return qgis->actionAddOgrLayer(); }
233+
QAction *QgisAppInterface::actionAddRasterLayer() { return qgis->actionAddRasterLayer(); }
234+
QAction *QgisAppInterface::actionAddPgLayer() { return qgis->actionAddPgLayer(); }
235+
QAction *QgisAppInterface::actionAddWmsLayer() { return qgis->actionAddWmsLayer(); }
236+
QAction *QgisAppInterface::actionLayerSeparator1() { return qgis->actionLayerSeparator1(); }
237+
QAction *QgisAppInterface::actionOpenTable() { return qgis->actionOpenTable(); }
238+
QAction *QgisAppInterface::actionToggleEditing() { return qgis->actionToggleEditing(); }
239+
QAction *QgisAppInterface::actionLayerSaveAs() { return qgis->actionLayerSaveAs(); }
240+
QAction *QgisAppInterface::actionLayerSelectionSaveAs() { return qgis->actionLayerSelectionSaveAs(); }
241+
QAction *QgisAppInterface::actionRemoveLayer() { return qgis->actionRemoveLayer(); }
242+
QAction *QgisAppInterface::actionLayerProperties() { return qgis->actionLayerProperties(); }
243+
QAction *QgisAppInterface::actionLayerSeparator2() { return qgis->actionLayerSeparator2(); }
244+
QAction *QgisAppInterface::actionAddToOverview() { return qgis->actionAddToOverview(); }
245+
QAction *QgisAppInterface::actionAddAllToOverview() { return qgis->actionAddAllToOverview(); }
246+
QAction *QgisAppInterface::actionRemoveAllFromOverview() { return qgis->actionRemoveAllFromOverview(); }
247+
QAction *QgisAppInterface::actionLayerSeparator3() { return qgis->actionLayerSeparator3(); }
248+
QAction *QgisAppInterface::actionHideAllLayers() { return qgis->actionHideAllLayers(); }
249+
QAction *QgisAppInterface::actionShowAllLayers() { return qgis->actionShowAllLayers(); }
250+
251+
//! Plugin menu actions
252+
QAction *QgisAppInterface::actionManagePlugins() { return qgis->actionManagePlugins(); }
253+
QAction *QgisAppInterface::actionPluginSeparator1() { return qgis->actionPluginSeparator1(); }
254+
QAction *QgisAppInterface::actionPluginListSeparator() { return qgis->actionPluginListSeparator(); }
255+
QAction *QgisAppInterface::actionPluginSeparator2() { return qgis->actionPluginSeparator2(); }
256+
QAction *QgisAppInterface::actionPluginPythonSeparator() { return qgis->actionPluginPythonSeparator(); }
257+
QAction *QgisAppInterface::actionShowPythonDialog() { return qgis->actionShowPythonDialog(); }
258+
259+
//! Settings menu actions
260+
QAction *QgisAppInterface::actionToggleFullScreen() { return qgis->actionToggleFullScreen(); }
261+
QAction *QgisAppInterface::actionSettingsSeparator1() { return qgis->actionSettingsSeparator1(); }
262+
QAction *QgisAppInterface::actionOptions() { return qgis->actionOptions(); }
263+
QAction *QgisAppInterface::actionCustomProjection() { return qgis->actionCustomProjection(); }
264+
265+
//! Help menu actions
266+
QAction *QgisAppInterface::actionHelpContents() { return qgis->actionHelpContents(); }
267+
QAction *QgisAppInterface::actionHelpSeparator1() { return qgis->actionHelpSeparator1(); }
268+
QAction *QgisAppInterface::actionQgisHomePage() { return qgis->actionQgisHomePage(); }
269+
QAction *QgisAppInterface::actionCheckQgisVersion() { return qgis->actionCheckQgisVersion(); }
270+
QAction *QgisAppInterface::actionHelpSeparator2() { return qgis->actionHelpSeparator2(); }
271+
QAction *QgisAppInterface::actionAbout() { return qgis->actionAbout(); }

0 commit comments

Comments
 (0)