TimeTracker/TimeTrackerWidget.py

changeset 2
058c6a316ca8
parent 1
a0beac325e5a
child 3
ce9309868f8a
diff -r a0beac325e5a -r 058c6a316ca8 TimeTracker/TimeTrackerWidget.py
--- a/TimeTracker/TimeTrackerWidget.py	Fri Oct 19 13:06:56 2012 +0200
+++ b/TimeTracker/TimeTrackerWidget.py	Fri Oct 19 15:54:12 2012 +0200
@@ -7,8 +7,8 @@
 Module implementing the time tracker widget.
 """
 
-from PyQt4.QtCore import pyqtSlot, QPoint
-from PyQt4.QtGui import QWidget, QMenu
+from PyQt4.QtCore import pyqtSlot, QPoint, Qt, QDate, QTime
+from PyQt4.QtGui import QWidget, QMenu, QTreeWidgetItem, QCursor
 
 from .Ui_TimeTrackerWidget import Ui_TimeTrackerWidget
 
@@ -79,6 +79,7 @@
         menu.addAction(self.tr("Import"), self.__importEntries)
         menu.addAction(self.tr("Export Selected"), self.__exportSelectedEntries)
         menu.addAction(self.tr("Export All"), self.__exportAllEntries)
+        menu.exec_(QCursor.pos())
     
     def __editEntry(self):
         """
@@ -121,3 +122,55 @@
         """
         # TODO: not implemented yet
         raise NotImplementedError
+    
+    def __insertEntry(self, entry, index=-1):
+        """
+        Private method to insert a tracker entry into the list.
+        
+        @param entry reference to the tracker entry (TimeTrackEntry)
+        @param index index the entry is to be inserted; -1 for at the end
+            (integer)
+        """
+        date, time, duration, task, comment, paused = entry.getEntryData()
+        itm = QTreeWidgetItem(
+            ["{0}, {1}".format(date, time), str(duration), task, comment])
+        itm.setTextAlignment(1, Qt.AlignRight)
+        if index == -1:
+            self.entriesList.addTopLevelItem(itm)
+        else:
+            self.entriesList.insertTopLevelItem(index, itm)
+    
+    def showTrackerEntries(self, entries):
+        """
+        Public method to show the tracker entries of the current project.
+        
+        @param entries list of tracker entries (list of TimeTrackEntry)
+        """
+        for entry in entries:
+            self.__insertEntry(entry)
+        for column in range(self.entriesList.columnCount()):
+            self.entriesList.resizeColumnToContents(column)
+    
+    def setCurrentEntry(self, entry):
+        """
+        Public method to set the current entry.
+        
+        @param entry current entry (TimeTrackEntry)
+        """
+        self.__insertEntry(entry, 0)
+        date, time, duration, task, comment, paused = entry.getEntryData()
+        self.startDateTimeEdit.setDateTime(entry.getStartDateTime())
+        self.durationSpinBox.setValue(duration)
+        self.taskCombo.setEditText(task)
+        self.commentCombo.setEditText(comment)
+    
+    def clear(self):
+        """
+        Public method to clear all the data.
+        """
+        self.entriesList.clear()
+        self.startDateTimeEdit.setDate(QDate(2000, 1, 1))
+        self.startDateTimeEdit.setTime(QTime(0, 0, 0))
+        self.durationSpinBox.setValue(0)
+        self.taskCombo.clear()
+        self.commentCombo.clear()

eric ide

mercurial