--- a/PluginToolGenerateHash.py Sat Apr 26 15:43:08 2014 +0200 +++ b/PluginToolGenerateHash.py Sat Jul 12 13:08:43 2014 +0200 @@ -12,8 +12,8 @@ import os import hashlib -from PyQt4.QtCore import QObject, QTranslator -from PyQt4.QtGui import QMenu +from PyQt5.QtCore import QObject, QTranslator +from PyQt5.QtWidgets import QMenu from E5Gui.E5Application import e5App from E5Gui import E5FileDialog, E5MessageBox @@ -23,7 +23,7 @@ author = "Detlev Offenbach <detlev@die-offenbachs.de>" autoactivate = True deactivateable = True -version = "1.0.0" +version = "2.0.0" className = "ToolGenerateHashPlugin" packageName = "ToolGenerateHash" shortDescription = "Generate a hash for a selectable file or directory" @@ -138,6 +138,7 @@ self.__fileMenu.addAction("SHA256", self.__hashFile).setData("SHA256") self.__fileMenu.addAction("SHA384", self.__hashFile).setData("SHA384") self.__fileMenu.addAction("SHA512", self.__hashFile).setData("SHA512") + self.__fileMenu.setEnabled(False) self.__dirMenu = QMenu(self.tr("Generate Directory Hash")) self.__dirMenu.addAction( @@ -152,6 +153,7 @@ "SHA384", self.__hashDirectory).setData("SHA384") self.__dirMenu.addAction( "SHA512", self.__hashDirectory).setData("SHA512") + self.__dirMenu.setEnabled(False) def __populateMenu(self, name, menu): """ @@ -189,6 +191,9 @@ self.__editors[editor].append(act) act = menu.addMenu(self.__dirMenu) self.__editors[editor].append(act) + + self.__fileMenu.setEnabled(True) + self.__dirMenu.setEnabled(True) def __editorClosed(self, editor): """ @@ -198,6 +203,9 @@ """ try: del self.__editors[editor] + if not self.__editors: + self.__fileMenu.setEnabled(False) + self.__dirMenu.setEnabled(False) except KeyError: pass @@ -225,7 +233,7 @@ name = E5FileDialog.getOpenFileName( self.__ui, - self.trUtf8("Generate File Hash")) + self.tr("Generate File Hash")) if name: try: f = open(name, "rb") @@ -234,9 +242,9 @@ except (IOError, OSError) as err: E5MessageBox.critical( self.__ui, - self.trUtf8("Generate File Hash"), - self.trUtf8("""<p>The hash for <b>{0}</b> could not""" - """ be generated.</p><p>Reason: {1}</p>""") + self.tr("Generate File Hash"), + self.tr("""<p>The hash for <b>{0}</b> could not""" + """ be generated.</p><p>Reason: {1}</p>""") .format(name, str(err)) ) return @@ -253,7 +261,7 @@ folder = E5FileDialog.getExistingDirectory( self.__ui, - self.trUtf8("Generate Directory Hash"), + self.tr("Generate Directory Hash"), "", E5FileDialog.Options(E5FileDialog.Option(0))) if folder and os.path.isdir(folder): @@ -272,9 +280,9 @@ if fails: E5MessageBox.critical( self.__ui, - self.trUtf8("Generate Directory Hash"), - self.trUtf8("""<p>The hash for some files could not""" - """ be generated.</p>""") + self.tr("Generate Directory Hash"), + self.tr("""<p>The hash for some files could not""" + """ be generated.</p>""") ) else: editor = e5App().getObject("ViewManager").activeWindow()