fix segfault at loadError from message with attached file
This commit is contained in:
committed by
James Graham
parent
7848274ba1
commit
27e8970fff
@@ -439,6 +439,7 @@ QList<MessageComponent> MessageContentModel::componentsForType(MessageComponentT
|
|||||||
const auto event = eventCast<const Quotient::RoomMessageEvent>(m_event);
|
const auto event = eventCast<const Quotient::RoomMessageEvent>(m_event);
|
||||||
auto body = EventHandler::rawMessageBody(*event);
|
auto body = EventHandler::rawMessageBody(*event);
|
||||||
components += TextHandler().textComponents(body, EventHandler::messageBodyInputFormat(*event), m_room, event, event->isReplaced());
|
components += TextHandler().textComponents(body, EventHandler::messageBodyInputFormat(*event), m_room, event, event->isReplaced());
|
||||||
|
|
||||||
if (m_emptyItinerary) {
|
if (m_emptyItinerary) {
|
||||||
auto fileTransferInfo = fileInfo();
|
auto fileTransferInfo = fileInfo();
|
||||||
|
|
||||||
@@ -449,8 +450,8 @@ QList<MessageComponent> MessageContentModel::componentsForType(MessageComponentT
|
|||||||
QFile file(fileTransferInfo.localPath.path());
|
QFile file(fileTransferInfo.localPath.path());
|
||||||
file.open(QIODevice::ReadOnly);
|
file.open(QIODevice::ReadOnly);
|
||||||
components += MessageComponent{MessageComponentType::Code,
|
components += MessageComponent{MessageComponentType::Code,
|
||||||
QString::fromStdString(file.readAll().toStdString()),
|
QString::fromStdString(file.readAll().toStdString()),
|
||||||
{{QStringLiteral("class"), definitionForFile.name()}}};
|
{{QStringLiteral("class"), definitionForFile.name()}}};
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -458,11 +459,13 @@ QList<MessageComponent> MessageContentModel::componentsForType(MessageComponentT
|
|||||||
QImageReader reader(fileTransferInfo.localPath.path());
|
QImageReader reader(fileTransferInfo.localPath.path());
|
||||||
components += MessageComponent{MessageComponentType::Pdf, QString(), {{QStringLiteral("size"), reader.size()}}};
|
components += MessageComponent{MessageComponentType::Pdf, QString(), {{QStringLiteral("size"), reader.size()}}};
|
||||||
}
|
}
|
||||||
|
} else if (m_itineraryModel != nullptr) {
|
||||||
|
components += MessageComponent{MessageComponentType::Itinerary, QString(), {}};
|
||||||
|
if (m_itineraryModel->rowCount() > 0) {
|
||||||
|
updateItineraryModel();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
updateItineraryModel();
|
updateItineraryModel();
|
||||||
if (m_itineraryModel != nullptr) {
|
|
||||||
components += MessageComponent{MessageComponentType::Itinerary, QString(), {}};
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return components;
|
return components;
|
||||||
}
|
}
|
||||||
@@ -558,16 +561,16 @@ void MessageContentModel::updateItineraryModel()
|
|||||||
m_itineraryModel = new ItineraryModel(this);
|
m_itineraryModel = new ItineraryModel(this);
|
||||||
connect(m_itineraryModel, &ItineraryModel::loaded, this, [this]() {
|
connect(m_itineraryModel, &ItineraryModel::loaded, this, [this]() {
|
||||||
if (m_itineraryModel->rowCount() == 0) {
|
if (m_itineraryModel->rowCount() == 0) {
|
||||||
|
m_emptyItinerary = true;
|
||||||
m_itineraryModel->deleteLater();
|
m_itineraryModel->deleteLater();
|
||||||
m_itineraryModel = nullptr;
|
m_itineraryModel = nullptr;
|
||||||
m_emptyItinerary = true;
|
|
||||||
resetContent();
|
resetContent();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
connect(m_itineraryModel, &ItineraryModel::loadErrorOccurred, this, [this]() {
|
connect(m_itineraryModel, &ItineraryModel::loadErrorOccurred, this, [this]() {
|
||||||
|
m_emptyItinerary = true;
|
||||||
m_itineraryModel->deleteLater();
|
m_itineraryModel->deleteLater();
|
||||||
m_itineraryModel = nullptr;
|
m_itineraryModel = nullptr;
|
||||||
m_emptyItinerary = true;
|
|
||||||
resetContent();
|
resetContent();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user