eric6/Project/ProjectBrowserModel.py

changeset 8259
2bbec88047dd
parent 8243
cc717c2ae956
child 8273
698ae46f40a4
equal deleted inserted replaced
8258:82b608e352ec 8259:2bbec88047dd
343 """ 343 """
344 self._addWatchedItem(parentItem) 344 self._addWatchedItem(parentItem)
345 345
346 qdir = QDir(parentItem.dirName()) 346 qdir = QDir(parentItem.dirName())
347 347
348 if Preferences.getProject("BrowsersListHiddenFiles"): 348 fileFilter = (
349 fileFilter = QDir.Filters( 349 QDir.Filters(
350 QDir.Filter.AllEntries | 350 QDir.Filter.AllEntries |
351 QDir.Filter.Hidden | 351 QDir.Filter.Hidden |
352 QDir.Filter.NoDotAndDotDot 352 QDir.Filter.NoDotAndDotDot
353 ) 353 )
354 else: 354 if Preferences.getProject("BrowsersListHiddenFiles") else
355 fileFilter = QDir.Filters( 355 QDir.Filters(QDir.Filter.AllEntries | QDir.Filter.NoDotAndDotDot)
356 QDir.Filter.AllEntries | QDir.Filter.NoDotAndDotDot) 356 )
357 entryInfoList = qdir.entryInfoList(fileFilter) 357 entryInfoList = qdir.entryInfoList(fileFilter)
358 358
359 if len(entryInfoList) > 0: 359 if len(entryInfoList) > 0:
360 if repopulate: 360 if repopulate:
361 self.beginInsertRows(self.createIndex( 361 self.beginInsertRows(self.createIndex(
369 dname = parentItem.dirName() 369 dname = parentItem.dirName()
370 self.project.vcs.clearStatusCache() 370 self.project.vcs.clearStatusCache()
371 states = self.project.vcs.vcsAllRegisteredStates(states, dname) 371 states = self.project.vcs.vcsAllRegisteredStates(states, dname)
372 372
373 for f in entryInfoList: 373 for f in entryInfoList:
374 if f.isDir(): 374 node = (
375 node = ProjectBrowserDirectoryItem( 375 ProjectBrowserDirectoryItem(
376 parentItem, 376 parentItem,
377 Utilities.toNativeSeparators(f.absoluteFilePath()), 377 Utilities.toNativeSeparators(f.absoluteFilePath()),
378 parentItem.getProjectTypes()[0], False) 378 parentItem.getProjectTypes()[0], False)
379 else: 379 if f.isDir() else
380 node = ProjectBrowserFileItem( 380 ProjectBrowserFileItem(
381 parentItem, 381 parentItem,
382 Utilities.toNativeSeparators(f.absoluteFilePath()), 382 Utilities.toNativeSeparators(f.absoluteFilePath()),
383 parentItem.getProjectTypes()[0]) 383 parentItem.getProjectTypes()[0])
384 )
384 if self.project.vcs is not None: 385 if self.project.vcs is not None:
385 fname = f.absoluteFilePath() 386 fname = f.absoluteFilePath()
386 if ( 387 if (
387 states[os.path.normcase(fname)] == 388 states[os.path.normcase(fname)] ==
388 self.project.vcs.canBeCommitted 389 self.project.vcs.canBeCommitted
446 447
447 for fn in self.project.pdata[key]: 448 for fn in self.project.pdata[key]:
448 fname = os.path.join(self.project.ppath, fn) 449 fname = os.path.join(self.project.ppath, fn)
449 parentItem, dt = self.findParentItemByName( 450 parentItem, dt = self.findParentItemByName(
450 self.projectBrowserTypes[key], fn) 451 self.projectBrowserTypes[key], fn)
451 if os.path.isdir(fname): 452 itm = (
452 itm = ProjectBrowserDirectoryItem( 453 ProjectBrowserDirectoryItem(
453 parentItem, fname, self.projectBrowserTypes[key], 454 parentItem, fname, self.projectBrowserTypes[key],
454 False, bold) 455 False, bold)
455 else: 456 if os.path.isdir(fname) else
456 itm = ProjectBrowserFileItem( 457 ProjectBrowserFileItem(
457 parentItem, fname, self.projectBrowserTypes[key], 458 parentItem, fname, self.projectBrowserTypes[key],
458 False, bold, sourceLanguage=sourceLanguage) 459 False, bold, sourceLanguage=sourceLanguage)
460 )
459 self._addItem(itm, parentItem) 461 self._addItem(itm, parentItem)
460 if self.project.vcs is not None: 462 if self.project.vcs is not None:
461 if ( 463 if (
462 states[os.path.normcase(fname)] == 464 states[os.path.normcase(fname)] ==
463 self.project.vcs.canBeCommitted 465 self.project.vcs.canBeCommitted
550 bold = typeString == "OTHERS" 552 bold = typeString == "OTHERS"
551 553
552 fname = os.path.join(self.project.ppath, name) 554 fname = os.path.join(self.project.ppath, name)
553 parentItem, dt = self.findParentItemByName( 555 parentItem, dt = self.findParentItemByName(
554 self.projectBrowserTypes[typeString], name) 556 self.projectBrowserTypes[typeString], name)
555 if parentItem == self.rootItem: 557 parentIndex = (
556 parentIndex = QModelIndex() 558 QModelIndex()
557 else: 559 if parentItem == self.rootItem else
558 parentIndex = self.createIndex(parentItem.row(), 0, parentItem) 560 self.createIndex(parentItem.row(), 0, parentItem)
561 )
559 if os.path.isdir(fname): 562 if os.path.isdir(fname):
560 itm = ProjectBrowserDirectoryItem( 563 itm = ProjectBrowserDirectoryItem(
561 parentItem, fname, self.projectBrowserTypes[typeString], 564 parentItem, fname, self.projectBrowserTypes[typeString],
562 False, bold) 565 False, bold)
563 else: 566 else:
684 687
685 if path not in self.watchedItems: 688 if path not in self.watchedItems:
686 # just ignore the situation we don't have a reference to the item 689 # just ignore the situation we don't have a reference to the item
687 return 690 return
688 691
689 if Preferences.getProject("BrowsersListHiddenFiles"): 692 fileFilter = (
690 fileFilter = QDir.Filters( 693 QDir.Filters(
691 QDir.Filter.AllEntries | 694 QDir.Filter.AllEntries |
692 QDir.Filter.Hidden | 695 QDir.Filter.Hidden |
693 QDir.Filter.NoDotAndDotDot 696 QDir.Filter.NoDotAndDotDot
694 ) 697 )
695 else: 698 if Preferences.getProject("BrowsersListHiddenFiles") else
696 fileFilter = QDir.Filters( 699 QDir.Filters(QDir.Filter.AllEntries | QDir.Filter.NoDotAndDotDot)
697 QDir.Filter.AllEntries | QDir.Filter.NoDotAndDotDot) 700 )
698 701
699 for itm in self.watchedItems[path]: 702 for itm in self.watchedItems[path]:
700 oldCnt = itm.childCount() 703 oldCnt = itm.childCount()
701 704
702 qdir = QDir(itm.dirName()) 705 qdir = QDir(itm.dirName())
717 continue 720 continue
718 721
719 cnt = itm.childCount() 722 cnt = itm.childCount()
720 self.beginInsertRows( 723 self.beginInsertRows(
721 self.createIndex(itm.row(), 0, itm), cnt, cnt) 724 self.createIndex(itm.row(), 0, itm), cnt, cnt)
722 if f.isDir(): 725 node = (
723 node = ProjectBrowserDirectoryItem( 726 ProjectBrowserDirectoryItem(
724 itm, 727 itm,
725 Utilities.toNativeSeparators(f.absoluteFilePath()), 728 Utilities.toNativeSeparators(f.absoluteFilePath()),
726 itm.getProjectTypes()[0], 729 itm.getProjectTypes()[0],
727 False) 730 False)
728 else: 731 if f.isDir() else
729 node = ProjectBrowserFileItem( 732 ProjectBrowserFileItem(
730 itm, 733 itm,
731 Utilities.toNativeSeparators(f.absoluteFilePath()), 734 Utilities.toNativeSeparators(f.absoluteFilePath()),
732 itm.getProjectTypes()[0]) 735 itm.getProjectTypes()[0])
736 )
733 self._addItem(node, itm) 737 self._addItem(node, itm)
734 if self.project.vcs is not None: 738 if self.project.vcs is not None:
735 self.project.vcs.clearStatusCache() 739 self.project.vcs.clearStatusCache()
736 state = self.project.vcs.vcsRegisteredState(node.name()) 740 state = self.project.vcs.vcsRegisteredState(node.name())
737 if state == self.project.vcs.canBeCommitted: 741 if state == self.project.vcs.canBeCommitted:
819 823
820 @param name file or directory name of the item (string). 824 @param name file or directory name of the item (string).
821 """ 825 """
822 fname = os.path.basename(name) 826 fname = os.path.basename(name)
823 parentItem = self.findParentItemByName(0, name)[0] 827 parentItem = self.findParentItemByName(0, name)[0]
824 if parentItem == self.rootItem: 828 parentIndex = (
825 parentIndex = QModelIndex() 829 QModelIndex()
826 else: 830 if parentItem == self.rootItem else
827 parentIndex = self.createIndex(parentItem.row(), 0, parentItem) 831 self.createIndex(parentItem.row(), 0, parentItem)
832 )
828 childItem = self.findChildItem(fname, 0, parentItem) 833 childItem = self.findChildItem(fname, 0, parentItem)
829 if childItem is not None: 834 if childItem is not None:
830 self.beginRemoveRows(parentIndex, childItem.row(), childItem.row()) 835 self.beginRemoveRows(parentIndex, childItem.row(), childItem.row())
831 parentItem.removeChild(childItem) 836 parentItem.removeChild(childItem)
832 self.endRemoveRows() 837 self.endRemoveRows()

eric ide

mercurial