Tue, 23 Jun 2020 19:40:26 +0200
Removed support for Python2.
--- a/ChangeLog Thu Apr 09 18:44:42 2020 +0200 +++ b/ChangeLog Tue Jun 23 19:40:26 2020 +0200 @@ -1,5 +1,8 @@ ChangeLog --------- +Version 3.0.0: +- removed support for Python2 + Version 2.1.0: - replaced pixmap icons by vector icons
--- a/PluginTimeTracker.e4p Thu Apr 09 18:44:42 2020 +0200 +++ b/PluginTimeTracker.e4p Tue Jun 23 19:40:26 2020 +0200 @@ -234,6 +234,25 @@ <value> <dict> <key> + <string>AnnotationsChecker</string> + </key> + <value> + <dict> + <key> + <string>MaximumComplexity</string> + </key> + <value> + <int>3</int> + </value> + <key> + <string>MinimumCoverage</string> + </key> + <value> + <int>75</int> + </value> + </dict> + </value> + <key> <string>BlankLines</string> </key> <value> @@ -274,6 +293,19 @@ </dict> </value> <key> + <string>CommentedCodeChecker</string> + </key> + <value> + <dict> + <key> + <string>Aggressive</string> + </key> + <value> + <bool>False</bool> + </value> + </dict> + </value> + <key> <string>CopyrightAuthor</string> </key> <value> @@ -292,6 +324,12 @@ <string>eric</string> </value> <key> + <string>EnabledCheckerCategories</string> + </key> + <value> + <string>C, D, E, M, N, S, W</string> + </value> + <key> <string>ExcludeFiles</string> </key> <value> @@ -301,7 +339,7 @@ <string>ExcludeMessages</string> </key> <value> - <string>C101, E265, E266, E305, E402, M201, M811, N802, N803, N807, N808, N821, W293, W504</string> + <string>C101,E265,E266,E305,E402,M201,M811,N802,N803,N807,N808,N821,W293,W504</string> </value> <key> <string>FixCodes</string> @@ -319,7 +357,7 @@ <string>FutureChecker</string> </key> <value> - <string>unicode_literals</string> + <string></string> </value> <key> <string>HangClosing</string> @@ -352,6 +390,12 @@ <int>10</int> </value> <key> + <string>MaxDocLineLength</string> + </key> + <value> + <int>79</int> + </value> + <key> <string>MaxLineLength</string> </key> <value> @@ -370,6 +414,91 @@ <bool>True</bool> </value> <key> + <string>SecurityChecker</string> + </key> + <value> + <dict> + <key> + <string>CheckTypedException</string> + </key> + <value> + <bool>False</bool> + </value> + <key> + <string>HardcodedTmpDirectories</string> + </key> + <value> + <list> + <string>/tmp</string> + <string>/var/tmp</string> + <string>/dev/shm</string> + <string>~/tmp</string> + </list> + </value> + <key> + <string>InsecureHashes</string> + </key> + <value> + <list> + <string>md4</string> + <string>md5</string> + <string>sha</string> + <string>sha1</string> + </list> + </value> + <key> + <string>InsecureSslProtocolVersions</string> + </key> + <value> + <list> + <string>PROTOCOL_SSLv2</string> + <string>SSLv2_METHOD</string> + <string>SSLv23_METHOD</string> + <string>PROTOCOL_SSLv3</string> + <string>PROTOCOL_TLSv1</string> + <string>SSLv3_METHOD</string> + <string>TLSv1_METHOD</string> + </list> + </value> + <key> + <string>WeakKeySizeDsaHigh</string> + </key> + <value> + <string>1024</string> + </value> + <key> + <string>WeakKeySizeDsaMedium</string> + </key> + <value> + <string>2048</string> + </value> + <key> + <string>WeakKeySizeEcHigh</string> + </key> + <value> + <string>160</string> + </value> + <key> + <string>WeakKeySizeEcMedium</string> + </key> + <value> + <string>224</string> + </value> + <key> + <string>WeakKeySizeRsaHigh</string> + </key> + <value> + <string>1024</string> + </value> + <key> + <string>WeakKeySizeRsaMedium</string> + </key> + <value> + <string>2048</string> + </value> + </dict> + </value> + <key> <string>ShowIgnored</string> </key> <value>
--- a/PluginTimeTracker.py Thu Apr 09 18:44:42 2020 +0200 +++ b/PluginTimeTracker.py Tue Jun 23 19:40:26 2020 +0200 @@ -7,8 +7,6 @@ Module implementing the Time Tracker plugin. """ -from __future__ import unicode_literals - import os from PyQt5.QtCore import QObject, QTranslator, QCoreApplication @@ -24,17 +22,17 @@ author = "Detlev Offenbach <detlev@die-offenbachs.de>" autoactivate = True deactivateable = True -version = "2.1.0" +version = "3.0.0" className = "TimeTrackerPlugin" packageName = "TimeTracker" shortDescription = "Time Tracker to keep track of the project time." -longDescription = \ - """This plug-in implements a time tracker to keep track""" \ - """ of the time used for a project. The time can be subdivided""" \ +longDescription = ( + """This plug-in implements a time tracker to keep track""" + """ of the time used for a project. The time can be subdivided""" """ into tasks.""" +) needsRestart = False pyqtApi = 2 -python2Compatible = True # End-Of-Header error = "" @@ -51,9 +49,8 @@ """ global timeTrackerPluginObject from TimeTracker.ConfigurationPage.TimeTrackerPage import TimeTrackerPage - page = TimeTrackerPage(timeTrackerPluginObject) - return page - + return TimeTrackerPage(timeTrackerPluginObject) + def getConfigData(): """
--- a/TimeTracker/ConfigurationPage/TimeTrackerPage.py Thu Apr 09 18:44:42 2020 +0200 +++ b/TimeTracker/ConfigurationPage/TimeTrackerPage.py Tue Jun 23 19:40:26 2020 +0200 @@ -7,10 +7,9 @@ Module implementing the Time Tracker configuration page. """ -from __future__ import unicode_literals - -from Preferences.ConfigurationPages.ConfigurationPageBase import \ +from Preferences.ConfigurationPages.ConfigurationPageBase import ( ConfigurationPageBase +) from .Ui_TimeTrackerPage import Ui_TimeTrackerPage
--- a/TimeTracker/Documentation/source/Plugin_Time_Tracker.PluginTimeTracker.html Thu Apr 09 18:44:42 2020 +0200 +++ b/TimeTracker/Documentation/source/Plugin_Time_Tracker.PluginTimeTracker.html Tue Jun 23 19:40:26 2020 +0200 @@ -18,180 +18,235 @@ </style> </head> -<body><a NAME="top" ID="top"></a> +<body> +<a NAME="top" ID="top"></a> <h1>Plugin_Time_Tracker.PluginTimeTracker</h1> + <p> Module implementing the Time Tracker plugin. </p> <h3>Global Attributes</h3> + <table> -<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>needsRestart</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>timeTrackerPluginObject</td></tr><tr><td>version</td></tr> +<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>needsRestart</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>timeTrackerPluginObject</td></tr><tr><td>version</td></tr> </table> <h3>Classes</h3> + <table> + <tr> <td><a href="#TimeTrackerPlugin">TimeTrackerPlugin</a></td> <td>Class implementing the Eric assistant plugin.</td> </tr> </table> <h3>Functions</h3> + <table> + <tr> <td><a href="#createTimeTrackerPage">createTimeTrackerPage</a></td> <td>Module function to create the Time Tracker configuration page.</td> -</tr><tr> +</tr> +<tr> <td><a href="#getConfigData">getConfigData</a></td> <td>Module function returning data as required by the configuration dialog.</td> -</tr><tr> +</tr> +<tr> <td><a href="#prepareUninstall">prepareUninstall</a></td> <td>Module function to prepare for an uninstallation.</td> </tr> </table> -<hr /><hr /> +<hr /> +<hr /> <a NAME="TimeTrackerPlugin" ID="TimeTrackerPlugin"></a> <h2>TimeTrackerPlugin</h2> + <p> Class implementing the Eric assistant plugin. </p> <h3>Derived from</h3> QObject <h3>Class Attributes</h3> + <table> <tr><td>PreferencesKey</td></tr> </table> <h3>Class Methods</h3> + <table> <tr><td>None</td></tr> </table> <h3>Methods</h3> + <table> + <tr> <td><a href="#TimeTrackerPlugin.__init__">TimeTrackerPlugin</a></td> <td>Constructor</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerPlugin.__initialize">__initialize</a></td> <td>Private slot to (re)initialize the plugin.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerPlugin.__loadTranslator">__loadTranslator</a></td> <td>Private method to load the translation file.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerPlugin.activate">activate</a></td> <td>Public method to activate this plugin.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerPlugin.deactivate">deactivate</a></td> <td>Public method to deactivate this plugin.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerPlugin.getPreferences">getPreferences</a></td> <td>Public method to retrieve the various settings.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerPlugin.setPreferences">setPreferences</a></td> <td>Public method to store the various settings.</td> </tr> </table> <h3>Static Methods</h3> + <table> <tr><td>None</td></tr> </table> + <a NAME="TimeTrackerPlugin.__init__" ID="TimeTrackerPlugin.__init__"></a> <h4>TimeTrackerPlugin (Constructor)</h4> <b>TimeTrackerPlugin</b>(<i>ui</i>) + <p> Constructor -</p><dl> +</p> +<dl> + <dt><i>ui</i></dt> <dd> reference to the user interface object (UI.UserInterface) </dd> -</dl><a NAME="TimeTrackerPlugin.__initialize" ID="TimeTrackerPlugin.__initialize"></a> +</dl> +<a NAME="TimeTrackerPlugin.__initialize" ID="TimeTrackerPlugin.__initialize"></a> <h4>TimeTrackerPlugin.__initialize</h4> <b>__initialize</b>(<i></i>) + <p> Private slot to (re)initialize the plugin. -</p><a NAME="TimeTrackerPlugin.__loadTranslator" ID="TimeTrackerPlugin.__loadTranslator"></a> +</p> +<a NAME="TimeTrackerPlugin.__loadTranslator" ID="TimeTrackerPlugin.__loadTranslator"></a> <h4>TimeTrackerPlugin.__loadTranslator</h4> <b>__loadTranslator</b>(<i></i>) + <p> Private method to load the translation file. -</p><a NAME="TimeTrackerPlugin.activate" ID="TimeTrackerPlugin.activate"></a> +</p> +<a NAME="TimeTrackerPlugin.activate" ID="TimeTrackerPlugin.activate"></a> <h4>TimeTrackerPlugin.activate</h4> <b>activate</b>(<i></i>) + <p> Public method to activate this plugin. -</p><dl> +</p> +<dl> <dt>Returns:</dt> <dd> tuple of None and activation status (boolean) </dd> -</dl><a NAME="TimeTrackerPlugin.deactivate" ID="TimeTrackerPlugin.deactivate"></a> +</dl> +<a NAME="TimeTrackerPlugin.deactivate" ID="TimeTrackerPlugin.deactivate"></a> <h4>TimeTrackerPlugin.deactivate</h4> <b>deactivate</b>(<i></i>) + <p> Public method to deactivate this plugin. -</p><a NAME="TimeTrackerPlugin.getPreferences" ID="TimeTrackerPlugin.getPreferences"></a> +</p> +<a NAME="TimeTrackerPlugin.getPreferences" ID="TimeTrackerPlugin.getPreferences"></a> <h4>TimeTrackerPlugin.getPreferences</h4> <b>getPreferences</b>(<i>key</i>) + <p> Public method to retrieve the various settings. -</p><dl> +</p> +<dl> + <dt><i>key</i></dt> <dd> the key of the value to get </dd> -</dl><dl> +</dl> +<dl> <dt>Returns:</dt> <dd> the requested setting </dd> -</dl><a NAME="TimeTrackerPlugin.setPreferences" ID="TimeTrackerPlugin.setPreferences"></a> +</dl> +<a NAME="TimeTrackerPlugin.setPreferences" ID="TimeTrackerPlugin.setPreferences"></a> <h4>TimeTrackerPlugin.setPreferences</h4> <b>setPreferences</b>(<i>key, value</i>) + <p> Public method to store the various settings. -</p><dl> +</p> +<dl> + <dt><i>key</i></dt> <dd> the key of the setting to be set (string) -</dd><dt><i>value</i></dt> +</dd> +<dt><i>value</i></dt> <dd> the value to be set </dd> </dl> <div align="right"><a href="#top">Up</a></div> -<hr /><hr /> +<hr /> +<hr /> <a NAME="createTimeTrackerPage" ID="createTimeTrackerPage"></a> <h2>createTimeTrackerPage</h2> <b>createTimeTrackerPage</b>(<i>configDlg</i>) + <p> Module function to create the Time Tracker configuration page. -</p><dl> +</p> +<dl> + <dt><i>configDlg</i></dt> <dd> reference to the configuration dialog </dd> -</dl><dl> +</dl> +<dl> <dt>Returns:</dt> <dd> reference to the configuration page </dd> </dl> <div align="right"><a href="#top">Up</a></div> -<hr /><hr /> +<hr /> +<hr /> <a NAME="getConfigData" ID="getConfigData"></a> <h2>getConfigData</h2> <b>getConfigData</b>(<i></i>) + <p> Module function returning data as required by the configuration dialog. -</p><dl> +</p> +<dl> <dt>Returns:</dt> <dd> dictionary containing the relevant data </dd> </dl> <div align="right"><a href="#top">Up</a></div> -<hr /><hr /> +<hr /> +<hr /> <a NAME="prepareUninstall" ID="prepareUninstall"></a> <h2>prepareUninstall</h2> <b>prepareUninstall</b>(<i></i>) + <p> Module function to prepare for an uninstallation. </p>
--- a/TimeTracker/Documentation/source/Plugin_Time_Tracker.TimeTracker.ConfigurationPage.TimeTrackerPage.html Thu Apr 09 18:44:42 2020 +0200 +++ b/TimeTracker/Documentation/source/Plugin_Time_Tracker.TimeTracker.ConfigurationPage.TimeTrackerPage.html Tue Jun 23 19:40:26 2020 +0200 @@ -18,69 +18,89 @@ </style> </head> -<body><a NAME="top" ID="top"></a> +<body> +<a NAME="top" ID="top"></a> <h1>Plugin_Time_Tracker.TimeTracker.ConfigurationPage.TimeTrackerPage</h1> + <p> Module implementing the Time Tracker configuration page. </p> <h3>Global Attributes</h3> + <table> <tr><td>None</td></tr> </table> <h3>Classes</h3> + <table> + <tr> <td><a href="#TimeTrackerPage">TimeTrackerPage</a></td> <td>Class implementing the Time Tracker configuration page.</td> </tr> </table> <h3>Functions</h3> + <table> <tr><td>None</td></tr> </table> -<hr /><hr /> +<hr /> +<hr /> <a NAME="TimeTrackerPage" ID="TimeTrackerPage"></a> <h2>TimeTrackerPage</h2> + <p> Class implementing the Time Tracker configuration page. </p> <h3>Derived from</h3> ConfigurationPageBase, Ui_TimeTrackerPage <h3>Class Attributes</h3> + <table> <tr><td>None</td></tr> </table> <h3>Class Methods</h3> + <table> <tr><td>None</td></tr> </table> <h3>Methods</h3> + <table> + <tr> <td><a href="#TimeTrackerPage.__init__">TimeTrackerPage</a></td> <td>Constructor</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerPage.save">save</a></td> <td>Public slot to save the Pyramid configuration.</td> </tr> </table> <h3>Static Methods</h3> + <table> <tr><td>None</td></tr> </table> + <a NAME="TimeTrackerPage.__init__" ID="TimeTrackerPage.__init__"></a> <h4>TimeTrackerPage (Constructor)</h4> <b>TimeTrackerPage</b>(<i>plugin</i>) + <p> Constructor -</p><dl> +</p> +<dl> + <dt><i>plugin</i></dt> <dd> reference to the plugin object </dd> -</dl><a NAME="TimeTrackerPage.save" ID="TimeTrackerPage.save"></a> +</dl> +<a NAME="TimeTrackerPage.save" ID="TimeTrackerPage.save"></a> <h4>TimeTrackerPage.save</h4> <b>save</b>(<i></i>) + <p> Public slot to save the Pyramid configuration. </p>
--- a/TimeTracker/Documentation/source/Plugin_Time_Tracker.TimeTracker.TimeTrackEntry.html Thu Apr 09 18:44:42 2020 +0200 +++ b/TimeTracker/Documentation/source/Plugin_Time_Tracker.TimeTracker.TimeTrackEntry.html Tue Jun 23 19:40:26 2020 +0200 @@ -18,359 +18,477 @@ </style> </head> -<body><a NAME="top" ID="top"></a> +<body> +<a NAME="top" ID="top"></a> <h1>Plugin_Time_Tracker.TimeTracker.TimeTrackEntry</h1> + <p> Module implementing the time track entry class. </p> <h3>Global Attributes</h3> + <table> <tr><td>None</td></tr> </table> <h3>Classes</h3> + <table> + <tr> <td><a href="#TimeTrackEntry">TimeTrackEntry</a></td> <td>Class implementing the time track entry.</td> </tr> </table> <h3>Functions</h3> + <table> <tr><td>None</td></tr> </table> -<hr /><hr /> +<hr /> +<hr /> <a NAME="TimeTrackEntry" ID="TimeTrackEntry"></a> <h2>TimeTrackEntry</h2> + <p> Class implementing the time track entry. </p> <h3>Derived from</h3> object <h3>Class Attributes</h3> + <table> <tr><td>LineMarker</td></tr><tr><td>Separator</td></tr> </table> <h3>Class Methods</h3> + <table> <tr><td>None</td></tr> </table> <h3>Methods</h3> + <table> + <tr> <td><a href="#TimeTrackEntry.__init__">TimeTrackEntry</a></td> <td>Constructor</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackEntry.__calculateDuration">__calculateDuration</a></td> <td>Private method to calculate the duration in minutes.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackEntry.__currentDateTime">__currentDateTime</a></td> <td>Private method to get the current date and time without milliseconds.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackEntry.__lt__">__lt__</a></td> <td>Special method implementing the less than function.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackEntry.addDuration">addDuration</a></td> <td>Public method to add a duration.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackEntry.continue_">continue_</a></td> <td>Public method to continue the entry.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackEntry.fromString">fromString</a></td> <td>Public method to populate the entry from the given string.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackEntry.getComment">getComment</a></td> <td>Public method to get the comment.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackEntry.getDuration">getDuration</a></td> <td>Public slot to get the duration.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackEntry.getEntryData">getEntryData</a></td> <td>Public method to get the entry data.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackEntry.getID">getID</a></td> <td>Public method to get the ID of the entry.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackEntry.getStartDateTime">getStartDateTime</a></td> <td>Public method to get the start date and time.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackEntry.getTask">getTask</a></td> <td>Public method to get the task description.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackEntry.isPaused">isPaused</a></td> <td>Public method to check for a paused state.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackEntry.isValid">isValid</a></td> <td>Public method to check the validity of the entry.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackEntry.pause">pause</a></td> <td>Public method to pause the entry.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackEntry.setComment">setComment</a></td> <td>Public method to set a comment.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackEntry.setDuration">setDuration</a></td> <td>Public method to set the duration.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackEntry.setID">setID</a></td> <td>Public method to assign an ID to the entry.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackEntry.setStartDateTime">setStartDateTime</a></td> <td>Public method to set the start date and time.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackEntry.setTask">setTask</a></td> <td>Public method to set the task description.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackEntry.start">start</a></td> <td>Public method to set the start time of this entry.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackEntry.stop">stop</a></td> <td>Public method to stop this entry.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackEntry.toString">toString</a></td> <td>Public method to get a string representation of the entry.</td> </tr> </table> <h3>Static Methods</h3> + <table> <tr><td>None</td></tr> </table> + <a NAME="TimeTrackEntry.__init__" ID="TimeTrackEntry.__init__"></a> <h4>TimeTrackEntry (Constructor)</h4> <b>TimeTrackEntry</b>(<i>plugin</i>) + <p> Constructor -</p><dl> +</p> +<dl> + <dt><i>plugin</i></dt> <dd> reference to the plugin object (TimeTrackerPlugin) </dd> -</dl><a NAME="TimeTrackEntry.__calculateDuration" ID="TimeTrackEntry.__calculateDuration"></a> +</dl> +<a NAME="TimeTrackEntry.__calculateDuration" ID="TimeTrackEntry.__calculateDuration"></a> <h4>TimeTrackEntry.__calculateDuration</h4> <b>__calculateDuration</b>(<i>start, stop</i>) + <p> Private method to calculate the duration in minutes. -</p><dl> +</p> +<dl> + <dt><i>start</i></dt> <dd> start date and time (QDateTime) -</dd><dt><i>stop</i></dt> +</dd> +<dt><i>stop</i></dt> <dd> end date and time (QDateTime) </dd> -</dl><dl> +</dl> +<dl> <dt>Returns:</dt> <dd> duration in minutes (int) </dd> -</dl><a NAME="TimeTrackEntry.__currentDateTime" ID="TimeTrackEntry.__currentDateTime"></a> +</dl> +<a NAME="TimeTrackEntry.__currentDateTime" ID="TimeTrackEntry.__currentDateTime"></a> <h4>TimeTrackEntry.__currentDateTime</h4> <b>__currentDateTime</b>(<i></i>) + <p> Private method to get the current date and time without milliseconds. -</p><dl> +</p> +<dl> <dt>Returns:</dt> <dd> current date and time (QDateTime) </dd> -</dl><a NAME="TimeTrackEntry.__lt__" ID="TimeTrackEntry.__lt__"></a> +</dl> +<a NAME="TimeTrackEntry.__lt__" ID="TimeTrackEntry.__lt__"></a> <h4>TimeTrackEntry.__lt__</h4> <b>__lt__</b>(<i>other</i>) + <p> Special method implementing the less than function. -</p><dl> +</p> +<dl> + <dt><i>other</i></dt> <dd> reference to the other object (TimeTrackEntry) </dd> -</dl><dl> +</dl> +<dl> <dt>Returns:</dt> <dd> flag indicating that self is less than other (boolean) </dd> -</dl><a NAME="TimeTrackEntry.addDuration" ID="TimeTrackEntry.addDuration"></a> +</dl> +<a NAME="TimeTrackEntry.addDuration" ID="TimeTrackEntry.addDuration"></a> <h4>TimeTrackEntry.addDuration</h4> <b>addDuration</b>(<i>duration</i>) + <p> Public method to add a duration. -</p><dl> +</p> +<dl> + <dt><i>duration</i></dt> <dd> duration to be added in minutes (integer). Negative values are ignored. </dd> -</dl><a NAME="TimeTrackEntry.continue_" ID="TimeTrackEntry.continue_"></a> +</dl> +<a NAME="TimeTrackEntry.continue_" ID="TimeTrackEntry.continue_"></a> <h4>TimeTrackEntry.continue_</h4> <b>continue_</b>(<i></i>) + <p> Public method to continue the entry. -</p><a NAME="TimeTrackEntry.fromString" ID="TimeTrackEntry.fromString"></a> +</p> +<a NAME="TimeTrackEntry.fromString" ID="TimeTrackEntry.fromString"></a> <h4>TimeTrackEntry.fromString</h4> <b>fromString</b>(<i>line</i>) + <p> Public method to populate the entry from the given string. -</p><dl> +</p> +<dl> + <dt><i>line</i></dt> <dd> stringified entry data as generated by toString() (string) </dd> -</dl><dl> +</dl> +<dl> <dt>Returns:</dt> <dd> ID of the tracker entry; -1 indicates an error (integer) </dd> -</dl><a NAME="TimeTrackEntry.getComment" ID="TimeTrackEntry.getComment"></a> +</dl> +<a NAME="TimeTrackEntry.getComment" ID="TimeTrackEntry.getComment"></a> <h4>TimeTrackEntry.getComment</h4> <b>getComment</b>(<i></i>) + <p> Public method to get the comment. -</p><dl> +</p> +<dl> <dt>Returns:</dt> <dd> comment (string) </dd> -</dl><a NAME="TimeTrackEntry.getDuration" ID="TimeTrackEntry.getDuration"></a> +</dl> +<a NAME="TimeTrackEntry.getDuration" ID="TimeTrackEntry.getDuration"></a> <h4>TimeTrackEntry.getDuration</h4> <b>getDuration</b>(<i></i>) + <p> Public slot to get the duration. -</p><dl> +</p> +<dl> <dt>Returns:</dt> <dd> duration (integer) </dd> -</dl><a NAME="TimeTrackEntry.getEntryData" ID="TimeTrackEntry.getEntryData"></a> +</dl> +<a NAME="TimeTrackEntry.getEntryData" ID="TimeTrackEntry.getEntryData"></a> <h4>TimeTrackEntry.getEntryData</h4> <b>getEntryData</b>(<i></i>) + <p> Public method to get the entry data. -</p><dl> +</p> +<dl> <dt>Returns:</dt> <dd> entry data as a tuple of start date (string), start time (string), duration (integer), task (string), comment (string) and flag indicating a paused state (boolean) </dd> -</dl><a NAME="TimeTrackEntry.getID" ID="TimeTrackEntry.getID"></a> +</dl> +<a NAME="TimeTrackEntry.getID" ID="TimeTrackEntry.getID"></a> <h4>TimeTrackEntry.getID</h4> <b>getID</b>(<i></i>) + <p> Public method to get the ID of the entry. -</p><dl> +</p> +<dl> <dt>Returns:</dt> <dd> ID of the entry (integer) </dd> -</dl><a NAME="TimeTrackEntry.getStartDateTime" ID="TimeTrackEntry.getStartDateTime"></a> +</dl> +<a NAME="TimeTrackEntry.getStartDateTime" ID="TimeTrackEntry.getStartDateTime"></a> <h4>TimeTrackEntry.getStartDateTime</h4> <b>getStartDateTime</b>(<i></i>) + <p> Public method to get the start date and time. -</p><dl> +</p> +<dl> <dt>Returns:</dt> <dd> start date and time (QDateTime) </dd> -</dl><a NAME="TimeTrackEntry.getTask" ID="TimeTrackEntry.getTask"></a> +</dl> +<a NAME="TimeTrackEntry.getTask" ID="TimeTrackEntry.getTask"></a> <h4>TimeTrackEntry.getTask</h4> <b>getTask</b>(<i></i>) + <p> Public method to get the task description. -</p><dl> +</p> +<dl> <dt>Returns:</dt> <dd> task description (string) </dd> -</dl><a NAME="TimeTrackEntry.isPaused" ID="TimeTrackEntry.isPaused"></a> +</dl> +<a NAME="TimeTrackEntry.isPaused" ID="TimeTrackEntry.isPaused"></a> <h4>TimeTrackEntry.isPaused</h4> <b>isPaused</b>(<i></i>) + <p> Public method to check for a paused state. -</p><dl> +</p> +<dl> <dt>Returns:</dt> <dd> flag indicating a paused state (boolean) </dd> -</dl><a NAME="TimeTrackEntry.isValid" ID="TimeTrackEntry.isValid"></a> +</dl> +<a NAME="TimeTrackEntry.isValid" ID="TimeTrackEntry.isValid"></a> <h4>TimeTrackEntry.isValid</h4> <b>isValid</b>(<i></i>) + <p> Public method to check the validity of the entry. -</p><dl> +</p> +<dl> <dt>Returns:</dt> <dd> validity of the entry (boolean) </dd> -</dl><a NAME="TimeTrackEntry.pause" ID="TimeTrackEntry.pause"></a> +</dl> +<a NAME="TimeTrackEntry.pause" ID="TimeTrackEntry.pause"></a> <h4>TimeTrackEntry.pause</h4> <b>pause</b>(<i></i>) + <p> Public method to pause the entry. -</p><a NAME="TimeTrackEntry.setComment" ID="TimeTrackEntry.setComment"></a> +</p> +<a NAME="TimeTrackEntry.setComment" ID="TimeTrackEntry.setComment"></a> <h4>TimeTrackEntry.setComment</h4> <b>setComment</b>(<i>comment</i>) + <p> Public method to set a comment. -</p><dl> +</p> +<dl> + <dt><i>comment</i></dt> <dd> comment to set (string) </dd> -</dl><a NAME="TimeTrackEntry.setDuration" ID="TimeTrackEntry.setDuration"></a> +</dl> +<a NAME="TimeTrackEntry.setDuration" ID="TimeTrackEntry.setDuration"></a> <h4>TimeTrackEntry.setDuration</h4> <b>setDuration</b>(<i>duration</i>) + <p> Public method to set the duration. -</p><dl> +</p> +<dl> + <dt><i>duration</i></dt> <dd> duration in minutes (integer) </dd> -</dl><a NAME="TimeTrackEntry.setID" ID="TimeTrackEntry.setID"></a> +</dl> +<a NAME="TimeTrackEntry.setID" ID="TimeTrackEntry.setID"></a> <h4>TimeTrackEntry.setID</h4> <b>setID</b>(<i>eid</i>) + <p> Public method to assign an ID to the entry. -</p><dl> +</p> +<dl> + <dt><i>eid</i></dt> <dd> ID for the entry (integer) </dd> -</dl><a NAME="TimeTrackEntry.setStartDateTime" ID="TimeTrackEntry.setStartDateTime"></a> +</dl> +<a NAME="TimeTrackEntry.setStartDateTime" ID="TimeTrackEntry.setStartDateTime"></a> <h4>TimeTrackEntry.setStartDateTime</h4> <b>setStartDateTime</b>(<i>startDateTime</i>) + <p> Public method to set the start date and time. -</p><dl> +</p> +<dl> + <dt><i>startDateTime</i></dt> <dd> start date and time (QDateTime) </dd> -</dl><a NAME="TimeTrackEntry.setTask" ID="TimeTrackEntry.setTask"></a> +</dl> +<a NAME="TimeTrackEntry.setTask" ID="TimeTrackEntry.setTask"></a> <h4>TimeTrackEntry.setTask</h4> <b>setTask</b>(<i>description</i>) + <p> Public method to set the task description. -</p><dl> +</p> +<dl> + <dt><i>description</i></dt> <dd> task description (string) </dd> -</dl><a NAME="TimeTrackEntry.start" ID="TimeTrackEntry.start"></a> +</dl> +<a NAME="TimeTrackEntry.start" ID="TimeTrackEntry.start"></a> <h4>TimeTrackEntry.start</h4> <b>start</b>(<i></i>) + <p> Public method to set the start time of this entry. -</p><a NAME="TimeTrackEntry.stop" ID="TimeTrackEntry.stop"></a> +</p> +<a NAME="TimeTrackEntry.stop" ID="TimeTrackEntry.stop"></a> <h4>TimeTrackEntry.stop</h4> <b>stop</b>(<i></i>) + <p> Public method to stop this entry. -</p><a NAME="TimeTrackEntry.toString" ID="TimeTrackEntry.toString"></a> +</p> +<a NAME="TimeTrackEntry.toString" ID="TimeTrackEntry.toString"></a> <h4>TimeTrackEntry.toString</h4> <b>toString</b>(<i></i>) + <p> Public method to get a string representation of the entry. -</p><dl> +</p> +<dl> <dt>Returns:</dt> <dd> string representation of the entry (string)
--- a/TimeTracker/Documentation/source/Plugin_Time_Tracker.TimeTracker.TimeTracker.html Thu Apr 09 18:44:42 2020 +0200 +++ b/TimeTracker/Documentation/source/Plugin_Time_Tracker.TimeTracker.TimeTracker.html Tue Jun 23 19:40:26 2020 +0200 @@ -18,299 +18,406 @@ </style> </head> -<body><a NAME="top" ID="top"></a> +<body> +<a NAME="top" ID="top"></a> <h1>Plugin_Time_Tracker.TimeTracker.TimeTracker</h1> + <p> Module implementing the time tracker object. </p> <h3>Global Attributes</h3> + <table> <tr><td>None</td></tr> </table> <h3>Classes</h3> + <table> + <tr> <td><a href="#TimeTracker">TimeTracker</a></td> <td>Class implementing the time tracker object.</td> </tr> </table> <h3>Functions</h3> + <table> <tr><td>None</td></tr> </table> -<hr /><hr /> +<hr /> +<hr /> <a NAME="TimeTracker" ID="TimeTracker"></a> <h2>TimeTracker</h2> + <p> Class implementing the time tracker object. </p> <h3>Derived from</h3> QObject <h3>Class Attributes</h3> + <table> <tr><td>FileName</td></tr> </table> <h3>Class Methods</h3> + <table> <tr><td>None</td></tr> </table> <h3>Methods</h3> + <table> + <tr> <td><a href="#TimeTracker.__init__">TimeTracker</a></td> <td>Constructor</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTracker.__activateWidget">__activateWidget</a></td> <td>Private slot to handle the activation of the project browser.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTracker.__initialize">__initialize</a></td> <td>Private slot to initialize some member variables.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTracker.__readTrackerEntries">__readTrackerEntries</a></td> <td>Private slot to read the time tracker entries from a file.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTracker.activate">activate</a></td> <td>Public method to activate the time tracker.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTracker.addTrackerEntry">addTrackerEntry</a></td> <td>Public method to add a new tracker entry based on the given data.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTracker.continueTrackerEntry">continueTrackerEntry</a></td> <td>Public method to continue the current tracker entry.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTracker.deactivate">deactivate</a></td> <td>Public method to deactivate the time tracker.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTracker.deleteTrackerEntry">deleteTrackerEntry</a></td> <td>Public method to delete a tracker entry given its ID.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTracker.entryChanged">entryChanged</a></td> <td>Public method to indicate an external change to any of the entries.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTracker.getCurrentEntry">getCurrentEntry</a></td> <td>Public method to get a reference to the current tracker entry.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTracker.getEntry">getEntry</a></td> <td>Public method to get a tracker entry given its ID.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTracker.getPreferences">getPreferences</a></td> <td>Public method to retrieve the various settings.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTracker.importTrackerEntries">importTrackerEntries</a></td> <td>Public slot to import tracker entries from a file.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTracker.mergeDuplicateTrackerEntries">mergeDuplicateTrackerEntries</a></td> <td>Public slot to merge duplicate time tracker entries.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTracker.pauseTrackerEntry">pauseTrackerEntry</a></td> <td>Public method to pause the current tracker entry.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTracker.projectClosed">projectClosed</a></td> <td>Public slot to handle the projectClosed signal.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTracker.projectOpened">projectOpened</a></td> <td>Public slot to handle the projectOpened signal.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTracker.removeDuplicateTrackerEntries">removeDuplicateTrackerEntries</a></td> <td>Public slot to remove duplicate time tracker entries.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTracker.saveTrackerEntries">saveTrackerEntries</a></td> <td>Public slot to save the tracker entries to a file.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTracker.startTrackerEntry">startTrackerEntry</a></td> <td>Public method to start a new tracker entry.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTracker.stopTrackerEntry">stopTrackerEntry</a></td> <td>Public method to stop the current tracker entry.</td> </tr> </table> <h3>Static Methods</h3> + <table> <tr><td>None</td></tr> </table> + <a NAME="TimeTracker.__init__" ID="TimeTracker.__init__"></a> <h4>TimeTracker (Constructor)</h4> -<b>TimeTracker</b>(<i>plugin, parent=None</i>) +<b>TimeTracker</b>(<i>plugin, iconSuffix, parent=None</i>) + <p> Constructor -</p><dl> -<dt><i>plugin</i></dt> +</p> +<dl> + +<dt><i>plugin</i> (TimeTrackerPlugin)</dt> +<dd> +reference to the plugin object +</dd> +<dt><i>iconSuffix</i> (str)</dt> <dd> -reference to the plugin object (TimeTrackerPlugin) -</dd><dt><i>parent</i></dt> +suffix for the icons +</dd> +<dt><i>parent</i> (QObject)</dt> <dd> -parent (QObject) +parent </dd> -</dl><a NAME="TimeTracker.__activateWidget" ID="TimeTracker.__activateWidget"></a> +</dl> +<a NAME="TimeTracker.__activateWidget" ID="TimeTracker.__activateWidget"></a> <h4>TimeTracker.__activateWidget</h4> <b>__activateWidget</b>(<i></i>) + <p> Private slot to handle the activation of the project browser. -</p><a NAME="TimeTracker.__initialize" ID="TimeTracker.__initialize"></a> +</p> +<a NAME="TimeTracker.__initialize" ID="TimeTracker.__initialize"></a> <h4>TimeTracker.__initialize</h4> <b>__initialize</b>(<i></i>) + <p> Private slot to initialize some member variables. -</p><a NAME="TimeTracker.__readTrackerEntries" ID="TimeTracker.__readTrackerEntries"></a> +</p> +<a NAME="TimeTracker.__readTrackerEntries" ID="TimeTracker.__readTrackerEntries"></a> <h4>TimeTracker.__readTrackerEntries</h4> <b>__readTrackerEntries</b>(<i></i>) + <p> Private slot to read the time tracker entries from a file. -</p><a NAME="TimeTracker.activate" ID="TimeTracker.activate"></a> +</p> +<a NAME="TimeTracker.activate" ID="TimeTracker.activate"></a> <h4>TimeTracker.activate</h4> <b>activate</b>(<i></i>) + <p> Public method to activate the time tracker. -</p><a NAME="TimeTracker.addTrackerEntry" ID="TimeTracker.addTrackerEntry"></a> +</p> +<a NAME="TimeTracker.addTrackerEntry" ID="TimeTracker.addTrackerEntry"></a> <h4>TimeTracker.addTrackerEntry</h4> <b>addTrackerEntry</b>(<i>startDateTime, duration, task, comment</i>) + <p> Public method to add a new tracker entry based on the given data. -</p><dl> +</p> +<dl> + <dt><i>startDateTime</i></dt> <dd> start date and time (QDateTime) -</dd><dt><i>duration</i></dt> +</dd> +<dt><i>duration</i></dt> <dd> duration in minutes (integer) -</dd><dt><i>task</i></dt> +</dd> +<dt><i>task</i></dt> <dd> task description (string) -</dd><dt><i>comment</i></dt> +</dd> +<dt><i>comment</i></dt> <dd> comment (string) </dd> -</dl><a NAME="TimeTracker.continueTrackerEntry" ID="TimeTracker.continueTrackerEntry"></a> +</dl> +<a NAME="TimeTracker.continueTrackerEntry" ID="TimeTracker.continueTrackerEntry"></a> <h4>TimeTracker.continueTrackerEntry</h4> <b>continueTrackerEntry</b>(<i></i>) + <p> Public method to continue the current tracker entry. -</p><a NAME="TimeTracker.deactivate" ID="TimeTracker.deactivate"></a> +</p> +<a NAME="TimeTracker.deactivate" ID="TimeTracker.deactivate"></a> <h4>TimeTracker.deactivate</h4> <b>deactivate</b>(<i></i>) + <p> Public method to deactivate the time tracker. -</p><a NAME="TimeTracker.deleteTrackerEntry" ID="TimeTracker.deleteTrackerEntry"></a> +</p> +<a NAME="TimeTracker.deleteTrackerEntry" ID="TimeTracker.deleteTrackerEntry"></a> <h4>TimeTracker.deleteTrackerEntry</h4> <b>deleteTrackerEntry</b>(<i>eid</i>) + <p> Public method to delete a tracker entry given its ID. -</p><dl> +</p> +<dl> + <dt><i>eid</i></dt> <dd> ID of the tracker entry (integer) </dd> -</dl><a NAME="TimeTracker.entryChanged" ID="TimeTracker.entryChanged"></a> +</dl> +<a NAME="TimeTracker.entryChanged" ID="TimeTracker.entryChanged"></a> <h4>TimeTracker.entryChanged</h4> <b>entryChanged</b>(<i></i>) + <p> Public method to indicate an external change to any of the entries. -</p><a NAME="TimeTracker.getCurrentEntry" ID="TimeTracker.getCurrentEntry"></a> +</p> +<a NAME="TimeTracker.getCurrentEntry" ID="TimeTracker.getCurrentEntry"></a> <h4>TimeTracker.getCurrentEntry</h4> <b>getCurrentEntry</b>(<i></i>) + <p> Public method to get a reference to the current tracker entry. -</p><dl> +</p> +<dl> <dt>Returns:</dt> <dd> reference to the current entry (TimeTrackEntry) </dd> -</dl><a NAME="TimeTracker.getEntry" ID="TimeTracker.getEntry"></a> +</dl> +<a NAME="TimeTracker.getEntry" ID="TimeTracker.getEntry"></a> <h4>TimeTracker.getEntry</h4> <b>getEntry</b>(<i>eid</i>) + <p> Public method to get a tracker entry given its ID. -</p><dl> +</p> +<dl> + <dt><i>eid</i></dt> <dd> ID of the tracker entry (integer) </dd> -</dl><dl> +</dl> +<dl> <dt>Returns:</dt> <dd> entry for the given ID (TimeTrackEntry) or None </dd> -</dl><a NAME="TimeTracker.getPreferences" ID="TimeTracker.getPreferences"></a> +</dl> +<a NAME="TimeTracker.getPreferences" ID="TimeTracker.getPreferences"></a> <h4>TimeTracker.getPreferences</h4> <b>getPreferences</b>(<i>key</i>) + <p> Public method to retrieve the various settings. -</p><dl> +</p> +<dl> + <dt><i>key</i></dt> <dd> the key of the value to get </dd> -</dl><dl> +</dl> +<dl> <dt>Returns:</dt> <dd> the requested setting </dd> -</dl><a NAME="TimeTracker.importTrackerEntries" ID="TimeTracker.importTrackerEntries"></a> +</dl> +<a NAME="TimeTracker.importTrackerEntries" ID="TimeTracker.importTrackerEntries"></a> <h4>TimeTracker.importTrackerEntries</h4> <b>importTrackerEntries</b>(<i>fname</i>) + <p> Public slot to import tracker entries from a file. -</p><dl> +</p> +<dl> + <dt><i>fname</i></dt> <dd> name of the file to import (string) </dd> -</dl><a NAME="TimeTracker.mergeDuplicateTrackerEntries" ID="TimeTracker.mergeDuplicateTrackerEntries"></a> +</dl> +<a NAME="TimeTracker.mergeDuplicateTrackerEntries" ID="TimeTracker.mergeDuplicateTrackerEntries"></a> <h4>TimeTracker.mergeDuplicateTrackerEntries</h4> <b>mergeDuplicateTrackerEntries</b>(<i></i>) + <p> Public slot to merge duplicate time tracker entries. -</p><p> +</p> +<p> If entries with the identical start date and time are found, the durations of these entries are added. -</p><a NAME="TimeTracker.pauseTrackerEntry" ID="TimeTracker.pauseTrackerEntry"></a> +</p> +<a NAME="TimeTracker.pauseTrackerEntry" ID="TimeTracker.pauseTrackerEntry"></a> <h4>TimeTracker.pauseTrackerEntry</h4> <b>pauseTrackerEntry</b>(<i></i>) + <p> Public method to pause the current tracker entry. -</p><a NAME="TimeTracker.projectClosed" ID="TimeTracker.projectClosed"></a> +</p> +<a NAME="TimeTracker.projectClosed" ID="TimeTracker.projectClosed"></a> <h4>TimeTracker.projectClosed</h4> <b>projectClosed</b>(<i></i>) + <p> Public slot to handle the projectClosed signal. -</p><a NAME="TimeTracker.projectOpened" ID="TimeTracker.projectOpened"></a> +</p> +<a NAME="TimeTracker.projectOpened" ID="TimeTracker.projectOpened"></a> <h4>TimeTracker.projectOpened</h4> <b>projectOpened</b>(<i></i>) + <p> Public slot to handle the projectOpened signal. -</p><a NAME="TimeTracker.removeDuplicateTrackerEntries" ID="TimeTracker.removeDuplicateTrackerEntries"></a> +</p> +<a NAME="TimeTracker.removeDuplicateTrackerEntries" ID="TimeTracker.removeDuplicateTrackerEntries"></a> <h4>TimeTracker.removeDuplicateTrackerEntries</h4> <b>removeDuplicateTrackerEntries</b>(<i></i>) + <p> Public slot to remove duplicate time tracker entries. -</p><p> +</p> +<p> If entries with the identical start date and time are found, the one with the longest duration is kept. -</p><a NAME="TimeTracker.saveTrackerEntries" ID="TimeTracker.saveTrackerEntries"></a> +</p> +<a NAME="TimeTracker.saveTrackerEntries" ID="TimeTracker.saveTrackerEntries"></a> <h4>TimeTracker.saveTrackerEntries</h4> <b>saveTrackerEntries</b>(<i>filePath="", ids=None</i>) + <p> Public slot to save the tracker entries to a file. -</p><dl> +</p> +<dl> + <dt><i>filePath=</i></dt> <dd> path and name of the file to write the entries to (string) -</dd><dt><i>ids=</i></dt> +</dd> +<dt><i>ids=</i></dt> <dd> list of entry IDs to be written (list of integer) </dd> -</dl><a NAME="TimeTracker.startTrackerEntry" ID="TimeTracker.startTrackerEntry"></a> +</dl> +<a NAME="TimeTracker.startTrackerEntry" ID="TimeTracker.startTrackerEntry"></a> <h4>TimeTracker.startTrackerEntry</h4> <b>startTrackerEntry</b>(<i></i>) + <p> Public method to start a new tracker entry. -</p><a NAME="TimeTracker.stopTrackerEntry" ID="TimeTracker.stopTrackerEntry"></a> +</p> +<a NAME="TimeTracker.stopTrackerEntry" ID="TimeTracker.stopTrackerEntry"></a> <h4>TimeTracker.stopTrackerEntry</h4> <b>stopTrackerEntry</b>(<i></i>) + <p> Public method to stop the current tracker entry. -</p><dl> +</p> +<dl> <dt>Returns:</dt> <dd> tuple of the ID assigned to the stopped tracker entry and
--- a/TimeTracker/Documentation/source/Plugin_Time_Tracker.TimeTracker.TimeTrackerEntryDialog.html Thu Apr 09 18:44:42 2020 +0200 +++ b/TimeTracker/Documentation/source/Plugin_Time_Tracker.TimeTracker.TimeTrackerEntryDialog.html Tue Jun 23 19:40:26 2020 +0200 @@ -18,121 +18,159 @@ </style> </head> -<body><a NAME="top" ID="top"></a> +<body> +<a NAME="top" ID="top"></a> <h1>Plugin_Time_Tracker.TimeTracker.TimeTrackerEntryDialog</h1> + <p> Module implementing the time tracker edit dialog. </p> <h3>Global Attributes</h3> + <table> <tr><td>None</td></tr> </table> <h3>Classes</h3> + <table> + <tr> <td><a href="#TimeTrackerEntryDialog">TimeTrackerEntryDialog</a></td> <td>Class implementing the time tracker edit dialog.</td> </tr> </table> <h3>Functions</h3> + <table> <tr><td>None</td></tr> </table> -<hr /><hr /> +<hr /> +<hr /> <a NAME="TimeTrackerEntryDialog" ID="TimeTrackerEntryDialog"></a> <h2>TimeTrackerEntryDialog</h2> + <p> Class implementing the time tracker edit dialog. </p> <h3>Derived from</h3> QDialog, Ui_TimeTrackerEntryDialog <h3>Class Attributes</h3> + <table> <tr><td>None</td></tr> </table> <h3>Class Methods</h3> + <table> <tr><td>None</td></tr> </table> <h3>Methods</h3> + <table> + <tr> <td><a href="#TimeTrackerEntryDialog.__init__">TimeTrackerEntryDialog</a></td> <td>Constructor</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerEntryDialog.__checkOk">__checkOk</a></td> <td>Private slot to set the enabled state of the OK button.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerEntryDialog.getData">getData</a></td> <td>Public method to get the data.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerEntryDialog.on_durationSpinBox_valueChanged">on_durationSpinBox_valueChanged</a></td> <td>Private slot handling a change of the duration.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerEntryDialog.on_startDateTimeEdit_dateTimeChanged">on_startDateTimeEdit_dateTimeChanged</a></td> <td>Private slot handling a change of the start date and time.</td> </tr> </table> <h3>Static Methods</h3> + <table> <tr><td>None</td></tr> </table> + <a NAME="TimeTrackerEntryDialog.__init__" ID="TimeTrackerEntryDialog.__init__"></a> <h4>TimeTrackerEntryDialog (Constructor)</h4> <b>TimeTrackerEntryDialog</b>(<i>tracker, entry, taskItems, commentItems, parent=None</i>) + <p> Constructor -</p><dl> +</p> +<dl> + <dt><i>tracker</i></dt> <dd> reference to the time tracker (TimeTracker) -</dd><dt><i>entry</i></dt> +</dd> +<dt><i>entry</i></dt> <dd> reference to the time tracker entry (TimeTrackEntry) -</dd><dt><i>taskItems</i></dt> +</dd> +<dt><i>taskItems</i></dt> <dd> list of task item entries for the task combo box (list of strings) -</dd><dt><i>commentItems</i></dt> +</dd> +<dt><i>commentItems</i></dt> <dd> list of comment item entries for the comment combo box (list of strings) -</dd><dt><i>parent</i></dt> +</dd> +<dt><i>parent</i></dt> <dd> reference to the parent widget (QWidget) </dd> -</dl><a NAME="TimeTrackerEntryDialog.__checkOk" ID="TimeTrackerEntryDialog.__checkOk"></a> +</dl> +<a NAME="TimeTrackerEntryDialog.__checkOk" ID="TimeTrackerEntryDialog.__checkOk"></a> <h4>TimeTrackerEntryDialog.__checkOk</h4> <b>__checkOk</b>(<i></i>) + <p> Private slot to set the enabled state of the OK button. -</p><a NAME="TimeTrackerEntryDialog.getData" ID="TimeTrackerEntryDialog.getData"></a> +</p> +<a NAME="TimeTrackerEntryDialog.getData" ID="TimeTrackerEntryDialog.getData"></a> <h4>TimeTrackerEntryDialog.getData</h4> <b>getData</b>(<i></i>) + <p> Public method to get the data. -</p><dl> +</p> +<dl> <dt>Returns:</dt> <dd> tuple with start date and time, duration, task description and comment (QDateTime, integer, string, string) </dd> -</dl><a NAME="TimeTrackerEntryDialog.on_durationSpinBox_valueChanged" ID="TimeTrackerEntryDialog.on_durationSpinBox_valueChanged"></a> +</dl> +<a NAME="TimeTrackerEntryDialog.on_durationSpinBox_valueChanged" ID="TimeTrackerEntryDialog.on_durationSpinBox_valueChanged"></a> <h4>TimeTrackerEntryDialog.on_durationSpinBox_valueChanged</h4> <b>on_durationSpinBox_valueChanged</b>(<i>value</i>) + <p> Private slot handling a change of the duration. -</p><dl> +</p> +<dl> + <dt><i>value</i></dt> <dd> value of the duration spin box (integer) </dd> -</dl><a NAME="TimeTrackerEntryDialog.on_startDateTimeEdit_dateTimeChanged" ID="TimeTrackerEntryDialog.on_startDateTimeEdit_dateTimeChanged"></a> +</dl> +<a NAME="TimeTrackerEntryDialog.on_startDateTimeEdit_dateTimeChanged" ID="TimeTrackerEntryDialog.on_startDateTimeEdit_dateTimeChanged"></a> <h4>TimeTrackerEntryDialog.on_startDateTimeEdit_dateTimeChanged</h4> <b>on_startDateTimeEdit_dateTimeChanged</b>(<i>date</i>) + <p> Private slot handling a change of the start date and time. -</p><dl> +</p> +<dl> + <dt><i>date</i></dt> <dd> start date and time (QDateTime)
--- a/TimeTracker/Documentation/source/Plugin_Time_Tracker.TimeTracker.TimeTrackerWidget.html Thu Apr 09 18:44:42 2020 +0200 +++ b/TimeTracker/Documentation/source/Plugin_Time_Tracker.TimeTracker.TimeTrackerWidget.html Tue Jun 23 19:40:26 2020 +0200 @@ -18,260 +18,352 @@ </style> </head> -<body><a NAME="top" ID="top"></a> +<body> +<a NAME="top" ID="top"></a> <h1>Plugin_Time_Tracker.TimeTracker.TimeTrackerWidget</h1> + <p> Module implementing the time tracker widget. </p> <h3>Global Attributes</h3> + <table> <tr><td>None</td></tr> </table> <h3>Classes</h3> + <table> + <tr> <td><a href="#TimeTrackerWidget">TimeTrackerWidget</a></td> <td>Class implementing the time tracker widget.</td> </tr> </table> <h3>Functions</h3> + <table> <tr><td>None</td></tr> </table> -<hr /><hr /> +<hr /> +<hr /> <a NAME="TimeTrackerWidget" ID="TimeTrackerWidget"></a> <h2>TimeTrackerWidget</h2> + <p> Class implementing the time tracker widget. </p> <h3>Derived from</h3> QWidget, Ui_TimeTrackerWidget <h3>Class Attributes</h3> + <table> <tr><td>CommentColumn</td></tr><tr><td>DurationColumn</td></tr><tr><td>TaskColumn</td></tr> </table> <h3>Class Methods</h3> + <table> <tr><td>None</td></tr> </table> <h3>Methods</h3> + <table> + <tr> <td><a href="#TimeTrackerWidget.__init__">TimeTrackerWidget</a></td> <td>Constructor</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerWidget.__addEntry">__addEntry</a></td> <td>Private slot to manually add an entry.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerWidget.__deleteSelectedEntries">__deleteSelectedEntries</a></td> <td>Private slot to delete the selected tracker entries.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerWidget.__editEntry">__editEntry</a></td> <td>Private slot to edit the selected tracker entry.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerWidget.__exportEntries">__exportEntries</a></td> <td>Private method to export all or selected entries.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerWidget.__exportSelectedEntries">__exportSelectedEntries</a></td> <td>Private slot to export the selected tracker entries.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerWidget.__importEntries">__importEntries</a></td> <td>Private slot to import tracker entries.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerWidget.__insertEntry">__insertEntry</a></td> <td>Private method to insert a tracker entry into the list.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerWidget.__mergeDuplicates">__mergeDuplicates</a></td> <td>Private slot to merge duplicate entries.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerWidget.__removeDuplicates">__removeDuplicates</a></td> <td>Private slot to remove duplicate entries.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerWidget.__resizeColumns">__resizeColumns</a></td> <td>Private slot to resize the columns of the entries list.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerWidget.__saveEntries">__saveEntries</a></td> <td>Private slot to save the tracker entries.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerWidget.clear">clear</a></td> <td>Public method to clear all the data.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerWidget.on_commentCombo_editTextChanged">on_commentCombo_editTextChanged</a></td> <td>Private slot handling changes of the comment of the current entry.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerWidget.on_entriesList_customContextMenuRequested">on_entriesList_customContextMenuRequested</a></td> <td>Private slot to create the context menu and show it.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerWidget.on_newButton_clicked">on_newButton_clicked</a></td> <td>Private slot to end the current timer and start a new one.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerWidget.on_pauseButton_toggled">on_pauseButton_toggled</a></td> <td>Private slot to pause the current timing.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerWidget.on_taskCombo_editTextChanged">on_taskCombo_editTextChanged</a></td> <td>Private slot handling changes of the task description of the current entry.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerWidget.setCurrentEntry">setCurrentEntry</a></td> <td>Public method to set the current entry.</td> -</tr><tr> +</tr> +<tr> <td><a href="#TimeTrackerWidget.showTrackerEntries">showTrackerEntries</a></td> <td>Public method to show the tracker entries of the current project.</td> </tr> </table> <h3>Static Methods</h3> + <table> <tr><td>None</td></tr> </table> + <a NAME="TimeTrackerWidget.__init__" ID="TimeTrackerWidget.__init__"></a> <h4>TimeTrackerWidget (Constructor)</h4> <b>TimeTrackerWidget</b>(<i>tracker, parent=None</i>) + <p> Constructor -</p><dl> +</p> +<dl> + <dt><i>tracker</i></dt> <dd> reference to the time tracker (TimeTracker) -</dd><dt><i>parent</i></dt> +</dd> +<dt><i>parent</i></dt> <dd> reference to the parent widget (QWidget) </dd> -</dl><a NAME="TimeTrackerWidget.__addEntry" ID="TimeTrackerWidget.__addEntry"></a> +</dl> +<a NAME="TimeTrackerWidget.__addEntry" ID="TimeTrackerWidget.__addEntry"></a> <h4>TimeTrackerWidget.__addEntry</h4> <b>__addEntry</b>(<i></i>) + <p> Private slot to manually add an entry. -</p><a NAME="TimeTrackerWidget.__deleteSelectedEntries" ID="TimeTrackerWidget.__deleteSelectedEntries"></a> +</p> +<a NAME="TimeTrackerWidget.__deleteSelectedEntries" ID="TimeTrackerWidget.__deleteSelectedEntries"></a> <h4>TimeTrackerWidget.__deleteSelectedEntries</h4> <b>__deleteSelectedEntries</b>(<i></i>) + <p> Private slot to delete the selected tracker entries. -</p><a NAME="TimeTrackerWidget.__editEntry" ID="TimeTrackerWidget.__editEntry"></a> +</p> +<a NAME="TimeTrackerWidget.__editEntry" ID="TimeTrackerWidget.__editEntry"></a> <h4>TimeTrackerWidget.__editEntry</h4> <b>__editEntry</b>(<i></i>) + <p> Private slot to edit the selected tracker entry. -</p><a NAME="TimeTrackerWidget.__exportEntries" ID="TimeTrackerWidget.__exportEntries"></a> +</p> +<a NAME="TimeTrackerWidget.__exportEntries" ID="TimeTrackerWidget.__exportEntries"></a> <h4>TimeTrackerWidget.__exportEntries</h4> <b>__exportEntries</b>(<i>ids=None</i>) + <p> Private method to export all or selected entries. -</p><dl> +</p> +<dl> + <dt><i>ids=</i></dt> <dd> list of IDs to export or all if empty (list of integer) </dd> -</dl><a NAME="TimeTrackerWidget.__exportSelectedEntries" ID="TimeTrackerWidget.__exportSelectedEntries"></a> +</dl> +<a NAME="TimeTrackerWidget.__exportSelectedEntries" ID="TimeTrackerWidget.__exportSelectedEntries"></a> <h4>TimeTrackerWidget.__exportSelectedEntries</h4> <b>__exportSelectedEntries</b>(<i></i>) + <p> Private slot to export the selected tracker entries. -</p><a NAME="TimeTrackerWidget.__importEntries" ID="TimeTrackerWidget.__importEntries"></a> +</p> +<a NAME="TimeTrackerWidget.__importEntries" ID="TimeTrackerWidget.__importEntries"></a> <h4>TimeTrackerWidget.__importEntries</h4> <b>__importEntries</b>(<i></i>) + <p> Private slot to import tracker entries. -</p><a NAME="TimeTrackerWidget.__insertEntry" ID="TimeTrackerWidget.__insertEntry"></a> +</p> +<a NAME="TimeTrackerWidget.__insertEntry" ID="TimeTrackerWidget.__insertEntry"></a> <h4>TimeTrackerWidget.__insertEntry</h4> <b>__insertEntry</b>(<i>entry, index=-1</i>) + <p> Private method to insert a tracker entry into the list. -</p><dl> +</p> +<dl> + <dt><i>entry</i></dt> <dd> reference to the tracker entry (TimeTrackEntry) -</dd><dt><i>index</i></dt> +</dd> +<dt><i>index</i></dt> <dd> index the entry is to be inserted; -1 for at the end (integer) </dd> -</dl><a NAME="TimeTrackerWidget.__mergeDuplicates" ID="TimeTrackerWidget.__mergeDuplicates"></a> +</dl> +<a NAME="TimeTrackerWidget.__mergeDuplicates" ID="TimeTrackerWidget.__mergeDuplicates"></a> <h4>TimeTrackerWidget.__mergeDuplicates</h4> <b>__mergeDuplicates</b>(<i></i>) + <p> Private slot to merge duplicate entries. -</p><a NAME="TimeTrackerWidget.__removeDuplicates" ID="TimeTrackerWidget.__removeDuplicates"></a> +</p> +<a NAME="TimeTrackerWidget.__removeDuplicates" ID="TimeTrackerWidget.__removeDuplicates"></a> <h4>TimeTrackerWidget.__removeDuplicates</h4> <b>__removeDuplicates</b>(<i></i>) + <p> Private slot to remove duplicate entries. -</p><a NAME="TimeTrackerWidget.__resizeColumns" ID="TimeTrackerWidget.__resizeColumns"></a> +</p> +<a NAME="TimeTrackerWidget.__resizeColumns" ID="TimeTrackerWidget.__resizeColumns"></a> <h4>TimeTrackerWidget.__resizeColumns</h4> <b>__resizeColumns</b>(<i></i>) + <p> Private slot to resize the columns of the entries list. -</p><a NAME="TimeTrackerWidget.__saveEntries" ID="TimeTrackerWidget.__saveEntries"></a> +</p> +<a NAME="TimeTrackerWidget.__saveEntries" ID="TimeTrackerWidget.__saveEntries"></a> <h4>TimeTrackerWidget.__saveEntries</h4> <b>__saveEntries</b>(<i></i>) + <p> Private slot to save the tracker entries. -</p><a NAME="TimeTrackerWidget.clear" ID="TimeTrackerWidget.clear"></a> +</p> +<a NAME="TimeTrackerWidget.clear" ID="TimeTrackerWidget.clear"></a> <h4>TimeTrackerWidget.clear</h4> <b>clear</b>(<i></i>) + <p> Public method to clear all the data. -</p><a NAME="TimeTrackerWidget.on_commentCombo_editTextChanged" ID="TimeTrackerWidget.on_commentCombo_editTextChanged"></a> +</p> +<a NAME="TimeTrackerWidget.on_commentCombo_editTextChanged" ID="TimeTrackerWidget.on_commentCombo_editTextChanged"></a> <h4>TimeTrackerWidget.on_commentCombo_editTextChanged</h4> <b>on_commentCombo_editTextChanged</b>(<i>txt</i>) + <p> Private slot handling changes of the comment of the current entry. -</p><dl> +</p> +<dl> + <dt><i>txt</i></dt> <dd> new comment (string) </dd> -</dl><a NAME="TimeTrackerWidget.on_entriesList_customContextMenuRequested" ID="TimeTrackerWidget.on_entriesList_customContextMenuRequested"></a> +</dl> +<a NAME="TimeTrackerWidget.on_entriesList_customContextMenuRequested" ID="TimeTrackerWidget.on_entriesList_customContextMenuRequested"></a> <h4>TimeTrackerWidget.on_entriesList_customContextMenuRequested</h4> <b>on_entriesList_customContextMenuRequested</b>(<i>pos</i>) + <p> Private slot to create the context menu and show it. -</p><dl> +</p> +<dl> + <dt><i>pos</i></dt> <dd> position the menu should be shown at (QPoint) </dd> -</dl><a NAME="TimeTrackerWidget.on_newButton_clicked" ID="TimeTrackerWidget.on_newButton_clicked"></a> +</dl> +<a NAME="TimeTrackerWidget.on_newButton_clicked" ID="TimeTrackerWidget.on_newButton_clicked"></a> <h4>TimeTrackerWidget.on_newButton_clicked</h4> <b>on_newButton_clicked</b>(<i></i>) + <p> Private slot to end the current timer and start a new one. -</p><a NAME="TimeTrackerWidget.on_pauseButton_toggled" ID="TimeTrackerWidget.on_pauseButton_toggled"></a> +</p> +<a NAME="TimeTrackerWidget.on_pauseButton_toggled" ID="TimeTrackerWidget.on_pauseButton_toggled"></a> <h4>TimeTrackerWidget.on_pauseButton_toggled</h4> <b>on_pauseButton_toggled</b>(<i>checked</i>) + <p> Private slot to pause the current timing. -</p><dl> +</p> +<dl> + <dt><i>checked</i></dt> <dd> flag indicating the checked status of the button (boolean) </dd> -</dl><a NAME="TimeTrackerWidget.on_taskCombo_editTextChanged" ID="TimeTrackerWidget.on_taskCombo_editTextChanged"></a> +</dl> +<a NAME="TimeTrackerWidget.on_taskCombo_editTextChanged" ID="TimeTrackerWidget.on_taskCombo_editTextChanged"></a> <h4>TimeTrackerWidget.on_taskCombo_editTextChanged</h4> <b>on_taskCombo_editTextChanged</b>(<i>txt</i>) + <p> Private slot handling changes of the task description of the current entry. -</p><dl> +</p> +<dl> + <dt><i>txt</i></dt> <dd> new task description (string) </dd> -</dl><a NAME="TimeTrackerWidget.setCurrentEntry" ID="TimeTrackerWidget.setCurrentEntry"></a> +</dl> +<a NAME="TimeTrackerWidget.setCurrentEntry" ID="TimeTrackerWidget.setCurrentEntry"></a> <h4>TimeTrackerWidget.setCurrentEntry</h4> <b>setCurrentEntry</b>(<i>entry</i>) + <p> Public method to set the current entry. -</p><dl> +</p> +<dl> + <dt><i>entry</i></dt> <dd> current entry (TimeTrackEntry) </dd> -</dl><a NAME="TimeTrackerWidget.showTrackerEntries" ID="TimeTrackerWidget.showTrackerEntries"></a> +</dl> +<a NAME="TimeTrackerWidget.showTrackerEntries" ID="TimeTrackerWidget.showTrackerEntries"></a> <h4>TimeTrackerWidget.showTrackerEntries</h4> <b>showTrackerEntries</b>(<i>entries</i>) + <p> Public method to show the tracker entries of the current project. -</p><dl> +</p> +<dl> + <dt><i>entries</i></dt> <dd> list of tracker entries (list of TimeTrackEntry)
--- a/TimeTracker/Documentation/source/index-Plugin_Time_Tracker.TimeTracker.ConfigurationPage.html Thu Apr 09 18:44:42 2020 +0200 +++ b/TimeTracker/Documentation/source/index-Plugin_Time_Tracker.TimeTracker.ConfigurationPage.html Tue Jun 23 19:40:26 2020 +0200 @@ -20,6 +20,7 @@ </head> <body> <h1>Plugin_Time_Tracker.TimeTracker.ConfigurationPage</h1> + <p> Package implementing the Time Tracker page of the configuration dialog. </p> @@ -27,6 +28,7 @@ <h3>Modules</h3> <table> + <tr> <td><a href="Plugin_Time_Tracker.TimeTracker.ConfigurationPage.TimeTrackerPage.html">TimeTrackerPage</a></td> <td>Module implementing the Time Tracker configuration page.</td>
--- a/TimeTracker/Documentation/source/index-Plugin_Time_Tracker.TimeTracker.html Thu Apr 09 18:44:42 2020 +0200 +++ b/TimeTracker/Documentation/source/index-Plugin_Time_Tracker.TimeTracker.html Tue Jun 23 19:40:26 2020 +0200 @@ -20,12 +20,14 @@ </head> <body> <h1>Plugin_Time_Tracker.TimeTracker</h1> + <p> Package implementing the time tracker. </p> <h3>Packages</h3> <table> + <tr> <td><a href="index-Plugin_Time_Tracker.TimeTracker.ConfigurationPage.html">ConfigurationPage</a></td> <td>Package implementing the Time Tracker page of the configuration dialog.</td> @@ -34,16 +36,20 @@ <h3>Modules</h3> <table> + <tr> <td><a href="Plugin_Time_Tracker.TimeTracker.TimeTrackEntry.html">TimeTrackEntry</a></td> <td>Module implementing the time track entry class.</td> -</tr><tr> +</tr> +<tr> <td><a href="Plugin_Time_Tracker.TimeTracker.TimeTracker.html">TimeTracker</a></td> <td>Module implementing the time tracker object.</td> -</tr><tr> +</tr> +<tr> <td><a href="Plugin_Time_Tracker.TimeTracker.TimeTrackerEntryDialog.html">TimeTrackerEntryDialog</a></td> <td>Module implementing the time tracker edit dialog.</td> -</tr><tr> +</tr> +<tr> <td><a href="Plugin_Time_Tracker.TimeTracker.TimeTrackerWidget.html">TimeTrackerWidget</a></td> <td>Module implementing the time tracker widget.</td> </tr>
--- a/TimeTracker/Documentation/source/index-Plugin_Time_Tracker.html Thu Apr 09 18:44:42 2020 +0200 +++ b/TimeTracker/Documentation/source/index-Plugin_Time_Tracker.html Tue Jun 23 19:40:26 2020 +0200 @@ -20,12 +20,14 @@ </head> <body> <h1>Plugin_Time_Tracker</h1> + <p> Package implementing the Time Tracker plugin. </p> <h3>Packages</h3> <table> + <tr> <td><a href="index-Plugin_Time_Tracker.TimeTracker.html">TimeTracker</a></td> <td>Package implementing the time tracker.</td> @@ -34,6 +36,7 @@ <h3>Modules</h3> <table> + <tr> <td><a href="Plugin_Time_Tracker.PluginTimeTracker.html">PluginTimeTracker</a></td> <td>Module implementing the Time Tracker plugin.</td>
--- a/TimeTracker/Documentation/source/index.html Thu Apr 09 18:44:42 2020 +0200 +++ b/TimeTracker/Documentation/source/index.html Tue Jun 23 19:40:26 2020 +0200 @@ -24,6 +24,7 @@ <h3>Packages</h3> <table> + <tr> <td><a href="index-Plugin_Time_Tracker.html">Plugin_Time_Tracker</a></td> <td>Package implementing the Time Tracker plugin.</td>
--- a/TimeTracker/TimeTrackEntry.py Thu Apr 09 18:44:42 2020 +0200 +++ b/TimeTracker/TimeTrackEntry.py Tue Jun 23 19:40:26 2020 +0200 @@ -7,12 +7,6 @@ Module implementing the time track entry class. """ -from __future__ import unicode_literals -try: - str = unicode # __IGNORE_EXCEPTION__ -except NameError: - pass - from PyQt5.QtCore import Qt, QDateTime, QTime @@ -222,9 +216,11 @@ """ if startDateTime.isValid(): self.__startDateTime = startDateTime - self.__valid = self.__startDateTime.isValid() and \ + self.__valid = ( + self.__startDateTime.isValid() and self.__duration >= self.__plugin.getPreferences( "MinimumDuration") + ) def getDuration(self): """ @@ -242,9 +238,11 @@ """ if duration >= self.__plugin.getPreferences("MinimumDuration"): self.__duration = duration - self.__valid = self.__startDateTime.isValid() and \ + self.__valid = ( + self.__startDateTime.isValid() and self.__duration >= self.__plugin.getPreferences( "MinimumDuration") + ) def addDuration(self, duration): """ @@ -270,9 +268,10 @@ @param description task description (string) """ - self.__task = description.replace("\r\n", " ")\ - .replace("\n", " ")\ - .replace("\r", " ") + self.__task = ( + description.replace("\r\n", " ").replace("\n", " ") + .replace("\r", " ") + ) def getComment(self): """ @@ -288,9 +287,9 @@ @param comment comment to set (string) """ - self.__comment = comment.replace("\r\n", " ")\ - .replace("\n", " ")\ - .replace("\r", " ") + self.__comment = ( + comment.replace("\r\n", " ").replace("\n", " ").replace("\r", " ") + ) def getEntryData(self): """
--- a/TimeTracker/TimeTracker.py Thu Apr 09 18:44:42 2020 +0200 +++ b/TimeTracker/TimeTracker.py Tue Jun 23 19:40:26 2020 +0200 @@ -7,12 +7,6 @@ Module implementing the time tracker object. """ -from __future__ import unicode_literals -try: - str = unicode # __IGNORE_EXCEPTION__ -except NameError: - pass - import os from PyQt5.QtCore import Qt, QObject
--- a/TimeTracker/TimeTrackerEntryDialog.py Thu Apr 09 18:44:42 2020 +0200 +++ b/TimeTracker/TimeTrackerEntryDialog.py Tue Jun 23 19:40:26 2020 +0200 @@ -7,8 +7,6 @@ Module implementing the time tracker edit dialog. """ -from __future__ import unicode_literals - from PyQt5.QtCore import pyqtSlot, QDateTime, QDate from PyQt5.QtWidgets import QDialog, QDialogButtonBox
--- a/TimeTracker/TimeTrackerWidget.py Thu Apr 09 18:44:42 2020 +0200 +++ b/TimeTracker/TimeTrackerWidget.py Tue Jun 23 19:40:26 2020 +0200 @@ -7,8 +7,6 @@ Module implementing the time tracker widget. """ -from __future__ import unicode_literals - import os from PyQt5.QtCore import pyqtSlot, QPoint, Qt, QDate, QTime, QFileInfo @@ -144,9 +142,9 @@ menu.addAction(self.tr("Save"), self.__saveEntries) menu.addSeparator() menu.addAction(self.tr("Import"), self.__importEntries) - menu.addAction(self.tr("Export Selected"), - self.__exportSelectedEntries)\ - .setEnabled(len(self.entriesList.selectedItems()) != 0) + act = menu.addAction(self.tr("Export Selected"), + self.__exportSelectedEntries) + act.setEnabled(len(self.entriesList.selectedItems()) != 0) menu.addAction(self.tr("Export All"), self.__exportEntries) menu.addSeparator() menu.addAction(self.tr("Remove duplicates"), self.__removeDuplicates) @@ -198,8 +196,8 @@ entry.setComment(comment) self.__tracker.entryChanged() - date, time, duration, task, comment = \ - entry.getEntryData()[1:-1] + (date, time, duration, task, + comment) = entry.getEntryData()[1:-1] itm.setText(0, self.tr("{0}, {1}", "date, time") .format(date, time)) itm.setText(1, self.tr("{0} min").format(duration)) @@ -236,8 +234,10 @@ """ Private slot to import tracker entries. """ - path = Preferences.getMultiProject("Workspace") or \ + path = ( + Preferences.getMultiProject("Workspace") or Utilities.getHomeDir() + ) fname = E5FileDialog.getOpenFileName( None, self.tr("Import Tracker Entries"), @@ -261,8 +261,10 @@ @keyparam ids list of IDs to export or all if empty (list of integer) """ - path = Preferences.getMultiProject("Workspace") or \ + path = ( + Preferences.getMultiProject("Workspace") or Utilities.getHomeDir() + ) fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( self, self.tr("Export Tracker Entries"),
--- a/TimeTracker/i18n/timetracker_de.ts Thu Apr 09 18:44:42 2020 +0200 +++ b/TimeTracker/i18n/timetracker_de.ts Tue Jun 23 19:40:26 2020 +0200 @@ -3,37 +3,37 @@ <context> <name>TimeTracker</name> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="73"/> + <location filename="../TimeTracker.py" line="76"/> <source>Time Tracker</source> <translation>Zeitnahme</translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="162"/> + <location filename="../TimeTracker.py" line="165"/> <source>Read Time Tracker File</source> <translation>Zeitnahmedatei einlesen</translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="210"/> + <location filename="../TimeTracker.py" line="213"/> <source><p>The time tracker file <b>{0}</b> could not be read.</p><p>Reason: {1}</p></source> <translation><p>Die Zeitnahmedatei <b>{0}</b> konnte nicht gelesen werden.</p><p>Ursache: {1}</p></translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="192"/> + <location filename="../TimeTracker.py" line="195"/> <source>Save Time Tracker File</source> <translation>Zeitnahmedatei speichern</translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="192"/> + <location filename="../TimeTracker.py" line="195"/> <source><p>The time tracker file <b>{0}</b> could not be saved.</p><p>Reason: {1}</p></source> <translation><p>Die Zeitnahmedatei <b>{0}</b> konnte nicht gespeichert werden.</p><p>Ursache: {1}</p></translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="273"/> + <location filename="../TimeTracker.py" line="276"/> <source>Import Time Tracker File</source> <translation>Zeitnahmedatei importieren</translation> </message> <message numerus="yes"> - <location filename="../../TimeTracker/TimeTracker.py" line="266"/> + <location filename="../TimeTracker.py" line="269"/> <source><p>The time tracker file <b>{0}</b> contained %n invalid entries.</source> <translation> <numerusform><p>Die Zeitnahmedatei <b>{0}</b> enthielt einen ungültigen Eintrag.</numerusform> @@ -41,7 +41,7 @@ </translation> </message> <message numerus="yes"> - <location filename="../../TimeTracker/TimeTracker.py" line="261"/> + <location filename="../TimeTracker.py" line="264"/> <source><p>The time tracker file <b>{0}</b> contained %n duplicate entries.</source> <translation> <numerusform><p>Die Zeitnahmedatei <b>{0}</b> enthielt einen doppelten Eintrag.</numerusform> @@ -49,7 +49,7 @@ </translation> </message> <message numerus="yes"> - <location filename="../../TimeTracker/TimeTracker.py" line="162"/> + <location filename="../TimeTracker.py" line="165"/> <source><p>The time tracker file <b>{0}</b> contained %n invalid entries. These have been discarded.</p></source> <translation> <numerusform><p>Die Zeitnahmedatei <b>{0}</b> enthielt einen ungültigen Eintrag. Dieser wurde übersprungen.</p></numerusform> @@ -57,7 +57,7 @@ </translation> </message> <message numerus="yes"> - <location filename="../../TimeTracker/TimeTracker.py" line="257"/> + <location filename="../TimeTracker.py" line="260"/> <source> %n duplicate entries were detected.</source> <translation> <numerusform> Ein doppelter Eintrag wurde erkannt.</numerusform> @@ -65,7 +65,7 @@ </translation> </message> <message numerus="yes"> - <location filename="../../TimeTracker/TimeTracker.py" line="270"/> + <location filename="../TimeTracker.py" line="273"/> <source> %n entries have been ignored.</p></source> <translation> <numerusform> Ein Eintrag wurde ubersprungen.</p></numerusform> @@ -73,22 +73,22 @@ </translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="73"/> + <location filename="../TimeTracker.py" line="76"/> <source>T&ime Tracker</source> <translation>Ze&itnahme</translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="73"/> + <location filename="../TimeTracker.py" line="76"/> <source>Alt+Shift+I</source> <translation>Alt+Shift+I</translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="79"/> + <location filename="../TimeTracker.py" line="82"/> <source>Switch the input focus to the Time Tracker window.</source> <translation>Schalte den Eingabefokus auf das Zeitnahmefenster um.</translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="81"/> + <location filename="../TimeTracker.py" line="84"/> <source><b>Activate Time Tracker</b><p>This switches the input focus to the Time Tracker window.</p></source> <translation><b>Zeitnahme aktivieren</b><p>Dies schaltet den Eingabefokus auf das Zeitnahmefenster um.</p></translation> </message> @@ -96,62 +96,62 @@ <context> <name>TimeTrackerEntryDialog</name> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="14"/> + <location filename="../TimeTrackerEntryDialog.ui" line="14"/> <source>Edit Timer Entry</source> <translation>Zeitnahmeeintrag editieren</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="25"/> + <location filename="../TimeTrackerEntryDialog.ui" line="25"/> <source>Start Date/Time:</source> <translation>Startdatum/-zeit:</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="32"/> + <location filename="../TimeTrackerEntryDialog.ui" line="32"/> <source>Edit the start date and time of the timer</source> <translation>Editiere das Startdatum und die Startzeit des Zeitnehmers</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="35"/> + <location filename="../TimeTrackerEntryDialog.ui" line="35"/> <source>yyyy-MM-dd HH:mm:ss</source> <translation>dd.MM.yyy HH:mm:ss</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="58"/> + <location filename="../TimeTrackerEntryDialog.ui" line="58"/> <source>Duration:</source> <translation>Dauer:</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="65"/> + <location filename="../TimeTrackerEntryDialog.ui" line="65"/> <source>Edit the duration of the timer</source> <translation>Editiere die Dauer des Zeitnehmers</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="71"/> + <location filename="../TimeTrackerEntryDialog.ui" line="71"/> <source> min</source> <translation> min</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="94"/> + <location filename="../TimeTrackerEntryDialog.ui" line="94"/> <source>Task:</source> <translation>Aufgabe:</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="107"/> + <location filename="../TimeTrackerEntryDialog.ui" line="107"/> <source>Enter the task description for the timer</source> <translation>Gib die Aufgabenbeschreibung für den Zeitnehmer ein</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="117"/> + <location filename="../TimeTrackerEntryDialog.ui" line="117"/> <source>Comment:</source> <translation>Kommentar:</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="130"/> + <location filename="../TimeTrackerEntryDialog.ui" line="130"/> <source>Enter a comment for the timer</source> <translation>Gib einen Kommentar für den Zeitnehmer ein</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.py" line="51"/> + <location filename="../TimeTrackerEntryDialog.py" line="49"/> <source>Add Tracker Entry</source> <translation>Zeitnahmeeintrag hinzufügen</translation> </message> @@ -159,42 +159,42 @@ <context> <name>TimeTrackerPage</name> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="17"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="17"/> <source><b>Configure Time Tracker</b></source> <translation><b>Zeitnahme konfigurieren</b></translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="39"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="39"/> <source>Minimum Duration:</source> <translation>Mindestdauer:</translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="46"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="46"/> <source>Enter the value of the minimum duration for a valid tracker entry</source> <translation>Gib die Mindestdauer für einen gültigen Zeitnahmeeintrag ein</translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="49"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="49"/> <source> min</source> <translation> min</translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="75"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="75"/> <source>Select to save automatically whenever a tracker is stopped</source> <translation>Auswählen, um bei jeder Änderung zu speichern</translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="78"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="78"/> <source>Auto Save Enabled</source> <translation>Automatische Speicherung aktiv</translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="85"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="85"/> <source>Select to allow multiple entries with the same start date and time</source> <translation>Auswählen, um mehrere Einträge mit identischem Startzeitpunkt zuzulassen</translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="88"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="88"/> <source>Allow entries with identical start date and time</source> <translation>Einträge mit identischem Startzeitpunkt zulassen</translation> </message> @@ -202,216 +202,211 @@ <context> <name>TimeTrackerPlugin</name> <message> - <location filename="../../PluginTimeTracker.py" line="68"/> + <location filename="../../PluginTimeTracker.py" line="75"/> <source>Time Tracker</source> <translation>Zeitnahme</translation> </message> - <message> - <location filename="../../PluginTimeTracker.py" line="129"/> - <source>eric6 version is too old, {0}, {1} or newer needed.</source> - <translation>Die eric6 Version ist zu alt. {0}, {1} oder neuer erwartet.</translation> - </message> </context> <context> <name>TimeTrackerWidget</name> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="22"/> + <location filename="../TimeTrackerWidget.ui" line="22"/> <source>Start Date/Time:</source> <translation>Startzeitpunkt:</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="29"/> + <location filename="../TimeTrackerWidget.ui" line="29"/> <source>Duration:</source> <translation>Dauer:</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="36"/> + <location filename="../TimeTrackerWidget.ui" line="36"/> <source>Task:</source> <translation>Aufgabe:</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="43"/> + <location filename="../TimeTrackerWidget.ui" line="43"/> <source>Comment:</source> <translation>Kommentar:</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="53"/> + <location filename="../TimeTrackerWidget.ui" line="53"/> <source>Shows the start date and time of the current timer</source> <translation>Zeigt das Startdatum und die Startzeit des aktuellen Zeitnehmers an</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="59"/> + <location filename="../TimeTrackerWidget.ui" line="59"/> <source>yyyy-MM-dd HH:mm:ss</source> <translation>dd.MM.yyyy HH:mm:ss</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="72"/> + <location filename="../TimeTrackerWidget.ui" line="72"/> <source>Shows the duration of the current timer</source> <translation>Zeigt die Dauer des aktuellen Zeitnehmers an</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="81"/> + <location filename="../TimeTrackerWidget.ui" line="81"/> <source> min</source> <translation> min</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="97"/> + <location filename="../TimeTrackerWidget.ui" line="97"/> <source>Enter the task description for the current timer</source> <translation>Gib die Aufgabenbeschreibung für den aktuellen Zeitnehmer ein</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="113"/> + <location filename="../TimeTrackerWidget.ui" line="113"/> <source>Enter a comment for the current timer</source> <translation>Gib einen Kommentar für den aktuellen Zeitnehmer ein</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="140"/> + <location filename="../TimeTrackerWidget.ui" line="140"/> <source>Press to pause the current timer</source> <translation>Drücken, um den aktuellen Zeitnehmer zu pausieren</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="143"/> + <location filename="../TimeTrackerWidget.ui" line="143"/> <source>Pause</source> <translation>Pause</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="153"/> + <location filename="../TimeTrackerWidget.ui" line="153"/> <source>Press to end the current timer and start a new one</source> <translation>Drücken, um den aktuellen Zeitnehmer zu stoppen und einen neuen zu starten</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="156"/> + <location filename="../TimeTrackerWidget.ui" line="156"/> <source>End Current Timer and Start a New Timer</source> <translation>Aktuellen Zeitnehmer stoppen und neuen starten</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="200"/> + <location filename="../TimeTrackerWidget.ui" line="200"/> <source>Start Date/Time</source> <translation>Startzeitpunkt</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="205"/> + <location filename="../TimeTrackerWidget.ui" line="205"/> <source>Duration</source> <translation>Dauer</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="210"/> + <location filename="../TimeTrackerWidget.ui" line="210"/> <source>Task</source> <translation>Aufgabe</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="215"/> + <location filename="../TimeTrackerWidget.ui" line="215"/> <source>Comment</source> <translation>Kommentar</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="339"/> + <location filename="../TimeTrackerWidget.py" line="341"/> <source>{0} min</source> <translation>{0} min</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="131"/> + <location filename="../TimeTrackerWidget.py" line="129"/> <source>Edit</source> <translation>Editieren</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="136"/> + <location filename="../TimeTrackerWidget.py" line="134"/> <source>Add</source> <translation>Hinzufügen</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="137"/> + <location filename="../TimeTrackerWidget.py" line="135"/> <source>Delete</source> <translation>Löschen</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="144"/> + <location filename="../TimeTrackerWidget.py" line="142"/> <source>Save</source> <translation>Speichern</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="146"/> + <location filename="../TimeTrackerWidget.py" line="144"/> <source>Import</source> <translation>Importieren</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="147"/> + <location filename="../TimeTrackerWidget.py" line="145"/> <source>Export Selected</source> <translation>Ausgewählte exportieren</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="150"/> + <location filename="../TimeTrackerWidget.py" line="148"/> <source>Export All</source> <translation>Alle exportieren</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="152"/> + <location filename="../TimeTrackerWidget.py" line="150"/> <source>Remove duplicates</source> <translation>Doppelte löschen</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="153"/> + <location filename="../TimeTrackerWidget.py" line="151"/> <source>Merge duplicates</source> <translation>Doppelte zusammenführen</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="339"/> + <location filename="../TimeTrackerWidget.py" line="341"/> <source>{0}, {1}</source> <comment>date, time</comment> <translation>{0}, {1}</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="214"/> + <location filename="../TimeTrackerWidget.py" line="212"/> <source>Delete Selected Entries</source> <translation>Ausgewählte Einträge löschen</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="214"/> + <location filename="../TimeTrackerWidget.py" line="212"/> <source>Do you really want to delete the selected entries?</source> <translation>Sollen die ausgewählten Einträge wirklich gelöscht werden?</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="249"/> + <location filename="../TimeTrackerWidget.py" line="249"/> <source>Import Tracker Entries</source> <translation>Zeitnahmeinträge importieren</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="266"/> + <location filename="../TimeTrackerWidget.py" line="268"/> <source>Text Files (*.txt);;All Files (*)</source> <translation>Text Dateien (*.txt);;Alle Dateien (*)</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="249"/> + <location filename="../TimeTrackerWidget.py" line="249"/> <source><p>The file <b>{0}</b> does not exist.</p></source> <translation><p>Die Datei <b>{0}</b> existiert nicht.</p></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="280"/> + <location filename="../TimeTrackerWidget.py" line="282"/> <source>Export Tracker Entries</source> <translation>Zeitnahmeinträge exportieren</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="280"/> + <location filename="../TimeTrackerWidget.py" line="282"/> <source><p>The file <b>{0}</b> already exists. Overwrite it?</p></source> <translation><p>Die Datei <b>{0}</b> existiert bereits. Überschreiben?</p></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="308"/> + <location filename="../TimeTrackerWidget.py" line="310"/> <source>Remove Duplicate Tracker Entries</source> <translation>Doppelte Zeitnahmeeinträge löschen</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="308"/> + <location filename="../TimeTrackerWidget.py" line="310"/> <source>Are you sure you want to remove duplicate tracker entries? Only the one with the longest duration will be kept.</source> <translation>Sollen doppelte Zeitnahmeeinträge wirklich gelöscht werden? Nur der Eintrag mit der längsten Dauer bleibt erhalten.</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="321"/> + <location filename="../TimeTrackerWidget.py" line="323"/> <source>Merge Duplicate Tracker Entries</source> <translation>Doppelte Zeitnahmeeinträge zusammenführen</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="321"/> + <location filename="../TimeTrackerWidget.py" line="323"/> <source>Are you sure you want to merge duplicate tracker entries? The durations of duplicate ones will be added.</source> <translation>Sollen doppelte Zeitnahmeeinträge wirklich zusammengeführt werden? Die Zeitdauern der doppelten Einträge werden addiert.</translation> </message>
--- a/TimeTracker/i18n/timetracker_en.ts Thu Apr 09 18:44:42 2020 +0200 +++ b/TimeTracker/i18n/timetracker_en.ts Tue Jun 23 19:40:26 2020 +0200 @@ -3,37 +3,37 @@ <context> <name>TimeTracker</name> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="73"/> + <location filename="../TimeTracker.py" line="76"/> <source>Time Tracker</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="162"/> + <location filename="../TimeTracker.py" line="165"/> <source>Read Time Tracker File</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="210"/> + <location filename="../TimeTracker.py" line="213"/> <source><p>The time tracker file <b>{0}</b> could not be read.</p><p>Reason: {1}</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="192"/> + <location filename="../TimeTracker.py" line="195"/> <source>Save Time Tracker File</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="192"/> + <location filename="../TimeTracker.py" line="195"/> <source><p>The time tracker file <b>{0}</b> could not be saved.</p><p>Reason: {1}</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="273"/> + <location filename="../TimeTracker.py" line="276"/> <source>Import Time Tracker File</source> <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location filename="../../TimeTracker/TimeTracker.py" line="266"/> + <location filename="../TimeTracker.py" line="269"/> <source><p>The time tracker file <b>{0}</b> contained %n invalid entries.</source> <translation> <numerusform><p>The time tracker file <b>{0}</b> contained one invalid entry.</numerusform> @@ -41,7 +41,7 @@ </translation> </message> <message numerus="yes"> - <location filename="../../TimeTracker/TimeTracker.py" line="261"/> + <location filename="../TimeTracker.py" line="264"/> <source><p>The time tracker file <b>{0}</b> contained %n duplicate entries.</source> <translation> <numerusform><p>The time tracker file <b>{0}</b> contained one duplicate entry.</numerusform> @@ -49,7 +49,7 @@ </translation> </message> <message numerus="yes"> - <location filename="../../TimeTracker/TimeTracker.py" line="162"/> + <location filename="../TimeTracker.py" line="165"/> <source><p>The time tracker file <b>{0}</b> contained %n invalid entries. These have been discarded.</p></source> <translation> <numerusform><p>The time tracker file <b>{0}</b> contained one invalid entry. This has been discarded.</p></numerusform> @@ -57,7 +57,7 @@ </translation> </message> <message numerus="yes"> - <location filename="../../TimeTracker/TimeTracker.py" line="257"/> + <location filename="../TimeTracker.py" line="260"/> <source> %n duplicate entries were detected.</source> <translation> <numerusform> One duplicate entry was detected.</numerusform> @@ -65,7 +65,7 @@ </translation> </message> <message numerus="yes"> - <location filename="../../TimeTracker/TimeTracker.py" line="270"/> + <location filename="../TimeTracker.py" line="273"/> <source> %n entries have been ignored.</p></source> <translation> <numerusform> One entry has been ignored.</p></numerusform> @@ -73,22 +73,22 @@ </translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="73"/> + <location filename="../TimeTracker.py" line="76"/> <source>T&ime Tracker</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="73"/> + <location filename="../TimeTracker.py" line="76"/> <source>Alt+Shift+I</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="79"/> + <location filename="../TimeTracker.py" line="82"/> <source>Switch the input focus to the Time Tracker window.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="81"/> + <location filename="../TimeTracker.py" line="84"/> <source><b>Activate Time Tracker</b><p>This switches the input focus to the Time Tracker window.</p></source> <translation type="unfinished"></translation> </message> @@ -96,62 +96,62 @@ <context> <name>TimeTrackerEntryDialog</name> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="14"/> + <location filename="../TimeTrackerEntryDialog.ui" line="14"/> <source>Edit Timer Entry</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="25"/> + <location filename="../TimeTrackerEntryDialog.ui" line="25"/> <source>Start Date/Time:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="32"/> + <location filename="../TimeTrackerEntryDialog.ui" line="32"/> <source>Edit the start date and time of the timer</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="35"/> + <location filename="../TimeTrackerEntryDialog.ui" line="35"/> <source>yyyy-MM-dd HH:mm:ss</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="58"/> + <location filename="../TimeTrackerEntryDialog.ui" line="58"/> <source>Duration:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="65"/> + <location filename="../TimeTrackerEntryDialog.ui" line="65"/> <source>Edit the duration of the timer</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="71"/> + <location filename="../TimeTrackerEntryDialog.ui" line="71"/> <source> min</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="94"/> + <location filename="../TimeTrackerEntryDialog.ui" line="94"/> <source>Task:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="107"/> + <location filename="../TimeTrackerEntryDialog.ui" line="107"/> <source>Enter the task description for the timer</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="117"/> + <location filename="../TimeTrackerEntryDialog.ui" line="117"/> <source>Comment:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="130"/> + <location filename="../TimeTrackerEntryDialog.ui" line="130"/> <source>Enter a comment for the timer</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.py" line="51"/> + <location filename="../TimeTrackerEntryDialog.py" line="49"/> <source>Add Tracker Entry</source> <translation type="unfinished"></translation> </message> @@ -159,42 +159,42 @@ <context> <name>TimeTrackerPage</name> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="17"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="17"/> <source><b>Configure Time Tracker</b></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="39"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="39"/> <source>Minimum Duration:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="46"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="46"/> <source>Enter the value of the minimum duration for a valid tracker entry</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="49"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="49"/> <source> min</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="75"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="75"/> <source>Select to save automatically whenever a tracker is stopped</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="78"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="78"/> <source>Auto Save Enabled</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="85"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="85"/> <source>Select to allow multiple entries with the same start date and time</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="88"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="88"/> <source>Allow entries with identical start date and time</source> <translation type="unfinished"></translation> </message> @@ -202,216 +202,211 @@ <context> <name>TimeTrackerPlugin</name> <message> - <location filename="../../PluginTimeTracker.py" line="68"/> + <location filename="../../PluginTimeTracker.py" line="75"/> <source>Time Tracker</source> <translation type="unfinished"></translation> </message> - <message> - <location filename="../../PluginTimeTracker.py" line="129"/> - <source>eric6 version is too old, {0}, {1} or newer needed.</source> - <translation type="unfinished"></translation> - </message> </context> <context> <name>TimeTrackerWidget</name> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="22"/> + <location filename="../TimeTrackerWidget.ui" line="22"/> <source>Start Date/Time:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="29"/> + <location filename="../TimeTrackerWidget.ui" line="29"/> <source>Duration:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="36"/> + <location filename="../TimeTrackerWidget.ui" line="36"/> <source>Task:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="43"/> + <location filename="../TimeTrackerWidget.ui" line="43"/> <source>Comment:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="53"/> + <location filename="../TimeTrackerWidget.ui" line="53"/> <source>Shows the start date and time of the current timer</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="59"/> + <location filename="../TimeTrackerWidget.ui" line="59"/> <source>yyyy-MM-dd HH:mm:ss</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="72"/> + <location filename="../TimeTrackerWidget.ui" line="72"/> <source>Shows the duration of the current timer</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="81"/> + <location filename="../TimeTrackerWidget.ui" line="81"/> <source> min</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="97"/> + <location filename="../TimeTrackerWidget.ui" line="97"/> <source>Enter the task description for the current timer</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="113"/> + <location filename="../TimeTrackerWidget.ui" line="113"/> <source>Enter a comment for the current timer</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="140"/> + <location filename="../TimeTrackerWidget.ui" line="140"/> <source>Press to pause the current timer</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="143"/> + <location filename="../TimeTrackerWidget.ui" line="143"/> <source>Pause</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="153"/> + <location filename="../TimeTrackerWidget.ui" line="153"/> <source>Press to end the current timer and start a new one</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="156"/> + <location filename="../TimeTrackerWidget.ui" line="156"/> <source>End Current Timer and Start a New Timer</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="200"/> + <location filename="../TimeTrackerWidget.ui" line="200"/> <source>Start Date/Time</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="205"/> + <location filename="../TimeTrackerWidget.ui" line="205"/> <source>Duration</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="210"/> + <location filename="../TimeTrackerWidget.ui" line="210"/> <source>Task</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="215"/> + <location filename="../TimeTrackerWidget.ui" line="215"/> <source>Comment</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="339"/> + <location filename="../TimeTrackerWidget.py" line="341"/> <source>{0} min</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="131"/> + <location filename="../TimeTrackerWidget.py" line="129"/> <source>Edit</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="136"/> + <location filename="../TimeTrackerWidget.py" line="134"/> <source>Add</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="137"/> + <location filename="../TimeTrackerWidget.py" line="135"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="144"/> + <location filename="../TimeTrackerWidget.py" line="142"/> <source>Save</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="146"/> + <location filename="../TimeTrackerWidget.py" line="144"/> <source>Import</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="147"/> + <location filename="../TimeTrackerWidget.py" line="145"/> <source>Export Selected</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="150"/> + <location filename="../TimeTrackerWidget.py" line="148"/> <source>Export All</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="152"/> + <location filename="../TimeTrackerWidget.py" line="150"/> <source>Remove duplicates</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="153"/> + <location filename="../TimeTrackerWidget.py" line="151"/> <source>Merge duplicates</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="339"/> + <location filename="../TimeTrackerWidget.py" line="341"/> <source>{0}, {1}</source> <comment>date, time</comment> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="214"/> + <location filename="../TimeTrackerWidget.py" line="212"/> <source>Delete Selected Entries</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="214"/> + <location filename="../TimeTrackerWidget.py" line="212"/> <source>Do you really want to delete the selected entries?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="249"/> + <location filename="../TimeTrackerWidget.py" line="249"/> <source>Import Tracker Entries</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="266"/> + <location filename="../TimeTrackerWidget.py" line="268"/> <source>Text Files (*.txt);;All Files (*)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="249"/> + <location filename="../TimeTrackerWidget.py" line="249"/> <source><p>The file <b>{0}</b> does not exist.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="280"/> + <location filename="../TimeTrackerWidget.py" line="282"/> <source>Export Tracker Entries</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="280"/> + <location filename="../TimeTrackerWidget.py" line="282"/> <source><p>The file <b>{0}</b> already exists. Overwrite it?</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="308"/> + <location filename="../TimeTrackerWidget.py" line="310"/> <source>Remove Duplicate Tracker Entries</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="308"/> + <location filename="../TimeTrackerWidget.py" line="310"/> <source>Are you sure you want to remove duplicate tracker entries? Only the one with the longest duration will be kept.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="321"/> + <location filename="../TimeTrackerWidget.py" line="323"/> <source>Merge Duplicate Tracker Entries</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="321"/> + <location filename="../TimeTrackerWidget.py" line="323"/> <source>Are you sure you want to merge duplicate tracker entries? The durations of duplicate ones will be added.</source> <translation type="unfinished"></translation> </message>
--- a/TimeTracker/i18n/timetracker_es.ts Thu Apr 09 18:44:42 2020 +0200 +++ b/TimeTracker/i18n/timetracker_es.ts Tue Jun 23 19:40:26 2020 +0200 @@ -3,37 +3,37 @@ <context> <name>TimeTracker</name> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="73"/> + <location filename="../TimeTracker.py" line="76"/> <source>Time Tracker</source> <translation>Time Tracker</translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="162"/> + <location filename="../TimeTracker.py" line="165"/> <source>Read Time Tracker File</source> <translation>Leer Archivo de Time Tracker</translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="210"/> + <location filename="../TimeTracker.py" line="213"/> <source><p>The time tracker file <b>{0}</b> could not be read.</p><p>Reason: {1}</p></source> <translation><p>El archivo de time tracker <b>{0}</b> no ha podido leerse.</p><p>Razón: {1}</p></translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="192"/> + <location filename="../TimeTracker.py" line="195"/> <source>Save Time Tracker File</source> <translation>Guardar Archivo de Time Tracker</translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="192"/> + <location filename="../TimeTracker.py" line="195"/> <source><p>The time tracker file <b>{0}</b> could not be saved.</p><p>Reason: {1}</p></source> <translation><p>El archivo de time tracker <b>{0}</b> no ha podido guardarse.</p><p>Razón: {1}</p></translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="273"/> + <location filename="../TimeTracker.py" line="276"/> <source>Import Time Tracker File</source> <translation>Importar Archivo de Time Tracker</translation> </message> <message numerus="yes"> - <location filename="../../TimeTracker/TimeTracker.py" line="266"/> + <location filename="../TimeTracker.py" line="269"/> <source><p>The time tracker file <b>{0}</b> contained %n invalid entries.</source> <translation> <numerusform><p>El archivo de time tracker <b>{0}</b> contiene %n entrada no válida.</numerusform> @@ -41,7 +41,7 @@ </translation> </message> <message numerus="yes"> - <location filename="../../TimeTracker/TimeTracker.py" line="261"/> + <location filename="../TimeTracker.py" line="264"/> <source><p>The time tracker file <b>{0}</b> contained %n duplicate entries.</source> <translation> <numerusform><p>El archivo de time tracker <b>{0}</b> contiene %n entrada duplicada.</numerusform> @@ -49,7 +49,7 @@ </translation> </message> <message numerus="yes"> - <location filename="../../TimeTracker/TimeTracker.py" line="162"/> + <location filename="../TimeTracker.py" line="165"/> <source><p>The time tracker file <b>{0}</b> contained %n invalid entries. These have been discarded.</p></source> <translation> <numerusform><p>El archivo de time tracker <b>{0}</b> contiene %n entrada no válida. Ésta se ha descartado.</p></numerusform> @@ -57,7 +57,7 @@ </translation> </message> <message numerus="yes"> - <location filename="../../TimeTracker/TimeTracker.py" line="257"/> + <location filename="../TimeTracker.py" line="260"/> <source> %n duplicate entries were detected.</source> <translation> <numerusform>Se han detectado %n entrada duplicada.</numerusform> @@ -65,7 +65,7 @@ </translation> </message> <message numerus="yes"> - <location filename="../../TimeTracker/TimeTracker.py" line="270"/> + <location filename="../TimeTracker.py" line="273"/> <source> %n entries have been ignored.</p></source> <translation> <numerusform>Se han ignorado %n entrada.</p></numerusform> @@ -73,22 +73,22 @@ </translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="73"/> + <location filename="../TimeTracker.py" line="76"/> <source>T&ime Tracker</source> <translation>T&ime Tracker</translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="73"/> + <location filename="../TimeTracker.py" line="76"/> <source>Alt+Shift+I</source> <translation>Alt+Shift+I</translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="79"/> + <location filename="../TimeTracker.py" line="82"/> <source>Switch the input focus to the Time Tracker window.</source> <translation>Cambiar el foco de input a la ventana de Time Tracker.</translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="81"/> + <location filename="../TimeTracker.py" line="84"/> <source><b>Activate Time Tracker</b><p>This switches the input focus to the Time Tracker window.</p></source> <translation><b>Activar Time Tracker</b><p>Cambia el foco de input a la ventana de Time Tracker.</p></translation> </message> @@ -96,62 +96,62 @@ <context> <name>TimeTrackerEntryDialog</name> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="14"/> + <location filename="../TimeTrackerEntryDialog.ui" line="14"/> <source>Edit Timer Entry</source> <translation>Editar Entrada Temporizador</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="25"/> + <location filename="../TimeTrackerEntryDialog.ui" line="25"/> <source>Start Date/Time:</source> <translation>Fecha/Hora Inicio:</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="32"/> + <location filename="../TimeTrackerEntryDialog.ui" line="32"/> <source>Edit the start date and time of the timer</source> <translation>Editar la fecha y tiempo de inicio del temporizador</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="35"/> + <location filename="../TimeTrackerEntryDialog.ui" line="35"/> <source>yyyy-MM-dd HH:mm:ss</source> <translation>yyyy-MM-dd HH:mm:ss</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="58"/> + <location filename="../TimeTrackerEntryDialog.ui" line="58"/> <source>Duration:</source> <translation>Duración:</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="65"/> + <location filename="../TimeTrackerEntryDialog.ui" line="65"/> <source>Edit the duration of the timer</source> <translation>Editar la duración del temporizador</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="71"/> + <location filename="../TimeTrackerEntryDialog.ui" line="71"/> <source> min</source> <translation> min</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="94"/> + <location filename="../TimeTrackerEntryDialog.ui" line="94"/> <source>Task:</source> <translation>Tarea:</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="107"/> + <location filename="../TimeTrackerEntryDialog.ui" line="107"/> <source>Enter the task description for the timer</source> <translation>Introducir la descripción de la tarea para el temporizador</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="117"/> + <location filename="../TimeTrackerEntryDialog.ui" line="117"/> <source>Comment:</source> <translation>Comentario:</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="130"/> + <location filename="../TimeTrackerEntryDialog.ui" line="130"/> <source>Enter a comment for the timer</source> <translation>Introducir un comentario para el temporizador</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.py" line="51"/> + <location filename="../TimeTrackerEntryDialog.py" line="49"/> <source>Add Tracker Entry</source> <translation>Añadir Entrada al Tracker</translation> </message> @@ -159,42 +159,42 @@ <context> <name>TimeTrackerPage</name> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="17"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="17"/> <source><b>Configure Time Tracker</b></source> <translation><b>Configurar Time Tracker</b></translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="39"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="39"/> <source>Minimum Duration:</source> <translation>Duración Mínima:</translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="46"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="46"/> <source>Enter the value of the minimum duration for a valid tracker entry</source> <translation>Introducir el valor de duración mínima para una entrada válida para el tracker</translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="49"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="49"/> <source> min</source> <translation> min</translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="75"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="75"/> <source>Select to save automatically whenever a tracker is stopped</source> <translation>Seleccionar para guardar automáticamente cuando un tracker es detenido</translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="78"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="78"/> <source>Auto Save Enabled</source> <translation>Auto Guardar Habilitado</translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="85"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="85"/> <source>Select to allow multiple entries with the same start date and time</source> <translation>Seleccionar para permitir múltiples entradas con la misma hora y fecha de inicio</translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="88"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="88"/> <source>Allow entries with identical start date and time</source> <translation>Permitir entradas con fecha y hora de inicio idénticos</translation> </message> @@ -202,216 +202,211 @@ <context> <name>TimeTrackerPlugin</name> <message> - <location filename="../../PluginTimeTracker.py" line="68"/> + <location filename="../../PluginTimeTracker.py" line="75"/> <source>Time Tracker</source> <translation>Time Tracker</translation> </message> - <message> - <location filename="../../PluginTimeTracker.py" line="129"/> - <source>eric6 version is too old, {0}, {1} or newer needed.</source> - <translation>La versión de eric6 es demasiado antigua, {0}, {1} o se necesita más reciente.</translation> - </message> </context> <context> <name>TimeTrackerWidget</name> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="22"/> + <location filename="../TimeTrackerWidget.ui" line="22"/> <source>Start Date/Time:</source> <translation>Fecha/Hora Inicio:</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="29"/> + <location filename="../TimeTrackerWidget.ui" line="29"/> <source>Duration:</source> <translation>Duración:</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="36"/> + <location filename="../TimeTrackerWidget.ui" line="36"/> <source>Task:</source> <translation>Tarea:</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="43"/> + <location filename="../TimeTrackerWidget.ui" line="43"/> <source>Comment:</source> <translation>Comentario:</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="53"/> + <location filename="../TimeTrackerWidget.ui" line="53"/> <source>Shows the start date and time of the current timer</source> <translation>Muestra la fecha y tiempo de inicio del temporizador actual</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="59"/> + <location filename="../TimeTrackerWidget.ui" line="59"/> <source>yyyy-MM-dd HH:mm:ss</source> <translation>yyyy-MM-dd HH:mm:ss</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="72"/> + <location filename="../TimeTrackerWidget.ui" line="72"/> <source>Shows the duration of the current timer</source> <translation>Muestra la duración del temporizador actual</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="81"/> + <location filename="../TimeTrackerWidget.ui" line="81"/> <source> min</source> <translation> min</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="97"/> + <location filename="../TimeTrackerWidget.ui" line="97"/> <source>Enter the task description for the current timer</source> <translation>Introducir la descripción de la tarea para el temporizador actual</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="113"/> + <location filename="../TimeTrackerWidget.ui" line="113"/> <source>Enter a comment for the current timer</source> <translation>Introducir un comentario para el temporizador actual</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="140"/> + <location filename="../TimeTrackerWidget.ui" line="140"/> <source>Press to pause the current timer</source> <translation>Pulsar para poner el temporizador actual en pausa</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="143"/> + <location filename="../TimeTrackerWidget.ui" line="143"/> <source>Pause</source> <translation>Pausa</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="153"/> + <location filename="../TimeTrackerWidget.ui" line="153"/> <source>Press to end the current timer and start a new one</source> <translation>Pulsar para finalizar el temporizador actual e iniciar uno nuevo</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="156"/> + <location filename="../TimeTrackerWidget.ui" line="156"/> <source>End Current Timer and Start a New Timer</source> <translation>Finalizar Temporizador Actual e Iniciar Uno Nuevo</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="200"/> + <location filename="../TimeTrackerWidget.ui" line="200"/> <source>Start Date/Time</source> <translation>Fecha/Hora Inicio</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="205"/> + <location filename="../TimeTrackerWidget.ui" line="205"/> <source>Duration</source> <translation>Duración</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="210"/> + <location filename="../TimeTrackerWidget.ui" line="210"/> <source>Task</source> <translation>Tarea</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="215"/> + <location filename="../TimeTrackerWidget.ui" line="215"/> <source>Comment</source> <translation>Comentario</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="339"/> + <location filename="../TimeTrackerWidget.py" line="341"/> <source>{0} min</source> <translation>{0} min</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="131"/> + <location filename="../TimeTrackerWidget.py" line="129"/> <source>Edit</source> <translation>Editar</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="136"/> + <location filename="../TimeTrackerWidget.py" line="134"/> <source>Add</source> <translation>Añadir</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="137"/> + <location filename="../TimeTrackerWidget.py" line="135"/> <source>Delete</source> <translation>Borrar</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="144"/> + <location filename="../TimeTrackerWidget.py" line="142"/> <source>Save</source> <translation>Guardar</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="146"/> + <location filename="../TimeTrackerWidget.py" line="144"/> <source>Import</source> <translation>Importar</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="147"/> + <location filename="../TimeTrackerWidget.py" line="145"/> <source>Export Selected</source> <translation>Exportar seleccionados</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="150"/> + <location filename="../TimeTrackerWidget.py" line="148"/> <source>Export All</source> <translation>Exportar Todos</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="152"/> + <location filename="../TimeTrackerWidget.py" line="150"/> <source>Remove duplicates</source> <translation>Eliminar duplicados</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="153"/> + <location filename="../TimeTrackerWidget.py" line="151"/> <source>Merge duplicates</source> <translation>Combinar duplicados</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="339"/> + <location filename="../TimeTrackerWidget.py" line="341"/> <source>{0}, {1}</source> <comment>date, time</comment> <translation>{0}, {1}</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="214"/> + <location filename="../TimeTrackerWidget.py" line="212"/> <source>Delete Selected Entries</source> <translation>Borrar Entradas Seleccionadas</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="214"/> + <location filename="../TimeTrackerWidget.py" line="212"/> <source>Do you really want to delete the selected entries?</source> <translation>¿Desea realmente eliminar las entradas seleccionadas?</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="249"/> + <location filename="../TimeTrackerWidget.py" line="249"/> <source>Import Tracker Entries</source> <translation>Importar Entradas de Tracker</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="266"/> + <location filename="../TimeTrackerWidget.py" line="268"/> <source>Text Files (*.txt);;All Files (*)</source> <translation>Archivos de Texto (*.txt);;Todos los Archivos (*)</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="249"/> + <location filename="../TimeTrackerWidget.py" line="249"/> <source><p>The file <b>{0}</b> does not exist.</p></source> <translation><p>El archivo <b>{0}</b> no existe.</p></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="280"/> + <location filename="../TimeTrackerWidget.py" line="282"/> <source>Export Tracker Entries</source> <translation>Exportar Entradas de Tracker</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="280"/> + <location filename="../TimeTrackerWidget.py" line="282"/> <source><p>The file <b>{0}</b> already exists. Overwrite it?</p></source> <translation><p>El archivo <b>{0}</b> ya existe.¿Sobreescribirlo?</p></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="308"/> + <location filename="../TimeTrackerWidget.py" line="310"/> <source>Remove Duplicate Tracker Entries</source> <translation>Eliminar Entradas de Tracker Duplicadas</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="308"/> + <location filename="../TimeTrackerWidget.py" line="310"/> <source>Are you sure you want to remove duplicate tracker entries? Only the one with the longest duration will be kept.</source> <translation>¿Está seguro de que desea eliminar las entradas de tracker duplicadas? Solamente la de mayor duración será conservada.</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="321"/> + <location filename="../TimeTrackerWidget.py" line="323"/> <source>Merge Duplicate Tracker Entries</source> <translation>Combinar Entradas de Tracker Duplicadas</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="321"/> + <location filename="../TimeTrackerWidget.py" line="323"/> <source>Are you sure you want to merge duplicate tracker entries? The durations of duplicate ones will be added.</source> <translation>¿Está seguro de que desea combinar las entradas de tracker duplicadas? Las duraciones de las duplicadas serán sumadas.</translation> </message>
--- a/TimeTracker/i18n/timetracker_pt.ts Thu Apr 09 18:44:42 2020 +0200 +++ b/TimeTracker/i18n/timetracker_pt.ts Tue Jun 23 19:40:26 2020 +0200 @@ -1,40 +1,39 @@ <?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="pt"> +<!DOCTYPE TS><TS version="2.0" language="pt" sourcelanguage=""> <context> <name>TimeTracker</name> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="73"/> + <location filename="../TimeTracker.py" line="76"/> <source>Time Tracker</source> <translation>Rastreador de Tempo</translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="162"/> + <location filename="../TimeTracker.py" line="165"/> <source>Read Time Tracker File</source> <translation>Ler Ficheiro do Rastreador de Tempo</translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="210"/> + <location filename="../TimeTracker.py" line="213"/> <source><p>The time tracker file <b>{0}</b> could not be read.</p><p>Reason: {1}</p></source> <translation><p>O ficheiro do rastreador de tempo <b>{0}</b> não se pôde ler.</p><p>Motivo: {1}</p></translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="192"/> + <location filename="../TimeTracker.py" line="195"/> <source>Save Time Tracker File</source> <translation>Gravar Ficheiro do Rastreador de Tempo</translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="192"/> + <location filename="../TimeTracker.py" line="195"/> <source><p>The time tracker file <b>{0}</b> could not be saved.</p><p>Reason: {1}</p></source> <translation><p>O ficheiro <b>{0}</b> do rastreador de tempo não se pôde guardar.</p><p>Motivo: {1}</p></translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="273"/> + <location filename="../TimeTracker.py" line="276"/> <source>Import Time Tracker File</source> <translation>Importar Ficheiro do Rastreador de Tempo</translation> </message> <message numerus="yes"> - <location filename="../../TimeTracker/TimeTracker.py" line="266"/> + <location filename="../TimeTracker.py" line="269"/> <source><p>The time tracker file <b>{0}</b> contained %n invalid entries.</source> <translation> <numerusform><p>O ficheiro <b>{0}</b> do rastreador de tempo tem uma entrada inválida.</numerusform> @@ -42,7 +41,7 @@ </translation> </message> <message numerus="yes"> - <location filename="../../TimeTracker/TimeTracker.py" line="261"/> + <location filename="../TimeTracker.py" line="264"/> <source><p>The time tracker file <b>{0}</b> contained %n duplicate entries.</source> <translation> <numerusform><p>O ficheiro <b>{0}</b> do rastreador de tempo tem uma entrada repetida.</numerusform> @@ -50,7 +49,7 @@ </translation> </message> <message numerus="yes"> - <location filename="../../TimeTracker/TimeTracker.py" line="162"/> + <location filename="../TimeTracker.py" line="165"/> <source><p>The time tracker file <b>{0}</b> contained %n invalid entries. These have been discarded.</p></source> <translation> <numerusform><p>O ficheiro <b>{0}</b> do rastreador de tempo tem uma entrada inválida. Foi descartada.</p></numerusform> @@ -58,7 +57,7 @@ </translation> </message> <message numerus="yes"> - <location filename="../../TimeTracker/TimeTracker.py" line="257"/> + <location filename="../TimeTracker.py" line="260"/> <source> %n duplicate entries were detected.</source> <translation> <numerusform> detectada uma entrada repetida.</numerusform> @@ -66,7 +65,7 @@ </translation> </message> <message numerus="yes"> - <location filename="../../TimeTracker/TimeTracker.py" line="270"/> + <location filename="../TimeTracker.py" line="273"/> <source> %n entries have been ignored.</p></source> <translation> <numerusform> foi ignorada uma entrada.</p></numerusform> @@ -74,22 +73,22 @@ </translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="73"/> + <location filename="../TimeTracker.py" line="76"/> <source>T&ime Tracker</source> <translation>Rastrea&dor de Tempo</translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="73"/> + <location filename="../TimeTracker.py" line="76"/> <source>Alt+Shift+I</source> <translation>Alt+Shift+I</translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="79"/> + <location filename="../TimeTracker.py" line="82"/> <source>Switch the input focus to the Time Tracker window.</source> <translation>Mudar o foco de entrada à janela do Rastreador de Tempo.</translation> </message> <message> - <location filename="../../TimeTracker/TimeTracker.py" line="81"/> + <location filename="../TimeTracker.py" line="84"/> <source><b>Activate Time Tracker</b><p>This switches the input focus to the Time Tracker window.</p></source> <translation><b>Ativar Rastreador de Tempo</b><p>Muda o foco de entrada à janela do Rastreador de Tempo.</p></translation> </message> @@ -97,62 +96,62 @@ <context> <name>TimeTrackerEntryDialog</name> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="14"/> + <location filename="../TimeTrackerEntryDialog.ui" line="14"/> <source>Edit Timer Entry</source> <translation>Editar Entrada do Temporizador</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="25"/> + <location filename="../TimeTrackerEntryDialog.ui" line="25"/> <source>Start Date/Time:</source> <translation>Data/Hora de Inicio:</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="32"/> + <location filename="../TimeTrackerEntryDialog.ui" line="32"/> <source>Edit the start date and time of the timer</source> <translation>Editar a data e hora de inicio do temporizador</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="35"/> + <location filename="../TimeTrackerEntryDialog.ui" line="35"/> <source>yyyy-MM-dd HH:mm:ss</source> <translation>dd-MM-yyyy HH:mm:ss</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="58"/> + <location filename="../TimeTrackerEntryDialog.ui" line="58"/> <source>Duration:</source> <translation>Duração:</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="65"/> + <location filename="../TimeTrackerEntryDialog.ui" line="65"/> <source>Edit the duration of the timer</source> <translation>Editar a duração do temporizador</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="71"/> + <location filename="../TimeTrackerEntryDialog.ui" line="71"/> <source> min</source> <translation> min</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="94"/> + <location filename="../TimeTrackerEntryDialog.ui" line="94"/> <source>Task:</source> <translation>Tarefa:</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="107"/> + <location filename="../TimeTrackerEntryDialog.ui" line="107"/> <source>Enter the task description for the timer</source> <translation>Introduzir descrição da tarefa para o temporizador</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="117"/> + <location filename="../TimeTrackerEntryDialog.ui" line="117"/> <source>Comment:</source> <translation>Comentário:</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.ui" line="130"/> + <location filename="../TimeTrackerEntryDialog.ui" line="130"/> <source>Enter a comment for the timer</source> <translation>Introduzir um comentário para o temporizador</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerEntryDialog.py" line="51"/> + <location filename="../TimeTrackerEntryDialog.py" line="49"/> <source>Add Tracker Entry</source> <translation>Adicionar entrada de rastreio</translation> </message> @@ -160,42 +159,42 @@ <context> <name>TimeTrackerPage</name> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="17"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="17"/> <source><b>Configure Time Tracker</b></source> <translation><b>Configurar Rastreador de Tempo</b></translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="39"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="39"/> <source>Minimum Duration:</source> <translation>Duração Mínima:</translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="46"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="46"/> <source>Enter the value of the minimum duration for a valid tracker entry</source> <translation>Introduzir o valor da duração mínima para uma entrada válida do rastreador</translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="49"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="49"/> <source> min</source> <translation> min</translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="75"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="75"/> <source>Select to save automatically whenever a tracker is stopped</source> <translation>Selecioar para gravar automaticamente quando o rastreador esteja parado</translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="78"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="78"/> <source>Auto Save Enabled</source> <translation>Autogravar Habilitado</translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="85"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="85"/> <source>Select to allow multiple entries with the same start date and time</source> <translation>Selecionar para permitir múltiplas entradas com a mesma data e hora</translation> </message> <message> - <location filename="../../TimeTracker/ConfigurationPage/TimeTrackerPage.ui" line="88"/> + <location filename="../ConfigurationPage/TimeTrackerPage.ui" line="88"/> <source>Allow entries with identical start date and time</source> <translation>Permitir entradas com data e hora de inicio identicas</translation> </message> @@ -203,216 +202,211 @@ <context> <name>TimeTrackerPlugin</name> <message> - <location filename="../../PluginTimeTracker.py" line="68"/> + <location filename="../../PluginTimeTracker.py" line="75"/> <source>Time Tracker</source> <translation>Rastreador de Tempo</translation> </message> - <message> - <location filename="../../PluginTimeTracker.py" line="129"/> - <source>eric6 version is too old, {0}, {1} or newer needed.</source> - <translation>a versão de eric6 é demasiado antiga, {0}, {1} necessário ou mais recente.</translation> - </message> </context> <context> <name>TimeTrackerWidget</name> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="22"/> + <location filename="../TimeTrackerWidget.ui" line="22"/> <source>Start Date/Time:</source> <translation>Data/Hora de Inicio:</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="29"/> + <location filename="../TimeTrackerWidget.ui" line="29"/> <source>Duration:</source> <translation>Duração:</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="36"/> + <location filename="../TimeTrackerWidget.ui" line="36"/> <source>Task:</source> <translation>Tarefa:</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="43"/> + <location filename="../TimeTrackerWidget.ui" line="43"/> <source>Comment:</source> <translation>Comentário:</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="53"/> + <location filename="../TimeTrackerWidget.ui" line="53"/> <source>Shows the start date and time of the current timer</source> <translation>Mostra a data e hora de inicio do temporizador atual</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="59"/> + <location filename="../TimeTrackerWidget.ui" line="59"/> <source>yyyy-MM-dd HH:mm:ss</source> <translation>dd-MM-yyyy HH:mm:ss</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="72"/> + <location filename="../TimeTrackerWidget.ui" line="72"/> <source>Shows the duration of the current timer</source> <translation>Mostra a duração do temporizador atual</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="81"/> + <location filename="../TimeTrackerWidget.ui" line="81"/> <source> min</source> <translation> min</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="97"/> + <location filename="../TimeTrackerWidget.ui" line="97"/> <source>Enter the task description for the current timer</source> <translation>Introduzir a descrição da tarefa para o temporizador atual</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="113"/> + <location filename="../TimeTrackerWidget.ui" line="113"/> <source>Enter a comment for the current timer</source> <translation>Introduzir um comentário para o temporizador atual</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="140"/> + <location filename="../TimeTrackerWidget.ui" line="140"/> <source>Press to pause the current timer</source> <translation>Pressionar para pausar o temporizador atual</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="143"/> + <location filename="../TimeTrackerWidget.ui" line="143"/> <source>Pause</source> <translation>Pausa</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="153"/> + <location filename="../TimeTrackerWidget.ui" line="153"/> <source>Press to end the current timer and start a new one</source> <translation>Pressionar para terminar o temporizador atual e iniciar um novo</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="156"/> + <location filename="../TimeTrackerWidget.ui" line="156"/> <source>End Current Timer and Start a New Timer</source> <translation>Terminar Temporizador Atual e Iniciar Novo Temporizador</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="200"/> + <location filename="../TimeTrackerWidget.ui" line="200"/> <source>Start Date/Time</source> <translation>Data/Hora de Inicio</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="205"/> + <location filename="../TimeTrackerWidget.ui" line="205"/> <source>Duration</source> <translation>Duração</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="210"/> + <location filename="../TimeTrackerWidget.ui" line="210"/> <source>Task</source> <translation>Tarefa</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.ui" line="215"/> + <location filename="../TimeTrackerWidget.ui" line="215"/> <source>Comment</source> <translation>Comentário</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="339"/> + <location filename="../TimeTrackerWidget.py" line="341"/> <source>{0} min</source> <translation>{0} min</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="131"/> + <location filename="../TimeTrackerWidget.py" line="129"/> <source>Edit</source> <translation>Editar</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="136"/> + <location filename="../TimeTrackerWidget.py" line="134"/> <source>Add</source> <translation>Adicionar</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="137"/> + <location filename="../TimeTrackerWidget.py" line="135"/> <source>Delete</source> <translation>Apagar</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="144"/> + <location filename="../TimeTrackerWidget.py" line="142"/> <source>Save</source> <translation>Gravar</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="146"/> + <location filename="../TimeTrackerWidget.py" line="144"/> <source>Import</source> <translation>Importar</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="147"/> + <location filename="../TimeTrackerWidget.py" line="145"/> <source>Export Selected</source> <translation>Exportar Selecionados</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="150"/> + <location filename="../TimeTrackerWidget.py" line="148"/> <source>Export All</source> <translation>Exportar Todos</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="152"/> + <location filename="../TimeTrackerWidget.py" line="150"/> <source>Remove duplicates</source> <translation>Retirar repetidos</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="153"/> + <location filename="../TimeTrackerWidget.py" line="151"/> <source>Merge duplicates</source> <translation>Mesclar repetidos</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="339"/> + <location filename="../TimeTrackerWidget.py" line="341"/> <source>{0}, {1}</source> <comment>date, time</comment> <translation>{0}, {1}</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="214"/> + <location filename="../TimeTrackerWidget.py" line="212"/> <source>Delete Selected Entries</source> <translation>Apagar Entradas Selecionadas</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="214"/> + <location filename="../TimeTrackerWidget.py" line="212"/> <source>Do you really want to delete the selected entries?</source> <translation>Tem a certeza de que quer apagar as entradas selecionadas?</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="249"/> + <location filename="../TimeTrackerWidget.py" line="249"/> <source>Import Tracker Entries</source> <translation>Importar Entradas do Rastreador</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="266"/> + <location filename="../TimeTrackerWidget.py" line="268"/> <source>Text Files (*.txt);;All Files (*)</source> <translation>Ficheiros de Texto (*.txt);;Ficheiros Todos (*)</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="249"/> + <location filename="../TimeTrackerWidget.py" line="249"/> <source><p>The file <b>{0}</b> does not exist.</p></source> <translation><p>O ficheiro <b>{0}</b> não existe.</p></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="280"/> + <location filename="../TimeTrackerWidget.py" line="282"/> <source>Export Tracker Entries</source> <translation>Exportar Entradas do Rastreador</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="280"/> + <location filename="../TimeTrackerWidget.py" line="282"/> <source><p>The file <b>{0}</b> already exists. Overwrite it?</p></source> <translation><p>Já existe o ficheiro <b>{0}</b>. Sobreescrever-lo?</p></translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="308"/> + <location filename="../TimeTrackerWidget.py" line="310"/> <source>Remove Duplicate Tracker Entries</source> <translation>Retirar Entradas do Rastreador Repetidas</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="308"/> + <location filename="../TimeTrackerWidget.py" line="310"/> <source>Are you sure you want to remove duplicate tracker entries? Only the one with the longest duration will be kept.</source> <translation>Tem a certeza de que quer retirar as entradas repetidas do rastreador ? Apenas a que tenha a maior duração será mantida.</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="321"/> + <location filename="../TimeTrackerWidget.py" line="323"/> <source>Merge Duplicate Tracker Entries</source> <translation>Mesclar Entradas do Rastreador Repetidas</translation> </message> <message> - <location filename="../../TimeTracker/TimeTrackerWidget.py" line="321"/> + <location filename="../TimeTrackerWidget.py" line="323"/> <source>Are you sure you want to merge duplicate tracker entries? The durations of duplicate ones will be added.</source> <translation>Tem a certeza de que quer mesclar as entradas repetidas do rastreador? As durações das repetidas serão adicionadas.</translation> </message>
--- a/TimeTracker/i18n/timetracker_ru.ts Thu Apr 09 18:44:42 2020 +0200 +++ b/TimeTracker/i18n/timetracker_ru.ts Tue Jun 23 19:40:26 2020 +0200 @@ -3,37 +3,37 @@ <context> <name>TimeTracker</name> <message> - <location filename="../TimeTracker.py" line="75"/> + <location filename="../TimeTracker.py" line="76"/> <source>Time Tracker</source> <translation>Time Tracker</translation> </message> <message> - <location filename="../TimeTracker.py" line="164"/> + <location filename="../TimeTracker.py" line="165"/> <source>Read Time Tracker File</source> <translation>Чтение файла Time Tracker</translation> </message> <message> - <location filename="../TimeTracker.py" line="212"/> + <location filename="../TimeTracker.py" line="213"/> <source><p>The time tracker file <b>{0}</b> could not be read.</p><p>Reason: {1}</p></source> <translation><p>Файл трекера <b>{0}</b> не может быть прочитан.</p><p>Причина: {1}</p></translation> </message> <message> - <location filename="../TimeTracker.py" line="194"/> + <location filename="../TimeTracker.py" line="195"/> <source>Save Time Tracker File</source> <translation>Сохранение файла Time Tracker</translation> </message> <message> - <location filename="../TimeTracker.py" line="194"/> + <location filename="../TimeTracker.py" line="195"/> <source><p>The time tracker file <b>{0}</b> could not be saved.</p><p>Reason: {1}</p></source> <translation><p>Файл трекера <b>{0}</b>не может быть сохранен.</p><p>Причина: {1}</p></translation> </message> <message> - <location filename="../TimeTracker.py" line="275"/> + <location filename="../TimeTracker.py" line="276"/> <source>Import Time Tracker File</source> <translation>Импорт файла Time Tracker</translation> </message> <message numerus="yes"> - <location filename="../TimeTracker.py" line="268"/> + <location filename="../TimeTracker.py" line="269"/> <source><p>The time tracker file <b>{0}</b> contained %n invalid entries.</source> <translation> <numerusform><p>Файл трекера <b>{0}</b> содержит %n недействительную запись.</numerusform> @@ -42,7 +42,7 @@ </translation> </message> <message numerus="yes"> - <location filename="../TimeTracker.py" line="263"/> + <location filename="../TimeTracker.py" line="264"/> <source><p>The time tracker file <b>{0}</b> contained %n duplicate entries.</source> <translation> <numerusform><p>Файл трекера <b>{0}</b> содержит %n дублирующую запись.</numerusform> @@ -51,7 +51,7 @@ </translation> </message> <message numerus="yes"> - <location filename="../TimeTracker.py" line="164"/> + <location filename="../TimeTracker.py" line="165"/> <source><p>The time tracker file <b>{0}</b> contained %n invalid entries. These have been discarded.</p></source> <translation> <numerusform><p>Файл трекера <b>{0}</b> содержит %n недействительную запись. Она была отброшена.</p></numerusform> @@ -60,7 +60,7 @@ </translation> </message> <message numerus="yes"> - <location filename="../TimeTracker.py" line="259"/> + <location filename="../TimeTracker.py" line="260"/> <source> %n duplicate entries were detected.</source> <translation> <numerusform> Была определена %n дублирующая запись.</numerusform> @@ -69,7 +69,7 @@ </translation> </message> <message numerus="yes"> - <location filename="../TimeTracker.py" line="272"/> + <location filename="../TimeTracker.py" line="273"/> <source> %n entries have been ignored.</p></source> <translation> <numerusform> Была проигнорирована %n запись.</p></numerusform> @@ -78,22 +78,22 @@ </translation> </message> <message> - <location filename="../TimeTracker.py" line="75"/> + <location filename="../TimeTracker.py" line="76"/> <source>T&ime Tracker</source> <translation>T&ime Tracker</translation> </message> <message> - <location filename="../TimeTracker.py" line="75"/> + <location filename="../TimeTracker.py" line="76"/> <source>Alt+Shift+I</source> <translation>Alt+Shift+I</translation> </message> <message> - <location filename="../TimeTracker.py" line="81"/> + <location filename="../TimeTracker.py" line="82"/> <source>Switch the input focus to the Time Tracker window.</source> <translation>Переключить фокус ввода в окно Time Tracker.</translation> </message> <message> - <location filename="../TimeTracker.py" line="83"/> + <location filename="../TimeTracker.py" line="84"/> <source><b>Activate Time Tracker</b><p>This switches the input focus to the Time Tracker window.</p></source> <translation><b>Активация Time Tracker</b><p>Переключение фокуса ввода в окно Time Tracker.</p></translation> </message> @@ -156,7 +156,7 @@ <translation>Введите комментарий для таймера</translation> </message> <message> - <location filename="../TimeTrackerEntryDialog.py" line="51"/> + <location filename="../TimeTrackerEntryDialog.py" line="49"/> <source>Add Tracker Entry</source> <translation>Добавить запись трекера</translation> </message> @@ -207,7 +207,7 @@ <context> <name>TimeTrackerPlugin</name> <message> - <location filename="../../PluginTimeTracker.py" line="66"/> + <location filename="../../PluginTimeTracker.py" line="75"/> <source>Time Tracker</source> <translation>Time Tracker</translation> </message> @@ -305,68 +305,68 @@ <translation>Комментарий</translation> </message> <message> - <location filename="../TimeTrackerWidget.py" line="339"/> + <location filename="../TimeTrackerWidget.py" line="341"/> <source>{0} min</source> <translation>{0} мин</translation> </message> <message> - <location filename="../TimeTrackerWidget.py" line="131"/> + <location filename="../TimeTrackerWidget.py" line="129"/> <source>Edit</source> <translation>Править</translation> </message> <message> - <location filename="../TimeTrackerWidget.py" line="136"/> + <location filename="../TimeTrackerWidget.py" line="134"/> <source>Add</source> <translation>Добавить</translation> </message> <message> - <location filename="../TimeTrackerWidget.py" line="137"/> + <location filename="../TimeTrackerWidget.py" line="135"/> <source>Delete</source> <translation>Удалить</translation> </message> <message> - <location filename="../TimeTrackerWidget.py" line="144"/> + <location filename="../TimeTrackerWidget.py" line="142"/> <source>Save</source> <translation>Сохранить</translation> </message> <message> - <location filename="../TimeTrackerWidget.py" line="146"/> + <location filename="../TimeTrackerWidget.py" line="144"/> <source>Import</source> <translation>Импорт</translation> </message> <message> - <location filename="../TimeTrackerWidget.py" line="147"/> + <location filename="../TimeTrackerWidget.py" line="145"/> <source>Export Selected</source> <translation>Экспорт выбранного</translation> </message> <message> - <location filename="../TimeTrackerWidget.py" line="150"/> + <location filename="../TimeTrackerWidget.py" line="148"/> <source>Export All</source> <translation>Экспортировать все</translation> </message> <message> - <location filename="../TimeTrackerWidget.py" line="152"/> + <location filename="../TimeTrackerWidget.py" line="150"/> <source>Remove duplicates</source> <translation>Удалить повторения</translation> </message> <message> - <location filename="../TimeTrackerWidget.py" line="153"/> + <location filename="../TimeTrackerWidget.py" line="151"/> <source>Merge duplicates</source> <translation>Объединить повторения</translation> </message> <message> - <location filename="../TimeTrackerWidget.py" line="339"/> + <location filename="../TimeTrackerWidget.py" line="341"/> <source>{0}, {1}</source> <comment>date, time</comment> <translation>{0}, {1}</translation> </message> <message> - <location filename="../TimeTrackerWidget.py" line="214"/> + <location filename="../TimeTrackerWidget.py" line="212"/> <source>Delete Selected Entries</source> <translation>Удалить выбранные записи</translation> </message> <message> - <location filename="../TimeTrackerWidget.py" line="214"/> + <location filename="../TimeTrackerWidget.py" line="212"/> <source>Do you really want to delete the selected entries?</source> <translation>Вы действительно хотите удалить выбранные записи?</translation> </message> @@ -376,7 +376,7 @@ <translation>Импорт записей трекера</translation> </message> <message> - <location filename="../TimeTrackerWidget.py" line="266"/> + <location filename="../TimeTrackerWidget.py" line="268"/> <source>Text Files (*.txt);;All Files (*)</source> <translation>Текстовые файлы (*.txt);;Все файлы (*)</translation> </message> @@ -386,32 +386,32 @@ <translation><p>Файл <b>{0}</b> не существует.</p></translation> </message> <message> - <location filename="../TimeTrackerWidget.py" line="280"/> + <location filename="../TimeTrackerWidget.py" line="282"/> <source>Export Tracker Entries</source> <translation>Экспорт записей трекера</translation> </message> <message> - <location filename="../TimeTrackerWidget.py" line="280"/> + <location filename="../TimeTrackerWidget.py" line="282"/> <source><p>The file <b>{0}</b> already exists. Overwrite it?</p></source> <translation><p>Файл <b>{0}</b> уже существует. Переписать его?</p></translation> </message> <message> - <location filename="../TimeTrackerWidget.py" line="308"/> + <location filename="../TimeTrackerWidget.py" line="310"/> <source>Remove Duplicate Tracker Entries</source> <translation>Удалить повторяющиеся записи трекера</translation> </message> <message> - <location filename="../TimeTrackerWidget.py" line="308"/> + <location filename="../TimeTrackerWidget.py" line="310"/> <source>Are you sure you want to remove duplicate tracker entries? Only the one with the longest duration will be kept.</source> <translation>Вы действительно хотите удалить повторяющиеся записи трекера? Будет сохранена только одна запись с максимальной продолжительностью.</translation> </message> <message> - <location filename="../TimeTrackerWidget.py" line="321"/> + <location filename="../TimeTrackerWidget.py" line="323"/> <source>Merge Duplicate Tracker Entries</source> <translation>Объединение повторяющихся записей трекера</translation> </message> <message> - <location filename="../TimeTrackerWidget.py" line="321"/> + <location filename="../TimeTrackerWidget.py" line="323"/> <source>Are you sure you want to merge duplicate tracker entries? The durations of duplicate ones will be added.</source> <translation>Вы действительно хотите объединить повторяющиеся записи трекера? Будут сложены записи одинаковой продолжительности.</translation> </message>