Tasks: added separate task categories for 'Test' and 'Documentation' tasks

Thu, 13 Aug 2020 16:59:03 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 13 Aug 2020 16:59:03 +0200
changeset 7663
b4d5234f92e7
parent 7662
d5e4bed968b4
child 7664
8757c7cf4cb3

Tasks: added separate task categories for 'Test' and 'Documentation' tasks

docs/changelog file | annotate | diff | comparison | revisions
eric6/Preferences/ConfigurationPages/TasksPage.py file | annotate | diff | comparison | revisions
eric6/Preferences/ConfigurationPages/TasksPage.ui file | annotate | diff | comparison | revisions
eric6/Preferences/__init__.py file | annotate | diff | comparison | revisions
eric6/QScintilla/Editor.py file | annotate | diff | comparison | revisions
eric6/Tasks/Task.py file | annotate | diff | comparison | revisions
eric6/Tasks/TaskViewer.py file | annotate | diff | comparison | revisions
eric6/icons/breeze-dark/taskDocu.svg file | annotate | diff | comparison | revisions
eric6/icons/breeze-dark/taskTest.svg file | annotate | diff | comparison | revisions
eric6/icons/breeze-light/taskDocu.svg file | annotate | diff | comparison | revisions
eric6/icons/breeze-light/taskTest.svg file | annotate | diff | comparison | revisions
eric6/icons/oxygen/taskDocu.png file | annotate | diff | comparison | revisions
eric6/icons/oxygen/taskTest.png file | annotate | diff | comparison | revisions
--- 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>
Binary file eric6/icons/oxygen/taskDocu.png has changed
Binary file eric6/icons/oxygen/taskTest.png has changed

eric ide

mercurial