PluginTimeTracker.py

changeset 42
37049a04b8fa
parent 36
d3312087bb1d
child 44
fe7ddb709c6a
equal deleted inserted replaced
41:21b31f1308ab 42:37049a04b8fa
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 = ""
41 43
42 def createTimeTrackerPage(configDlg): 44 def createTimeTrackerPage(configDlg):
43 """ 45 """
44 Module function to create the Time Tracker configuration page. 46 Module function to create the Time Tracker configuration page.
45 47
48 @param configDlg reference to the configuration dialog
46 @return reference to the configuration page 49 @return reference to the configuration page
47 """ 50 """
48 global timeTrackerPluginObject 51 global timeTrackerPluginObject
49 from TimeTracker.ConfigurationPage.TimeTrackerPage import TimeTrackerPage 52 from TimeTracker.ConfigurationPage.TimeTrackerPage import TimeTrackerPage
50 page = TimeTrackerPage(timeTrackerPluginObject) 53 page = TimeTrackerPage(timeTrackerPluginObject)
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
118 global error 121 global error
119 122
120 if self.__ui.versionIsNewer('5.2.99', '20121102'): 123 if self.__ui.versionIsNewer('5.2.99', '20121102'):
121 error = "" 124 error = ""
122 else: 125 else:
123 error = self.trUtf8("eric5 version is too old, {0}, {1} or newer needed.")\ 126 error = self.trUtf8("eric5 version is too old, {0}, {1} or newer"
124 .format("5.3.0", "20121103") 127 " needed.").format("5.3.0", "20121103")
125 return False 128 return False
126 129
127 return True 130 return True
128 131
129 def activate(self): 132 def activate(self):
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)

eric ide

mercurial