Здравствуйте. Нужен хелп.
Есть 2 SQL таблицы.
leafs( leaf_id int primary key auto_increment, name text )
sizes( size_id int primary key auto_increment, leaf_id int, name )
соответственно sizes.size_id = leaf_id
Сделал свою модель. В моделе храню две QSqlTableModel - одна для leafs, другая для sizes
В своей моделе сделал иерархию. Корень записи из leafs, ветка 1-го уровня - записи из sizes.
Для показа/редиктирования модели сделал два виджета QTableView.
Один показывает leafs, другой sizes. Когда выбираю строку из leafs, генерится сигнал currentRowChanged(QModelIndex current,QModelIndex previous). В нем я делаю m_sizesModel->setRootIndex(current);
Все работает, записи добавляются и в ту и другую таблицы, данные изменяются корректно.
Когда доходит дело до удаления записей начинается лажа.
согласно документации для удаления записей я должен переопределить метод removeRows( int row, int count, QModelIndex parent)
в нем я должен вызвать метод beginRemoveRows() прежде чем удалять данные и endRemoveRows() после того как данные удалены.
В метод приходят корректные аргументы (т.е. валидный индекс, номер строки и кол-во)
при вызове метода beginRemoveRows(parent,row,row+count-1) прога намертво виснет!
даже не знаю в чем беда!