PluginPySide2PyQt.py

changeset 36
fa0e373b6c3c
parent 34
e05ffd5b998b
child 38
a93172e31adb
equal deleted inserted replaced
35:9b8861da76ea 36:fa0e373b6c3c
19 # Start-Of-Header 19 # Start-Of-Header
20 name = "PySide to PyQt (and vice versa) Plug-in" 20 name = "PySide to PyQt (and vice versa) Plug-in"
21 author = "Detlev Offenbach <detlev@die-offenbachs.de>" 21 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
22 autoactivate = True 22 autoactivate = True
23 deactivateable = True 23 deactivateable = True
24 version = "2.0.3" 24 version = "2.1.0"
25 className = "PySide2PyQtPlugin" 25 className = "PySide2PyQtPlugin"
26 packageName = "PySide2PyQt" 26 packageName = "PySide2PyQt"
27 shortDescription = "Convert PySide file to PyQt and vice versa" 27 shortDescription = "Convert PySide file to PyQt and vice versa"
28 longDescription = \ 28 longDescription = \
29 """This plug-in implements a tool to convert a PySide file""" \ 29 """This plug-in implements a tool to convert a PySide file""" \
54 self.__loadTranslator() 54 self.__loadTranslator()
55 55
56 self.__initMenu() 56 self.__initMenu()
57 57
58 self.__editors = {} 58 self.__editors = {}
59 self.__mainActions = []
59 60
60 def activate(self): 61 def activate(self):
61 """ 62 """
62 Public method to activate this plugin. 63 Public method to activate this plugin.
63 64
65 """ 66 """
66 global error 67 global error
67 error = "" # clear previous error 68 error = "" # clear previous error
68 69
69 self.__ui.showMenu.connect(self.__populateMenu) 70 self.__ui.showMenu.connect(self.__populateMenu)
71
72 menu = self.__ui.getMenu("plugin_tools")
73 if menu is not None:
74 if not menu.isEmpty():
75 act = menu.addSeparator()
76 self.__mainActions.append(act)
77 act = menu.addMenu(self.__menu)
78 self.__mainActions.append(act)
70 79
71 e5App().getObject("ViewManager").editorOpenedEd.connect( 80 e5App().getObject("ViewManager").editorOpenedEd.connect(
72 self.__editorOpened) 81 self.__editorOpened)
73 e5App().getObject("ViewManager").editorClosedEd.connect( 82 e5App().getObject("ViewManager").editorClosedEd.connect(
74 self.__editorClosed) 83 self.__editorClosed)
82 """ 91 """
83 Public method to deactivate this plugin. 92 Public method to deactivate this plugin.
84 """ 93 """
85 self.__ui.showMenu.disconnect(self.__populateMenu) 94 self.__ui.showMenu.disconnect(self.__populateMenu)
86 95
96 menu = self.__ui.getMenu("plugin_tools")
97 if menu is not None:
98 for act in self.__mainActions:
99 menu.removeAction(act)
100 self.__mainActions = []
101
87 e5App().getObject("ViewManager").editorOpenedEd.disconnect( 102 e5App().getObject("ViewManager").editorOpenedEd.disconnect(
88 self.__editorOpened) 103 self.__editorOpened)
89 e5App().getObject("ViewManager").editorClosedEd.disconnect( 104 e5App().getObject("ViewManager").editorClosedEd.disconnect(
90 self.__editorClosed) 105 self.__editorClosed)
91 106
137 Private slot to populate the tools menu with our entries. 152 Private slot to populate the tools menu with our entries.
138 153
139 @param name name of the menu (string) 154 @param name name of the menu (string)
140 @param menu reference to the menu to be populated (QMenu) 155 @param menu reference to the menu to be populated (QMenu)
141 """ 156 """
142 if name != "Tools": 157 if name not in ["Tools", "PluginTools"]:
143 return 158 return
144 159
145 editor = e5App().getObject("ViewManager").activeWindow() 160 editor = e5App().getObject("ViewManager").activeWindow()
146 161
147 if not menu.isEmpty(): 162 if name == "Tools":
148 menu.addSeparator() 163 if not menu.isEmpty():
149 164 menu.addSeparator()
150 act = menu.addMenu(self.__menu) 165 act = menu.addMenu(self.__menu)
151 act.setEnabled(editor is not None) 166 act.setEnabled(editor is not None)
167 elif name == "PluginTools" and self.__mainActions:
168 self.__mainActions[-1].setEnabled(editor is not None)
152 169
153 def __editorOpened(self, editor): 170 def __editorOpened(self, editor):
154 """ 171 """
155 Private slot called, when a new editor was opened. 172 Private slot called, when a new editor was opened.
156 173

eric ide

mercurial