- changed to the new style header eric7 release-10.3.1

Sat, 26 Oct 2024 17:13:16 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 26 Oct 2024 17:13:16 +0200
branch
eric7
changeset 118
d3f658f306d4
parent 117
12bb982c3960
child 119
70a5586f2260

- changed to the new style header
- ensured proper parent relationship of modal dialogs
- included compiled form files

.hgignore file | annotate | diff | comparison | revisions
ChangeLog file | annotate | diff | comparison | revisions
PKGLIST file | annotate | diff | comparison | revisions
PluginTimeTracker.epj file | annotate | diff | comparison | revisions
PluginTimeTracker.py file | annotate | diff | comparison | revisions
PluginTimeTracker.zip file | annotate | diff | comparison | revisions
TimeTracker/ConfigurationPage/Ui_TimeTrackerPage.py file | annotate | diff | comparison | revisions
TimeTracker/TimeTrackerWidget.py file | annotate | diff | comparison | revisions
TimeTracker/Ui_TimeTrackerEntryDialog.py file | annotate | diff | comparison | revisions
TimeTracker/Ui_TimeTrackerWidget.py file | annotate | diff | comparison | revisions
--- a/.hgignore	Sat Jan 06 13:08:49 2024 +0100
+++ b/.hgignore	Sat Oct 26 17:13:16 2024 +0200
@@ -1,5 +1,4 @@
 glob:.eric7project
-glob:.eric6project
 glob:.ropeproject
 glob:.directory
 glob:.jedi
@@ -13,4 +12,3 @@
 glob:tmp
 glob:__pycache__
 glob:**.DS_Store
-glob:Ui_*.py
--- a/ChangeLog	Sat Jan 06 13:08:49 2024 +0100
+++ b/ChangeLog	Sat Oct 26 17:13:16 2024 +0200
@@ -1,5 +1,10 @@
 ChangeLog
 ---------
+Version 10.3.1
+- changed to the new style header
+- ensured proper parent relationship of modal dialogs
+- included compiled form files
+
 Version 10.3.0
 - adapted code to eric 24.2 and newer
 
--- a/PKGLIST	Sat Jan 06 13:08:49 2024 +0100
+++ b/PKGLIST	Sat Oct 26 17:13:16 2024 +0200
@@ -1,6 +1,7 @@
 PluginTimeTracker.py
 TimeTracker/ConfigurationPage/TimeTrackerPage.py
 TimeTracker/ConfigurationPage/TimeTrackerPage.ui
+TimeTracker/ConfigurationPage/Ui_TimeTrackerPage.py
 TimeTracker/ConfigurationPage/__init__.py
 TimeTracker/Documentation/LICENSE.GPL3
 TimeTracker/TimeTrackEntry.py
@@ -9,6 +10,8 @@
 TimeTracker/TimeTrackerEntryDialog.ui
 TimeTracker/TimeTrackerWidget.py
 TimeTracker/TimeTrackerWidget.ui
+TimeTracker/Ui_TimeTrackerEntryDialog.py
+TimeTracker/Ui_TimeTrackerWidget.py
 TimeTracker/__init__.py
 TimeTracker/i18n/timetracker_de.qm
 TimeTracker/i18n/timetracker_en.qm
--- a/PluginTimeTracker.epj	Sat Jan 06 13:08:49 2024 +0100
+++ b/PluginTimeTracker.epj	Sat Oct 26 17:13:16 2024 +0200
@@ -1,7 +1,7 @@
 {
   "header": {
     "comment": "eric project file for project PluginTimeTracker",
-    "copyright": "Copyright (C) 2023 Detlev Offenbach, detlev@die-offenbachs.de"
+    "copyright": "Copyright (C) 2024 Detlev Offenbach, detlev@die-offenbachs.de"
   },
   "project": {
     "AUTHOR": "Detlev Offenbach",
@@ -188,7 +188,6 @@
       "Makefile": "OTHERS",
       "README": "OTHERS",
       "README.*": "OTHERS",
-      "Ui_*.py": "__IGNORE__",
       "makefile": "OTHERS"
     },
     "FORMS": [
@@ -225,6 +224,7 @@
       "TimeTracker/Documentation/source",
       "TimeTracker/icons/clock-dark.svg",
       "TimeTracker/icons/clock-light.svg",
+      "TimeTracker/icons/sbTimeTracker96.svg",
       "pyproject.toml"
     ],
     "OTHERTOOLSPARMS": {
@@ -278,11 +278,14 @@
     "SOURCES": [
       "PluginTimeTracker.py",
       "TimeTracker/ConfigurationPage/TimeTrackerPage.py",
+      "TimeTracker/ConfigurationPage/Ui_TimeTrackerPage.py",
       "TimeTracker/ConfigurationPage/__init__.py",
       "TimeTracker/TimeTrackEntry.py",
       "TimeTracker/TimeTracker.py",
       "TimeTracker/TimeTrackerEntryDialog.py",
       "TimeTracker/TimeTrackerWidget.py",
+      "TimeTracker/Ui_TimeTrackerEntryDialog.py",
+      "TimeTracker/Ui_TimeTrackerWidget.py",
       "TimeTracker/__init__.py",
       "__init__.py"
     ],
@@ -354,4 +357,4 @@
     "VCSOTHERDATA": {},
     "VERSION": ""
   }
-}
\ No newline at end of file
+}
--- a/PluginTimeTracker.py	Sat Jan 06 13:08:49 2024 +0100
+++ b/PluginTimeTracker.py	Sat Oct 26 17:13:16 2024 +0200
@@ -16,21 +16,24 @@
 from TimeTracker.TimeTracker import TimeTracker
 
 # Start-Of-Header
-name = "Time Tracker Plugin"
-author = "Detlev Offenbach <detlev@die-offenbachs.de>"
-autoactivate = True
-deactivateable = True
-version = "10.3.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"""
-    """ into tasks."""
-)
-needsRestart = False
-pyqtApi = 2
+__header__ = {
+    "name": "Time Tracker Plugin", 
+    "author": "Detlev Offenbach <detlev@die-offenbachs.de>", 
+    "autoactivate": True, 
+    "deactivateable": True, 
+    "version": "10.3.1", 
+    "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"""
+        """ into tasks."""
+    ), 
+    "needsRestart": False, 
+    "hasCompiledForms": True,
+    "pyqtApi": 2, 
+}
 # End-Of-Header
 
 error = ""
Binary file PluginTimeTracker.zip has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TimeTracker/ConfigurationPage/Ui_TimeTrackerPage.py	Sat Oct 26 17:13:16 2024 +0200
@@ -0,0 +1,71 @@
+# Form implementation generated from reading ui file '/home/detlev/Development/Python/Eric/eric7_plugins/Plugin_Time_Tracker/TimeTracker/ConfigurationPage/TimeTrackerPage.ui'
+#
+# Created by: PyQt6 UI code generator 6.4.0
+#
+# WARNING: Any manual changes made to this file will be lost when pyuic6 is
+# run again.  Do not edit this file unless you know what you are doing.
+
+
+from PyQt6 import QtCore, QtGui, QtWidgets
+
+
+class Ui_TimeTrackerPage(object):
+    def setupUi(self, TimeTrackerPage):
+        TimeTrackerPage.setObjectName("TimeTrackerPage")
+        TimeTrackerPage.resize(495, 253)
+        self.verticalLayout = QtWidgets.QVBoxLayout(TimeTrackerPage)
+        self.verticalLayout.setObjectName("verticalLayout")
+        self.headerLabel = QtWidgets.QLabel(TimeTrackerPage)
+        self.headerLabel.setObjectName("headerLabel")
+        self.verticalLayout.addWidget(self.headerLabel)
+        self.line15 = QtWidgets.QFrame(TimeTrackerPage)
+        self.line15.setFrameShape(QtWidgets.QFrame.Shape.HLine)
+        self.line15.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
+        self.line15.setFrameShape(QtWidgets.QFrame.Shape.HLine)
+        self.line15.setObjectName("line15")
+        self.verticalLayout.addWidget(self.line15)
+        self.gridLayout = QtWidgets.QGridLayout()
+        self.gridLayout.setObjectName("gridLayout")
+        self.label = QtWidgets.QLabel(TimeTrackerPage)
+        self.label.setObjectName("label")
+        self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
+        self.durationSpinBox = QtWidgets.QSpinBox(TimeTrackerPage)
+        self.durationSpinBox.setMinimum(1)
+        self.durationSpinBox.setMaximum(9)
+        self.durationSpinBox.setObjectName("durationSpinBox")
+        self.gridLayout.addWidget(self.durationSpinBox, 0, 1, 1, 1)
+        spacerItem = QtWidgets.QSpacerItem(78, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
+        self.gridLayout.addItem(spacerItem, 0, 2, 1, 1)
+        self.autosaveCheckBox = QtWidgets.QCheckBox(TimeTrackerPage)
+        self.autosaveCheckBox.setObjectName("autosaveCheckBox")
+        self.gridLayout.addWidget(self.autosaveCheckBox, 1, 0, 1, 3)
+        self.duplicatesCheckBox = QtWidgets.QCheckBox(TimeTrackerPage)
+        self.duplicatesCheckBox.setObjectName("duplicatesCheckBox")
+        self.gridLayout.addWidget(self.duplicatesCheckBox, 2, 0, 1, 3)
+        self.verticalLayout.addLayout(self.gridLayout)
+        spacerItem1 = QtWidgets.QSpacerItem(20, 274, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
+        self.verticalLayout.addItem(spacerItem1)
+
+        self.retranslateUi(TimeTrackerPage)
+        QtCore.QMetaObject.connectSlotsByName(TimeTrackerPage)
+
+    def retranslateUi(self, TimeTrackerPage):
+        _translate = QtCore.QCoreApplication.translate
+        self.headerLabel.setText(_translate("TimeTrackerPage", "<b>Configure Time Tracker</b>"))
+        self.label.setText(_translate("TimeTrackerPage", "Minimum Duration:"))
+        self.durationSpinBox.setToolTip(_translate("TimeTrackerPage", "Enter the value of the minimum duration for a valid tracker entry"))
+        self.durationSpinBox.setSuffix(_translate("TimeTrackerPage", " min"))
+        self.autosaveCheckBox.setToolTip(_translate("TimeTrackerPage", "Select to save automatically whenever a tracker is stopped"))
+        self.autosaveCheckBox.setText(_translate("TimeTrackerPage", "Auto Save Enabled"))
+        self.duplicatesCheckBox.setToolTip(_translate("TimeTrackerPage", "Select to allow multiple entries with the same start date and time"))
+        self.duplicatesCheckBox.setText(_translate("TimeTrackerPage", "Allow entries with identical start date and time"))
+
+
+if __name__ == "__main__":
+    import sys
+    app = QtWidgets.QApplication(sys.argv)
+    TimeTrackerPage = QtWidgets.QWidget()
+    ui = Ui_TimeTrackerPage()
+    ui.setupUi(TimeTrackerPage)
+    TimeTrackerPage.show()
+    sys.exit(app.exec())
--- a/TimeTracker/TimeTrackerWidget.py	Sat Jan 06 13:08:49 2024 +0100
+++ b/TimeTracker/TimeTrackerWidget.py	Sat Oct 26 17:13:16 2024 +0200
@@ -182,7 +182,7 @@
             self.commentCombo.itemText(index)
             for index in range(self.commentCombo.count())
         ]
-        dlg = TimeTrackerEntryDialog(self.__tracker, None, tasks, comments)
+        dlg = TimeTrackerEntryDialog(self.__tracker, None, tasks, comments, parent=self)
         if dlg.exec() == QDialog.DialogCode.Accepted:
             self.__tracker.addTrackerEntry(*dlg.getData())
 
@@ -206,7 +206,9 @@
                     self.commentCombo.itemText(index)
                     for index in range(self.commentCombo.count())
                 ]
-                dlg = TimeTrackerEntryDialog(self.__tracker, entry, tasks, comments)
+                dlg = TimeTrackerEntryDialog(
+                    self.__tracker, entry, tasks, comments, parent=self
+                )
                 if dlg.exec() == QDialog.DialogCode.Accepted:
                     start, duration, task, comment = dlg.getData()
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TimeTracker/Ui_TimeTrackerEntryDialog.py	Sat Oct 26 17:13:16 2024 +0200
@@ -0,0 +1,98 @@
+# Form implementation generated from reading ui file '/home/detlev/Development/Python/Eric/eric7_plugins/Plugin_Time_Tracker/TimeTracker/TimeTrackerEntryDialog.ui'
+#
+# Created by: PyQt6 UI code generator 6.4.0
+#
+# WARNING: Any manual changes made to this file will be lost when pyuic6 is
+# run again.  Do not edit this file unless you know what you are doing.
+
+
+from PyQt6 import QtCore, QtGui, QtWidgets
+
+
+class Ui_TimeTrackerEntryDialog(object):
+    def setupUi(self, TimeTrackerEntryDialog):
+        TimeTrackerEntryDialog.setObjectName("TimeTrackerEntryDialog")
+        TimeTrackerEntryDialog.resize(515, 147)
+        TimeTrackerEntryDialog.setSizeGripEnabled(True)
+        self.verticalLayout = QtWidgets.QVBoxLayout(TimeTrackerEntryDialog)
+        self.verticalLayout.setObjectName("verticalLayout")
+        self.gridLayout = QtWidgets.QGridLayout()
+        self.gridLayout.setObjectName("gridLayout")
+        self.label = QtWidgets.QLabel(TimeTrackerEntryDialog)
+        self.label.setObjectName("label")
+        self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
+        self.startDateTimeEdit = QtWidgets.QDateTimeEdit(TimeTrackerEntryDialog)
+        self.startDateTimeEdit.setCalendarPopup(True)
+        self.startDateTimeEdit.setObjectName("startDateTimeEdit")
+        self.gridLayout.addWidget(self.startDateTimeEdit, 0, 1, 1, 2)
+        spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
+        self.gridLayout.addItem(spacerItem, 0, 3, 1, 1)
+        self.label_2 = QtWidgets.QLabel(TimeTrackerEntryDialog)
+        self.label_2.setObjectName("label_2")
+        self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
+        self.durationSpinBox = QtWidgets.QSpinBox(TimeTrackerEntryDialog)
+        self.durationSpinBox.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight|QtCore.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.AlignmentFlag.AlignVCenter)
+        self.durationSpinBox.setMaximum(9999)
+        self.durationSpinBox.setObjectName("durationSpinBox")
+        self.gridLayout.addWidget(self.durationSpinBox, 1, 1, 1, 1)
+        spacerItem1 = QtWidgets.QSpacerItem(108, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
+        self.gridLayout.addItem(spacerItem1, 1, 2, 1, 2)
+        self.label_3 = QtWidgets.QLabel(TimeTrackerEntryDialog)
+        self.label_3.setObjectName("label_3")
+        self.gridLayout.addWidget(self.label_3, 2, 0, 1, 1)
+        self.taskCombo = QtWidgets.QComboBox(TimeTrackerEntryDialog)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.taskCombo.sizePolicy().hasHeightForWidth())
+        self.taskCombo.setSizePolicy(sizePolicy)
+        self.taskCombo.setEditable(True)
+        self.taskCombo.setObjectName("taskCombo")
+        self.gridLayout.addWidget(self.taskCombo, 2, 1, 1, 3)
+        self.label_4 = QtWidgets.QLabel(TimeTrackerEntryDialog)
+        self.label_4.setObjectName("label_4")
+        self.gridLayout.addWidget(self.label_4, 3, 0, 1, 1)
+        self.commentCombo = QtWidgets.QComboBox(TimeTrackerEntryDialog)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.commentCombo.sizePolicy().hasHeightForWidth())
+        self.commentCombo.setSizePolicy(sizePolicy)
+        self.commentCombo.setEditable(True)
+        self.commentCombo.setObjectName("commentCombo")
+        self.gridLayout.addWidget(self.commentCombo, 3, 1, 1, 3)
+        self.verticalLayout.addLayout(self.gridLayout)
+        self.buttonBox = QtWidgets.QDialogButtonBox(TimeTrackerEntryDialog)
+        self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
+        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Ok)
+        self.buttonBox.setObjectName("buttonBox")
+        self.verticalLayout.addWidget(self.buttonBox)
+
+        self.retranslateUi(TimeTrackerEntryDialog)
+        self.buttonBox.accepted.connect(TimeTrackerEntryDialog.accept) # type: ignore
+        self.buttonBox.rejected.connect(TimeTrackerEntryDialog.reject) # type: ignore
+        QtCore.QMetaObject.connectSlotsByName(TimeTrackerEntryDialog)
+
+    def retranslateUi(self, TimeTrackerEntryDialog):
+        _translate = QtCore.QCoreApplication.translate
+        TimeTrackerEntryDialog.setWindowTitle(_translate("TimeTrackerEntryDialog", "Edit Timer Entry"))
+        self.label.setText(_translate("TimeTrackerEntryDialog", "Start Date/Time:"))
+        self.startDateTimeEdit.setToolTip(_translate("TimeTrackerEntryDialog", "Edit the start date and time of the timer"))
+        self.startDateTimeEdit.setDisplayFormat(_translate("TimeTrackerEntryDialog", "yyyy-MM-dd HH:mm:ss"))
+        self.label_2.setText(_translate("TimeTrackerEntryDialog", "Duration:"))
+        self.durationSpinBox.setToolTip(_translate("TimeTrackerEntryDialog", "Edit the duration of the timer"))
+        self.durationSpinBox.setSuffix(_translate("TimeTrackerEntryDialog", " min"))
+        self.label_3.setText(_translate("TimeTrackerEntryDialog", "Task:"))
+        self.taskCombo.setToolTip(_translate("TimeTrackerEntryDialog", "Enter the task description for the timer"))
+        self.label_4.setText(_translate("TimeTrackerEntryDialog", "Comment:"))
+        self.commentCombo.setToolTip(_translate("TimeTrackerEntryDialog", "Enter a comment for the timer"))
+
+
+if __name__ == "__main__":
+    import sys
+    app = QtWidgets.QApplication(sys.argv)
+    TimeTrackerEntryDialog = QtWidgets.QDialog()
+    ui = Ui_TimeTrackerEntryDialog()
+    ui.setupUi(TimeTrackerEntryDialog)
+    TimeTrackerEntryDialog.show()
+    sys.exit(app.exec())
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TimeTracker/Ui_TimeTrackerWidget.py	Sat Oct 26 17:13:16 2024 +0200
@@ -0,0 +1,122 @@
+# Form implementation generated from reading ui file '/home/detlev/Development/Python/Eric/eric7_plugins/Plugin_Time_Tracker/TimeTracker/TimeTrackerWidget.ui'
+#
+# Created by: PyQt6 UI code generator 6.4.0
+#
+# WARNING: Any manual changes made to this file will be lost when pyuic6 is
+# run again.  Do not edit this file unless you know what you are doing.
+
+
+from PyQt6 import QtCore, QtGui, QtWidgets
+
+
+class Ui_TimeTrackerWidget(object):
+    def setupUi(self, TimeTrackerWidget):
+        TimeTrackerWidget.setObjectName("TimeTrackerWidget")
+        TimeTrackerWidget.resize(609, 185)
+        self.verticalLayout = QtWidgets.QVBoxLayout(TimeTrackerWidget)
+        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
+        self.verticalLayout.setObjectName("verticalLayout")
+        self.gridLayout = QtWidgets.QGridLayout()
+        self.gridLayout.setObjectName("gridLayout")
+        self.label = QtWidgets.QLabel(TimeTrackerWidget)
+        self.label.setObjectName("label")
+        self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
+        self.label_2 = QtWidgets.QLabel(TimeTrackerWidget)
+        self.label_2.setObjectName("label_2")
+        self.gridLayout.addWidget(self.label_2, 0, 1, 1, 1)
+        self.label_3 = QtWidgets.QLabel(TimeTrackerWidget)
+        self.label_3.setObjectName("label_3")
+        self.gridLayout.addWidget(self.label_3, 0, 2, 1, 1)
+        self.label_4 = QtWidgets.QLabel(TimeTrackerWidget)
+        self.label_4.setObjectName("label_4")
+        self.gridLayout.addWidget(self.label_4, 0, 3, 1, 1)
+        self.startDateTimeEdit = QtWidgets.QDateTimeEdit(TimeTrackerWidget)
+        self.startDateTimeEdit.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
+        self.startDateTimeEdit.setReadOnly(True)
+        self.startDateTimeEdit.setCalendarPopup(True)
+        self.startDateTimeEdit.setObjectName("startDateTimeEdit")
+        self.gridLayout.addWidget(self.startDateTimeEdit, 1, 0, 1, 1)
+        self.durationSpinBox = QtWidgets.QSpinBox(TimeTrackerWidget)
+        self.durationSpinBox.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
+        self.durationSpinBox.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight|QtCore.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.AlignmentFlag.AlignVCenter)
+        self.durationSpinBox.setReadOnly(True)
+        self.durationSpinBox.setMaximum(9999)
+        self.durationSpinBox.setObjectName("durationSpinBox")
+        self.gridLayout.addWidget(self.durationSpinBox, 1, 1, 1, 1)
+        self.taskCombo = QtWidgets.QComboBox(TimeTrackerWidget)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.taskCombo.sizePolicy().hasHeightForWidth())
+        self.taskCombo.setSizePolicy(sizePolicy)
+        self.taskCombo.setEditable(True)
+        self.taskCombo.setObjectName("taskCombo")
+        self.gridLayout.addWidget(self.taskCombo, 1, 2, 1, 1)
+        self.commentCombo = QtWidgets.QComboBox(TimeTrackerWidget)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.commentCombo.sizePolicy().hasHeightForWidth())
+        self.commentCombo.setSizePolicy(sizePolicy)
+        self.commentCombo.setEditable(True)
+        self.commentCombo.setObjectName("commentCombo")
+        self.gridLayout.addWidget(self.commentCombo, 1, 3, 1, 1)
+        self.verticalLayout.addLayout(self.gridLayout)
+        self.horizontalLayout = QtWidgets.QHBoxLayout()
+        self.horizontalLayout.setObjectName("horizontalLayout")
+        spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
+        self.horizontalLayout.addItem(spacerItem)
+        self.pauseButton = QtWidgets.QPushButton(TimeTrackerWidget)
+        self.pauseButton.setCheckable(True)
+        self.pauseButton.setObjectName("pauseButton")
+        self.horizontalLayout.addWidget(self.pauseButton)
+        self.newButton = QtWidgets.QPushButton(TimeTrackerWidget)
+        self.newButton.setObjectName("newButton")
+        self.horizontalLayout.addWidget(self.newButton)
+        spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
+        self.horizontalLayout.addItem(spacerItem1)
+        self.verticalLayout.addLayout(self.horizontalLayout)
+        self.entriesList = QtWidgets.QTreeWidget(TimeTrackerWidget)
+        self.entriesList.setContextMenuPolicy(QtCore.Qt.ContextMenuPolicy.CustomContextMenu)
+        self.entriesList.setEditTriggers(QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers)
+        self.entriesList.setAlternatingRowColors(True)
+        self.entriesList.setSelectionMode(QtWidgets.QAbstractItemView.SelectionMode.ExtendedSelection)
+        self.entriesList.setRootIsDecorated(False)
+        self.entriesList.setAllColumnsShowFocus(True)
+        self.entriesList.setObjectName("entriesList")
+        self.entriesList.header().setStretchLastSection(False)
+        self.verticalLayout.addWidget(self.entriesList)
+
+        self.retranslateUi(TimeTrackerWidget)
+        QtCore.QMetaObject.connectSlotsByName(TimeTrackerWidget)
+
+    def retranslateUi(self, TimeTrackerWidget):
+        _translate = QtCore.QCoreApplication.translate
+        self.label.setText(_translate("TimeTrackerWidget", "Start Date/Time:"))
+        self.label_2.setText(_translate("TimeTrackerWidget", "Duration:"))
+        self.label_3.setText(_translate("TimeTrackerWidget", "Task:"))
+        self.label_4.setText(_translate("TimeTrackerWidget", "Comment:"))
+        self.startDateTimeEdit.setToolTip(_translate("TimeTrackerWidget", "Shows the start date and time of the current timer"))
+        self.startDateTimeEdit.setDisplayFormat(_translate("TimeTrackerWidget", "yyyy-MM-dd HH:mm:ss"))
+        self.durationSpinBox.setToolTip(_translate("TimeTrackerWidget", "Shows the duration of the current timer"))
+        self.durationSpinBox.setSuffix(_translate("TimeTrackerWidget", " min"))
+        self.taskCombo.setToolTip(_translate("TimeTrackerWidget", "Enter the task description for the current timer"))
+        self.commentCombo.setToolTip(_translate("TimeTrackerWidget", "Enter a comment for the current timer"))
+        self.pauseButton.setToolTip(_translate("TimeTrackerWidget", "Press to pause the current timer"))
+        self.pauseButton.setText(_translate("TimeTrackerWidget", "Pause"))
+        self.newButton.setToolTip(_translate("TimeTrackerWidget", "Press to end the current timer and start a new one"))
+        self.newButton.setText(_translate("TimeTrackerWidget", "End Current Timer and Start a New Timer"))
+        self.entriesList.headerItem().setText(0, _translate("TimeTrackerWidget", "Start Date/Time"))
+        self.entriesList.headerItem().setText(1, _translate("TimeTrackerWidget", "Duration"))
+        self.entriesList.headerItem().setText(2, _translate("TimeTrackerWidget", "Task"))
+        self.entriesList.headerItem().setText(3, _translate("TimeTrackerWidget", "Comment"))
+
+
+if __name__ == "__main__":
+    import sys
+    app = QtWidgets.QApplication(sys.argv)
+    TimeTrackerWidget = QtWidgets.QWidget()
+    ui = Ui_TimeTrackerWidget()
+    ui.setupUi(TimeTrackerWidget)
+    TimeTrackerWidget.show()
+    sys.exit(app.exec())

eric ide

mercurial