Не хочет компилироваться следующий метод:
// Преобразование таблицы конечных записей в Dom документ
QDomElement RecordTableData::exportDataToDom(QDomDocument *doc) const
{
// Если у ветки нет таблицы конечных записей, возвращается пустой документ
if(tableData.size()==0)
return QDomElement();
QDomElement recordTableDomData=doc->createElement("recordtable");
// Пробегаются все записи в таблице
for(int i=0; i<tableData.size(); i++)
recordTableDomData.appendChild( tableData.at(i).exportDataToDom( doc ) ); // К элементу recordtabledata прикрепляются конечные записи
// qDebug() << "In export_modeldata_to_dom() recordtabledata " << doc.toString();
return recordTableDomData;
}
Ошибка выглядит так:
src\models\recordTable\RecordTableData.cpp: In member function 'QDomElement RecordTableData::exportDataToDom(QDomDocument*) const':
src\models\recordTable\RecordTableData.cpp:308:74: error: passing 'const Record' as 'this' argument of 'QDomElement Record::exportDataToDom(QDomDocument*)' discards qualifiers [-fpermissive]
recordTableDomData.appendChild( tableData.at(i).exportDataToDom( doc ) ); // К элементу recordtabledata прикрепляются конечные записи
Не пойму чего хочет компилер. Сначала думал, что проблема в том, что метод константный, и вызывает неконстантный метод
tableData.at(i).exportDataToDom( doc )
Но потом понял, что вызываемый неконстантный метод - это метод другого класса, так что он влиять не может.
И так же убирание const из определения вышеприведенного метода проблему не решает.
Вопрос: как заставить компилироваться код?
Исходники: https://github.com/xintrea/mytetra_dev/commits/experimental
Коммит: 3c674e61423616ae3ca8e4191c09cfaed945a8ef