Здравстуйте. Столкнулся со следующей проблемой. Есть класс модели FilePlacesModel, потомок от QAbstractItemModel. Есть класс FilePlacesItem, в котором реализованы элементы, отображаемые в дереве. Интерфейс класса элемента дерева:
class FilePlacesItem : public QObject
{
    Q_OBJECT
public:
    FilePlacesItem(KBookmarkManager *manager,
                    const QString &address,
                    const QString &udi = QString(),
		    FilePlacesItem *parent = 0);
    ~FilePlacesItem();
    
  void appendChild(KFilePlacesItem *child);
     FilePlacesItem *child(int row);
     int childCount() const;
     int row() const;
     FilePlacesItem *parent();
     QList<FilePlacesItem*> childItems; // ветвь дерева
}
То есть, каждая ветвь дерева хранится в виде списка элементов FilePlacesItem.
У класса модели есть метод, который читает данные об элементах дерева с диска, заполняет дерево и  возвращает указатель заполненное дерево:
FilePlacesItem *FilePlacesModel::loadItemList()
При вызове данного метода отдаю ему в качестве указателя на корневой элемент дерева указатель FilePlacesItem *currentItem.
После вызова этого метода получаю указатель на заполненное дерево.
 Далее стоит задача отобразить дерево на экране. В связи с тем что дерево содержит всего два уровня, пытаюсь сделать это так:
Дерево пытаюсь построить следующим образом: (rootItem - корневой элемент дерева, которое будет отображаться при помощи модели представления)
    for(int i=0; i < currentItems->childCount(); i++) // Проходим все ветки первого уровня, currentItems - указатель 
    {
        q->beginInsertRows(QModelIndex(), i, i);
        rootItem->appendChild(currentItems->child(i));
        q->endInsertRows();
	
	for(int j=0; j<currentItems->child(i)->childCount(); j++)
	{
	    qDebug("_k_createFolders(): create places, row = %d", j);
	    q->beginInsertRows(q->index(i, 0, QModelIndex()), j, j);
             // Насколько я понимаю в связи с тем что все элементы второго уровня дерево с корневым элементом rootItem получило 
              // ранее при добавлении в него элементов первого уровня, здесь можно никаких операций не производить
	    q->endInsertRows();
	}
     }
Для отображения модели используется класс - потомок от QTreeView.
При этом строится только первый уровень дерева, то есть элементы - потомки корня. Второй уровень не отображается. Кто может подсказать где я накосячил? С QT только начинаю разбираться, поэтому прошу указать на все совершенные ошибки и, по возможности, сильно не бить.