summaryrefslogtreecommitdiffstats
path: root/sigmodr/models/MapModel.cpp
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2008-09-16 06:36:17 +0000
committerBen Boeckel <MathStuf@gmail.com>2008-09-16 06:36:17 +0000
commitb5e31868dc0d4d5094752ab2dba127311434e66f (patch)
tree9ffa57312ec216426059ec16d011865e4c1af72f /sigmodr/models/MapModel.cpp
parent0f0dbfb0395810c1c205a1dc10cf1f226669fd00 (diff)
downloadsigen-b5e31868dc0d4d5094752ab2dba127311434e66f.tar.gz
sigen-b5e31868dc0d4d5094752ab2dba127311434e66f.tar.xz
sigen-b5e31868dc0d4d5094752ab2dba127311434e66f.zip
[FIX] Refactored out some code to ObjectModel
[FIX] Drag and drop now accepts URLs [FIX] The main window can now accept drops git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@265 6ecfd1a5-f3ed-3746-8530-beee90d26b22
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();
}
}
}