summaryrefslogtreecommitdiffstats
path: root/sigmodr/models/MapModel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sigmodr/models/MapModel.cpp')
-rw-r--r--sigmodr/models/MapModel.cpp18
1 files changed, 5 insertions, 13 deletions
diff --git a/sigmodr/models/MapModel.cpp b/sigmodr/models/MapModel.cpp
index 326e388b..fc8883a9 100644
--- a/sigmodr/models/MapModel.cpp
+++ b/sigmodr/models/MapModel.cpp
@@ -33,9 +33,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::MapModel::MapModel(BaseModel* parent, Sigmod::Map* map) :
GroupObjectModel(parent, map)
{
@@ -75,11 +72,11 @@ bool Sigmodr::MapModel::setData(const QVariant& value, int role)
{
if (role == Sigmodr::BaseModel::XmlRole)
{
- if (value.canConvert<QString>())
+ QString data = value.toString();
+ if (!data.isEmpty())
{
- QFile file(value.toString());
QDomDocument xml;
- if ((file.open(QIODevice::ReadOnly) && xml.setContent(&file)) || xml.setContent(value.toString()))
+ if (loadFromData(data, &xml))
{
if (xml.doctype().name() == m_object->className())
{
@@ -91,14 +88,9 @@ bool Sigmodr::MapModel::setData(const QVariant& value, int role)
foreach (BaseModel* model, m_objects)
{
GroupModel* group = qobject_cast<GroupModel*>(model);
- if (group)
- {
- const bool used = group->setData(value, role);
- if (used)
- return true;
- }
+ if (group && group->setData(value, role))
+ return true;
}
- file.close();
}
}
}