TimeTracker/TimeTracker.py

changeset 2
058c6a316ca8
parent 1
a0beac325e5a
child 4
c67abfea9955
equal deleted inserted replaced
1:a0beac325e5a 2:058c6a316ca8
7 Module implementing the time tracker object. 7 Module implementing the time tracker object.
8 """ 8 """
9 9
10 import os 10 import os
11 11
12 from PyQt4.QtCore import pyqtSignal, QObject 12 from PyQt4.QtCore import QObject
13 13
14 from E5Gui.E5Application import e5App 14 from E5Gui.E5Application import e5App
15 from E5Gui import E5MessageBox 15 from E5Gui import E5MessageBox
16 16
17 from .TimeTrackEntry import TimeTrackEntry 17 from .TimeTrackEntry import TimeTrackEntry
18 from .TimeTrackerWidget import TimeTrackerWidget
19
20 import UI.PixmapCache
18 21
19 22
20 class TimeTracker(QObject): 23 class TimeTracker(QObject):
21 """ 24 """
22 Class implementing the time tracker object. 25 Class implementing the time tracker object.
23 """ 26 """
24 currentEntryChanged = pyqtSignal()
25
26 FileName = "TimeTracker.txt" 27 FileName = "TimeTracker.txt"
27 28
28 def __init__(self, plugin, parent=None): 29 def __init__(self, plugin, parent=None):
29 """ 30 """
30 Constructor 31 Constructor
37 self.__plugin = plugin 38 self.__plugin = plugin
38 self.__ui = parent 39 self.__ui = parent
39 40
40 self.__e5project = e5App().getObject("Project") 41 self.__e5project = e5App().getObject("Project")
41 42
43 self.__widget = TimeTrackerWidget(self)
44 self.__ui.addSideWidget(self.__ui.BottomSide, self.__widget,
45 UI.PixmapCache.getIcon(os.path.join("TimeTracker", "icons", "clock.png")),
46 self.tr("Time Tracker"))
47
42 self.__initialize() 48 self.__initialize()
43 49
44 def __initialize(self): 50 def __initialize(self):
45 """ 51 """
46 Public slot to initialize some member variables. 52 Public slot to initialize some member variables.
49 self.__trackerFilePath = '' 55 self.__trackerFilePath = ''
50 self.__projectOpen = False 56 self.__projectOpen = False
51 57
52 self.__entries = [] 58 self.__entries = []
53 self.__currentEntry = None 59 self.__currentEntry = None
60
61 self.__widget.clear()
54 62
55 def projectOpened(self): 63 def projectOpened(self):
56 """ 64 """
57 Public slot to handle the projectOpened signal. 65 Public slot to handle the projectOpened signal.
58 """ 66 """
64 self.__trackerFilePath = os.path.join( 72 self.__trackerFilePath = os.path.join(
65 self.__e5project.getProjectManagementDir(), 73 self.__e5project.getProjectManagementDir(),
66 TimeTracker.FileName) 74 TimeTracker.FileName)
67 75
68 self.__readTrackerEntries() 76 self.__readTrackerEntries()
77 self.__widget.showTrackerEntries(sorted(self.__entries, reverse=True))
69 78
70 self.__currentEntry = TimeTrackEntry() 79 self.__currentEntry = TimeTrackEntry()
71 self.__currentEntry.start() 80 self.__currentEntry.start()
72 self.currentEntryChanged.emit() 81 self.__widget.setCurrentEntry(self.__currentEntry)
73 82
74 def projectClosed(self): 83 def projectClosed(self):
75 """ 84 """
76 Public slot to handle the projectClosed signal. 85 Public slot to handle the projectClosed signal.
77 """ 86 """
165 self.__saveTrackerEntries() 174 self.__saveTrackerEntries()
166 175
167 # start a new time tracker entry 176 # start a new time tracker entry
168 self.__currentEntry = TimeTrackEntry() 177 self.__currentEntry = TimeTrackEntry()
169 self.__currentEntry.start() 178 self.__currentEntry.start()
170 self.currentEntryChanged.emit()

eric ide

mercurial