Thu, 13 Aug 2020 16:59:03 +0200
Tasks: added separate task categories for 'Test' and 'Documentation' tasks
--- a/docs/changelog Wed Aug 12 17:10:50 2020 +0200 +++ b/docs/changelog Thu Aug 13 16:59:03 2020 +0200 @@ -1,5 +1,10 @@ Change Log ---------- +Version 20.9: +- bug fixes +- Tasks + -- added separate task categories for 'Test' and 'Documentation' tasks + Version 20.8: - bug fixes
--- a/eric6/Preferences/ConfigurationPages/TasksPage.py Wed Aug 12 17:10:50 2020 +0200 +++ b/eric6/Preferences/ConfigurationPages/TasksPage.py Thu Aug 13 16:59:03 2020 +0200 @@ -35,6 +35,10 @@ Preferences.getTasks("TasksTodoMarkers")) self.tasksMarkerNoteEdit.setText( Preferences.getTasks("TasksNoteMarkers")) + self.tasksMarkerTestEdit.setText( + Preferences.getTasks("TasksTestMarkers")) + self.tasksMarkerDocuEdit.setText( + Preferences.getTasks("TasksDocuMarkers")) self.initColour( "TasksFixmeColor", self.tasksFixmeColourButton, @@ -48,6 +52,12 @@ self.initColour( "TasksNoteColor", self.tasksNoteColourButton, Preferences.getTasks) + self.initColour( + "TasksTestColor", self.tasksTestColourButton, + Preferences.getTasks) + self.initColour( + "TasksDocuColor", self.tasksDocuColourButton, + Preferences.getTasks) self.clearCheckBox.setChecked(Preferences.getTasks("ClearOnFileClose")) @@ -64,6 +74,10 @@ Preferences.setTasks( "TasksNoteMarkers", self.tasksMarkerNoteEdit.text()) Preferences.setTasks( + "TasksTestMarkers", self.tasksMarkerTestEdit.text()) + Preferences.setTasks( + "TasksDocuMarkers", self.tasksMarkerDocuEdit.text()) + Preferences.setTasks( "ClearOnFileClose", self.clearCheckBox.isChecked()) self.saveColours(Preferences.setTasks)
--- a/eric6/Preferences/ConfigurationPages/TasksPage.ui Wed Aug 12 17:10:50 2020 +0200 +++ b/eric6/Preferences/ConfigurationPages/TasksPage.ui Thu Aug 13 16:59:03 2020 +0200 @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>586</width> - <height>475</height> + <width>600</width> + <height>678</height> </rect> </property> <layout class="QVBoxLayout" name="verticalLayout"> @@ -96,6 +96,34 @@ </property> </widget> </item> + <item row="4" column="0"> + <widget class="QLabel" name="textLabel4_7"> + <property name="text"> + <string>Test tasks:</string> + </property> + </widget> + </item> + <item row="4" column="1"> + <widget class="QLineEdit" name="tasksMarkerTestEdit"> + <property name="toolTip"> + <string>Enter the tasks markers separated by a space character.</string> + </property> + </widget> + </item> + <item row="5" column="0"> + <widget class="QLabel" name="textLabel4_6"> + <property name="text"> + <string>Documentation tasks:</string> + </property> + </widget> + </item> + <item row="5" column="1"> + <widget class="QLineEdit" name="tasksMarkerDocuEdit"> + <property name="toolTip"> + <string>Enter the tasks markers separated by a space character.</string> + </property> + </widget> + </item> </layout> </widget> </item> @@ -210,6 +238,52 @@ </property> </widget> </item> + <item row="4" column="0"> + <widget class="QLabel" name="textLabel1_4"> + <property name="text"> + <string>Test tasks:</string> + </property> + </widget> + </item> + <item row="4" column="1"> + <widget class="QPushButton" name="tasksTestColourButton"> + <property name="minimumSize"> + <size> + <width>100</width> + <height>0</height> + </size> + </property> + <property name="toolTip"> + <string>Select the background color for these tasks.</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + <item row="5" column="0"> + <widget class="QLabel" name="textLabel3_5"> + <property name="text"> + <string>Documentation tasks:</string> + </property> + </widget> + </item> + <item row="5" column="1"> + <widget class="QPushButton" name="tasksDocuColourButton"> + <property name="minimumSize"> + <size> + <width>100</width> + <height>0</height> + </size> + </property> + <property name="toolTip"> + <string>Select the background color for these tasks.</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> </layout> </widget> </item> @@ -252,10 +326,14 @@ <tabstop>tasksMarkerWarningEdit</tabstop> <tabstop>tasksMarkerTodoEdit</tabstop> <tabstop>tasksMarkerNoteEdit</tabstop> + <tabstop>tasksMarkerTestEdit</tabstop> + <tabstop>tasksMarkerDocuEdit</tabstop> <tabstop>tasksFixmeColourButton</tabstop> <tabstop>tasksWarningColourButton</tabstop> <tabstop>tasksTodoColourButton</tabstop> <tabstop>tasksNoteColourButton</tabstop> + <tabstop>tasksTestColourButton</tabstop> + <tabstop>tasksDocuColourButton</tabstop> <tabstop>clearCheckBox</tabstop> </tabstops> <resources/>
--- a/eric6/Preferences/__init__.py Wed Aug 12 17:10:50 2020 +0200 +++ b/eric6/Preferences/__init__.py Thu Aug 13 16:59:03 2020 +0200 @@ -1245,11 +1245,15 @@ "TasksWarningMarkers": "WARN" + "ING:", "TasksTodoMarkers": "TO" + "DO:", "TasksNoteMarkers": "NO" + "TE:", + "TasksTestMarkers": "TE" + "ST:", + "TasksDocuMarkers": "DO" + "CU:", # needed to keep it from being recognized as a task "TasksFixmeColor": QColor("#FFA0A0"), "TasksWarningColor": QColor("#FFFFA0"), "TasksTodoColor": QColor("#A0FFA0"), "TasksNoteColor": QColor("#A0A0FF"), + "TasksTestColor": QColor("#FFD000"), + "TasksDocuColor": QColor("#FFA0FF"), "ClearOnFileClose": True, } @@ -3100,7 +3104,8 @@ @return the requested user setting """ if key in ["TasksFixmeColor", "TasksWarningColor", - "TasksTodoColor", "TasksNoteColor"]: + "TasksTodoColor", "TasksNoteColor", + "TasksTestColor", "TasksDocuMarkers"]: col = prefClass.settings.value("Tasks/" + key) if col is not None: return QColor(col)
--- a/eric6/QScintilla/Editor.py Wed Aug 12 17:10:50 2020 +0200 +++ b/eric6/QScintilla/Editor.py Thu Aug 13 16:59:03 2020 +0200 @@ -2769,14 +2769,8 @@ """ from Tasks.Task import Task markers = { - Task.TypeWarning: - Preferences.getTasks("TasksWarningMarkers").split(), - Task.TypeNote: - Preferences.getTasks("TasksNoteMarkers").split(), - Task.TypeTodo: - Preferences.getTasks("TasksTodoMarkers").split(), - Task.TypeFixme: - Preferences.getTasks("TasksFixmeMarkers").split(), + taskType: Preferences.getTasks(markersName).split() + for taskType, markersName in Task.TaskType2MarkersName.items() } txtList = self.text().split(self.getLineSeparator())
--- a/eric6/Tasks/Task.py Wed Aug 12 17:10:50 2020 +0200 +++ b/eric6/Tasks/Task.py Thu Aug 13 16:59:03 2020 +0200 @@ -27,6 +27,33 @@ TypeTodo = 1 TypeWarning = 2 TypeNote = 3 + TypeTest = 4 + TypeDocu = 5 + + TaskType2IconName = { + TypeFixme: "taskFixme", + TypeTodo: "taskTodo", + TypeWarning: "taskWarning", + TypeNote: "taskNote", + TypeTest: "taskTest", + TypeDocu: "taskDocu", + } + TaskType2ColorName = { + TypeFixme: "TasksFixmeColor", + TypeTodo: "TasksTodoColor", + TypeWarning: "TasksWarningColor", + TypeNote: "TasksNoteColor", + TypeTest: "TasksTestColor", + TypeDocu: "TasksDocuColor", + } + TaskType2MarkersName = { + TypeFixme: "TasksFixmeMarkers", + TypeTodo: "TasksTodoMarkers", + TypeWarning: "TasksWarningMarkers", + TypeNote: "TasksNoteMarkers", + TypeTest: "TasksTestMarkers", + TypeDocu: "TasksDocuMarkers", + } def __init__(self, summary, priority=1, filename="", lineno=0, completed=False, _time=0, isProjectTask=False, @@ -44,7 +71,7 @@ @param isProjectTask flag indicating a task related to the current project (boolean) @param taskType type of the task (one of TypeFixme, TypeTodo, - TypeWarning, TypeNote) + TypeWarning, TypeNote, TypeTest, TypeDocu) @param project reference to the project object (Project) @param description explanatory text of the task (string) @param uid unique id of the task (string) @@ -100,14 +127,11 @@ else: self.setIcon(1, UI.PixmapCache.getIcon("empty")) - if self.taskType == Task.TypeFixme: - self.setIcon(2, UI.PixmapCache.getIcon("taskFixme")) - elif self.taskType == Task.TypeWarning: - self.setIcon(2, UI.PixmapCache.getIcon("taskWarning")) - elif self.taskType == Task.TypeTodo: - self.setIcon(2, UI.PixmapCache.getIcon("taskTodo")) - else: - self.setIcon(2, UI.PixmapCache.getIcon("taskNote")) + try: + self.setIcon(2, UI.PixmapCache.getIcon( + Task.TaskType2IconName[self.taskType])) + except KeyError: + self.setIcon(2, UI.PixmapCache.getIcon("empty")) self.colorizeTask() self.setTextAlignment(4, Qt.AlignRight) @@ -121,18 +145,14 @@ nonBoldFont = self.font(0) nonBoldFont.setBold(False) for col in range(5): - if self.taskType == Task.TypeFixme: - self.setBackground( - col, Preferences.getTasks("TasksFixmeColor")) - elif self.taskType == Task.TypeWarning: + try: self.setBackground( - col, Preferences.getTasks("TasksWarningColor")) - elif self.taskType == Task.TypeTodo: - self.setBackground( - col, Preferences.getTasks("TasksTodoColor")) - else: - self.setBackground( - col, Preferences.getTasks("TasksNoteColor")) + col, Preferences.getTasks( + Task.TaskType2ColorName[self.taskType])) + except KeyError: + # do not set background color if type is not known + pass + if self._isProjectTask: self.setFont(col, boldFont) else:
--- a/eric6/Tasks/TaskViewer.py Wed Aug 12 17:10:50 2020 +0200 +++ b/eric6/Tasks/TaskViewer.py Thu Aug 13 16:59:03 2020 +0200 @@ -694,11 +694,8 @@ @type bool """ markers = { - Task.TypeWarning: - Preferences.getTasks("TasksWarningMarkers").split(), - Task.TypeNote: Preferences.getTasks("TasksNoteMarkers").split(), - Task.TypeTodo: Preferences.getTasks("TasksTodoMarkers").split(), - Task.TypeFixme: Preferences.getTasks("TasksFixmeMarkers").split(), + taskType: Preferences.getTasks(markersName).split() + for taskType, markersName in Task.TaskType2MarkersName.items() } files = self.project.pdata["SOURCES"]
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eric6/icons/breeze-dark/taskDocu.svg Thu Aug 13 16:59:03 2020 +0200 @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg version="1.1" viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg"> + <defs> + <style type="text/css">.ColorScheme-Text { + color:#eff0f1; + }</style> + </defs> + <path d="m2 1v20h11.571v-1.25h-10.286v-17.5h10.286v5h5.1429v7.5h1.2857v-8.7598l-5.1328-4.9902-0.01004 0.012207v-0.012207h-11.571z" fill="#eff0f1"/> + <path d="m13.571 20.401h5.8129v-5.6514" fill="none" stroke="#eff0f1" stroke-width="1.2142px"/> +</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eric6/icons/breeze-dark/taskTest.svg Thu Aug 13 16:59:03 2020 +0200 @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg width="22" height="22" version="1.1" viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg"> + <path d="m3.02 14.502-0.00271-0.04081c8.7e-4 0.01361 0.00178 0.02722 0.00271 0.04081z" fill="#c5c5c5"/> + <g transform="matrix(1.4368 0 0 1.4654 -.43678 -47.874)" fill="#eff0f1"> + <path d="m7.2577 40.905-1.7701-1.7791 0.59162-0.59161 1.8718 1.8812 1.8451-1.8451 0.59165 0.5916-1.77 1.77 1.7701 1.7791-0.59161 0.5916-1.8717-1.8813-1.8451 1.8451-0.59161-0.5916z"/> + <path d="m10.878 36.27v0.58167h0.7849l1.6579-1.6579 0.5916 0.59161-1.5698 1.5698 0.0189 0.04949c0.3304 0.86212 0.5165 1.8351 0.5165 2.8653 0 0.1957-0.0067 0.38933-0.0199 0.58053l-3e-3 0.04364h2.0654v0.83666h-2.1705l-0.0061 0.03349c-0.1764 0.96445-0.5195 1.8438-0.9869 2.5838l-0.0347 0.0551 1.9964 2.0065-0.5931 0.5901-1.9098-1.9194-0.0577 0.0645c-0.8627 0.965-1.9806 1.5435-3.1984 1.5435-1.2367 0-2.3704-0.5966-3.2384-1.5887l-0.05749-0.0657-1.8717 1.8717-0.59162-0.5916 1.9632-1.9632-0.03399-0.055c-0.45068-0.729-0.782-1.5897-0.95424-2.5316l-0.00612-0.03349h-2.1688v-0.83666h2.0637l-3e-3 -0.04364c-0.01315-0.1912-0.01986-0.38483-0.01986-0.58053 0-1.0167 0.18128-1.9778 0.50362-2.8315l0.01857-0.04919-1.6109-1.619 0.59311-0.59012 1.6631 1.6715h0.83249v-0.58167c0-1.6118 1.3066-2.9183 2.9183-2.9183s2.9183 1.3066 2.9183 2.9183zm-5 0v0.58167h4.1633v-0.58167c0-1.1497-0.93196-2.0817-2.0816-2.0817s-2.0817 0.93199-2.0817 2.0817zm5.7163 1.4712-0.0199-0.0529h-7.2295l-0.0199 0.0529c-0.28341 0.75313-0.44701 1.6105-0.44701 2.5288 0 1.6099 0.50298 3.0339 1.274 4.0363 0.77037 1.0015 1.771 1.5454 2.8076 1.5454s2.0373-0.5439 2.8076-1.5454c0.7711-1.0024 1.274-2.4263 1.274-4.0363 0-0.91822-0.1636-1.7756-0.447-2.5288z" clip-rule="evenodd" fill-rule="evenodd"/> + </g> +</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eric6/icons/breeze-light/taskDocu.svg Thu Aug 13 16:59:03 2020 +0200 @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg version="1.1" viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg"> + <defs> + <style type="text/css">.ColorScheme-Text { + color:#eff0f1; + }</style> + </defs> + <path d="m2 1v20h11.571v-1.25h-10.286v-17.5h10.286v5h5.1429v7.5h1.2857v-8.7598l-5.1328-4.9902-0.01004 0.012207v-0.012207h-11.571z" fill="#232629"/> + <path d="m13.571 20.401h5.8129v-5.6514" fill="none" stroke="#232629" stroke-width="1.2142px"/> +</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eric6/icons/breeze-light/taskTest.svg Thu Aug 13 16:59:03 2020 +0200 @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg width="22" height="22" version="1.1" viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg"> + <path d="m3.02 14.502-0.00271-0.04081c8.7e-4 0.01361 0.00178 0.02722 0.00271 0.04081z" fill="#c5c5c5"/> + <g transform="matrix(1.4368 0 0 1.4654 -.43678 -47.874)" fill="#232629"> + <path d="m7.2577 40.905-1.7701-1.7791 0.59162-0.59161 1.8718 1.8812 1.8451-1.8451 0.59165 0.5916-1.77 1.77 1.7701 1.7791-0.59161 0.5916-1.8717-1.8813-1.8451 1.8451-0.59161-0.5916z"/> + <path d="m10.878 36.27v0.58167h0.7849l1.6579-1.6579 0.5916 0.59161-1.5698 1.5698 0.0189 0.04949c0.3304 0.86212 0.5165 1.8351 0.5165 2.8653 0 0.1957-0.0067 0.38933-0.0199 0.58053l-3e-3 0.04364h2.0654v0.83666h-2.1705l-0.0061 0.03349c-0.1764 0.96445-0.5195 1.8438-0.9869 2.5838l-0.0347 0.0551 1.9964 2.0065-0.5931 0.5901-1.9098-1.9194-0.0577 0.0645c-0.8627 0.965-1.9806 1.5435-3.1984 1.5435-1.2367 0-2.3704-0.5966-3.2384-1.5887l-0.05749-0.0657-1.8717 1.8717-0.59162-0.5916 1.9632-1.9632-0.03399-0.055c-0.45068-0.729-0.782-1.5897-0.95424-2.5316l-0.00612-0.03349h-2.1688v-0.83666h2.0637l-3e-3 -0.04364c-0.01315-0.1912-0.01986-0.38483-0.01986-0.58053 0-1.0167 0.18128-1.9778 0.50362-2.8315l0.01857-0.04919-1.6109-1.619 0.59311-0.59012 1.6631 1.6715h0.83249v-0.58167c0-1.6118 1.3066-2.9183 2.9183-2.9183s2.9183 1.3066 2.9183 2.9183zm-5 0v0.58167h4.1633v-0.58167c0-1.1497-0.93196-2.0817-2.0816-2.0817s-2.0817 0.93199-2.0817 2.0817zm5.7163 1.4712-0.0199-0.0529h-7.2295l-0.0199 0.0529c-0.28341 0.75313-0.44701 1.6105-0.44701 2.5288 0 1.6099 0.50298 3.0339 1.274 4.0363 0.77037 1.0015 1.771 1.5454 2.8076 1.5454s2.0373-0.5439 2.8076-1.5454c0.7711-1.0024 1.274-2.4263 1.274-4.0363 0-0.91822-0.1636-1.7756-0.447-2.5288z" clip-rule="evenodd" fill-rule="evenodd"/> + </g> +</svg>