From c4a3724a2b981e8dbc20f5d319a80bf364f2c7b7 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Mon, 26 May 2008 17:48:19 +0000 Subject: [FIX] GroupModels will now add an item to itself if pasted to [FIX] Actions are now correctly done git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@177 6ecfd1a5-f3ed-3746-8530-beee90d26b22 --- pokemodr/models/GlobalScriptGroupModel.cpp | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'pokemodr/models/GlobalScriptGroupModel.cpp') diff --git a/pokemodr/models/GlobalScriptGroupModel.cpp b/pokemodr/models/GlobalScriptGroupModel.cpp index c2ad6258..f17c6c29 100644 --- a/pokemodr/models/GlobalScriptGroupModel.cpp +++ b/pokemodr/models/GlobalScriptGroupModel.cpp @@ -25,6 +25,9 @@ #include "../../pokemod/GlobalScript.h" #include "../../pokemod/Pokemod.h" +// Qt includes +#include + // KDE includes #include @@ -44,12 +47,34 @@ QVariant GlobalScriptGroupModel::data(const int role) const if (role == BaseModel::ContextMenuRole) { KMenu* menu = new KMenu; - menu->addAction("Add GlobalScript", this, SLOT(addObject())); + menu->addAction("Add Global Script", this, SLOT(addObject())); return QVariant::fromValue(static_cast(menu)); } return GroupModel::data(role); } +bool GlobalScriptGroupModel::setData(const QVariant& value, int role) +{ + if (role == BaseModel::XmlRole) + { + if (value.canConvert()) + { + QFile file(value.toString()); + QDomDocument xml; + if ((file.open(QIODevice::ReadOnly) && xml.setContent(&file)) || xml.setContent(value.toString())) + { + if (xml.doctype().name() == "GlobalScript") + { + addObject(static_cast(m_object)->newGlobalScript(xml.documentElement())); + return true; + } + file.close(); + } + } + } + return false; +} + void GlobalScriptGroupModel::addObject(Object* object) { if (!object) -- cgit