340 @param repopulate flag indicating a repopulation |
340 @param repopulate flag indicating a repopulation |
341 @type bool |
341 @type bool |
342 """ |
342 """ |
343 self._addWatchedItem(parentItem) |
343 self._addWatchedItem(parentItem) |
344 |
344 |
345 qdir = QDir(parentItem.dirName()) |
345 dirName = parentItem.dirName() |
346 |
346 if FileSystemUtilities.isPlainFileName(dirName): |
347 fileFilter = ( |
347 qdir = QDir(parentItem.dirName()) |
348 (QDir.Filter.AllEntries | QDir.Filter.Hidden | QDir.Filter.NoDotAndDotDot) |
348 |
349 if Preferences.getProject("BrowsersListHiddenFiles") |
349 fileFilter = ( |
350 else QDir.Filter.AllEntries | QDir.Filter.NoDotAndDotDot |
350 ( |
351 ) |
351 QDir.Filter.AllEntries |
352 entryInfoList = qdir.entryInfoList(fileFilter) |
352 | QDir.Filter.Hidden |
353 |
353 | QDir.Filter.NoDotAndDotDot |
354 if len(entryInfoList) > 0: |
|
355 if repopulate: |
|
356 self.beginInsertRows( |
|
357 self.createIndex(parentItem.row(), 0, parentItem), |
|
358 0, |
|
359 len(entryInfoList) - 1, |
|
360 ) |
354 ) |
361 states = {} |
355 if Preferences.getProject("BrowsersListHiddenFiles") |
362 if self.project.vcs is not None: |
356 else QDir.Filter.AllEntries | QDir.Filter.NoDotAndDotDot |
|
357 ) |
|
358 entryInfoList = qdir.entryInfoList(fileFilter) |
|
359 |
|
360 if len(entryInfoList) > 0: |
|
361 if repopulate: |
|
362 self.beginInsertRows( |
|
363 self.createIndex(parentItem.row(), 0, parentItem), |
|
364 0, |
|
365 len(entryInfoList) - 1, |
|
366 ) |
|
367 states = {} |
|
368 if self.project.vcs is not None: |
|
369 for f in entryInfoList: |
|
370 fname = f.absoluteFilePath() |
|
371 states[os.path.normcase(fname)] = 0 |
|
372 dname = parentItem.dirName() |
|
373 self.project.vcs.clearStatusCache() |
|
374 states = self.project.vcs.vcsAllRegisteredStates(states, dname) |
|
375 |
363 for f in entryInfoList: |
376 for f in entryInfoList: |
364 fname = f.absoluteFilePath() |
377 node = ( |
365 states[os.path.normcase(fname)] = 0 |
378 ProjectBrowserDirectoryItem( |
366 dname = parentItem.dirName() |
379 parentItem, |
367 self.project.vcs.clearStatusCache() |
380 FileSystemUtilities.toNativeSeparators( |
368 states = self.project.vcs.vcsAllRegisteredStates(states, dname) |
381 f.absoluteFilePath() |
369 |
382 ), |
370 for f in entryInfoList: |
383 parentItem.getProjectTypes()[0], |
371 node = ( |
384 False, |
372 ProjectBrowserDirectoryItem( |
385 fsInterface=self.__remotefsInterface, |
373 parentItem, |
386 ) |
374 FileSystemUtilities.toNativeSeparators(f.absoluteFilePath()), |
387 if f.isDir() |
375 parentItem.getProjectTypes()[0], |
388 else ProjectBrowserFileItem( |
376 False, |
389 parentItem, |
377 fsInterface=self.__remotefsInterface, |
390 FileSystemUtilities.toNativeSeparators( |
|
391 f.absoluteFilePath() |
|
392 ), |
|
393 parentItem.getProjectTypes()[0], |
|
394 fsInterface=self.__remotefsInterface, |
|
395 ) |
378 ) |
396 ) |
379 if f.isDir() |
397 if self.project.vcs is not None: |
380 else ProjectBrowserFileItem( |
398 fname = f.absoluteFilePath() |
381 parentItem, |
399 if ( |
382 FileSystemUtilities.toNativeSeparators(f.absoluteFilePath()), |
400 states[os.path.normcase(fname)] |
383 parentItem.getProjectTypes()[0], |
401 == VersionControlState.Controlled |
384 fsInterface=self.__remotefsInterface, |
402 ): |
|
403 node.addVcsStatus(self.project.vcs.vcsName()) |
|
404 self.project.clearStatusMonitorCachedState( |
|
405 f.absoluteFilePath() |
|
406 ) |
|
407 else: |
|
408 node.addVcsStatus(self.tr("local")) |
|
409 else: |
|
410 node.addVcsStatus("") |
|
411 self._addItem(node, parentItem) |
|
412 if repopulate: |
|
413 self.endInsertRows() |
|
414 |
|
415 elif FileSystemUtilities.isRemoteFileName(dirName): |
|
416 entriesList = self.__remotefsInterface.listdir(dirName)[2] |
|
417 if len(entriesList) > 0: |
|
418 if repopulate: |
|
419 self.beginInsertRows( |
|
420 self.createIndex(parentItem.row(), 0, parentItem), |
|
421 0, |
|
422 len(entryInfoList) - 1, |
385 ) |
423 ) |
386 ) |
424 for entry in entriesList: |
387 if self.project.vcs is not None: |
425 node = ( |
388 fname = f.absoluteFilePath() |
426 ProjectBrowserDirectoryItem( |
389 if ( |
427 parentItem, |
390 states[os.path.normcase(fname)] |
428 entry["path"], |
391 == VersionControlState.Controlled |
429 parentItem.getProjectTypes()[0], |
392 ): |
430 False, |
393 node.addVcsStatus(self.project.vcs.vcsName()) |
431 fsInterface=self.__remotefsInterface, |
394 self.project.clearStatusMonitorCachedState(f.absoluteFilePath()) |
432 ) |
395 else: |
433 if entry["is_dir"] |
396 node.addVcsStatus(self.tr("local")) |
434 else ProjectBrowserFileItem( |
397 else: |
435 parentItem, |
|
436 entry["path"], |
|
437 parentItem.getProjectTypes()[0], |
|
438 fsInterface=self.__remotefsInterface, |
|
439 ) |
|
440 ) |
398 node.addVcsStatus("") |
441 node.addVcsStatus("") |
399 self._addItem(node, parentItem) |
442 self._addItem(node, parentItem) |
400 if repopulate: |
443 if repopulate: |
401 self.endInsertRows() |
444 self.endInsertRows() |
402 |
445 |
403 def projectClosed(self): |
446 def projectClosed(self): |
404 """ |
447 """ |
405 Public method called after a project has been closed. |
448 Public method called after a project has been closed. |
406 """ |
449 """ |