Project/ProjectSourcesBrowser.py

changeset 4183
856ba07de877
parent 4021
195a471c327b
child 4186
e2bf1c32272b
equal deleted inserted replaced
4182:a84cadf71513 4183:856ba07de877
15 from PyQt5.QtWidgets import QDialog, QInputDialog, QMenu 15 from PyQt5.QtWidgets import QDialog, QInputDialog, QMenu
16 16
17 from E5Gui import E5MessageBox 17 from E5Gui import E5MessageBox
18 18
19 from UI.BrowserModel import BrowserFileItem, BrowserClassItem, \ 19 from UI.BrowserModel import BrowserFileItem, BrowserClassItem, \
20 BrowserMethodItem, BrowserClassAttributeItem 20 BrowserMethodItem, BrowserClassAttributeItem, BrowserImportItem
21 21
22 from .ProjectBrowserModel import ProjectBrowserFileItem, \ 22 from .ProjectBrowserModel import ProjectBrowserFileItem, \
23 ProjectBrowserSimpleDirectoryItem, ProjectBrowserDirectoryItem, \ 23 ProjectBrowserSimpleDirectoryItem, ProjectBrowserDirectoryItem, \
24 ProjectBrowserSourceType 24 ProjectBrowserSourceType
25 from .ProjectBaseBrowser import ProjectBaseBrowser 25 from .ProjectBaseBrowser import ProjectBaseBrowser
588 588
589 try: 589 try:
590 categories = self.getSelectedItemsCountCategorized( 590 categories = self.getSelectedItemsCountCategorized(
591 [ProjectBrowserFileItem, BrowserClassItem, 591 [ProjectBrowserFileItem, BrowserClassItem,
592 BrowserMethodItem, ProjectBrowserSimpleDirectoryItem, 592 BrowserMethodItem, ProjectBrowserSimpleDirectoryItem,
593 BrowserClassAttributeItem]) 593 BrowserClassAttributeItem, BrowserImportItem])
594 cnt = categories["sum"] 594 cnt = categories["sum"]
595 if cnt <= 1: 595 if cnt <= 1:
596 index = self.indexAt(coord) 596 index = self.indexAt(coord)
597 if index.isValid(): 597 if index.isValid():
598 self._selectSingleItem(index) 598 self._selectSingleItem(index)
599 categories = self.getSelectedItemsCountCategorized( 599 categories = self.getSelectedItemsCountCategorized(
600 [ProjectBrowserFileItem, BrowserClassItem, 600 [ProjectBrowserFileItem, BrowserClassItem,
601 BrowserMethodItem, ProjectBrowserSimpleDirectoryItem, 601 BrowserMethodItem, ProjectBrowserSimpleDirectoryItem,
602 BrowserClassAttributeItem]) 602 BrowserClassAttributeItem, BrowserImportItem])
603 cnt = categories["sum"] 603 cnt = categories["sum"]
604 604
605 bfcnt = categories[str(ProjectBrowserFileItem)] 605 bfcnt = categories[str(ProjectBrowserFileItem)]
606 cmcnt = categories[str(BrowserClassItem)] + \ 606 cmcnt = categories[str(BrowserClassItem)] + \
607 categories[str(BrowserMethodItem)] + \ 607 categories[str(BrowserMethodItem)] + \
608 categories[str(BrowserClassAttributeItem)] 608 categories[str(BrowserClassAttributeItem)] + \
609 categories[str(BrowserImportItem)]
609 sdcnt = categories[str(ProjectBrowserSimpleDirectoryItem)] 610 sdcnt = categories[str(ProjectBrowserSimpleDirectoryItem)]
610 if cnt > 1 and cnt == bfcnt: 611 if cnt > 1 and cnt == bfcnt:
611 self.multiMenu.popup(self.mapToGlobal(coord)) 612 self.multiMenu.popup(self.mapToGlobal(coord))
612 elif cnt > 1 and cnt == sdcnt: 613 elif cnt > 1 and cnt == sdcnt:
613 self.dirMultiMenu.popup(self.mapToGlobal(coord)) 614 self.dirMultiMenu.popup(self.mapToGlobal(coord))
654 self.unittestAction.setEnabled(True) 655 self.unittestAction.setEnabled(True)
655 self.checksMenu.menuAction().setEnabled( 656 self.checksMenu.menuAction().setEnabled(
656 True) 657 True)
657 self.sourceMenu.popup(self.mapToGlobal(coord)) 658 self.sourceMenu.popup(self.mapToGlobal(coord))
658 elif isinstance(itm, BrowserClassItem) or \ 659 elif isinstance(itm, BrowserClassItem) or \
659 isinstance(itm, BrowserMethodItem): 660 isinstance(itm, BrowserMethodItem) or \
661 isinstance(itm, BrowserImportItem):
660 self.menu.popup(self.mapToGlobal(coord)) 662 self.menu.popup(self.mapToGlobal(coord))
661 elif isinstance(itm, BrowserClassAttributeItem): 663 elif isinstance(itm, BrowserClassAttributeItem):
662 self.attributeMenu.popup(self.mapToGlobal(coord)) 664 self.attributeMenu.popup(self.mapToGlobal(coord))
663 else: 665 else:
664 self.backMenu.popup(self.mapToGlobal(coord)) 666 self.backMenu.popup(self.mapToGlobal(coord))
754 """ 756 """
755 Protected slot to handle the open popup menu entry. 757 Protected slot to handle the open popup menu entry.
756 """ 758 """
757 itmList = self.getSelectedItems( 759 itmList = self.getSelectedItems(
758 [BrowserFileItem, BrowserClassItem, BrowserMethodItem, 760 [BrowserFileItem, BrowserClassItem, BrowserMethodItem,
759 BrowserClassAttributeItem]) 761 BrowserClassAttributeItem, BrowserImportItem])
760 762
761 for itm in itmList: 763 for itm in itmList:
762 if isinstance(itm, BrowserFileItem): 764 if isinstance(itm, BrowserFileItem):
763 if itm.isPython2File(): 765 if itm.isPython2File():
764 self.sourceFile[str].emit(itm.fileName()) 766 self.sourceFile[str].emit(itm.fileName())
779 self.sourceFile[str, int].emit( 781 self.sourceFile[str, int].emit(
780 itm.fileName(), itm.functionObject().lineno) 782 itm.fileName(), itm.functionObject().lineno)
781 elif isinstance(itm, BrowserClassAttributeItem): 783 elif isinstance(itm, BrowserClassAttributeItem):
782 self.sourceFile[str, int].emit( 784 self.sourceFile[str, int].emit(
783 itm.fileName(), itm.attributeObject().lineno) 785 itm.fileName(), itm.attributeObject().lineno)
786 elif isinstance(itm, BrowserImportItem):
787 self.sourceFile[str, int].emit(
788 itm.fileName(), itm.lineno())
784 789
785 def __addNewPackage(self): 790 def __addNewPackage(self):
786 """ 791 """
787 Private method to add a new package to the project. 792 Private method to add a new package to the project.
788 """ 793 """

eric ide

mercurial