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 """ |