summaryrefslogtreecommitdiffstats
path: root/pokemodr/models/GlobalScriptGroupModel.cpp
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2008-05-26 17:48:19 +0000
committerBen Boeckel <MathStuf@gmail.com>2008-05-26 17:48:19 +0000
commitc4a3724a2b981e8dbc20f5d319a80bf364f2c7b7 (patch)
tree4887d64b9941ce8460ba6adb8d96569835af24ae /pokemodr/models/GlobalScriptGroupModel.cpp
parent9200ed0568719fc3ffbf9c1f2fd07a667097b875 (diff)
downloadsigen-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.cpp27
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)