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 """ |