-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
59 lines (49 loc) · 1.93 KB
/
main.py
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
from qgis import utils
from qgis.utils import iface
import os
from PyQt5 import QtWidgets, QtGui, QtCore
from .widgets.newsFeedDock import NewsFeedDock
class Main(object):
def __init__(self, iface):
self.plugin_dir = os.path.dirname(__file__)
self.newsFeedAction = None
self.newsFeedDock = None
def initGui(self):
self.newsFeedAction = self.createAction(
'News Feed',
os.path.join(
os.path.abspath(os.path.join(
os.path.dirname(__file__)
)),
'icons',
'phone.png'
),
self.showNewsFeed
)
self.addActionDigitizeToolBar(self.newsFeedAction)
def createAction(self, name, iconPath, callback):
a = QtWidgets.QAction(
QtGui.QIcon(iconPath),
name,
iface.mainWindow()
)
a.triggered.connect(callback)
return a
def showNewsFeed(self):
self.removeDockWidget(self.newsFeedDock) if self.newsFeedDock else ''
self.newsFeedDock = NewsFeedDock()
self.addDockWidget(self.newsFeedDock, 'left')
def addDockWidget(self, dockWidget, side):
position = QtCore.Qt.RightDockWidgetArea if side == 'right' else QtCore.Qt.LeftDockWidgetArea
dockers = iface.mainWindow().findChildren(QtWidgets.QDockWidget)
tabify = [ d.objectName() for d in dockers ]
iface.addTabifiedDockWidget(position, dockWidget, tabify, True)
def removeDockWidget(self, dockWidget):
iface.removeDockWidget(dockWidget)
def addActionDigitizeToolBar(self, action):
iface.digitizeToolBar().addAction(action)
def removeActionDigitizeToolBar(self, action):
iface.digitizeToolBar().removeAction(action)
def unload(self):
self.removeActionDigitizeToolBar(self.newsFeedAction)
self.removeDockWidget(self.newsFeedDock) if self.newsFeedDock else ''