Russian Qt Forum
Ноябрь 22, 2024, 21:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QFileSystemModel и полное сканирование папок  (Прочитано 2405 раз)
dmsovetov
Гость
« : Декабрь 15, 2015, 13:49 »

Добрый день.
Хотелось бы узнать, как можно заставить QFileSystemModel просканировать все папки начиная от корневого индекса модели.
Я пробовал дергать fetchMore, когда получаю сигнал directoryLoaded, но после этого там что-то ломается - перемещение файла просто валится на асерте внутри модели.

Вот так я пробовал сканировать:
Код:
void AssetsModel::directoryLoaded( const QString& path )
{
QModelIndex idx = index( path );

for( s32 i = 0, n = rowCount( idx ); i < n; i++ ) {
QModelIndex child = index( i, 0, idx );

if( canFetchMore( child ) ) {
fetchMode( child );
}
}
}

P.S. да, знаю что там специально сделано, чтоб грузилось по требованию, но у меня специфическая задача Строит глазки
Записан
dmsovetov
Гость
« Ответ #1 : Декабрь 16, 2015, 14:13 »

Кажется понял. Надо вот так цикл поменять:
Код:
for( int i = 0; i < rowCount( parent ); i++ ) {
    QModelIndex child = index( i, 0, parent );

    // --- canFetchMore возвращает true для файлов и из-за этого
    // --- все рушится, на скан надо отдавать только папки
    if( !fileInfo( child ).isDir() ) {
        continue;
    }

    if( canFetchMore( child ) ) {
        fetchMore( child );
    }
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.094 секунд. Запросов: 21.