--- a/TimeTracker/TimeTrackerWidget.py Thu Apr 24 19:22:51 2014 +0200 +++ b/TimeTracker/TimeTrackerWidget.py Sat Jul 12 16:29:25 2014 +0200 @@ -11,8 +11,9 @@ import os -from PyQt4.QtCore import pyqtSlot, QPoint, Qt, QDate, QTime, QFileInfo -from PyQt4.QtGui import QWidget, QMenu, QTreeWidgetItem, QCursor, QDialog +from PyQt5.QtCore import pyqtSlot, QPoint, Qt, QDate, QTime, QFileInfo +from PyQt5.QtGui import QCursor +from PyQt5.QtWidgets import QWidget, QMenu, QTreeWidgetItem, QDialog from E5Gui import E5MessageBox, E5FileDialog @@ -127,10 +128,18 @@ """ menu = QMenu() - menu.addAction(self.tr("Edit"), self.__editEntry).setEnabled( - len(self.entriesList.selectedItems()) == 1) + act = menu.addAction(self.tr("Edit"), self.__editEntry) + act.setEnabled( + len(self.entriesList.selectedItems()) == 1 and + self.entriesList.selectedItems()[0].data(0, Qt.UserRole) > -1 + ) menu.addAction(self.tr("Add"), self.__addEntry) - menu.addAction(self.tr("Delete"), self.__deleteSelectedEntries) + act = menu.addAction(self.tr("Delete"), self.__deleteSelectedEntries) + act.setEnabled( + (len(self.entriesList.selectedItems()) == 1 and + self.entriesList.selectedItems()[0].data(0, Qt.UserRole) > -1) or + len(self.entriesList.selectedItems()) > 1 + ) menu.addSeparator() menu.addAction(self.tr("Save"), self.__saveEntries) menu.addSeparator() @@ -204,9 +213,9 @@ """ res = E5MessageBox.yesNo( self, - self.trUtf8("Delete Selected Entries"), - self.trUtf8("""Do you really want to delete the selected""" - """ entries?""")) + self.tr("Delete Selected Entries"), + self.tr("""Do you really want to delete the selected""" + """ entries?""")) if res: for item in self.entriesList.selectedItems(): eid = item.data(0, Qt.UserRole) @@ -231,16 +240,16 @@ Utilities.getHomeDir() fname = E5FileDialog.getOpenFileName( None, - self.trUtf8("Import Tracker Entries"), + self.tr("Import Tracker Entries"), path, - self.trUtf8("Text Files (*.txt);;All Files (*)")) + self.tr("Text Files (*.txt);;All Files (*)")) if fname: fname = Utilities.toNativeSeparators(fname) if not os.path.exists(fname): E5MessageBox.critical( self, - self.trUtf8("Import Tracker Entries"), - self.trUtf8("<p>The file <b>{0}</b> does not exist.</p>") + self.tr("Import Tracker Entries"), + self.tr("<p>The file <b>{0}</b> does not exist.</p>") .format(fname)) return @@ -256,7 +265,7 @@ Utilities.getHomeDir() fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( self, - self.trUtf8("Export Tracker Entries"), + self.tr("Export Tracker Entries"), path, self.tr("Text Files (*.txt);;All Files (*)"), None, @@ -270,9 +279,9 @@ if QFileInfo(fname).exists(): res = E5MessageBox.yesNo( self, - self.trUtf8("Export Tracker Entries"), - self.trUtf8("<p>The file <b>{0}</b> already exists." - " Overwrite it?</p>").format(fname), + self.tr("Export Tracker Entries"), + self.tr("<p>The file <b>{0}</b> already exists." + " Overwrite it?</p>").format(fname), icon=E5MessageBox.Warning) if not res: return @@ -298,10 +307,10 @@ """ res = E5MessageBox.yesNo( self, - self.trUtf8("Remove Duplicate Tracker Entries"), - self.trUtf8("""Are you sure you want to remove duplicate""" - """ tracker entries? Only the one with the longest""" - """ duration will be kept.""")) + self.tr("Remove Duplicate Tracker Entries"), + self.tr("""Are you sure you want to remove duplicate""" + """ tracker entries? Only the one with the longest""" + """ duration will be kept.""")) if res: self.__tracker.removeDuplicateTrackerEntries() @@ -311,10 +320,10 @@ """ res = E5MessageBox.yesNo( self, - self.trUtf8("Merge Duplicate Tracker Entries"), - self.trUtf8("""Are you sure you want to merge duplicate""" - """ tracker entries? The durations of duplicate""" - """ ones will be added.""")) + self.tr("Merge Duplicate Tracker Entries"), + self.tr("""Are you sure you want to merge duplicate""" + """ tracker entries? The durations of duplicate""" + """ ones will be added.""")) if res: self.__tracker.mergeDuplicateTrackerEntries()