Tasks/TaskViewer.py

changeset 5105
8a773a100c34
parent 4883
ae0ee88c9d62
child 5114
ad158c12d744
equal deleted inserted replaced
5104:0b9420dc1093 5105:8a773a100c34
80 80
81 self.__projectTasksMenu = QMenu( 81 self.__projectTasksMenu = QMenu(
82 self.tr("P&roject Tasks"), self) 82 self.tr("P&roject Tasks"), self)
83 self.__projectTasksMenu.addAction( 83 self.__projectTasksMenu.addAction(
84 self.tr("&Regenerate project tasks"), 84 self.tr("&Regenerate project tasks"),
85 self.__regenerateProjectTasks) 85 self.regenerateProjectTasks)
86 self.__projectTasksMenu.addSeparator() 86 self.__projectTasksMenu.addSeparator()
87 self.__projectTasksMenu.addAction( 87 self.__projectTasksMenu.addAction(
88 self.tr("&Configure scan options"), 88 self.tr("&Configure scan options"),
89 self.__configureProjectTasksScanOptions) 89 self.__configureProjectTasksScanOptions)
90 90
661 QLineEdit.Normal, 661 QLineEdit.Normal,
662 self.projectTasksScanFilter) 662 self.projectTasksScanFilter)
663 if ok: 663 if ok:
664 self.projectTasksScanFilter = filter 664 self.projectTasksScanFilter = filter
665 665
666 def __regenerateProjectTasks(self): 666 def regenerateProjectTasks(self, quiet=False):
667 """ 667 """
668 Private slot to handle the "Regenerated project tasks" context menu 668 Public slot to regenerate project related tasks.
669 entry. 669
670 @param quiet flag indicating quiet operation
671 @type bool
670 """ 672 """
671 markers = { 673 markers = {
672 Task.TypeWarning: 674 Task.TypeWarning:
673 Preferences.getTasks("TasksWarningMarkers").split(), 675 Preferences.getTasks("TasksWarningMarkers").split(),
674 Task.TypeNote: Preferences.getTasks("TasksNoteMarkers").split(), 676 Task.TypeNote: Preferences.getTasks("TasksNoteMarkers").split(),
686 688
687 # remove all project tasks 689 # remove all project tasks
688 self.clearProjectTasks(fileOnly=True) 690 self.clearProjectTasks(fileOnly=True)
689 691
690 # now process them 692 # now process them
691 progress = E5ProgressDialog( 693 if not quiet:
692 self.tr("Extracting project tasks..."), 694 progress = E5ProgressDialog(
693 self.tr("Abort"), 0, len(files), self.tr("%v/%m Files")) 695 self.tr("Extracting project tasks..."),
694 progress.setMinimumDuration(0) 696 self.tr("Abort"), 0, len(files), self.tr("%v/%m Files"))
695 progress.setWindowTitle(self.tr("Tasks")) 697 progress.setMinimumDuration(0)
698 progress.setWindowTitle(self.tr("Tasks"))
696 count = 0 699 count = 0
697 700
698 for file in files: 701 for file in files:
699 progress.setLabelText( 702 if not quiet:
700 self.tr("Extracting project tasks...\n{0}").format(file)) 703 progress.setLabelText(
701 progress.setValue(count) 704 self.tr("Extracting project tasks...\n{0}").format(file))
702 QApplication.processEvents() 705 progress.setValue(count)
703 if progress.wasCanceled(): 706 QApplication.processEvents()
704 break 707 if progress.wasCanceled():
708 break
705 709
706 fn = os.path.join(self.project.ppath, file) 710 fn = os.path.join(self.project.ppath, file)
707 # read the file and split it into textlines 711 # read the file and split it into textlines
708 try: 712 try:
709 text, encoding = Utilities.readEncodedFile(fn) 713 text, encoding = Utilities.readEncodedFile(fn)
710 lines = text.splitlines() 714 lines = text.splitlines()
711 except (UnicodeError, IOError): 715 except (UnicodeError, IOError):
712 count += 1 716 count += 1
713 progress.setValue(count) 717 if not quiet:
718 progress.setValue(count)
714 continue 719 continue
715 720
716 # now search tasks and record them 721 # now search tasks and record them
717 lineIndex = 0 722 lineIndex = 0
718 for line in lines: 723 for line in lines:
729 break 734 break
730 if shouldBreak: 735 if shouldBreak:
731 break 736 break
732 737
733 count += 1 738 count += 1
734 739
735 progress.setValue(len(files)) 740 if not quiet:
741 progress.setValue(len(files))
736 742
737 def __configure(self): 743 def __configure(self):
738 """ 744 """
739 Private method to open the configuration dialog. 745 Private method to open the configuration dialog.
740 """ 746 """
742 748
743 def saveProjectTasks(self): 749 def saveProjectTasks(self):
744 """ 750 """
745 Public method to write the project tasks. 751 Public method to write the project tasks.
746 """ 752 """
747 if self.projectOpen and Preferences.getTasks("TasksProjectAutoSave"): 753 if self.projectOpen and Preferences.getProject("TasksProjectAutoSave"):
748 self.project.writeTasks() 754 self.project.writeTasks()

eric ide

mercurial