diff options
| author | Ben Boeckel <MathStuf@gmail.com> | 2008-05-26 17:48:19 +0000 |
|---|---|---|
| committer | Ben Boeckel <MathStuf@gmail.com> | 2008-05-26 17:48:19 +0000 |
| commit | c4a3724a2b981e8dbc20f5d319a80bf364f2c7b7 (patch) | |
| tree | 4887d64b9941ce8460ba6adb8d96569835af24ae /pokemodr/models/GlobalScriptGroupModel.cpp | |
| parent | 9200ed0568719fc3ffbf9c1f2fd07a667097b875 (diff) | |
| download | sigen-c4a3724a2b981e8dbc20f5d319a80bf364f2c7b7.tar.gz sigen-c4a3724a2b981e8dbc20f5d319a80bf364f2c7b7.tar.xz sigen-c4a3724a2b981e8dbc20f5d319a80bf364f2c7b7.zip | |
[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
Diffstat (limited to 'pokemodr/models/GlobalScriptGroupModel.cpp')
| -rw-r--r-- | pokemodr/models/GlobalScriptGroupModel.cpp | 27 |
1 files changed, 26 insertions, 1 deletions
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 <QFile> + // KDE includes #include <KMenu> @@ -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<void*>(menu)); } return GroupModel::data(role); } +bool GlobalScriptGroupModel::setData(const QVariant& value, int role) +{ + if (role == BaseModel::XmlRole) + { + if (value.canConvert<QString>()) + { + 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<Pokemod*>(m_object)->newGlobalScript(xml.documentElement())); + return true; + } + file.close(); + } + } + } + return false; +} + void GlobalScriptGroupModel::addObject(Object* object) { if (!object) |
