99 pluginName = self.pluginNameCombo.currentText() |
99 pluginName = self.pluginNameCombo.currentText() |
100 pluginFile = self.pluginNameCombo\ |
100 pluginFile = self.pluginNameCombo\ |
101 .itemData(self.pluginNameCombo.currentIndex()) |
101 .itemData(self.pluginNameCombo.currentIndex()) |
102 |
102 |
103 if not self.__pluginManager.unloadPlugin(pluginName): |
103 if not self.__pluginManager.unloadPlugin(pluginName): |
104 E5MessageBox.critical(self, |
104 E5MessageBox.critical( |
|
105 self, |
105 self.trUtf8("Plugin Uninstallation"), |
106 self.trUtf8("Plugin Uninstallation"), |
106 self.trUtf8( |
107 self.trUtf8( |
107 """<p>The plugin <b>{0}</b> could not be unloaded.""" |
108 """<p>The plugin <b>{0}</b> could not be unloaded.""" |
108 """ Aborting...</p>""").format(pluginName)) |
109 """ Aborting...</p>""").format(pluginName)) |
109 return False |
110 return False |
110 |
111 |
111 if not pluginDirectory in sys.path: |
112 if not pluginDirectory in sys.path: |
112 sys.path.insert(2, pluginDirectory) |
113 sys.path.insert(2, pluginDirectory) |
113 module = imp.load_source(pluginName, pluginFile) |
114 module = imp.load_source(pluginName, pluginFile) |
114 if not hasattr(module, "packageName"): |
115 if not hasattr(module, "packageName"): |
115 E5MessageBox.critical(self, |
116 E5MessageBox.critical( |
|
117 self, |
116 self.trUtf8("Plugin Uninstallation"), |
118 self.trUtf8("Plugin Uninstallation"), |
117 self.trUtf8( |
119 self.trUtf8( |
118 """<p>The plugin <b>{0}</b> has no 'packageName'""" |
120 """<p>The plugin <b>{0}</b> has no 'packageName'""" |
119 """ attribute. Aborting...</p>""").format(pluginName)) |
121 """ attribute. Aborting...</p>""").format(pluginName)) |
120 return False |
122 return False |
162 pluginDirCache, "{0}*.pyc".format(pluginFileName))): |
164 pluginDirCache, "{0}*.pyc".format(pluginFileName))): |
163 os.remove(fnamec) |
165 os.remove(fnamec) |
164 |
166 |
165 os.remove(pluginFile) |
167 os.remove(pluginFile) |
166 except OSError as err: |
168 except OSError as err: |
167 E5MessageBox.critical(self, |
169 E5MessageBox.critical( |
|
170 self, |
168 self.trUtf8("Plugin Uninstallation"), |
171 self.trUtf8("Plugin Uninstallation"), |
169 self.trUtf8( |
172 self.trUtf8( |
170 """<p>The plugin package <b>{0}</b> could not be""" |
173 """<p>The plugin package <b>{0}</b> could not be""" |
171 """ removed. Aborting...</p>""" |
174 """ removed. Aborting...</p>""" |
172 """<p>Reason: {1}</p>""").format(packageDir, str(err))) |
175 """<p>Reason: {1}</p>""").format(packageDir, str(err))) |
181 """<p>The plugin <b>{0}</b> was uninstalled successfully""" |
184 """<p>The plugin <b>{0}</b> was uninstalled successfully""" |
182 """ from {1}.</p>""")\ |
185 """ from {1}.</p>""")\ |
183 .format(pluginName, pluginDirectory)) |
186 .format(pluginName, pluginDirectory)) |
184 return True |
187 return True |
185 |
188 |
186 E5MessageBox.information(self, |
189 E5MessageBox.information( |
|
190 self, |
187 self.trUtf8("Plugin Uninstallation"), |
191 self.trUtf8("Plugin Uninstallation"), |
188 self.trUtf8( |
192 self.trUtf8( |
189 """<p>The plugin <b>{0}</b> was uninstalled successfully""" |
193 """<p>The plugin <b>{0}</b> was uninstalled successfully""" |
190 """ from {1}.</p>""")\ |
194 """ from {1}.</p>""")\ |
191 .format(pluginName, pluginDirectory)) |
195 .format(pluginName, pluginDirectory)) |