69 |
69 |
70 self.tasks = [] |
70 self.tasks = [] |
71 self.copyTask = None |
71 self.copyTask = None |
72 self.projectOpen = False |
72 self.projectOpen = False |
73 self.project = project |
73 self.project = project |
74 self.projectTasksScanFilter = "" |
74 self.__projectTasksScanFilter = "" |
75 |
75 |
76 from .TaskFilter import TaskFilter |
76 from .TaskFilter import TaskFilter |
77 self.taskFilter = TaskFilter() |
77 self.taskFilter = TaskFilter() |
78 self.taskFilter.setActive(False) |
78 self.taskFilter.setActive(False) |
79 |
79 |
335 project (boolean) |
335 project (boolean) |
336 @param taskType type of the task (one of Task.TypeFixme, Task.TypeTodo, |
336 @param taskType type of the task (one of Task.TypeFixme, Task.TypeTodo, |
337 Task.TypeWarning, Task.TypeNote) |
337 Task.TypeWarning, Task.TypeNote) |
338 @param description explanatory text of the task (string) |
338 @param description explanatory text of the task (string) |
339 @param uid unique id of the task (string) |
339 @param uid unique id of the task (string) |
340 @param parentTask reference to the parent task item (Task) |
340 @param parentTask reference to the parent task item (Task) or the |
|
341 UID of the parent task |
341 @return reference to the task item (Task) |
342 @return reference to the task item (Task) |
342 """ |
343 """ |
343 if parentTask: |
344 if isinstance(parentTask, str): |
344 parentUid = parentTask.getUuid() |
345 # UID of parent task |
|
346 if parentTask == "": |
|
347 parentUid = "" |
|
348 parentTask = None |
|
349 else: |
|
350 parentUid = parentTask |
|
351 parentTask = self.findParentTask(parentUid) |
345 else: |
352 else: |
346 parentUid = "" |
353 # parent task item |
|
354 if parentTask: |
|
355 parentUid = parentTask.getUuid() |
|
356 else: |
|
357 parentUid = "" |
347 task = Task(summary, priority, filename, lineno, completed, |
358 task = Task(summary, priority, filename, lineno, completed, |
348 _time, isProjectTask, taskType, |
359 _time, isProjectTask, taskType, |
349 self.project, description, uid, parentUid) |
360 self.project, description, uid, parentUid) |
350 self.tasks.append(task) |
361 self.tasks.append(task) |
351 if parentTask: |
362 if parentTask: |
679 self, |
690 self, |
680 self.tr("Scan Filter Patterns"), |
691 self.tr("Scan Filter Patterns"), |
681 self.tr("Enter filename patterns of files" |
692 self.tr("Enter filename patterns of files" |
682 " to be excluded separated by a comma:"), |
693 " to be excluded separated by a comma:"), |
683 QLineEdit.Normal, |
694 QLineEdit.Normal, |
684 self.projectTasksScanFilter) |
695 self.__projectTasksScanFilter) |
685 if ok: |
696 if ok: |
686 self.projectTasksScanFilter = scanFilter |
697 self.__projectTasksScanFilter = scanFilter |
687 |
698 |
688 def regenerateProjectTasks(self, quiet=False): |
699 def regenerateProjectTasks(self, quiet=False): |
689 """ |
700 """ |
690 Public slot to regenerate project related tasks. |
701 Public slot to regenerate project related tasks. |
691 |
702 |
697 for taskType, markersName in Task.TaskType2MarkersName.items() |
708 for taskType, markersName in Task.TaskType2MarkersName.items() |
698 } |
709 } |
699 files = self.project.pdata["SOURCES"] |
710 files = self.project.pdata["SOURCES"] |
700 |
711 |
701 # apply file filter |
712 # apply file filter |
702 filterList = [f.strip() for f in self.projectTasksScanFilter.split(",") |
713 filterList = [f.strip() for f in self.__projectTasksScanFilter.split(",") |
703 if f.strip()] |
714 if f.strip()] |
704 if filterList: |
715 if filterList: |
705 for scanFilter in filterList: |
716 for scanFilter in filterList: |
706 files = [f for f in files |
717 files = [f for f in files |
707 if not fnmatch.fnmatch(f, scanFilter)] |
718 if not fnmatch.fnmatch(f, scanFilter)] |
783 """ |
794 """ |
784 Public method to stop the project task extraction thread. |
795 Public method to stop the project task extraction thread. |
785 """ |
796 """ |
786 self.__projectTaskExtractionThread.requestInterrupt() |
797 self.__projectTaskExtractionThread.requestInterrupt() |
787 self.__projectTaskExtractionThread.wait() |
798 self.__projectTaskExtractionThread.wait() |
|
799 |
|
800 def getTasksScanFilter(self) -> str: |
|
801 """ |
|
802 Public method to get the project scan filter. |
|
803 |
|
804 @return project scan filter |
|
805 @rtype str |
|
806 """ |
|
807 return self.__projectTasksScanFilter.strip() |
|
808 |
|
809 def setTasksScanFilter(self, filter: str): |
|
810 """ |
|
811 Public method to set the project scan filter. |
|
812 |
|
813 @param filter project scan filter |
|
814 @type str |
|
815 """ |
|
816 self.__projectTasksScanFilter = filter |
788 |
817 |
789 |
818 |
790 class ProjectTaskExtractionThread(QThread): |
819 class ProjectTaskExtractionThread(QThread): |
791 """ |
820 """ |
792 Class implementing a thread to extract tasks related to a project. |
821 Class implementing a thread to extract tasks related to a project. |