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() |
|
714 for f in self.__projectTasksScanFilter.split(",") |
703 if f.strip()] |
715 if f.strip()] |
704 if filterList: |
716 if filterList: |
705 for scanFilter in filterList: |
717 for scanFilter in filterList: |
706 files = [f for f in files |
718 files = [f for f in files |
707 if not fnmatch.fnmatch(f, scanFilter)] |
719 if not fnmatch.fnmatch(f, scanFilter)] |
783 """ |
795 """ |
784 Public method to stop the project task extraction thread. |
796 Public method to stop the project task extraction thread. |
785 """ |
797 """ |
786 self.__projectTaskExtractionThread.requestInterrupt() |
798 self.__projectTaskExtractionThread.requestInterrupt() |
787 self.__projectTaskExtractionThread.wait() |
799 self.__projectTaskExtractionThread.wait() |
|
800 |
|
801 def getTasksScanFilter(self) -> str: |
|
802 """ |
|
803 Public method to get the project scan filter. |
|
804 |
|
805 @return project scan filter |
|
806 @rtype str |
|
807 """ |
|
808 return self.__projectTasksScanFilter.strip() |
|
809 |
|
810 def setTasksScanFilter(self, filterStr: str): |
|
811 """ |
|
812 Public method to set the project scan filter. |
|
813 |
|
814 @param filterStr project scan filter |
|
815 @type str |
|
816 """ |
|
817 self.__projectTasksScanFilter = filterStr |
788 |
818 |
789 |
819 |
790 class ProjectTaskExtractionThread(QThread): |
820 class ProjectTaskExtractionThread(QThread): |
791 """ |
821 """ |
792 Class implementing a thread to extract tasks related to a project. |
822 Class implementing a thread to extract tasks related to a project. |