UI/BrowserModel.py

changeset 5604
b047181a4a33
parent 5587
ea526b78ee6c
child 5624
cdd346d8858b
equal deleted inserted replaced
5603:4f2dd0850803 5604:b047181a4a33
298 if path not in self.watchedItems: 298 if path not in self.watchedItems:
299 # just ignore the situation we don't have a reference to the item 299 # just ignore the situation we don't have a reference to the item
300 return 300 return
301 301
302 if Preferences.getUI("BrowsersListHiddenFiles"): 302 if Preferences.getUI("BrowsersListHiddenFiles"):
303 filter = QDir.Filters( 303 dirFilter = QDir.Filters(
304 QDir.AllEntries | QDir.Hidden | QDir.NoDotAndDotDot) 304 QDir.AllEntries | QDir.Hidden | QDir.NoDotAndDotDot)
305 else: 305 else:
306 filter = QDir.Filters(QDir.AllEntries | QDir.NoDot | QDir.NoDotDot) 306 dirFilter = QDir.Filters(
307 QDir.AllEntries | QDir.NoDot | QDir.NoDotDot)
307 308
308 for itm in self.watchedItems[path]: 309 for itm in self.watchedItems[path]:
309 oldCnt = itm.childCount() 310 oldCnt = itm.childCount()
310 311
311 qdir = QDir(itm.dirName()) 312 qdir = QDir(itm.dirName())
312 313
313 entryInfoList = qdir.entryInfoList(filter) 314 entryInfoList = qdir.entryInfoList(dirFilter)
314 315
315 # step 1: check for new entries 316 # step 1: check for new entries
316 children = itm.children() 317 children = itm.children()
317 for f in entryInfoList: 318 for f in entryInfoList:
318 fpath = Utilities.toNativeSeparators(f.absoluteFilePath()) 319 fpath = Utilities.toNativeSeparators(f.absoluteFilePath())
529 self._addWatchedItem(parentItem) 530 self._addWatchedItem(parentItem)
530 531
531 qdir = QDir(parentItem.dirName()) 532 qdir = QDir(parentItem.dirName())
532 533
533 if Preferences.getUI("BrowsersListHiddenFiles"): 534 if Preferences.getUI("BrowsersListHiddenFiles"):
534 filter = QDir.Filters( 535 dirFilter = QDir.Filters(
535 QDir.AllEntries | QDir.Hidden | QDir.NoDotAndDotDot) 536 QDir.AllEntries | QDir.Hidden | QDir.NoDotAndDotDot)
536 else: 537 else:
537 filter = QDir.Filters(QDir.AllEntries | QDir.NoDot | QDir.NoDotDot) 538 dirFilter = QDir.Filters(
538 entryInfoList = qdir.entryInfoList(filter) 539 QDir.AllEntries | QDir.NoDot | QDir.NoDotDot)
540 entryInfoList = qdir.entryInfoList(dirFilter)
539 if len(entryInfoList) > 0: 541 if len(entryInfoList) > 0:
540 if repopulate: 542 if repopulate:
541 self.beginInsertRows( 543 self.beginInsertRows(
542 self.createIndex(parentItem.row(), 0, parentItem), 544 self.createIndex(parentItem.row(), 0, parentItem),
543 0, len(entryInfoList) - 1) 545 0, len(entryInfoList) - 1)
550 else: 552 else:
551 fileFilters = \ 553 fileFilters = \
552 Preferences.getUI("BrowsersFileFilters").split(";") 554 Preferences.getUI("BrowsersFileFilters").split(";")
553 if fileFilters: 555 if fileFilters:
554 fn = f.fileName() 556 fn = f.fileName()
555 if any([fnmatch.fnmatch(fn, ff.strip()) 557 if any(fnmatch.fnmatch(fn, ff.strip())
556 for ff in fileFilters]): 558 for ff in fileFilters):
557 continue 559 continue
558 node = BrowserFileItem( 560 node = BrowserFileItem(
559 parentItem, 561 parentItem,
560 Utilities.toNativeSeparators(f.absoluteFilePath())) 562 Utilities.toNativeSeparators(f.absoluteFilePath()))
561 self._addItem(node, parentItem) 563 self._addItem(node, parentItem)
604 """ 606 """
605 import Utilities.ClassBrowsers 607 import Utilities.ClassBrowsers
606 moduleName = parentItem.moduleName() 608 moduleName = parentItem.moduleName()
607 fileName = parentItem.fileName() 609 fileName = parentItem.fileName()
608 try: 610 try:
609 dict = Utilities.ClassBrowsers.readmodule( 611 dictionary = Utilities.ClassBrowsers.readmodule(
610 moduleName, [parentItem.dirName()], 612 moduleName, [parentItem.dirName()],
611 parentItem.isPython2File() or parentItem.isPython3File()) 613 parentItem.isPython2File() or parentItem.isPython3File())
612 except ImportError: 614 except ImportError:
613 return 615 return
614 616
615 keys = list(dict.keys()) 617 keys = list(dictionary.keys())
616 if len(keys) > 0: 618 if len(keys) > 0:
617 if repopulate: 619 if repopulate:
618 self.beginInsertRows( 620 self.beginInsertRows(
619 self.createIndex(parentItem.row(), 0, parentItem), 621 self.createIndex(parentItem.row(), 0, parentItem),
620 0, len(keys) - 1) 622 0, len(keys) - 1)
621 for key in keys: 623 for key in keys:
622 if key.startswith("@@"): 624 if key.startswith("@@"):
623 # special treatment done later 625 # special treatment done later
624 continue 626 continue
625 cl = dict[key] 627 cl = dictionary[key]
626 try: 628 try:
627 if cl.module == moduleName: 629 if cl.module == moduleName:
628 node = BrowserClassItem(parentItem, cl, fileName) 630 node = BrowserClassItem(parentItem, cl, fileName)
629 self._addItem(node, parentItem) 631 self._addItem(node, parentItem)
630 except AttributeError: 632 except AttributeError:
631 pass 633 pass
632 if "@@Coding@@" in keys: 634 if "@@Coding@@" in keys:
633 node = BrowserCodingItem( 635 node = BrowserCodingItem(
634 parentItem, 636 parentItem,
635 QCoreApplication.translate("BrowserModel", "Coding: {0}") 637 QCoreApplication.translate("BrowserModel", "Coding: {0}")
636 .format(dict["@@Coding@@"].coding)) 638 .format(dictionary["@@Coding@@"].coding))
637 self._addItem(node, parentItem) 639 self._addItem(node, parentItem)
638 if "@@Globals@@" in keys: 640 if "@@Globals@@" in keys:
639 node = BrowserGlobalsItem( 641 node = BrowserGlobalsItem(
640 parentItem, 642 parentItem,
641 dict["@@Globals@@"].globals, 643 dictionary["@@Globals@@"].globals,
642 QCoreApplication.translate("BrowserModel", "Globals")) 644 QCoreApplication.translate("BrowserModel", "Globals"))
643 self._addItem(node, parentItem) 645 self._addItem(node, parentItem)
644 if "@@Import@@" in keys or "@@ImportFrom@@" in keys: 646 if "@@Import@@" in keys or "@@ImportFrom@@" in keys:
645 node = BrowserImportsItem( 647 node = BrowserImportsItem(
646 parentItem, 648 parentItem,
647 QCoreApplication.translate("BrowserModel", "Imports")) 649 QCoreApplication.translate("BrowserModel", "Imports"))
648 self._addItem(node, parentItem) 650 self._addItem(node, parentItem)
649 if "@@Import@@" in keys: 651 if "@@Import@@" in keys:
650 for importedModule in \ 652 for importedModule in \
651 dict["@@Import@@"].getImports().values(): 653 dictionary["@@Import@@"].getImports().values():
652 m_node = BrowserImportItem( 654 m_node = BrowserImportItem(
653 node, 655 node,
654 importedModule.importedModuleName, 656 importedModule.importedModuleName,
655 importedModule.file, 657 importedModule.file,
656 importedModule.linenos) 658 importedModule.linenos)

eric ide

mercurial