Есть разные программные модули - у каждых своя модель...
Есть один синглтон-принтер - внутри которого LimeReport::ReportEngine*;
У этого принтера есть вот такой вот метод
void create_report(QAbstractItemModel* data, QString report_templte)
{
if(data && !report_templte.isEmpty())
{
const QString REPORT_MODEL_NAME = "table_model";
if(m_report->dataManager()->containsDatasource(REPORT_MODEL_NAME))
m_report->dataManager()->removeModel(REPORT_MODEL_NAME);
m_report->dataManager()->addModel(REPORT_MODEL_NAME, data, true);
if(!m_report->loadFromFile(report_templte))
{
qDebug() << "Wrong report template";
return;
}
int debug_mode = 0; // TODO we need to get it from global settings object
if(debug_mode)
{
//m_report->setShowProgressDialog(false);
m_report->designReport();
}
else m_report->previewReport();
}
else
{
if(!data) qDebug() << "Wrong data: nullptr";
if(report_templte.isEmpty()) qDebug() << "Wrong report template: path is empty";
}
}
Печатаю отчет из одного модуля - все ок!
Печатаю из другого - удаляю старую модель
if(m_report->dataManager()->containsDatasource(REPORT_MODEL_NAME))
m_report->dataManager()->removeModel(REPORT_MODEL_NAME);
далее устанавливаю новую - падает
m_report->dataManager()->addModel(REPORT_MODEL_NAME, data, true);
Баг или я что то не то делаю?
Версия LM master с github от вчерашнего дня)