eric6/UI/Browser.py

changeset 7264
bedbe458d792
parent 7229
53054eb5b15a
child 7360
9190402e4505
equal deleted inserted replaced
7263:c1af2e327675 7264:bedbe458d792
8 """ 8 """
9 9
10 10
11 import os 11 import os
12 12
13 from PyQt5.QtCore import QModelIndex, pyqtSignal, QUrl, Qt, QCoreApplication, \ 13 from PyQt5.QtCore import (
14 QItemSelectionModel, QElapsedTimer 14 QModelIndex, pyqtSignal, QUrl, Qt, QCoreApplication, QItemSelectionModel,
15 QElapsedTimer
16 )
15 from PyQt5.QtGui import QDesktopServices 17 from PyQt5.QtGui import QDesktopServices
16 from PyQt5.QtWidgets import QTreeView, QApplication, QMenu, QAbstractItemView 18 from PyQt5.QtWidgets import QTreeView, QApplication, QMenu, QAbstractItemView
17 19
18 from E5Gui.E5Application import e5App 20 from E5Gui.E5Application import e5App
19 from E5Gui import E5FileDialog, E5MessageBox 21 from E5Gui import E5FileDialog, E5MessageBox
20 22
21 from Project.ProjectBrowserModel import ProjectBrowserSimpleDirectoryItem 23 from Project.ProjectBrowserModel import ProjectBrowserSimpleDirectoryItem
22 from .BrowserModel import BrowserModel, BrowserDirectoryItem, \ 24 from .BrowserModel import (
23 BrowserFileItem, BrowserClassItem, BrowserMethodItem, \ 25 BrowserModel, BrowserDirectoryItem, BrowserFileItem, BrowserClassItem,
24 BrowserClassAttributeItem, BrowserImportItem, BrowserImportsItem, \ 26 BrowserMethodItem, BrowserClassAttributeItem, BrowserImportItem,
25 BrowserSysPathItem, BrowserGlobalsItem 27 BrowserImportsItem, BrowserSysPathItem, BrowserGlobalsItem
28 )
26 from .BrowserSortFilterProxyModel import BrowserSortFilterProxyModel 29 from .BrowserSortFilterProxyModel import BrowserSortFilterProxyModel
27 30
28 import UI.PixmapCache 31 import UI.PixmapCache
29 import Preferences 32 import Preferences
30 import Utilities 33 import Utilities
341 self.unittestAct.setEnabled(False) 344 self.unittestAct.setEnabled(False)
342 self.sourceMenu.popup(coord) 345 self.sourceMenu.popup(coord)
343 else: 346 else:
344 self.editPixmapAct.setVisible(itm.isPixmapFile()) 347 self.editPixmapAct.setVisible(itm.isPixmapFile())
345 self.menu.popup(coord) 348 self.menu.popup(coord)
346 elif isinstance(itm, BrowserClassItem) or \ 349 elif isinstance(
347 isinstance(itm, BrowserMethodItem) or \ 350 itm,
348 isinstance(itm, BrowserImportItem): 351 (BrowserClassItem, BrowserMethodItem, BrowserImportItem)
352 ):
349 self.editPixmapAct.setVisible(False) 353 self.editPixmapAct.setVisible(False)
350 self.menu.popup(coord) 354 self.menu.popup(coord)
351 elif isinstance(itm, BrowserClassAttributeItem): 355 elif isinstance(itm, BrowserClassAttributeItem):
352 self.attributeMenu.popup(coord) 356 self.attributeMenu.popup(coord)
353 elif isinstance(itm, BrowserDirectoryItem): 357 elif isinstance(itm, BrowserDirectoryItem):
603 Private slot to handle the Find in directory popup menu entry. 607 Private slot to handle the Find in directory popup menu entry.
604 """ 608 """
605 index = self.currentIndex() 609 index = self.currentIndex()
606 searchDir = self.model().item(index).dirName() 610 searchDir = self.model().item(index).dirName()
607 611
608 e5App().getObject("UserInterface")\ 612 e5App().getObject("UserInterface").showFindFilesDialog(
609 .showFindFilesDialog(searchDir=searchDir) 613 searchDir=searchDir)
610 614
611 def __replaceInDirectory(self): 615 def __replaceInDirectory(self):
612 """ 616 """
613 Private slot to handle the Find&Replace in directory popup menu entry. 617 Private slot to handle the Find&Replace in directory popup menu entry.
614 """ 618 """
615 index = self.currentIndex() 619 index = self.currentIndex()
616 searchDir = self.model().item(index).dirName() 620 searchDir = self.model().item(index).dirName()
617 621
618 e5App().getObject("UserInterface")\ 622 e5App().getObject("UserInterface").showReplaceFilesDialog(
619 .showReplaceFilesDialog(searchDir=searchDir) 623 searchDir=searchDir)
620 624
621 def handleProgramChange(self, fn): 625 def handleProgramChange(self, fn):
622 """ 626 """
623 Public slot to handle the programChange signal. 627 Public slot to handle the programChange signal.
624 628
732 else: 736 else:
733 startIndex = self.model().index(0, 0) 737 startIndex = self.model().index(0, 0)
734 738
735 keyboardSearchTimeWasValid = self._keyboardSearchTimer.isValid() 739 keyboardSearchTimeWasValid = self._keyboardSearchTimer.isValid()
736 keyboardSearchTimeElapsed = self._keyboardSearchTimer.restart() 740 keyboardSearchTimeElapsed = self._keyboardSearchTimer.restart()
737 if not search or not keyboardSearchTimeWasValid or \ 741 if (
738 keyboardSearchTimeElapsed > \ 742 not search or
739 QApplication.keyboardInputInterval(): 743 not keyboardSearchTimeWasValid or
744 keyboardSearchTimeElapsed >
745 QApplication.keyboardInputInterval()
746 ):
740 self._keyboardSearchString = search.lower() 747 self._keyboardSearchString = search.lower()
741 else: 748 else:
742 self._keyboardSearchString += search.lower() 749 self._keyboardSearchString += search.lower()
743 750
744 index = startIndex 751 index = startIndex
745 found = False 752 found = False
746 while True: 753 while True:
747 name = self.model().data(index) 754 name = self.model().data(index)
748 if name.lower().startswith(self._keyboardSearchString) and \ 755 if (
749 self._keyboardSearchType(self.model().item(index)): 756 name.lower().startswith(self._keyboardSearchString) and
757 self._keyboardSearchType(self.model().item(index))
758 ):
750 found = True 759 found = True
751 break 760 break
752 761
753 index = self.indexBelow(index) 762 index = self.indexBelow(index)
754 if not index.isValid(): 763 if not index.isValid():

eric ide

mercurial