VultureChecker/VultureCheckerDialog.py

changeset 8
46783c4f7187
parent 7
a1a6ff3e5486
child 9
1ce891a2b3ae
equal deleted inserted replaced
7:a1a6ff3e5486 8:46783c4f7187
81 81
82 self.__project = e5App().getObject("Project") 82 self.__project = e5App().getObject("Project")
83 self.__finished = True 83 self.__finished = True
84 self.__errorItem = None 84 self.__errorItem = None
85 self.__data = None 85 self.__data = None
86 self.__slotsAreUsed = True
86 87
87 self.__fileList = [] 88 self.__fileList = []
88 self.filterFrame.setVisible(False) 89 self.filterFrame.setVisible(False)
89 90
90 self.__translatedTypes = { 91 self.__translatedTypes = {
91 "property": self.tr("Property"), 92 "property": self.tr("Property"),
92 "function": self.tr("Function"), 93 "function": self.tr("Function"),
94 "slot": self.tr("Slot"),
93 "attribute": self.tr("Attribute"), 95 "attribute": self.tr("Attribute"),
94 "variable": self.tr("Variable"), 96 "variable": self.tr("Variable"),
95 "class": self.tr("Class"), 97 "class": self.tr("Class"),
96 } 98 }
97 99
143 self.__data["ExcludeFiles"] = "" 145 self.__data["ExcludeFiles"] = ""
144 if "WhiteLists" not in self.__data: 146 if "WhiteLists" not in self.__data:
145 self.__data["WhiteLists"] = { 147 self.__data["WhiteLists"] = {
146 "property": [], 148 "property": [],
147 "function": [], 149 "function": [],
150 "slot": [],
148 "attribute": [], 151 "attribute": [],
149 "variable": [], 152 "variable": [],
150 "class": [], 153 "class": [],
151 "__patterns__": [ 154 "__patterns__": [
152 "on_*", 155 "on_*",
153 "visit_*", 156 "visit_*",
154 ], 157 ],
155 } 158 }
159 if "SlotsAreUsed" not in self.__data:
160 self.__data["SlotsAreUsed"] = True
161
156 self.excludeFilesEdit.setText(self.__data["ExcludeFiles"]) 162 self.excludeFilesEdit.setText(self.__data["ExcludeFiles"])
163 self.slotsCheckBox.setChecked(self.__data["SlotsAreUsed"])
157 164
158 def start(self, fn): 165 def start(self, fn):
159 """ 166 """
160 Public slot to start the code metrics determination. 167 Public slot to start the code metrics determination.
161 168
399 if f.strip()] 406 if f.strip()]
400 if filterList: 407 if filterList:
401 for filter in filterList: 408 for filter in filterList:
402 fileList = \ 409 fileList = \
403 [f for f in fileList if not fnmatch.fnmatch(f, filter)] 410 [f for f in fileList if not fnmatch.fnmatch(f, filter)]
411
412 self.__slotsAreUsed = self.slotsCheckBox.isChecked()
413 if self.__slotsAreUsed != self.__data["SlotsAreUsed"]:
414 self.__data["SlotsAreUsed"] = self.__slotsAreUsed
415 self.__project.setData(
416 "CHECKERSPARMS", "Vulture", self.__data)
404 417
405 self.start(fileList) 418 self.start(fileList)
406 419
407 def clear(self): 420 def clear(self):
408 """ 421 """
523 self.__usedAttrs + self.__usedVars + 536 self.__usedAttrs + self.__usedVars +
524 self.__namesImportedAsAliases + 537 self.__namesImportedAsAliases +
525 self.__data["WhiteLists"]["function"] + 538 self.__data["WhiteLists"]["function"] +
526 self.__data["WhiteLists"]["class"]) 539 self.__data["WhiteLists"]["class"])
527 540
541 def __unusedSlots(self):
542 """
543 Private method to get the list of unused PyQt slots.
544
545 @return list of unused PyQt slots
546 @rtype list of vulture.Item
547 """
548 return self.__getUnusedItems(
549 self.__definedSlots,
550 self.__usedAttrs + self.__usedVars +
551 self.__namesImportedAsAliases +
552 self.__data["WhiteLists"]["slot"])
553
528 def __unusedProperties(self): 554 def __unusedProperties(self):
529 """ 555 """
530 Private method to get the list of unused properties. 556 Private method to get the list of unused properties.
531 557
532 @return list of unused properties 558 @return list of unused properties
567 def filename(item): 593 def filename(item):
568 return item.file 594 return item.file
569 595
570 lastFileItem = None 596 lastFileItem = None
571 lastFileName = "" 597 lastFileName = ""
572 for item in sorted(self.__unusedFunctions() + 598 items = (self.__unusedFunctions() +
573 self.__unusedProperties() + 599 self.__unusedProperties() +
574 self.__unusedVariables() + 600 self.__unusedVariables() +
575 self.__unusedAttributes(), 601 self.__unusedAttributes())
576 key=filename): 602 if not self.__slotsAreUsed:
603 items += self.__unusedSlots()
604 for item in sorted(items, key=filename):
577 if lastFileItem is None or lastFileName != item.file: 605 if lastFileItem is None or lastFileName != item.file:
578 lastFileItem = self.__createFileItem(item.file) 606 lastFileItem = self.__createFileItem(item.file)
579 lastFileName = item.file 607 lastFileName = item.file
580 608
581 self.__createResultItem(lastFileItem, item) 609 self.__createResultItem(lastFileItem, item)

eric ide

mercurial