PluginTimeTracker.py

Wed, 02 Jan 2013 11:18:15 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 02 Jan 2013 11:18:15 +0100
changeset 31
db0afa672b75
parent 29
92db96274dd3
child 32
c08e1fec23a9
permissions
-rw-r--r--

Updated copyright for 2013 and corrected the contents of the top level __init__.py to include a proper copyright header and descrption.

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
31
db0afa672b75 Updated copyright for 2013 and corrected the contents of the top level __init__.py to include a proper copyright header and descrption.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 29
diff changeset
3 # Copyright (c) 2012 - 2013 Detlev Offenbach <detlev@die-offenbachs.de>
1
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
24
d6933cb59a4a Added Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
25 version = "0.3.0"
1
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."
18
73bd1fdd7102 Finalised the first development release.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 15
diff changeset
29 longDescription = """This plug-in implements a time tracker to keep track""" \
1
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 """
26
08e308c7a85d Fixed a bug related to uninstalling the plug-in via the external plug-in uninstaller.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
74 Preferences.Prefs.settings.remove(TimeTrackerPlugin.PreferencesKey)
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
75
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
76
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
77 class TimeTrackerPlugin(QObject):
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
78 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
79 Class implementing the Eric assistant plugin.
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
80 """
26
08e308c7a85d Fixed a bug related to uninstalling the plug-in via the external plug-in uninstaller.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
81 PreferencesKey = "TimeTracker"
08e308c7a85d Fixed a bug related to uninstalling the plug-in via the external plug-in uninstaller.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
82
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
83 def __init__(self, ui):
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
84 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
85 Constructor
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
86
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
87 @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
88 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
89 QObject.__init__(self, ui)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
90 self.__ui = ui
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
91 self.__initialize()
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
92
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
93 self.__defaults = {
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
94 "MinimumDuration": 2,
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
95 "AutoSave": False,
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
96 "AllowDuplicates": False,
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
97 }
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
98
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
99 self.__translator = None
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
100 self.__loadTranslator()
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
101
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
102 def __initialize(self):
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
103 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
104 Private slot to (re)initialize the plugin.
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
105 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
106 self.__object = None
26
08e308c7a85d Fixed a bug related to uninstalling the plug-in via the external plug-in uninstaller.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
107
08e308c7a85d Fixed a bug related to uninstalling the plug-in via the external plug-in uninstaller.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
108 self.__e5project = e5App().getObject("Project")
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
109
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
110 def __checkVersions(self):
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
111 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
112 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
113
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
114 @return flag indicating version is ok (boolean)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
115 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
116 global error
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
117
21
28b7956c9608 Fixed a few bugs and added actions to activate the time tracker window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
118 if self.__ui.versionIsNewer('5.2.99', '20121102'):
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
119 error = ""
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
120 else:
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
121 error = self.trUtf8("eric5 version is too old, {0}, {1} or newer needed.")\
21
28b7956c9608 Fixed a few bugs and added actions to activate the time tracker window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
122 .format("5.3.0", "20121103")
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
123 return False
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
124
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
125 return True
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
126
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
127 def activate(self):
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
128 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
129 Public method to activate this plugin.
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
130
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
131 @return tuple of None and activation status (boolean)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
132 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
133 global error
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
134 error = "" # clear previous error
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
135
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
136 if not self.__checkVersions():
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
137 return None, False
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
138
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
139 global timeTrackerPluginObject
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
140 timeTrackerPluginObject = self
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
141
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
142 self.__object = TimeTracker(self, self.__ui)
21
28b7956c9608 Fixed a few bugs and added actions to activate the time tracker window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
143 self.__object.activate()
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
144 e5App().registerPluginObject("TimeTracker", self.__object)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
145
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
146 if self.__e5project.isOpen():
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
147 self.__object.projectOpened()
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
148
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
149 self.__e5project.newProject.connect(self.__object.projectOpened)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
150 self.__e5project.projectOpened.connect(self.__object.projectOpened)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
151 self.__e5project.projectClosed.connect(self.__object.projectClosed)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
152
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
153 return None, True
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
154
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
155 def deactivate(self):
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
156 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
157 Public method to deactivate this plugin.
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
158 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
159 e5App().unregisterPluginObject("TimeTracker")
21
28b7956c9608 Fixed a few bugs and added actions to activate the time tracker window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
160 self.__object.deactivate()
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
161
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
162 self.__e5project.newProject.disconnect(self.__object.projectOpened)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
163 self.__e5project.projectOpened.disconnect(self.__object.projectOpened)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
164 self.__e5project.projectClosed.disconnect(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.__object.projectClosed()
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 self.__initialize()
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 def __loadTranslator(self):
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 Private method to load the translation file.
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
173 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
174 if self.__ui is not None:
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
175 loc = self.__ui.getLocale()
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
176 if loc and loc != "C":
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
177 locale_dir = \
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
178 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
179 translation = "timetracker_{0}".format(loc)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
180 translator = QTranslator(None)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
181 loaded = translator.load(translation, locale_dir)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
182 if loaded:
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
183 self.__translator = translator
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
184 e5App().installTranslator(self.__translator)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
185 else:
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
186 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
187 .format(translation))
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
188 print("Using default.")
7
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 def getPreferences(self, key):
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 Public method to retrieve the various settings.
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
193
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
194 @param key the key of the value to get
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
195 @return the requested setting
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
196 """
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
197 if key in ["MinimumDuration"]:
26
08e308c7a85d Fixed a bug related to uninstalling the plug-in via the external plug-in uninstaller.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
198 return int(Preferences.Prefs.settings.value(self.PreferencesKey + "/" + key,
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
199 self.__defaults[key]))
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
200 elif key in ["AutoSave", "AllowDuplicates"]:
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
201 return Preferences.toBool(
26
08e308c7a85d Fixed a bug related to uninstalling the plug-in via the external plug-in uninstaller.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
202 Preferences.Prefs.settings.value(self.PreferencesKey + "/" + key,
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
203 self.__defaults[key]))
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
204 else:
26
08e308c7a85d Fixed a bug related to uninstalling the plug-in via the external plug-in uninstaller.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
205 return Preferences.Prefs.settings.value(self.PreferencesKey + "/" + key,
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
206 self.__defaults[key])
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
207
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
208 def setPreferences(self, key, value):
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
209 """
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
210 Public method to store the various settings.
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
211
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
212 @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
213 @param value the value to be set
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
214 @param prefClass preferences class used as the storage area
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
215 """
29
92db96274dd3 Fixed an issue introduced by the last change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 26
diff changeset
216 Preferences.Prefs.settings.setValue(self.PreferencesKey + "/" + key, value)

eric ide

mercurial