summaryrefslogtreecommitdiffstats
path: root/sigmodr/models/SigmodModel.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/SigmodModel.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/SigmodModel.cpp')
-rw-r--r--sigmodr/models/SigmodModel.cpp18
1 files changed, 5 insertions, 13 deletions
diff --git a/sigmodr/models/SigmodModel.cpp b/sigmodr/models/SigmodModel.cpp
index 7c96cb2b..d8f1e444 100644
--- a/sigmodr/models/SigmodModel.cpp
+++ b/sigmodr/models/SigmodModel.cpp
@@ -52,9 +52,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::SigmodModel::SigmodModel(BaseModel* parent, Sigmod::Sigmod* sigmod) :
GroupObjectModel(parent, sigmod)
{
@@ -93,11 +90,11 @@ bool Sigmodr::SigmodModel::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())
{
@@ -109,14 +106,9 @@ bool Sigmodr::SigmodModel::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();
}
}
}