summaryrefslogtreecommitdiffstats
path: root/pokemodr/models/DialogModel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pokemodr/models/DialogModel.cpp')
-rw-r--r--pokemodr/models/DialogModel.cpp22
1 files changed, 3 insertions, 19 deletions
diff --git a/pokemodr/models/DialogModel.cpp b/pokemodr/models/DialogModel.cpp
index 304ccff9..e2d7eb3a 100644
--- a/pokemodr/models/DialogModel.cpp
+++ b/pokemodr/models/DialogModel.cpp
@@ -55,34 +55,18 @@ bool DialogModel::setData(const QVariant& value, int role)
{
if (role == Qt::UserRole)
{
- if (value.canConvert<void*>())
- {
- *static_cast<Dialog*>(m_object) = *static_cast<Dialog*>(value.value<void*>());
- return true;
- }
- else if (value.canConvert<QString>())
+ if (value.canConvert<QString>())
{
QFile file(value.toString());
QDomDocument xml;
- if (file.open(QIODevice::ReadOnly))
- {
- if (xml.setContent(&file))
- {
- if (xml.doctype().name() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- }
- file.close();
- }
- else if (xml.setContent(value.toString()))
+ if ((file.open(QIODevice::ReadOnly) && xml.setContent(&file)) || xml.setContent(value.toString()))
{
if (xml.doctype().name() == m_object->className())
{
m_object->load(xml.documentElement());
return true;
}
+ file.close();
}
}
}