Skip to content

Commit dd2a422

Browse files
committed
Remove menu items when GDALtools plugin is unloaded (fixes #13642)
1 parent 62f90d0 commit dd2a422

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

python/plugins/GdalTools/GdalTools.py

+12-7
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@ def __init__(self, iface):
9090
self.translator.load(self.localePath)
9191
QCoreApplication.installTranslator(self.translator)
9292

93+
# The list of actions added to menus, so we can remove them when unloading the plugin
94+
self._menuActions = []
95+
9396
def initGui(self):
9497
if not valid:
9598
return
@@ -123,7 +126,7 @@ def initGui(self):
123126
menu_bar.insertMenu(lastAction, self.menu)
124127
else:
125128
self.menu = rasterMenu
126-
self.menu.addSeparator()
129+
self._menuActions.append(self.menu.addSeparator())
127130

128131
# projections menu (Warp (Reproject), Assign projection)
129132
self.projectionsMenu = QMenu(QCoreApplication.translate("GdalTools", "Projections"), self.iface.mainWindow())
@@ -280,25 +283,27 @@ def initGui(self):
280283

281284
self.miscellaneousMenu.addActions([self.merge, self.info, self.overview, self.tileindex])
282285

283-
self.menu.addMenu(self.projectionsMenu)
284-
self.menu.addMenu(self.conversionMenu)
285-
self.menu.addMenu(self.extractionMenu)
286+
self._menuActions.append(self.menu.addMenu(self.projectionsMenu))
287+
self._menuActions.append(self.menu.addMenu(self.conversionMenu))
288+
self._menuActions.append(self.menu.addMenu(self.extractionMenu))
286289

287290
if not self.analysisMenu.isEmpty():
288-
self.menu.addMenu(self.analysisMenu)
291+
self._menuActions.append(self.menu.addMenu(self.analysisMenu))
289292

290-
self.menu.addMenu(self.miscellaneousMenu)
293+
self._menuActions.append(self.menu.addMenu(self.miscellaneousMenu))
291294

292295
self.settings = QAction(QCoreApplication.translate("GdalTools", "GdalTools Settings..."), self.iface.mainWindow())
293296
self.settings.setObjectName("settings")
294297
self.settings.setStatusTip(QCoreApplication.translate("GdalTools", "Various settings for Gdal Tools"))
295298
QObject.connect(self.settings, SIGNAL("triggered()"), self.doSettings)
296299
self.menu.addAction(self.settings)
300+
self._menuActions.append(self.settings)
297301

298302
def unload(self):
299303
if not valid:
300304
return
301-
pass
305+
for a in self._menuActions:
306+
self.menu.removeAction(a)
302307

303308
def doBuildVRT(self):
304309
from tools.doBuildVRT import GdalToolsDialog as BuildVRT

0 commit comments

Comments
 (0)