PluginTimeTracker.py

Sat, 20 Oct 2012 21:52:00 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 20 Oct 2012 21:52:00 +0200
changeset 7
6c769e2cc920
parent 1
a0beac325e5a
child 15
645506ab3376
permissions
-rw-r--r--

Added the configuration page.

1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
1 # -*- coding: utf-8 -*-
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
2
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
3 # Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de>
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
4 #
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
5
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
6 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
7 Module implementing the Time Tracker plugin.
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
8 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
9
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
10 import os
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
11
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
12 from PyQt4.QtCore import QObject, QTranslator, QCoreApplication
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
13
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
14 from E5Gui.E5Application import e5App
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
15
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
16 import Preferences
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
17
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
18 from TimeTracker.TimeTracker import TimeTracker
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
19
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
20 # Start-Of-Header
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
21 name = "Time Tracker Plugin"
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
22 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
23 autoactivate = True
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
24 deactivateable = True
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
25 version = "0.1.0"
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
26 className = "TimeTrackerPlugin"
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
27 packageName = "TimeTracker"
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
28 shortDescription = "Time Tracker to keep track of the project time."
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
29 longDescription = """This plugin implements a time tracker to keep track""" \
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
30 """ of the time used for a project. The time can be subdivided into tasks."""
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
31 needsRestart = False
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
32 pyqtApi = 2
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
33 # End-Of-Header
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
34
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
35 error = ""
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
36
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
37 timeTrackerPluginObject = None
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
38
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
39
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
40 def createTimeTrackerPage(configDlg):
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
41 """
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
42 Module function to create the Time Tracker configuration page.
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
43
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
44 @return reference to the configuration page
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
45 """
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
46 global timeTrackerPluginObject
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
47 from TimeTracker.ConfigurationPage.TimeTrackerPage import TimeTrackerPage
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
48 page = TimeTrackerPage(timeTrackerPluginObject)
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
49 return page
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
50
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
51
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
52 def getConfigData():
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
53 """
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
54 Module function returning data as required by the configuration dialog.
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
55
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
56 @return dictionary containing the relevant data
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
57 """
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
58 if e5App().getObject("UserInterface").versionIsNewer('5.2.99', '20121012'):
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
59 return {
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
60 "timeTrackerPage": \
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
61 [QCoreApplication.translate("TimeTrackerPlugin", "Time Tracker"),
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
62 os.path.join("TimeTracker", "icons",
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
63 "clock.png"),
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
64 createTimeTrackerPage, None, None],
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
65 }
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
66 else:
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
67 return {}
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
68
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
69
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
70 def prepareUninstall():
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
71 """
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
72 Module function to prepare for an uninstallation.
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
73 """
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
74 tracker = TimeTrackerPlugin(None)
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
75 tracker.prepareUninstall()
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
76
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
77
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
78 class TimeTrackerPlugin(QObject):
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
79 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
80 Class implementing the Eric assistant plugin.
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
81 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
82 def __init__(self, ui):
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
83 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
84 Constructor
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
85
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
86 @param ui reference to the user interface object (UI.UserInterface)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
87 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
88 QObject.__init__(self, ui)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
89 self.__ui = ui
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
90 self.__initialize()
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
91
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
92 self.__defaults = {
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
93 "MinimumDuration": 2,
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
94 "AutoSave": False,
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
95 "AllowDuplicates": False,
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
96 }
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
97
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
98 self.__translator = None
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
99 self.__loadTranslator()
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
100
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
101 self.__e5project = e5App().getObject("Project")
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
102
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
103 def __initialize(self):
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
104 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
105 Private slot to (re)initialize the plugin.
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
106 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
107 self.__object = None
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
108
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
109 def __checkVersions(self):
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
110 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
111 Private function to check that the eric5 version is ok.
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
112
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
113 @return flag indicating version is ok (boolean)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
114 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
115 global error
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
116
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
117 if self.__ui.versionIsNewer('5.2.99', '20121012'):
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
118 error = ""
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
119 else:
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
120 error = self.trUtf8("eric5 version is too old, {0}, {1} or newer needed.")\
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
121 .format("5.3.0", "20121012")
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
122 return False
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
123
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
124 return True
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
125
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
126 def activate(self):
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
127 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
128 Public method to activate this plugin.
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
129
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
130 @return tuple of None and activation status (boolean)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
131 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
132 global error
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
133 error = "" # clear previous error
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
134
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
135 if not self.__checkVersions():
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
136 return None, False
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
137
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
138 global timeTrackerPluginObject
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
139 timeTrackerPluginObject = self
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
140
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
141 self.__object = TimeTracker(self, self.__ui)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
142 ## self.__object.initActions()
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
143 e5App().registerPluginObject("TimeTracker", self.__object)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
144
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
145 if self.__e5project.isOpen():
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
146 self.__object.projectOpened()
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
147
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
148 self.__e5project.newProject.connect(self.__object.projectOpened)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
149 self.__e5project.projectOpened.connect(self.__object.projectOpened)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
150 self.__e5project.projectClosed.connect(self.__object.projectClosed)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
151
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
152 return None, True
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
153
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
154 def deactivate(self):
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
155 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
156 Public method to deactivate this plugin.
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
157 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
158 e5App().unregisterPluginObject("TimeTracker")
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
159
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
160 self.__e5project.newProject.disconnect(self.__object.projectOpened)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
161 self.__e5project.projectOpened.disconnect(self.__object.projectOpened)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
162 self.__e5project.projectClosed.disconnect(self.__object.projectClosed)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
163
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
164 self.__object.projectClosed()
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
165
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
166 self.__initialize()
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
167
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
168 def __loadTranslator(self):
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
169 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
170 Private method to load the translation file.
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
171 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
172 if self.__ui is not None:
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
173 loc = self.__ui.getLocale()
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
174 if loc and loc != "C":
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
175 locale_dir = \
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
176 os.path.join(os.path.dirname(__file__), "TimeTracker", "i18n")
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
177 translation = "timetracker_{0}".format(loc)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
178 translator = QTranslator(None)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
179 loaded = translator.load(translation, locale_dir)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
180 if loaded:
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
181 self.__translator = translator
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
182 e5App().installTranslator(self.__translator)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
183 else:
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
184 print("Warning: translation file '{0}' could not be loaded."\
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
185 .format(translation))
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
186 print("Using default.")
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
187
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
188 def getPreferences(self, key):
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
189 """
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
190 Public method to retrieve the various settings.
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
191
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
192 @param key the key of the value to get
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
193 @param prefClass preferences class used as the storage area
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
194 @return the requested setting
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
195 """
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
196 if key in ["MinimumDuration"]:
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
197 return int(Preferences.Prefs.settings.value("TimeTracker/" + key,
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
198 self.__defaults[key]))
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
199 elif key in ["AutoSave", "AllowDuplicates"]:
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
200 return Preferences.toBool(
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
201 Preferences.Prefs.settings.value("TimeTracker/" + key,
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
202 self.__defaults[key]))
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
203 else:
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
204 return Preferences.Prefs.settings.value("TimeTracker/" + key,
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
205 self.__defaults[key])
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
206
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
207 def setPreferences(self, key, value):
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
208 """
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
209 Public method to store the various settings.
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
210
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
211 @param key the key of the setting to be set (string)
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
212 @param value the value to be set
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
213 @param prefClass preferences class used as the storage area
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
214 """
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
215 Preferences.Prefs.settings.setValue("TimeTracker/" + key, value)
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
216
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
217 def prepareUninstall(self):
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
218 """
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
219 Public method to prepare for an uninstallation.
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
220 """
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
221 Preferences.Prefs.settings.remove("TimeTracker")

eric ide

mercurial