TimeTracker/TimeTrackerWidget.py

changeset 3
ce9309868f8a
parent 2
058c6a316ca8
child 4
c67abfea9955
--- a/TimeTracker/TimeTrackerWidget.py	Fri Oct 19 15:54:12 2012 +0200
+++ b/TimeTracker/TimeTrackerWidget.py	Fri Oct 19 22:26:57 2012 +0200
@@ -17,6 +17,10 @@
     """
     Class implementing the time tracker widget.
     """
+    DurationColumn = 1
+    TaskColumn = 2
+    CommentColumn = 3
+    
     def __init__(self, tracker, parent=None):
         """
         Constructor
@@ -30,28 +34,49 @@
         self.__tracker = tracker
     
     @pyqtSlot(str)
-    def on_taskCombo_editTextChanged(self, p0):
+    def on_taskCombo_editTextChanged(self, txt):
+        """
+        Private slot handling changes of the task description of the current entry.
+        
+        @param txt new task description (string)
         """
-        Slot documentation goes here.
-        """
-        # TODO: not implemented yet
-        raise NotImplementedError
+        itm = self.entriesList.topLevelItem(0)
+        itm.setText(self.TaskColumn, txt)
+        self.entriesList.resizeColumnToContents(self.TaskColumn)
+        
+        entry = self.__tracker.getCurrentEntry()
+        entry.setTask(txt)
     
     @pyqtSlot(str)
-    def on_commentCombo_editTextChanged(self, p0):
+    def on_commentCombo_editTextChanged(self, txt):
+        """
+        Private slot handling changes of the comment of the current entry.
+        
+        @param txt new comment (string)
         """
-        Slot documentation goes here.
-        """
-        # TODO: not implemented yet
-        raise NotImplementedError
+        itm = self.entriesList.topLevelItem(0)
+        itm.setText(self.CommentColumn, txt)
+        self.entriesList.resizeColumnToContents(self.CommentColumn)
+        
+        entry = self.__tracker.getCurrentEntry()
+        entry.setComment(txt)
     
     @pyqtSlot(bool)
     def on_pauseButton_toggled(self, checked):
         """
-        Slot documentation goes here.
+        Private slot to pause the current timing.
         """
-        # TODO: not implemented yet
-        raise NotImplementedError
+        if checked:
+            self.__tracker.pauseTrackerEntry()
+            
+            entry = self.__tracker.getCurrentEntry()
+            duration = entry.getDuration()
+            
+            itm = self.entriesList.topLevelItem(0)
+            itm.setText(self.DurationColumn, str(duration))
+            self.entriesList.resizeColumnToContents(self.CommentColumn)
+        else:
+            self.__tracker.continueTrackerEntry()
     
     @pyqtSlot()
     def on_newButton_clicked(self):
@@ -140,6 +165,13 @@
         else:
             self.entriesList.insertTopLevelItem(index, itm)
     
+    def __resizeColumns(self):
+        """
+        Private slot to resize the columns of the entries list.
+        """
+        for column in range(self.entriesList.columnCount()):
+            self.entriesList.resizeColumnToContents(column)
+    
     def showTrackerEntries(self, entries):
         """
         Public method to show the tracker entries of the current project.
@@ -148,8 +180,7 @@
         """
         for entry in entries:
             self.__insertEntry(entry)
-        for column in range(self.entriesList.columnCount()):
-            self.entriesList.resizeColumnToContents(column)
+        self.__resizeColumns()
     
     def setCurrentEntry(self, entry):
         """
@@ -158,6 +189,8 @@
         @param entry current entry (TimeTrackEntry)
         """
         self.__insertEntry(entry, 0)
+        self.__resizeColumns()
+        
         date, time, duration, task, comment, paused = entry.getEntryData()
         self.startDateTimeEdit.setDateTime(entry.getStartDateTime())
         self.durationSpinBox.setValue(duration)

eric ide

mercurial