Здравствуйте, господа форумчаны. Столкнулся на днях с одной небольшой проблемой.
Я пишу окно для копирования файлов с флешки на жесткий диск, а также удаление файлов с диска.
Для отображения дерева каталогов использую QFileSystemModel. Создаю его в конструкторе своего окна:
model = new QFileSystemModel();
model->setHeaderData(0, Qt::Horizontal, tr("Имя"), Qt::DisplayRole);
model->setHeaderData(1, Qt::Horizontal, tr("Размер"), Qt::DisplayRole);
model->setHeaderData(2, Qt::Horizontal, tr("Тип"), Qt::DisplayRole);
model->setHeaderData(3, Qt::Horizontal, tr("Дата изменения"), Qt::DisplayRole);
Далее при каждом подсоединении флешки, подгружаю данную модель в QTreeView.
Также указываю какой каталог будет корневым.
treeView->setModel(model);
treeView->setRootIndex(model->setRootPath(root_usb));
При извлечении флешки, делаю следующее:
treeView->setModel(NULL);
Заметил одну вещь. Если открыть мое окно, вставить флешку - то отображается дерево каталогов флешки.
Далее, если не закрывая окно, извлечь флешку - то дерево как и задумано уже не отображается.
Но если же потом снова вставить уже другую флешку - то отображается дерево каталогов предыдущей
флешки, а не вставленной на данный момент.
Понимаю что нужно как-то обновить содержимое каталога флешки в QFileSystemModel.
Но как это сделать пока не нашел.
Может, кто знает как?
Каждый раз создавать экземпляр QFileSystemModel при подсоединении флешки, и удалять его при ее
извлечении не хотелось бы. Пока что у меня вот только так и получается избавится от данной проблемы.