PluginTimeTracker.py

Sat, 23 Dec 2023 19:35:14 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 23 Dec 2023 19:35:14 +0100
branch
eric7
changeset 115
859d59103f9f
parent 114
f58b64382e67
child 116
e8b0641eba15
permissions
-rw-r--r--

Corrected some code style issues and converted some source code documentation to the new style.

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
114
f58b64382e67 Updated copyright for 2024.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 113
diff changeset
3 # Copyright (c) 2012 - 2024 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
111
e0bf42d8474e Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 109
diff changeset
12 from PyQt6.QtCore import QCoreApplication, QObject, QTranslator
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
13
109
3d6e8bb07779 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 108
diff changeset
14 from eric7 import Preferences
3d6e8bb07779 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 108
diff changeset
15 from eric7.EricWidgets.EricApplication import ericApp
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
16 from TimeTracker.TimeTracker import TimeTracker
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
17
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
18 # Start-Of-Header
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
19 name = "Time Tracker Plugin"
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
20 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
21 autoactivate = True
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
22 deactivateable = True
111
e0bf42d8474e Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 109
diff changeset
23 version = "10.2.0"
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
24 className = "TimeTrackerPlugin"
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
25 packageName = "TimeTracker"
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
26 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
27 longDescription = (
4ac2329b36da Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
28 """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
29 """ 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
30 """ into tasks."""
87
4ac2329b36da Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
31 )
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
32 needsRestart = False
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
33 pyqtApi = 2
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
34 # End-Of-Header
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
35
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
36 error = ""
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
37
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
38 timeTrackerPluginObject = None
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
39
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
40
115
859d59103f9f Corrected some code style issues and converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
41 def createTimeTrackerPage(configDlg): # noqa: U100
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
42 """
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
43 Module function to create the Time Tracker configuration page.
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
44
42
37049a04b8fa Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
45 @param configDlg reference to the configuration dialog
98
693e42176007 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
46 @type ConfigurationWidget
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
47 @return reference to the configuration page
98
693e42176007 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
48 @rtype TimeTrackerPage
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
49 """
115
859d59103f9f Corrected some code style issues and converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
50 from TimeTracker.ConfigurationPage.TimeTrackerPage import TimeTrackerPage
859d59103f9f Corrected some code style issues and converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
51
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
52 global timeTrackerPluginObject
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
53
87
4ac2329b36da Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
54 return TimeTrackerPage(timeTrackerPluginObject)
4ac2329b36da Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
55
7
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 def getConfigData():
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 Module function returning data as required by the configuration dialog.
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
60
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
61 @return dictionary containing the relevant data
98
693e42176007 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
62 @rtype dict
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
63 """
98
693e42176007 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
64 usesDarkPalette = ericApp().usesDarkPalette()
94
a3d936304e51 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
65 iconSuffix = "dark" if usesDarkPalette else "light"
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
66
71
29c55e28d9b5 Removed the outdated check for the correct eric version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 69
diff changeset
67 return {
29c55e28d9b5 Removed the outdated check for the correct eric version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 69
diff changeset
68 "timeTrackerPage": [
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
69 QCoreApplication.translate("TimeTrackerPlugin", "Time Tracker"),
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
70 os.path.join("TimeTracker", "icons", "clock-{0}".format(iconSuffix)),
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
71 createTimeTrackerPage,
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
72 None,
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
73 None,
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
74 ],
71
29c55e28d9b5 Removed the outdated check for the correct eric version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 69
diff changeset
75 }
7
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
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
78 def prepareUninstall():
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
79 """
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
80 Module function to prepare for an uninstallation.
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
81 """
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
82 Preferences.Prefs.settings.remove(TimeTrackerPlugin.PreferencesKey)
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
83
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
84
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
85 class TimeTrackerPlugin(QObject):
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 Class implementing the Eric assistant plugin.
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
88 """
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
89
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
90 PreferencesKey = "TimeTracker"
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
91
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
92 def __init__(self, ui):
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
93 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
94 Constructor
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
95
98
693e42176007 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
96 @param ui reference to the user interface object
693e42176007 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
97 @type UserInterface
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
98 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
99 QObject.__init__(self, ui)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
100 self.__ui = ui
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
101 self.__initialize()
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
102
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
103 self.__defaults = {
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
104 "MinimumDuration": 2,
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
105 "AutoSave": False,
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
106 "AllowDuplicates": False,
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
107 }
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
108
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
109 self.__translator = None
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
110 self.__loadTranslator()
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
111
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
112 def __initialize(self):
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 Private slot to (re)initialize the plugin.
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 self.__object = None
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
117
98
693e42176007 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
118 self.__ericProject = ericApp().getObject("Project")
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
119
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
120 def activate(self):
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
121 """
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
122 Public method to activate this plugin.
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
123
98
693e42176007 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
124 @return tuple of None and activation status
693e42176007 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
125 @rtype bool
1
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 global error
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
128 error = "" # clear previous error
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
129
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
130 global timeTrackerPluginObject
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
131 timeTrackerPluginObject = self
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
132
98
693e42176007 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
133 usesDarkPalette = ericApp().usesDarkPalette()
94
a3d936304e51 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
134 iconSuffix = "dark" if usesDarkPalette else "light"
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
135
85
246e51cc11ae Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
136 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
137 self.__object.activate()
98
693e42176007 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
138 ericApp().registerPluginObject("TimeTracker", self.__object)
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
139
98
693e42176007 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
140 if self.__ericProject.isOpen():
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
141 self.__object.projectOpened()
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
142
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
143 self.__ericProject.newProject.connect(self.__object.projectOpened)
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
144 self.__ericProject.projectOpened.connect(self.__object.projectOpened)
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
145 self.__ericProject.projectClosed.connect(self.__object.projectClosed)
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
146
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
147 return None, True
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
148
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
149 def deactivate(self):
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 Public method to deactivate this plugin.
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
152 """
98
693e42176007 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
153 ericApp().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
154 self.__object.deactivate()
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
155
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
156 self.__ericProject.newProject.disconnect(self.__object.projectOpened)
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
157 self.__ericProject.projectOpened.disconnect(self.__object.projectOpened)
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
158 self.__ericProject.projectClosed.disconnect(self.__object.projectClosed)
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
159
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
160 self.__object.projectClosed()
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
161
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
162 self.__initialize()
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
163
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
164 def __loadTranslator(self):
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 Private method to load the translation file.
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 if self.__ui is not None:
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
169 loc = self.__ui.getLocale()
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
170 if loc and loc != "C":
42
37049a04b8fa Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
171 locale_dir = os.path.join(
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
172 os.path.dirname(__file__), "TimeTracker", "i18n"
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
173 )
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
174 translation = "timetracker_{0}".format(loc)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
175 translator = QTranslator(None)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
176 loaded = translator.load(translation, locale_dir)
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
177 if loaded:
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
178 self.__translator = translator
98
693e42176007 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
179 ericApp().installTranslator(self.__translator)
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
180 else:
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
181 print(
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
182 "Warning: translation file '{0}' could not be"
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
183 " loaded.".format(translation)
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
184 )
1
a0beac325e5a Added a few source files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
185 print("Using default.")
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
186
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
187 def getPreferences(self, key):
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
188 """
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
189 Public method to retrieve the various settings.
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
190
98
693e42176007 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
191 @param key key of the value to get
693e42176007 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
192 @type str
693e42176007 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
193 @return value of the requested setting
693e42176007 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
194 @rtype Any
7
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"]:
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
197 return int(
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
198 Preferences.Prefs.settings.value(
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
199 self.PreferencesKey + "/" + key, self.__defaults[key]
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
200 )
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
201 )
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
202 elif key in ["AutoSave", "AllowDuplicates"]:
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
203 return Preferences.toBool(
42
37049a04b8fa Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
204 Preferences.Prefs.settings.value(
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
205 self.PreferencesKey + "/" + key, self.__defaults[key]
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
206 )
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
207 )
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
208 else:
42
37049a04b8fa Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
209 return Preferences.Prefs.settings.value(
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
210 self.PreferencesKey + "/" + key, self.__defaults[key]
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
211 )
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
212
7
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.
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
216
98
693e42176007 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
217 @param key key of the setting to be set
693e42176007 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
218 @type str
693e42176007 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
219 @param value value to be set
693e42176007 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
220 @type Any
7
6c769e2cc920 Added the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
221 """
108
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
222 Preferences.Prefs.settings.setValue(self.PreferencesKey + "/" + key, value)
702f47d3f794 Reformatted the source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
223
69
021ac1e44e32 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
224
021ac1e44e32 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
225 #
115
859d59103f9f Corrected some code style issues and converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
226 # eflag: noqa = M801, U200

eric ide

mercurial