22 # Start-Of-Header |
22 # Start-Of-Header |
23 name = "Time Tracker Plugin" |
23 name = "Time Tracker Plugin" |
24 author = "Detlev Offenbach <detlev@die-offenbachs.de>" |
24 author = "Detlev Offenbach <detlev@die-offenbachs.de>" |
25 autoactivate = True |
25 autoactivate = True |
26 deactivateable = True |
26 deactivateable = True |
27 version = "1.2.0" |
27 version = "1.2.1" |
28 className = "TimeTrackerPlugin" |
28 className = "TimeTrackerPlugin" |
29 packageName = "TimeTracker" |
29 packageName = "TimeTracker" |
30 shortDescription = "Time Tracker to keep track of the project time." |
30 shortDescription = "Time Tracker to keep track of the project time." |
31 longDescription = """This plug-in implements a time tracker to keep track""" \ |
31 longDescription = \ |
32 """ of the time used for a project. The time can be subdivided into tasks.""" |
32 """This plug-in implements a time tracker to keep track""" \ |
|
33 """ of the time used for a project. The time can be subdivided""" \ |
|
34 """ into tasks.""" |
33 needsRestart = False |
35 needsRestart = False |
34 pyqtApi = 2 |
36 pyqtApi = 2 |
35 # End-Of-Header |
37 # End-Of-Header |
36 |
38 |
37 error = "" |
39 error = "" |
57 |
60 |
58 @return dictionary containing the relevant data |
61 @return dictionary containing the relevant data |
59 """ |
62 """ |
60 if e5App().getObject("UserInterface").versionIsNewer('5.2.99', '20121012'): |
63 if e5App().getObject("UserInterface").versionIsNewer('5.2.99', '20121012'): |
61 return { |
64 return { |
62 "timeTrackerPage": \ |
65 "timeTrackerPage": [ |
63 [QCoreApplication.translate("TimeTrackerPlugin", "Time Tracker"), |
66 QCoreApplication.translate("TimeTrackerPlugin", |
64 os.path.join("TimeTracker", "icons", |
67 "Time Tracker"), |
65 "clock.png"), |
68 os.path.join("TimeTracker", "icons", "clock.png"), |
66 createTimeTrackerPage, None, None], |
69 createTimeTrackerPage, None, None], |
67 } |
70 } |
68 else: |
71 else: |
69 return {} |
72 return {} |
70 |
73 |
71 |
74 |
174 Private method to load the translation file. |
177 Private method to load the translation file. |
175 """ |
178 """ |
176 if self.__ui is not None: |
179 if self.__ui is not None: |
177 loc = self.__ui.getLocale() |
180 loc = self.__ui.getLocale() |
178 if loc and loc != "C": |
181 if loc and loc != "C": |
179 locale_dir = \ |
182 locale_dir = os.path.join( |
180 os.path.join(os.path.dirname(__file__), "TimeTracker", "i18n") |
183 os.path.dirname(__file__), "TimeTracker", "i18n") |
181 translation = "timetracker_{0}".format(loc) |
184 translation = "timetracker_{0}".format(loc) |
182 translator = QTranslator(None) |
185 translator = QTranslator(None) |
183 loaded = translator.load(translation, locale_dir) |
186 loaded = translator.load(translation, locale_dir) |
184 if loaded: |
187 if loaded: |
185 self.__translator = translator |
188 self.__translator = translator |
186 e5App().installTranslator(self.__translator) |
189 e5App().installTranslator(self.__translator) |
187 else: |
190 else: |
188 print("Warning: translation file '{0}' could not be loaded."\ |
191 print("Warning: translation file '{0}' could not be" |
189 .format(translation)) |
192 " loaded.".format(translation)) |
190 print("Using default.") |
193 print("Using default.") |
191 |
194 |
192 def getPreferences(self, key): |
195 def getPreferences(self, key): |
193 """ |
196 """ |
194 Public method to retrieve the various settings. |
197 Public method to retrieve the various settings. |
195 |
198 |
196 @param key the key of the value to get |
199 @param key the key of the value to get |
197 @return the requested setting |
200 @return the requested setting |
198 """ |
201 """ |
199 if key in ["MinimumDuration"]: |
202 if key in ["MinimumDuration"]: |
200 return int(Preferences.Prefs.settings.value(self.PreferencesKey + "/" + key, |
203 return int(Preferences.Prefs.settings.value( |
201 self.__defaults[key])) |
204 self.PreferencesKey + "/" + key, self.__defaults[key])) |
202 elif key in ["AutoSave", "AllowDuplicates"]: |
205 elif key in ["AutoSave", "AllowDuplicates"]: |
203 return Preferences.toBool( |
206 return Preferences.toBool( |
204 Preferences.Prefs.settings.value(self.PreferencesKey + "/" + key, |
207 Preferences.Prefs.settings.value( |
205 self.__defaults[key])) |
208 self.PreferencesKey + "/" + key, self.__defaults[key])) |
206 else: |
209 else: |
207 return Preferences.Prefs.settings.value(self.PreferencesKey + "/" + key, |
210 return Preferences.Prefs.settings.value( |
208 self.__defaults[key]) |
211 self.PreferencesKey + "/" + key, self.__defaults[key]) |
209 |
212 |
210 def setPreferences(self, key, value): |
213 def setPreferences(self, key, value): |
211 """ |
214 """ |
212 Public method to store the various settings. |
215 Public method to store the various settings. |
213 |
216 |
214 @param key the key of the setting to be set (string) |
217 @param key the key of the setting to be set (string) |
215 @param value the value to be set |
218 @param value the value to be set |
216 @param prefClass preferences class used as the storage area |
219 """ |
217 """ |
220 Preferences.Prefs.settings.setValue( |
218 Preferences.Prefs.settings.setValue(self.PreferencesKey + "/" + key, value) |
221 self.PreferencesKey + "/" + key, value) |