170 row >= self.rowCount(parent) or |
170 row >= self.rowCount(parent) or |
171 column >= self.columnCount(parent) |
171 column >= self.columnCount(parent) |
172 ): |
172 ): |
173 return QModelIndex() |
173 return QModelIndex() |
174 |
174 |
175 if not parent.isValid(): |
175 parentItem = ( |
176 parentItem = self.rootItem |
176 parent.internalPointer() |
177 else: |
177 if parent.isValid() else |
178 parentItem = parent.internalPointer() |
178 self.rootItem |
|
179 ) |
179 |
180 |
180 try: |
181 try: |
181 if not parentItem.isPopulated(): |
182 if not parentItem.isPopulated(): |
182 self.populateItem(parentItem) |
183 self.populateItem(parentItem) |
183 childItem = parentItem.child(row) |
184 childItem = parentItem.child(row) |
344 continue |
345 continue |
345 |
346 |
346 cnt = itm.childCount() |
347 cnt = itm.childCount() |
347 self.beginInsertRows( |
348 self.beginInsertRows( |
348 self.createIndex(itm.row(), 0, itm), cnt, cnt) |
349 self.createIndex(itm.row(), 0, itm), cnt, cnt) |
349 if f.isDir(): |
350 node = ( |
350 node = BrowserDirectoryItem( |
351 BrowserDirectoryItem( |
351 itm, |
352 itm, |
352 Utilities.toNativeSeparators(f.absoluteFilePath()), |
353 Utilities.toNativeSeparators(f.absoluteFilePath()), |
353 False) |
354 False) |
354 else: |
355 if f.isDir() else |
355 node = BrowserFileItem( |
356 BrowserFileItem( |
356 itm, |
357 itm, |
357 Utilities.toNativeSeparators(f.absoluteFilePath())) |
358 Utilities.toNativeSeparators(f.absoluteFilePath())) |
|
359 ) |
358 self._addItem(node, itm) |
360 self._addItem(node, itm) |
359 self.endInsertRows() |
361 self.endInsertRows() |
360 |
362 |
361 # step 2: check for removed entries |
363 # step 2: check for removed entries |
362 if len(entryInfoList) != itm.childCount(): |
364 if len(entryInfoList) != itm.childCount(): |
508 @param parent index of parent item (QModelIndex) |
510 @param parent index of parent item (QModelIndex) |
509 """ |
511 """ |
510 if parent is None: |
512 if parent is None: |
511 parent = QModelIndex() |
513 parent = QModelIndex() |
512 |
514 |
513 if not parent.isValid(): |
515 parentItem = ( |
514 parentItem = self.rootItem |
516 parent.internalPointer() |
515 else: |
517 if parent.isValid() else |
516 parentItem = parent.internalPointer() |
518 self.rootItem |
|
519 ) |
517 |
520 |
518 cnt = parentItem.childCount() |
521 cnt = parentItem.childCount() |
519 self.beginInsertRows(parent, cnt, cnt) |
522 self.beginInsertRows(parent, cnt, cnt) |
520 self._addItem(itm, parentItem) |
523 self._addItem(itm, parentItem) |
521 self.endInsertRows() |
524 self.endInsertRows() |
602 if repopulate: |
605 if repopulate: |
603 self.beginInsertRows( |
606 self.beginInsertRows( |
604 self.createIndex(parentItem.row(), 0, parentItem), |
607 self.createIndex(parentItem.row(), 0, parentItem), |
605 0, len(syspath) - 1) |
608 0, len(syspath) - 1) |
606 for p in syspath: |
609 for p in syspath: |
607 if os.path.isdir(p): |
610 node = ( |
608 node = BrowserDirectoryItem(parentItem, p) |
611 BrowserDirectoryItem(parentItem, p) |
609 else: |
612 if os.path.isdir(p) else |
610 node = BrowserFileItem(parentItem, p) |
613 BrowserFileItem(parentItem, p) |
|
614 ) |
611 self._addItem(node, parentItem) |
615 self._addItem(node, parentItem) |
612 if repopulate: |
616 if repopulate: |
613 self.endInsertRows() |
617 self.endInsertRows() |
614 else: |
618 else: |
615 proc.kill() |
619 proc.kill() |