PluginTimeTracker.py

Wed, 30 Dec 2020 11:02:12 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 30 Dec 2020 11:02:12 +0100
changeset 92
81b63c2dc40c
parent 89
e38b60832145
child 93
7ffe7ae4947d
permissions
-rw-r--r--

Updated copyright for 2021.

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
92
81b63c2dc40c Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
3 # Copyright (c) 2012 - 2021 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
51
d0afa82c3deb Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 47
diff changeset
12 from PyQt5.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
89
e38b60832145 Changed calls of exec_() into exec().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 87
diff changeset
25 version = "3.1.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."
87
4ac2329b36da Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
29 longDescription = (
4ac2329b36da Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
30 """This plug-in implements a time tracker to keep track"""
4ac2329b36da Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
31 """ of the time used for a project. The time can be subdivided"""
42
37049a04b8fa Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
32 """ into tasks."""
87
4ac2329b36da Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
33 )
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
34 needsRestart = False
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
35 pyqtApi = 2
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
36 # End-Of-Header
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
37
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
38 error = ""
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
39
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
40 timeTrackerPluginObject = None
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
41
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
42
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
43 def createTimeTrackerPage(configDlg):
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
44 """
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
45 Module function to create the Time Tracker configuration page.
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
46
42
37049a04b8fa Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
47 @param configDlg reference to the configuration dialog
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
48 @return reference to the configuration page
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
49 """
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
50 global timeTrackerPluginObject
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
51 from TimeTracker.ConfigurationPage.TimeTrackerPage import TimeTrackerPage
87
4ac2329b36da Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
52 return TimeTrackerPage(timeTrackerPluginObject)
4ac2329b36da Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
53
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
54
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
55 def getConfigData():
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
56 """
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
57 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
58
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
59 @return dictionary containing the relevant data
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
60 """
85
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
61 try:
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
62 usesDarkPalette = e5App().usesDarkPalette()
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
63 except AttributeError:
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
64 from PyQt5.QtGui import QPalette
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
65 palette = e5App().palette()
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
66 lightness = palette.color(QPalette.Window).lightness()
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
67 usesDarkPalette = lightness <= 128
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
68 if usesDarkPalette:
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
69 iconSuffix = "dark"
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
70 else:
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
71 iconSuffix = "light"
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
72
71
29c55e28d9b5 Removed the outdated check for the correct eric version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 69
diff changeset
73 return {
29c55e28d9b5 Removed the outdated check for the correct eric version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 69
diff changeset
74 "timeTrackerPage": [
29c55e28d9b5 Removed the outdated check for the correct eric version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 69
diff changeset
75 QCoreApplication.translate("TimeTrackerPlugin",
29c55e28d9b5 Removed the outdated check for the correct eric version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 69
diff changeset
76 "Time Tracker"),
85
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
77 os.path.join("TimeTracker", "icons",
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
78 "clock-{0}".format(iconSuffix)),
71
29c55e28d9b5 Removed the outdated check for the correct eric version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 69
diff changeset
79 createTimeTrackerPage, None, None],
29c55e28d9b5 Removed the outdated check for the correct eric version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 69
diff changeset
80 }
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
81
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
82
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
83 def prepareUninstall():
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
84 """
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
85 Module function to prepare for an uninstallation.
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
86 """
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
87 Preferences.Prefs.settings.remove(TimeTrackerPlugin.PreferencesKey)
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
88
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
89
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
90 class TimeTrackerPlugin(QObject):
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
91 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
92 Class implementing the Eric assistant plugin.
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
93 """
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
94 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
95
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
96 def __init__(self, ui):
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
97 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
98 Constructor
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
99
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
100 @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
101 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
102 QObject.__init__(self, ui)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
103 self.__ui = ui
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
104 self.__initialize()
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
105
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
106 self.__defaults = {
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
107 "MinimumDuration": 2,
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
108 "AutoSave": False,
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
109 "AllowDuplicates": False,
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
110 }
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
111
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
112 self.__translator = None
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
113 self.__loadTranslator()
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 def __initialize(self):
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 Private slot to (re)initialize the plugin.
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
118 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
119 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
120
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
121 self.__e5project = e5App().getObject("Project")
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
122
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
123 def activate(self):
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 Public method to activate this plugin.
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 @return tuple of None and activation status (boolean)
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 global error
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
130 error = "" # clear previous error
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
131
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
132 global timeTrackerPluginObject
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
133 timeTrackerPluginObject = self
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
134
85
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
135 try:
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
136 usesDarkPalette = e5App().usesDarkPalette()
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
137 except AttributeError:
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
138 from PyQt5.QtGui import QPalette
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
139 palette = e5App().palette()
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
140 lightness = palette.color(QPalette.Window).lightness()
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
141 usesDarkPalette = lightness <= 128
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
142 if usesDarkPalette:
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
143 iconSuffix = "dark"
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
144 else:
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
145 iconSuffix = "light"
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
146
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
147 self.__object = TimeTracker(self, iconSuffix, 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
148 self.__object.activate()
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
149 e5App().registerPluginObject("TimeTracker", self.__object)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
150
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
151 if self.__e5project.isOpen():
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
152 self.__object.projectOpened()
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 self.__e5project.newProject.connect(self.__object.projectOpened)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
155 self.__e5project.projectOpened.connect(self.__object.projectOpened)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
156 self.__e5project.projectClosed.connect(self.__object.projectClosed)
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 return None, True
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 def deactivate(self):
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 Public method to deactivate this plugin.
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 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
165 self.__object.deactivate()
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
166
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
167 self.__e5project.newProject.disconnect(self.__object.projectOpened)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
168 self.__e5project.projectOpened.disconnect(self.__object.projectOpened)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
169 self.__e5project.projectClosed.disconnect(self.__object.projectClosed)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
170
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
171 self.__object.projectClosed()
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
172
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
173 self.__initialize()
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
174
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
175 def __loadTranslator(self):
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
176 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
177 Private method to load the translation file.
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
178 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
179 if self.__ui is not None:
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
180 loc = self.__ui.getLocale()
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
181 if loc and loc != "C":
42
37049a04b8fa Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
182 locale_dir = os.path.join(
37049a04b8fa Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
183 os.path.dirname(__file__), "TimeTracker", "i18n")
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
184 translation = "timetracker_{0}".format(loc)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
185 translator = QTranslator(None)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
186 loaded = translator.load(translation, locale_dir)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
187 if loaded:
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
188 self.__translator = translator
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
189 e5App().installTranslator(self.__translator)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
190 else:
42
37049a04b8fa Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
191 print("Warning: translation file '{0}' could not be"
37049a04b8fa Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
192 " loaded.".format(translation))
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
193 print("Using default.")
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
194
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
195 def getPreferences(self, key):
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 Public method to retrieve the various settings.
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
198
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
199 @param key the key of the value to get
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
200 @return the requested setting
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
201 """
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
202 if key in ["MinimumDuration"]:
42
37049a04b8fa Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
203 return int(Preferences.Prefs.settings.value(
37049a04b8fa Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
204 self.PreferencesKey + "/" + key, self.__defaults[key]))
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
205 elif key in ["AutoSave", "AllowDuplicates"]:
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
206 return Preferences.toBool(
42
37049a04b8fa Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
207 Preferences.Prefs.settings.value(
37049a04b8fa Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
208 self.PreferencesKey + "/" + key, self.__defaults[key]))
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
209 else:
42
37049a04b8fa Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
210 return Preferences.Prefs.settings.value(
37049a04b8fa Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
211 self.PreferencesKey + "/" + key, self.__defaults[key])
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
212
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
213 def setPreferences(self, key, value):
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 Public method to store the various settings.
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 @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
218 @param value the value to be set
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
219 """
42
37049a04b8fa Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
220 Preferences.Prefs.settings.setValue(
37049a04b8fa Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
221 self.PreferencesKey + "/" + key, value)
69
021ac1e44e32 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
222
021ac1e44e32 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
223 #
021ac1e44e32 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
224 # eflag: noqa = M801

eric ide

mercurial