-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathplugin.py
More file actions
38 lines (29 loc) · 1.18 KB
/
Copy pathplugin.py
File metadata and controls
38 lines (29 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# plugin.py
from qgis.PyQt.QtWidgets import QAction # type: ignore
from qgis.PyQt.QtCore import Qt, QCoreApplication # type: ignore
from .ui.main_dock import RockMorphDock
def tr(message):
return QCoreApplication.translate("RockMorph", message)
class RockMorphPlugin:
def __init__(self, iface):
self.iface = iface
self.dock = None
def initGui(self):
self.action = QAction(tr("Open RockMorph"), self.iface.mainWindow())
self.action.triggered.connect(self.run)
self.iface.addToolBarIcon(self.action)
def unload(self):
self.iface.removeToolBarIcon(self.action)
if self.dock:
# Cleanup all panels before removing dock
for panel in self.dock._panels.values():
if hasattr(panel, 'cleanup'):
print(f"Cleaning up panel: {type(panel).__name__}")
panel.cleanup()
self.iface.removeDockWidget(self.dock)
self.dock = None
def run(self):
if self.dock is None:
self.dock = RockMorphDock(self.iface, self.iface.mainWindow())
self.iface.addDockWidget(Qt.RightDockWidgetArea, self.dock)
self.dock.show()