From b5e31868dc0d4d5094752ab2dba127311434e66f Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Tue, 16 Sep 2008 06:36:17 +0000 Subject: [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 --- sigmodr/models/ObjectModel.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'sigmodr/models/ObjectModel.cpp') diff --git a/sigmodr/models/ObjectModel.cpp b/sigmodr/models/ObjectModel.cpp index 198f4aba..89c704f3 100644 --- a/sigmodr/models/ObjectModel.cpp +++ b/sigmodr/models/ObjectModel.cpp @@ -18,6 +18,12 @@ // Header include #include "ObjectModel.h" +// Sigmod includes +#include "../../sigmod/Object.h" + +// Qt includes +#include + Sigmodr::ObjectModel::ObjectModel(BaseModel* parent, Sigmod::Object* object) : BaseObjectModel(parent, object) { @@ -37,6 +43,24 @@ QVariant Sigmodr::ObjectModel::data(int role) const return Sigmodr::BaseObjectModel::data(role); } +bool Sigmodr::ObjectModel::setData(const QVariant& value, int role) +{ + if (role == Sigmodr::BaseModel::XmlRole) + { + QString data = value.toString(); + if (!data.isEmpty()) + { + QDomDocument xml; + if (loadFromData(data, &xml) && (xml.doctype().name() == m_object->className())) + { + m_object->load(xml.documentElement()); + return true; + } + } + } + return false; +} + Sigmodr::BaseModel* Sigmodr::ObjectModel::childItem(const int /*row*/) { return NULL; -- cgit