Есть листвью. В нем root-итемы (заголовки категорий). По названию каждого root-итема делаю запрос к базе данных, и все результаты запроса добавляю к этому root-итему как child итемы.
Т.е. список категорий и в каждой категории свой список товаров.
QListViewItemIterator it( categoryView );
while ( it.current() ) {
// it.current() - это root итем, к которому добавляю child'ов
bool parity = TRUE;
strCat = it.current()->text(0); // текст root'a - название категории товаров.
query.prepare("SELECT code, product, outprice, count FROM `table1` WHERE category = '" +strCat+ "' ORDER BY product");
query.exec();
lastItem = 0;
// пока есть товары в категории, добавляю результаты запроса как child итемы к root'у.
while ( query.next() ) {
item = new ListItem( (ListItem*)it.current(), lastItem, parity );
item->setText( 1, query.value(0).toString() );
item->setText( 2, query.value(1).toString() );
parity = !parity;
lastItem = item;
}
//item = new ListItem( (ListItem*)it.current(), lastItem, TRUE );
//item->setText( 1, " " );
++it;
}
Всё хорошо, список категорий и список товаров в каждой категории формируется, как и задумано.
Теперь для того, чтобы визуально отделить одну категорию товаров от другой, решил в конце каждой категории (группы child'ов) вставить пустой итем как разделитель.
Это те две строки, которые закомментированы. Вроде всё правильно, после добавления всех результатов запроса к текущему root'у (it.current()) добавляю пустой child.
Однако при этом цикл while ( it.current() ) превращается в бесконечный. Программа не выходит из этого цикла.
При этом указатель it.current() все время разный (нарастает).
Почему?