QVariant FoldersModel::data(const QModelIndex &index, int role) const { Folder * item = qobject_cast<Folder *>(get(index.row())); if (!item) return QVariant(); switch (role) { case Id: return item->id(); break; case Name: return item->name(); break; case AdditionalData: return QVariant::fromValue(item->additionalData()); break; case FilesModel: return QVariant::fromValue(item->filesModel()); break; } return QVariant(); }