summaryrefslogtreecommitdiffstats
path: root/sigmodr/models
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
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')
-rw-r--r--sigmodr/models/AbilityGroupModel.cpp17
-rw-r--r--sigmodr/models/AbilityModel.cpp25
-rw-r--r--sigmodr/models/AbilityModel.h2
-rw-r--r--sigmodr/models/AuthorGroupModel.cpp17
-rw-r--r--sigmodr/models/AuthorModel.cpp25
-rw-r--r--sigmodr/models/AuthorModel.h2
-rw-r--r--sigmodr/models/BadgeGroupModel.cpp17
-rw-r--r--sigmodr/models/BadgeModel.cpp25
-rw-r--r--sigmodr/models/BadgeModel.h2
-rw-r--r--sigmodr/models/BaseModel.cpp56
-rw-r--r--sigmodr/models/BaseModel.h4
-rw-r--r--sigmodr/models/CoinListGroupModel.cpp17
-rw-r--r--sigmodr/models/CoinListModel.cpp10
-rw-r--r--sigmodr/models/CoinListObjectModel.cpp25
-rw-r--r--sigmodr/models/CoinListObjectModel.h2
-rw-r--r--sigmodr/models/EggGroupGroupModel.cpp17
-rw-r--r--sigmodr/models/EggGroupModel.cpp25
-rw-r--r--sigmodr/models/EggGroupModel.h2
-rw-r--r--sigmodr/models/GlobalScriptGroupModel.cpp17
-rw-r--r--sigmodr/models/GlobalScriptModel.cpp25
-rw-r--r--sigmodr/models/GlobalScriptModel.h2
-rw-r--r--sigmodr/models/ItemGroupModel.cpp17
-rw-r--r--sigmodr/models/ItemModel.cpp25
-rw-r--r--sigmodr/models/ItemModel.h2
-rw-r--r--sigmodr/models/ItemTypeGroupModel.cpp17
-rw-r--r--sigmodr/models/ItemTypeModel.cpp25
-rw-r--r--sigmodr/models/ItemTypeModel.h2
-rw-r--r--sigmodr/models/MapEffectGroupModel.cpp17
-rw-r--r--sigmodr/models/MapEffectModel.cpp25
-rw-r--r--sigmodr/models/MapEffectModel.h2
-rw-r--r--sigmodr/models/MapGroupModel.cpp17
-rw-r--r--sigmodr/models/MapModel.cpp18
-rw-r--r--sigmodr/models/MapTrainerGroupModel.cpp17
-rw-r--r--sigmodr/models/MapTrainerModel.cpp60
-rw-r--r--sigmodr/models/MapTrainerTeamMemberModel.cpp25
-rw-r--r--sigmodr/models/MapTrainerTeamMemberModel.h2
-rw-r--r--sigmodr/models/MapWarpGroupModel.cpp17
-rw-r--r--sigmodr/models/MapWarpModel.cpp25
-rw-r--r--sigmodr/models/MapWarpModel.h2
-rw-r--r--sigmodr/models/MapWildListEncounterModel.cpp25
-rw-r--r--sigmodr/models/MapWildListEncounterModel.h2
-rw-r--r--sigmodr/models/MapWildListGroupModel.cpp17
-rw-r--r--sigmodr/models/MapWildListModel.cpp10
-rw-r--r--sigmodr/models/MoveGroupModel.cpp17
-rw-r--r--sigmodr/models/MoveModel.cpp25
-rw-r--r--sigmodr/models/MoveModel.h2
-rw-r--r--sigmodr/models/NatureGroupModel.cpp17
-rw-r--r--sigmodr/models/NatureModel.cpp25
-rw-r--r--sigmodr/models/NatureModel.h2
-rw-r--r--sigmodr/models/ObjectModel.cpp24
-rw-r--r--sigmodr/models/ObjectModel.h2
-rw-r--r--sigmodr/models/RootModel.cpp3
-rw-r--r--sigmodr/models/RulesModel.cpp25
-rw-r--r--sigmodr/models/RulesModel.h2
-rw-r--r--sigmodr/models/SigmodModel.cpp18
-rw-r--r--sigmodr/models/SkinGroupModel.cpp17
-rw-r--r--sigmodr/models/SkinModel.cpp25
-rw-r--r--sigmodr/models/SkinModel.h2
-rw-r--r--sigmodr/models/SoundGroupModel.cpp17
-rw-r--r--sigmodr/models/SoundModel.cpp25
-rw-r--r--sigmodr/models/SoundModel.h2
-rw-r--r--sigmodr/models/SpeciesAbilityGroupModel.cpp17
-rw-r--r--sigmodr/models/SpeciesAbilityModel.cpp25
-rw-r--r--sigmodr/models/SpeciesAbilityModel.h2
-rw-r--r--sigmodr/models/SpeciesGroupModel.cpp17
-rw-r--r--sigmodr/models/SpeciesItemGroupModel.cpp17
-rw-r--r--sigmodr/models/SpeciesItemModel.cpp25
-rw-r--r--sigmodr/models/SpeciesItemModel.h2
-rw-r--r--sigmodr/models/SpeciesModel.cpp18
-rw-r--r--sigmodr/models/SpeciesMoveGroupModel.cpp17
-rw-r--r--sigmodr/models/SpeciesMoveModel.cpp25
-rw-r--r--sigmodr/models/SpeciesMoveModel.h2
-rw-r--r--sigmodr/models/SpriteGroupModel.cpp17
-rw-r--r--sigmodr/models/SpriteModel.cpp25
-rw-r--r--sigmodr/models/SpriteModel.h2
-rw-r--r--sigmodr/models/StatusGroupModel.cpp17
-rw-r--r--sigmodr/models/StatusModel.cpp25
-rw-r--r--sigmodr/models/StatusModel.h2
-rw-r--r--sigmodr/models/StoreGroupModel.cpp17
-rw-r--r--sigmodr/models/StoreModel.cpp25
-rw-r--r--sigmodr/models/StoreModel.h2
-rw-r--r--sigmodr/models/TileGroupModel.cpp17
-rw-r--r--sigmodr/models/TileModel.cpp25
-rw-r--r--sigmodr/models/TileModel.h2
-rw-r--r--sigmodr/models/TimeGroupModel.cpp17
-rw-r--r--sigmodr/models/TimeModel.cpp25
-rw-r--r--sigmodr/models/TimeModel.h2
-rw-r--r--sigmodr/models/TrainerGroupModel.cpp17
-rw-r--r--sigmodr/models/TrainerModel.cpp25
-rw-r--r--sigmodr/models/TrainerModel.h2
-rw-r--r--sigmodr/models/TypeGroupModel.cpp17
-rw-r--r--sigmodr/models/TypeModel.cpp25
-rw-r--r--sigmodr/models/TypeModel.h2
-rw-r--r--sigmodr/models/WeatherGroupModel.cpp17
-rw-r--r--sigmodr/models/WeatherModel.cpp25
-rw-r--r--sigmodr/models/WeatherModel.h2
96 files changed, 279 insertions, 1193 deletions
diff --git a/sigmodr/models/AbilityGroupModel.cpp b/sigmodr/models/AbilityGroupModel.cpp
index 86805209..742f4f7f 100644
--- a/sigmodr/models/AbilityGroupModel.cpp
+++ b/sigmodr/models/AbilityGroupModel.cpp
@@ -25,9 +25,6 @@
#include "../../sigmod/Ability.h"
#include "../../sigmod/Sigmod.h"
-// Qt includes
-#include <QtCore/QFile>
-
// KDE includes
#include <KMenu>
@@ -57,18 +54,14 @@ bool Sigmodr::AbilityGroupModel::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) && (xml.doctype().name() == "Ability"))
{
- if (xml.doctype().name() == "Ability")
- {
- addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newAbility(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newAbility(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/AbilityModel.cpp b/sigmodr/models/AbilityModel.cpp
index 135cfc58..c2de4ed4 100644
--- a/sigmodr/models/AbilityModel.cpp
+++ b/sigmodr/models/AbilityModel.cpp
@@ -30,9 +30,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::AbilityModel::AbilityModel(BaseModel* parent, Sigmod::Ability* ability) :
ObjectModel(parent, ability)
{
@@ -66,28 +63,6 @@ QVariant Sigmodr::AbilityModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::AbilityModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::AbilityModel::deleteSelf()
{
qobject_cast<GroupModel*>(m_parent)->deleteObject(this);
diff --git a/sigmodr/models/AbilityModel.h b/sigmodr/models/AbilityModel.h
index 163c111c..ef65c581 100644
--- a/sigmodr/models/AbilityModel.h
+++ b/sigmodr/models/AbilityModel.h
@@ -38,8 +38,6 @@ class AbilityModel : public ObjectModel
~AbilityModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};
diff --git a/sigmodr/models/AuthorGroupModel.cpp b/sigmodr/models/AuthorGroupModel.cpp
index b33103b9..da668e36 100644
--- a/sigmodr/models/AuthorGroupModel.cpp
+++ b/sigmodr/models/AuthorGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::AuthorGroupModel::AuthorGroupModel(BaseModel* parent, Sigmod::Sigmod* sigmod) :
GroupModel(parent, sigmod, "Authors")
{
@@ -57,18 +54,14 @@ bool Sigmodr::AuthorGroupModel::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) && (xml.doctype().name() == "Author"))
{
- if (xml.doctype().name() == "Author")
- {
- addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newAuthor(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newAuthor(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/AuthorModel.cpp b/sigmodr/models/AuthorModel.cpp
index 1441cd0c..ef910e37 100644
--- a/sigmodr/models/AuthorModel.cpp
+++ b/sigmodr/models/AuthorModel.cpp
@@ -30,9 +30,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::AuthorModel::AuthorModel(BaseModel* parent, Sigmod::Author* author) :
ObjectModel(parent, author)
{
@@ -66,28 +63,6 @@ QVariant Sigmodr::AuthorModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::AuthorModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::AuthorModel::deleteSelf()
{
qobject_cast<GroupModel*>(m_parent)->deleteObject(this);
diff --git a/sigmodr/models/AuthorModel.h b/sigmodr/models/AuthorModel.h
index 0cee7c02..bf8cf4af 100644
--- a/sigmodr/models/AuthorModel.h
+++ b/sigmodr/models/AuthorModel.h
@@ -38,8 +38,6 @@ class AuthorModel : public ObjectModel
~AuthorModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};
diff --git a/sigmodr/models/BadgeGroupModel.cpp b/sigmodr/models/BadgeGroupModel.cpp
index 86dbd8bc..40d4366c 100644
--- a/sigmodr/models/BadgeGroupModel.cpp
+++ b/sigmodr/models/BadgeGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::BadgeGroupModel::BadgeGroupModel(BaseModel* parent, Sigmod::Sigmod* sigmod) :
GroupModel(parent, sigmod, "Badges")
{
@@ -57,18 +54,14 @@ bool Sigmodr::BadgeGroupModel::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) && (xml.doctype().name() == "Badge"))
{
- if (xml.doctype().name() == "Badge")
- {
- addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newBadge(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newBadge(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/BadgeModel.cpp b/sigmodr/models/BadgeModel.cpp
index fb76bb76..632d9e71 100644
--- a/sigmodr/models/BadgeModel.cpp
+++ b/sigmodr/models/BadgeModel.cpp
@@ -30,9 +30,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::BadgeModel::BadgeModel(BaseModel* parent, Sigmod::Badge* badge) :
ObjectModel(parent, badge)
{
@@ -66,28 +63,6 @@ QVariant Sigmodr::BadgeModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::BadgeModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::BadgeModel::deleteSelf()
{
qobject_cast<GroupModel*>(m_parent)->deleteObject(this);
diff --git a/sigmodr/models/BadgeModel.h b/sigmodr/models/BadgeModel.h
index b5f5e896..fff5da79 100644
--- a/sigmodr/models/BadgeModel.h
+++ b/sigmodr/models/BadgeModel.h
@@ -38,8 +38,6 @@ class BadgeModel : public ObjectModel
~BadgeModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};
diff --git a/sigmodr/models/BaseModel.cpp b/sigmodr/models/BaseModel.cpp
index 8258fb0f..12c88711 100644
--- a/sigmodr/models/BaseModel.cpp
+++ b/sigmodr/models/BaseModel.cpp
@@ -21,6 +21,16 @@
// Sigmod includes
#include "../../sigmod/Object.h"
+// KDE includes
+#include <KApplication>
+#include <KMessageBox>
+#include <KUrl>
+#include <KIO/NetAccess>
+
+// Qt includes
+#include <QtCore/QFile>
+#include <QtXml/QDomDocument>
+
Sigmodr::BaseModel::BaseModel(BaseModel* parent, Sigmod::Object* object, const QString& name) :
m_parent(parent),
m_object(object),
@@ -63,6 +73,52 @@ const Sigmod::Object* Sigmodr::BaseModel::object() const
return m_object;
}
+bool Sigmodr::BaseModel::loadFromData(const QString& data, QDomDocument* xml) const
+{
+ bool loaded = false;
+ QString error;
+ int line;
+ int column;
+ KUrl url(data);
+ if (url.isValid())
+ {
+ QString path;
+ const bool local = url.isLocalFile();
+ if (local)
+ path = url.path();
+ else
+ {
+ if (!KIO::NetAccess::download(url, path, KApplication::kApplication()->activeWindow()))
+ {
+ KMessageBox::error(KApplication::kApplication()->activeWindow(), KIO::NetAccess::lastErrorString(), "KIO Error");
+ return false;
+ }
+ }
+ QFile file(path);
+ if (file.open(QIODevice::ReadOnly))
+ {
+ if (!xml->setContent(&file, &error, &line, &column))
+ {
+ KMessageBox::error(KApplication::kApplication()->activeWindow(), QString("%1 at line %2, column %3").arg(error).arg(line).arg(column), "XML Error");
+ loaded = false;
+ }
+ }
+ else
+ {
+ KMessageBox::error(KApplication::kApplication()->activeWindow(), file.errorString(), "File Error");
+ loaded = false;
+ }
+ file.close();
+ if (!local)
+ KIO::NetAccess::removeTempFile(path);
+ }
+ else if (xml->setContent(data, &error, &line, &column))
+ loaded = true;
+ else
+ KMessageBox::error(KApplication::kApplication()->activeWindow(), QString("%1 at line %2, column %3").arg(error).arg(line).arg(column), "XML Error");
+ return loaded;
+}
+
void Sigmodr::BaseModel::childRowChanged(const int row)
{
QList<int> indexes;
diff --git a/sigmodr/models/BaseModel.h b/sigmodr/models/BaseModel.h
index 9ca22e38..1636578c 100644
--- a/sigmodr/models/BaseModel.h
+++ b/sigmodr/models/BaseModel.h
@@ -24,6 +24,8 @@
// Forward declarations
class KMenu;
+class KUrl;
+class QDomDocument;
namespace Sigmod
{
class Object;
@@ -58,6 +60,8 @@ class BaseModel : public QObject
const Sigmod::Object* object() const;
+ bool loadFromData(const QString& data, QDomDocument* xml) const;
+
static const int TypeRole = Qt::UserRole;
static const int DropAcceptRole = Qt::UserRole + 1;
static const int XmlRole = Qt::UserRole + 2;
diff --git a/sigmodr/models/CoinListGroupModel.cpp b/sigmodr/models/CoinListGroupModel.cpp
index d989ee66..725d49ca 100644
--- a/sigmodr/models/CoinListGroupModel.cpp
+++ b/sigmodr/models/CoinListGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::CoinListGroupModel::CoinListGroupModel(BaseModel* parent, Sigmod::Sigmod* sigmod) :
GroupModel(parent, sigmod, "Coin Lists")
{
@@ -57,18 +54,14 @@ bool Sigmodr::CoinListGroupModel::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) && (xml.doctype().name() == "CoinList"))
{
- if (xml.doctype().name() == "CoinList")
- {
- addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newCoinList(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newCoinList(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/CoinListModel.cpp b/sigmodr/models/CoinListModel.cpp
index 9452e5b4..0c6264f8 100644
--- a/sigmodr/models/CoinListModel.cpp
+++ b/sigmodr/models/CoinListModel.cpp
@@ -32,9 +32,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::CoinListModel::CoinListModel(BaseModel* parent, Sigmod::CoinList* coinList) :
GroupObjectModel(parent, coinList)
{
@@ -76,11 +73,11 @@ bool Sigmodr::CoinListModel::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())
{
@@ -94,7 +91,6 @@ bool Sigmodr::CoinListModel::setData(const QVariant& value, int role)
addObject(qobject_cast<Sigmod::CoinList*>(m_object)->newObject(xml.documentElement()));
return true;
}
- file.close();
}
}
}
diff --git a/sigmodr/models/CoinListObjectModel.cpp b/sigmodr/models/CoinListObjectModel.cpp
index 028b667f..ee74e2e4 100644
--- a/sigmodr/models/CoinListObjectModel.cpp
+++ b/sigmodr/models/CoinListObjectModel.cpp
@@ -34,9 +34,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::CoinListObjectModel::CoinListObjectModel(BaseModel* parent, Sigmod::CoinListObject* object) :
ObjectModel(parent, object)
{
@@ -85,28 +82,6 @@ QVariant Sigmodr::CoinListObjectModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::CoinListObjectModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::CoinListObjectModel::deleteSelf()
{
qobject_cast<GroupObjectModel*>(m_parent)->deleteObject(this);
diff --git a/sigmodr/models/CoinListObjectModel.h b/sigmodr/models/CoinListObjectModel.h
index 5862db3a..e8a83561 100644
--- a/sigmodr/models/CoinListObjectModel.h
+++ b/sigmodr/models/CoinListObjectModel.h
@@ -38,8 +38,6 @@ class CoinListObjectModel : public ObjectModel
~CoinListObjectModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};
diff --git a/sigmodr/models/EggGroupGroupModel.cpp b/sigmodr/models/EggGroupGroupModel.cpp
index 9447d4bc..e021f3df 100644
--- a/sigmodr/models/EggGroupGroupModel.cpp
+++ b/sigmodr/models/EggGroupGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::EggGroupGroupModel::EggGroupGroupModel(BaseModel* parent, Sigmod::Sigmod* sigmod) :
GroupModel(parent, sigmod, "Egg Groups")
{
@@ -57,18 +54,14 @@ bool Sigmodr::EggGroupGroupModel::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) && (xml.doctype().name() == "EggGroup"))
{
- if (xml.doctype().name() == "EggGroup")
- {
- addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newEggGroup(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newEggGroup(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/EggGroupModel.cpp b/sigmodr/models/EggGroupModel.cpp
index cf093951..9c2b443b 100644
--- a/sigmodr/models/EggGroupModel.cpp
+++ b/sigmodr/models/EggGroupModel.cpp
@@ -30,9 +30,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::EggGroupModel::EggGroupModel(BaseModel* parent, Sigmod::EggGroup* eggGroup) :
ObjectModel(parent, eggGroup)
{
@@ -66,28 +63,6 @@ QVariant Sigmodr::EggGroupModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::EggGroupModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::EggGroupModel::deleteSelf()
{
qobject_cast<GroupModel*>(m_parent)->deleteObject(this);
diff --git a/sigmodr/models/EggGroupModel.h b/sigmodr/models/EggGroupModel.h
index 453d1fae..1295fbd9 100644
--- a/sigmodr/models/EggGroupModel.h
+++ b/sigmodr/models/EggGroupModel.h
@@ -38,8 +38,6 @@ class EggGroupModel : public ObjectModel
~EggGroupModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};
diff --git a/sigmodr/models/GlobalScriptGroupModel.cpp b/sigmodr/models/GlobalScriptGroupModel.cpp
index 83d2902d..e9651378 100644
--- a/sigmodr/models/GlobalScriptGroupModel.cpp
+++ b/sigmodr/models/GlobalScriptGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::GlobalScriptGroupModel::GlobalScriptGroupModel(BaseModel* parent, Sigmod::Sigmod* sigmod) :
GroupModel(parent, sigmod, "Global Scripts")
{
@@ -57,18 +54,14 @@ bool Sigmodr::GlobalScriptGroupModel::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) && (xml.doctype().name() == "GlobalScript"))
{
- if (xml.doctype().name() == "GlobalScript")
- {
- addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newGlobalScript(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newGlobalScript(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/GlobalScriptModel.cpp b/sigmodr/models/GlobalScriptModel.cpp
index cc6198b7..9d24f215 100644
--- a/sigmodr/models/GlobalScriptModel.cpp
+++ b/sigmodr/models/GlobalScriptModel.cpp
@@ -30,9 +30,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::GlobalScriptModel::GlobalScriptModel(BaseModel* parent, Sigmod::GlobalScript* globalScript) :
ObjectModel(parent, globalScript)
{
@@ -66,28 +63,6 @@ QVariant Sigmodr::GlobalScriptModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::GlobalScriptModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::GlobalScriptModel::deleteSelf()
{
qobject_cast<GroupModel*>(m_parent)->deleteObject(this);
diff --git a/sigmodr/models/GlobalScriptModel.h b/sigmodr/models/GlobalScriptModel.h
index 5d408e99..56436306 100644
--- a/sigmodr/models/GlobalScriptModel.h
+++ b/sigmodr/models/GlobalScriptModel.h
@@ -38,8 +38,6 @@ class GlobalScriptModel : public ObjectModel
~GlobalScriptModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};
diff --git a/sigmodr/models/ItemGroupModel.cpp b/sigmodr/models/ItemGroupModel.cpp
index e547e641..a8b0934f 100644
--- a/sigmodr/models/ItemGroupModel.cpp
+++ b/sigmodr/models/ItemGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::ItemGroupModel::ItemGroupModel(BaseModel* parent, Sigmod::Sigmod* sigmod) :
GroupModel(parent, sigmod, "Items")
{
@@ -57,18 +54,14 @@ bool Sigmodr::ItemGroupModel::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) && (xml.doctype().name() == "Item"))
{
- if (xml.doctype().name() == "Item")
- {
- addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newItem(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newItem(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/ItemModel.cpp b/sigmodr/models/ItemModel.cpp
index abc57ce2..fe1e50ee 100644
--- a/sigmodr/models/ItemModel.cpp
+++ b/sigmodr/models/ItemModel.cpp
@@ -30,9 +30,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::ItemModel::ItemModel(BaseModel* parent, Sigmod::Item* item) :
ObjectModel(parent, item)
{
@@ -66,28 +63,6 @@ QVariant Sigmodr::ItemModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::ItemModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::ItemModel::deleteSelf()
{
qobject_cast<GroupModel*>(m_parent)->deleteObject(this);
diff --git a/sigmodr/models/ItemModel.h b/sigmodr/models/ItemModel.h
index 6026b872..194b28dd 100644
--- a/sigmodr/models/ItemModel.h
+++ b/sigmodr/models/ItemModel.h
@@ -38,8 +38,6 @@ class ItemModel : public ObjectModel
~ItemModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};
diff --git a/sigmodr/models/ItemTypeGroupModel.cpp b/sigmodr/models/ItemTypeGroupModel.cpp
index d9b8a0d0..fa1dc6e5 100644
--- a/sigmodr/models/ItemTypeGroupModel.cpp
+++ b/sigmodr/models/ItemTypeGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::ItemTypeGroupModel::ItemTypeGroupModel(BaseModel* parent, Sigmod::Sigmod* sigmod) :
GroupModel(parent, sigmod, "Item Types")
{
@@ -57,18 +54,14 @@ bool Sigmodr::ItemTypeGroupModel::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) && (xml.doctype().name() == "ItemType"))
{
- if (xml.doctype().name() == "ItemType")
- {
- addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newItemType(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newItemType(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/ItemTypeModel.cpp b/sigmodr/models/ItemTypeModel.cpp
index dd041b03..b43106b6 100644
--- a/sigmodr/models/ItemTypeModel.cpp
+++ b/sigmodr/models/ItemTypeModel.cpp
@@ -30,9 +30,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::ItemTypeModel::ItemTypeModel(BaseModel* parent, Sigmod::ItemType* itemType) :
ObjectModel(parent, itemType)
{
@@ -66,28 +63,6 @@ QVariant Sigmodr::ItemTypeModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::ItemTypeModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::ItemTypeModel::deleteSelf()
{
qobject_cast<GroupModel*>(m_parent)->deleteObject(this);
diff --git a/sigmodr/models/ItemTypeModel.h b/sigmodr/models/ItemTypeModel.h
index 1fbb2919..01964f58 100644
--- a/sigmodr/models/ItemTypeModel.h
+++ b/sigmodr/models/ItemTypeModel.h
@@ -38,8 +38,6 @@ class ItemTypeModel : public ObjectModel
~ItemTypeModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};
diff --git a/sigmodr/models/MapEffectGroupModel.cpp b/sigmodr/models/MapEffectGroupModel.cpp
index b440b22f..95f69c9e 100644
--- a/sigmodr/models/MapEffectGroupModel.cpp
+++ b/sigmodr/models/MapEffectGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::MapEffectGroupModel::MapEffectGroupModel(BaseModel* parent, Sigmod::Map* map) :
GroupModel(parent, map, "Effects")
{
@@ -57,18 +54,14 @@ bool Sigmodr::MapEffectGroupModel::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) && (xml.doctype().name() == "MapEffect"))
{
- if (xml.doctype().name() == "MapEffect")
- {
- addObject(qobject_cast<Sigmod::Map*>(m_object)->newEffect(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Map*>(m_object)->newEffect(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/MapEffectModel.cpp b/sigmodr/models/MapEffectModel.cpp
index 438e6a33..187e93eb 100644
--- a/sigmodr/models/MapEffectModel.cpp
+++ b/sigmodr/models/MapEffectModel.cpp
@@ -31,9 +31,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::MapEffectModel::MapEffectModel(BaseModel* parent, Sigmod::MapEffect* effect) :
ObjectModel(parent, effect)
{
@@ -67,28 +64,6 @@ QVariant Sigmodr::MapEffectModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::MapEffectModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::MapEffectModel::deleteSelf()
{
qobject_cast<GroupModel*>(m_parent)->deleteObject(this);
diff --git a/sigmodr/models/MapEffectModel.h b/sigmodr/models/MapEffectModel.h
index 8dd172fe..b2ceb97c 100644
--- a/sigmodr/models/MapEffectModel.h
+++ b/sigmodr/models/MapEffectModel.h
@@ -38,8 +38,6 @@ class MapEffectModel : public ObjectModel
~MapEffectModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};
diff --git a/sigmodr/models/MapGroupModel.cpp b/sigmodr/models/MapGroupModel.cpp
index 12dbb647..2d122828 100644
--- a/sigmodr/models/MapGroupModel.cpp
+++ b/sigmodr/models/MapGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::MapGroupModel::MapGroupModel(BaseModel* parent, Sigmod::Sigmod* sigmod) :
GroupModel(parent, sigmod, "Maps")
{
@@ -57,18 +54,14 @@ bool Sigmodr::MapGroupModel::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) && (xml.doctype().name() == "Map"))
{
- if (xml.doctype().name() == "Map")
- {
- addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newMap(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newMap(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/MapModel.cpp b/sigmodr/models/MapModel.cpp
index 326e388b..fc8883a9 100644
--- a/sigmodr/models/MapModel.cpp
+++ b/sigmodr/models/MapModel.cpp
@@ -33,9 +33,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::MapModel::MapModel(BaseModel* parent, Sigmod::Map* map) :
GroupObjectModel(parent, map)
{
@@ -75,11 +72,11 @@ bool Sigmodr::MapModel::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())
{
@@ -91,14 +88,9 @@ bool Sigmodr::MapModel::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();
}
}
}
diff --git a/sigmodr/models/MapTrainerGroupModel.cpp b/sigmodr/models/MapTrainerGroupModel.cpp
index 117c41c9..811ca23c 100644
--- a/sigmodr/models/MapTrainerGroupModel.cpp
+++ b/sigmodr/models/MapTrainerGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::MapTrainerGroupModel::MapTrainerGroupModel(BaseModel* parent, Sigmod::Map* map) :
GroupModel(parent, map, "Trainers")
{
@@ -57,18 +54,14 @@ bool Sigmodr::MapTrainerGroupModel::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) && (xml.doctype().name() == "MapTrainer"))
{
- if (xml.doctype().name() == "MapTrainer")
- {
- addObject(qobject_cast<Sigmod::Map*>(m_object)->newTrainer(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Map*>(m_object)->newTrainer(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/MapTrainerModel.cpp b/sigmodr/models/MapTrainerModel.cpp
index afa1af91..e242aa54 100644
--- a/sigmodr/models/MapTrainerModel.cpp
+++ b/sigmodr/models/MapTrainerModel.cpp
@@ -33,9 +33,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::MapTrainerModel::MapTrainerModel(BaseModel* parent, Sigmod::MapTrainer* trainer) :
GroupObjectModel(parent, trainer)
{
@@ -73,6 +70,34 @@ QVariant Sigmodr::MapTrainerModel::data(int role) const
return Sigmodr::GroupObjectModel::data(role);
}
+bool Sigmodr::MapTrainerModel::setData(const QVariant& value, int role)
+{
+ if (role == Sigmodr::BaseModel::XmlRole)
+ {
+ QString data = value.toString();
+ if (!data.isEmpty())
+ {
+ QDomDocument xml;
+ if (loadFromData(data, &xml))
+ {
+ if (xml.doctype().name() == m_object->className())
+ {
+ clearData();
+ m_object->load(xml.documentElement());
+ setupData();
+ return true;
+ }
+ else if (xml.doctype().name() == "MapTrainerTeamMember")
+ {
+ addObject(qobject_cast<Sigmod::MapTrainer*>(m_object)->newTeamMember(xml.documentElement()));
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+}
+
QString Sigmodr::MapTrainerModel::types() const
{
return type().append(";MapTrainerTeamMember");
@@ -103,35 +128,6 @@ void Sigmodr::MapTrainerModel::deleteSelf()
qobject_cast<GroupModel*>(m_parent)->deleteObject(this);
}
-bool Sigmodr::MapTrainerModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- clearData();
- m_object->load(xml.documentElement());
- setupData();
- return true;
- }
- else if (xml.doctype().name() == "MapTrainerTeamMember")
- {
- addObject(qobject_cast<Sigmod::MapTrainer*>(m_object)->newTeamMember(xml.documentElement()));
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::MapTrainerModel::setupData()
{
Sigmod::MapTrainer* trainer = qobject_cast<Sigmod::MapTrainer*>(m_object);
diff --git a/sigmodr/models/MapTrainerTeamMemberModel.cpp b/sigmodr/models/MapTrainerTeamMemberModel.cpp
index 5f6753b3..80395d5c 100644
--- a/sigmodr/models/MapTrainerTeamMemberModel.cpp
+++ b/sigmodr/models/MapTrainerTeamMemberModel.cpp
@@ -33,9 +33,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::MapTrainerTeamMemberModel::MapTrainerTeamMemberModel(BaseModel* parent, Sigmod::MapTrainerTeamMember* teamMember) :
ObjectModel(parent, teamMember)
{
@@ -74,28 +71,6 @@ QVariant Sigmodr::MapTrainerTeamMemberModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::MapTrainerTeamMemberModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::MapTrainerTeamMemberModel::deleteSelf()
{
qobject_cast<GroupObjectModel*>(m_parent)->deleteObject(this);
diff --git a/sigmodr/models/MapTrainerTeamMemberModel.h b/sigmodr/models/MapTrainerTeamMemberModel.h
index 560b0032..695d2b48 100644
--- a/sigmodr/models/MapTrainerTeamMemberModel.h
+++ b/sigmodr/models/MapTrainerTeamMemberModel.h
@@ -38,8 +38,6 @@ class MapTrainerTeamMemberModel : public ObjectModel
~MapTrainerTeamMemberModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};
diff --git a/sigmodr/models/MapWarpGroupModel.cpp b/sigmodr/models/MapWarpGroupModel.cpp
index 1641c804..d09c3252 100644
--- a/sigmodr/models/MapWarpGroupModel.cpp
+++ b/sigmodr/models/MapWarpGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::MapWarpGroupModel::MapWarpGroupModel(BaseModel* parent, Sigmod::Map* map) :
GroupModel(parent, map, "Warps")
{
@@ -57,18 +54,14 @@ bool Sigmodr::MapWarpGroupModel::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) && (xml.doctype().name() == "MapWarp"))
{
- if (xml.doctype().name() == "MapWarp")
- {
- addObject(qobject_cast<Sigmod::Map*>(m_object)->newWarp(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Map*>(m_object)->newWarp(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/MapWarpModel.cpp b/sigmodr/models/MapWarpModel.cpp
index c01ef5bf..f61df5c0 100644
--- a/sigmodr/models/MapWarpModel.cpp
+++ b/sigmodr/models/MapWarpModel.cpp
@@ -31,9 +31,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::MapWarpModel::MapWarpModel(BaseModel* parent, Sigmod::MapWarp* warp) :
ObjectModel(parent, warp)
{
@@ -67,28 +64,6 @@ QVariant Sigmodr::MapWarpModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::MapWarpModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::MapWarpModel::deleteSelf()
{
qobject_cast<GroupModel*>(m_parent)->deleteObject(this);
diff --git a/sigmodr/models/MapWarpModel.h b/sigmodr/models/MapWarpModel.h
index cb4bbbec..ddf180ff 100644
--- a/sigmodr/models/MapWarpModel.h
+++ b/sigmodr/models/MapWarpModel.h
@@ -38,8 +38,6 @@ class MapWarpModel : public ObjectModel
~MapWarpModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};
diff --git a/sigmodr/models/MapWildListEncounterModel.cpp b/sigmodr/models/MapWildListEncounterModel.cpp
index bb8491b5..e5130c10 100644
--- a/sigmodr/models/MapWildListEncounterModel.cpp
+++ b/sigmodr/models/MapWildListEncounterModel.cpp
@@ -33,9 +33,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::MapWildListEncounterModel::MapWildListEncounterModel(BaseModel* parent, Sigmod::MapWildListEncounter* encounter) :
ObjectModel(parent, encounter)
{
@@ -74,28 +71,6 @@ QVariant Sigmodr::MapWildListEncounterModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::MapWildListEncounterModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::MapWildListEncounterModel::deleteSelf()
{
qobject_cast<GroupObjectModel*>(m_parent)->deleteObject(this);
diff --git a/sigmodr/models/MapWildListEncounterModel.h b/sigmodr/models/MapWildListEncounterModel.h
index 2fcd8a7f..06471fc6 100644
--- a/sigmodr/models/MapWildListEncounterModel.h
+++ b/sigmodr/models/MapWildListEncounterModel.h
@@ -38,8 +38,6 @@ class MapWildListEncounterModel : public ObjectModel
~MapWildListEncounterModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};
diff --git a/sigmodr/models/MapWildListGroupModel.cpp b/sigmodr/models/MapWildListGroupModel.cpp
index 6e35eb4f..907d3834 100644
--- a/sigmodr/models/MapWildListGroupModel.cpp
+++ b/sigmodr/models/MapWildListGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::MapWildListGroupModel::MapWildListGroupModel(BaseModel* parent, Sigmod::Map* map) :
GroupModel(parent, map, "Wild Lists")
{
@@ -57,18 +54,14 @@ bool Sigmodr::MapWildListGroupModel::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) && (xml.doctype().name() == "MapWildList"))
{
- if (xml.doctype().name() == "MapWildList")
- {
- addObject(qobject_cast<Sigmod::Map*>(m_object)->newWildList(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Map*>(m_object)->newWildList(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/MapWildListModel.cpp b/sigmodr/models/MapWildListModel.cpp
index 6bf86699..f798f193 100644
--- a/sigmodr/models/MapWildListModel.cpp
+++ b/sigmodr/models/MapWildListModel.cpp
@@ -33,9 +33,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::MapWildListModel::MapWildListModel(BaseModel* parent, Sigmod::MapWildList* wildList) :
GroupObjectModel(parent, wildList)
{
@@ -78,11 +75,11 @@ bool Sigmodr::MapWildListModel::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())
{
@@ -96,7 +93,6 @@ bool Sigmodr::MapWildListModel::setData(const QVariant& value, int role)
addObject(qobject_cast<Sigmod::MapWildList*>(m_object)->newEncounter(xml.documentElement()));
return true;
}
- file.close();
}
}
}
diff --git a/sigmodr/models/MoveGroupModel.cpp b/sigmodr/models/MoveGroupModel.cpp
index 19675c66..3d9e77f0 100644
--- a/sigmodr/models/MoveGroupModel.cpp
+++ b/sigmodr/models/MoveGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::MoveGroupModel::MoveGroupModel(BaseModel* parent, Sigmod::Sigmod* sigmod) :
GroupModel(parent, sigmod, "Moves")
{
@@ -57,18 +54,14 @@ bool Sigmodr::MoveGroupModel::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) && (xml.doctype().name() == "Move"))
{
- if (xml.doctype().name() == "Move")
- {
- addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newMove(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newMove(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/MoveModel.cpp b/sigmodr/models/MoveModel.cpp
index fd6eaa4e..656f9ba2 100644
--- a/sigmodr/models/MoveModel.cpp
+++ b/sigmodr/models/MoveModel.cpp
@@ -30,9 +30,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::MoveModel::MoveModel(BaseModel* parent, Sigmod::Move* move) :
ObjectModel(parent, move)
{
@@ -66,28 +63,6 @@ QVariant Sigmodr::MoveModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::MoveModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::MoveModel::deleteSelf()
{
qobject_cast<GroupModel*>(m_parent)->deleteObject(this);
diff --git a/sigmodr/models/MoveModel.h b/sigmodr/models/MoveModel.h
index cfea06ab..9d52e652 100644
--- a/sigmodr/models/MoveModel.h
+++ b/sigmodr/models/MoveModel.h
@@ -38,8 +38,6 @@ class MoveModel : public ObjectModel
~MoveModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};
diff --git a/sigmodr/models/NatureGroupModel.cpp b/sigmodr/models/NatureGroupModel.cpp
index 6a67dafa..a484ccf5 100644
--- a/sigmodr/models/NatureGroupModel.cpp
+++ b/sigmodr/models/NatureGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::NatureGroupModel::NatureGroupModel(BaseModel* parent, Sigmod::Sigmod* sigmod) :
GroupModel(parent, sigmod, "Natures")
{
@@ -57,18 +54,14 @@ bool Sigmodr::NatureGroupModel::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) && (xml.doctype().name() == "Nature"))
{
- if (xml.doctype().name() == "Nature")
- {
- addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newNature(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newNature(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/NatureModel.cpp b/sigmodr/models/NatureModel.cpp
index 4dcc2d03..04ea7870 100644
--- a/sigmodr/models/NatureModel.cpp
+++ b/sigmodr/models/NatureModel.cpp
@@ -31,9 +31,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::NatureModel::NatureModel(BaseModel* parent, Sigmod::Nature* nature) :
ObjectModel(parent, nature)
{
@@ -67,28 +64,6 @@ QVariant Sigmodr::NatureModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::NatureModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::NatureModel::deleteSelf()
{
qobject_cast<GroupModel*>(m_parent)->deleteObject(this);
diff --git a/sigmodr/models/NatureModel.h b/sigmodr/models/NatureModel.h
index 8ca70cb8..0239c082 100644
--- a/sigmodr/models/NatureModel.h
+++ b/sigmodr/models/NatureModel.h
@@ -38,8 +38,6 @@ class NatureModel : public ObjectModel
~NatureModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};
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 <QtXml/QDomDocument>
+
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;
diff --git a/sigmodr/models/ObjectModel.h b/sigmodr/models/ObjectModel.h
index cea8912c..793c29d8 100644
--- a/sigmodr/models/ObjectModel.h
+++ b/sigmodr/models/ObjectModel.h
@@ -34,7 +34,7 @@ class ObjectModel : public BaseObjectModel
virtual QVariant data(int role = Qt::DisplayRole) const = 0;
int rowCount() const;
- virtual bool setData(const QVariant& value, int role = Qt::EditRole) = 0;
+ bool setData(const QVariant& value, int role = Qt::EditRole);
BaseModel* childItem(const int /*row*/);
diff --git a/sigmodr/models/RootModel.cpp b/sigmodr/models/RootModel.cpp
index 53bc523c..7c794052 100644
--- a/sigmodr/models/RootModel.cpp
+++ b/sigmodr/models/RootModel.cpp
@@ -24,9 +24,6 @@
// Sigmod includes
#include "../../sigmod/Sigmod.h"
-// Test code includes
-#include <QtCore/QFile>
-
Sigmodr::RootModel::RootModel() :
GroupModel(NULL, NULL)
{
diff --git a/sigmodr/models/RulesModel.cpp b/sigmodr/models/RulesModel.cpp
index 39889fc0..e01acbf6 100644
--- a/sigmodr/models/RulesModel.cpp
+++ b/sigmodr/models/RulesModel.cpp
@@ -27,9 +27,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::RulesModel::RulesModel(BaseModel* parent, Sigmod::Rules* rules) :
ObjectModel(parent, rules)
{
@@ -62,28 +59,6 @@ QVariant Sigmodr::RulesModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::RulesModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::RulesModel::deleteSelf()
{
}
diff --git a/sigmodr/models/RulesModel.h b/sigmodr/models/RulesModel.h
index 7ee07084..27b79999 100644
--- a/sigmodr/models/RulesModel.h
+++ b/sigmodr/models/RulesModel.h
@@ -38,8 +38,6 @@ class RulesModel : public ObjectModel
~RulesModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};
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();
}
}
}
diff --git a/sigmodr/models/SkinGroupModel.cpp b/sigmodr/models/SkinGroupModel.cpp
index 61775e61..e35a9f20 100644
--- a/sigmodr/models/SkinGroupModel.cpp
+++ b/sigmodr/models/SkinGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::SkinGroupModel::SkinGroupModel(BaseModel* parent, Sigmod::Sigmod* sigmod) :
GroupModel(parent, sigmod, "Skins")
{
@@ -57,18 +54,14 @@ bool Sigmodr::SkinGroupModel::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) && (xml.doctype().name() == "Skin"))
{
- if (xml.doctype().name() == "Skin")
- {
- addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newSkin(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newSkin(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/SkinModel.cpp b/sigmodr/models/SkinModel.cpp
index 1a7cee17..6b15d6b2 100644
--- a/sigmodr/models/SkinModel.cpp
+++ b/sigmodr/models/SkinModel.cpp
@@ -30,9 +30,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::SkinModel::SkinModel(BaseModel* parent, Sigmod::Skin* skin) :
ObjectModel(parent, skin)
{
@@ -66,28 +63,6 @@ QVariant Sigmodr::SkinModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::SkinModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::SkinModel::deleteSelf()
{
qobject_cast<GroupModel*>(m_parent)->deleteObject(this);
diff --git a/sigmodr/models/SkinModel.h b/sigmodr/models/SkinModel.h
index 5e203f03..449ec61b 100644
--- a/sigmodr/models/SkinModel.h
+++ b/sigmodr/models/SkinModel.h
@@ -38,8 +38,6 @@ class SkinModel : public ObjectModel
~SkinModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};
diff --git a/sigmodr/models/SoundGroupModel.cpp b/sigmodr/models/SoundGroupModel.cpp
index 0adfe1c4..0ad1c3d6 100644
--- a/sigmodr/models/SoundGroupModel.cpp
+++ b/sigmodr/models/SoundGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::SoundGroupModel::SoundGroupModel(BaseModel* parent, Sigmod::Sigmod* sigmod) :
GroupModel(parent, sigmod, "Sounds")
{
@@ -57,18 +54,14 @@ bool Sigmodr::SoundGroupModel::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) && (xml.doctype().name() == "Sound"))
{
- if (xml.doctype().name() == "Sound")
- {
- addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newSound(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newSound(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/SoundModel.cpp b/sigmodr/models/SoundModel.cpp
index 4412bd35..f907513d 100644
--- a/sigmodr/models/SoundModel.cpp
+++ b/sigmodr/models/SoundModel.cpp
@@ -31,9 +31,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::SoundModel::SoundModel(BaseModel* parent, Sigmod::Sound* sound) :
ObjectModel(parent, sound)
{
@@ -67,28 +64,6 @@ QVariant Sigmodr::SoundModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::SoundModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::SoundModel::deleteSelf()
{
qobject_cast<GroupModel*>(m_parent)->deleteObject(this);
diff --git a/sigmodr/models/SoundModel.h b/sigmodr/models/SoundModel.h
index 9fb02d3b..072d7e29 100644
--- a/sigmodr/models/SoundModel.h
+++ b/sigmodr/models/SoundModel.h
@@ -38,8 +38,6 @@ class SoundModel : public ObjectModel
~SoundModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};
diff --git a/sigmodr/models/SpeciesAbilityGroupModel.cpp b/sigmodr/models/SpeciesAbilityGroupModel.cpp
index 416b112f..b3447525 100644
--- a/sigmodr/models/SpeciesAbilityGroupModel.cpp
+++ b/sigmodr/models/SpeciesAbilityGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::SpeciesAbilityGroupModel::SpeciesAbilityGroupModel(BaseModel* parent, Sigmod::Species* species) :
GroupModel(parent, species, "Abilities")
{
@@ -57,18 +54,14 @@ bool Sigmodr::SpeciesAbilityGroupModel::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) && (xml.doctype().name() == "SpeciesAbility"))
{
- if (xml.doctype().name() == "SpeciesAbility")
- {
- addObject(qobject_cast<Sigmod::Species*>(m_object)->newAbility(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Species*>(m_object)->newAbility(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/SpeciesAbilityModel.cpp b/sigmodr/models/SpeciesAbilityModel.cpp
index cb6e038c..3aefd6fd 100644
--- a/sigmodr/models/SpeciesAbilityModel.cpp
+++ b/sigmodr/models/SpeciesAbilityModel.cpp
@@ -33,9 +33,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::SpeciesAbilityModel::SpeciesAbilityModel(BaseModel* parent, Sigmod::SpeciesAbility* ability) :
ObjectModel(parent, ability)
{
@@ -74,28 +71,6 @@ QVariant Sigmodr::SpeciesAbilityModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::SpeciesAbilityModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::SpeciesAbilityModel::deleteSelf()
{
qobject_cast<GroupModel*>(m_parent)->deleteObject(this);
diff --git a/sigmodr/models/SpeciesAbilityModel.h b/sigmodr/models/SpeciesAbilityModel.h
index 9c8adfc8..1588b49f 100644
--- a/sigmodr/models/SpeciesAbilityModel.h
+++ b/sigmodr/models/SpeciesAbilityModel.h
@@ -38,8 +38,6 @@ namespace Sigmodr
~SpeciesAbilityModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};
diff --git a/sigmodr/models/SpeciesGroupModel.cpp b/sigmodr/models/SpeciesGroupModel.cpp
index b1f6c579..345177cd 100644
--- a/sigmodr/models/SpeciesGroupModel.cpp
+++ b/sigmodr/models/SpeciesGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::SpeciesGroupModel::SpeciesGroupModel(BaseModel* parent, Sigmod::Sigmod* sigmod) :
GroupModel(parent, sigmod, "Species")
{
@@ -57,18 +54,14 @@ bool Sigmodr::SpeciesGroupModel::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) && (xml.doctype().name() == "Species"))
{
- if (xml.doctype().name() == "Species")
- {
- addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newSpecies(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newSpecies(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/SpeciesItemGroupModel.cpp b/sigmodr/models/SpeciesItemGroupModel.cpp
index 3e6d378c..8431c6c7 100644
--- a/sigmodr/models/SpeciesItemGroupModel.cpp
+++ b/sigmodr/models/SpeciesItemGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::SpeciesItemGroupModel::SpeciesItemGroupModel(BaseModel* parent, Sigmod::Species* species) :
GroupModel(parent, species, "Items")
{
@@ -57,18 +54,14 @@ bool Sigmodr::SpeciesItemGroupModel::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) && (xml.doctype().name() == "SpeceisItem"))
{
- if (xml.doctype().name() == "SpeciesItem")
- {
- addObject(qobject_cast<Sigmod::Species*>(m_object)->newItem(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Species*>(m_object)->newItem(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/SpeciesItemModel.cpp b/sigmodr/models/SpeciesItemModel.cpp
index 7ebb6f1c..2d26bde5 100644
--- a/sigmodr/models/SpeciesItemModel.cpp
+++ b/sigmodr/models/SpeciesItemModel.cpp
@@ -33,9 +33,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::SpeciesItemModel::SpeciesItemModel(BaseModel* parent, Sigmod::SpeciesItem* item) :
ObjectModel(parent, item)
{
@@ -74,28 +71,6 @@ QVariant Sigmodr::SpeciesItemModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::SpeciesItemModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::SpeciesItemModel::deleteSelf()
{
qobject_cast<GroupModel*>(m_parent)->deleteObject(this);
diff --git a/sigmodr/models/SpeciesItemModel.h b/sigmodr/models/SpeciesItemModel.h
index 678a36fc..eebe8b3e 100644
--- a/sigmodr/models/SpeciesItemModel.h
+++ b/sigmodr/models/SpeciesItemModel.h
@@ -38,8 +38,6 @@ class SpeciesItemModel : public ObjectModel
~SpeciesItemModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};
diff --git a/sigmodr/models/SpeciesModel.cpp b/sigmodr/models/SpeciesModel.cpp
index db2f36a0..fec696a9 100644
--- a/sigmodr/models/SpeciesModel.cpp
+++ b/sigmodr/models/SpeciesModel.cpp
@@ -33,9 +33,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::SpeciesModel::SpeciesModel(BaseModel* parent, Sigmod::Species* species) :
GroupObjectModel(parent, species)
{
@@ -75,11 +72,11 @@ bool Sigmodr::SpeciesModel::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())
{
@@ -91,14 +88,9 @@ bool Sigmodr::SpeciesModel::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();
}
}
}
diff --git a/sigmodr/models/SpeciesMoveGroupModel.cpp b/sigmodr/models/SpeciesMoveGroupModel.cpp
index d6636f24..e0ec2e3a 100644
--- a/sigmodr/models/SpeciesMoveGroupModel.cpp
+++ b/sigmodr/models/SpeciesMoveGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::SpeciesMoveGroupModel::SpeciesMoveGroupModel(BaseModel* parent, Sigmod::Species* species) :
GroupModel(parent, species, "Moves")
{
@@ -57,18 +54,14 @@ bool Sigmodr::SpeciesMoveGroupModel::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) && (xml.doctype().name() == "SpeciesMove"))
{
- if (xml.doctype().name() == "SpeciesMove")
- {
- addObject(qobject_cast<Sigmod::Species*>(m_object)->newMove(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Species*>(m_object)->newMove(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/SpeciesMoveModel.cpp b/sigmodr/models/SpeciesMoveModel.cpp
index 9a80b0f1..b2441a45 100644
--- a/sigmodr/models/SpeciesMoveModel.cpp
+++ b/sigmodr/models/SpeciesMoveModel.cpp
@@ -33,9 +33,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::SpeciesMoveModel::SpeciesMoveModel(BaseModel* parent, Sigmod::SpeciesMove* move) :
ObjectModel(parent, move)
{
@@ -74,28 +71,6 @@ QVariant Sigmodr::SpeciesMoveModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::SpeciesMoveModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::SpeciesMoveModel::deleteSelf()
{
qobject_cast<GroupModel*>(m_parent)->deleteObject(this);
diff --git a/sigmodr/models/SpeciesMoveModel.h b/sigmodr/models/SpeciesMoveModel.h
index 896351ab..43364368 100644
--- a/sigmodr/models/SpeciesMoveModel.h
+++ b/sigmodr/models/SpeciesMoveModel.h
@@ -38,8 +38,6 @@ class SpeciesMoveModel : public ObjectModel
~SpeciesMoveModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};
diff --git a/sigmodr/models/SpriteGroupModel.cpp b/sigmodr/models/SpriteGroupModel.cpp
index f6e4ac4c..a94cd44a 100644
--- a/sigmodr/models/SpriteGroupModel.cpp
+++ b/sigmodr/models/SpriteGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::SpriteGroupModel::SpriteGroupModel(BaseModel* parent, Sigmod::Sigmod* sigmod) :
GroupModel(parent, sigmod, "Sprites")
{
@@ -57,18 +54,14 @@ bool Sigmodr::SpriteGroupModel::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) && (xml.doctype().name() == "Sprite"))
{
- if (xml.doctype().name() == "Sprite")
- {
- addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newSprite(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newSprite(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/SpriteModel.cpp b/sigmodr/models/SpriteModel.cpp
index be9ee918..69e4eaf9 100644
--- a/sigmodr/models/SpriteModel.cpp
+++ b/sigmodr/models/SpriteModel.cpp
@@ -30,9 +30,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::SpriteModel::SpriteModel(BaseModel* parent, Sigmod::Sprite* sprite) :
ObjectModel(parent, sprite)
{
@@ -66,28 +63,6 @@ QVariant Sigmodr::SpriteModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::SpriteModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::SpriteModel::deleteSelf()
{
qobject_cast<GroupModel*>(m_parent)->deleteObject(this);
diff --git a/sigmodr/models/SpriteModel.h b/sigmodr/models/SpriteModel.h
index bf86fc91..df5b29da 100644
--- a/sigmodr/models/SpriteModel.h
+++ b/sigmodr/models/SpriteModel.h
@@ -38,8 +38,6 @@ class SpriteModel : public ObjectModel
~SpriteModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};
diff --git a/sigmodr/models/StatusGroupModel.cpp b/sigmodr/models/StatusGroupModel.cpp
index 2bba3102..6fa46182 100644
--- a/sigmodr/models/StatusGroupModel.cpp
+++ b/sigmodr/models/StatusGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::StatusGroupModel::StatusGroupModel(BaseModel* parent, Sigmod::Sigmod* sigmod) :
GroupModel(parent, sigmod, "Status Effects")
{
@@ -57,18 +54,14 @@ bool Sigmodr::StatusGroupModel::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) && (xml.doctype().name() == "Status"))
{
- if (xml.doctype().name() == "Status")
- {
- addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newStatus(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newStatus(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/StatusModel.cpp b/sigmodr/models/StatusModel.cpp
index 04bc76cd..84e2643d 100644
--- a/sigmodr/models/StatusModel.cpp
+++ b/sigmodr/models/StatusModel.cpp
@@ -30,9 +30,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::StatusModel::StatusModel(BaseModel* parent, Sigmod::Status* status) :
ObjectModel(parent, status)
{
@@ -66,28 +63,6 @@ QVariant Sigmodr::StatusModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::StatusModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::StatusModel::deleteSelf()
{
qobject_cast<GroupModel*>(m_parent)->deleteObject(this);
diff --git a/sigmodr/models/StatusModel.h b/sigmodr/models/StatusModel.h
index 2573de6e..0a180812 100644
--- a/sigmodr/models/StatusModel.h
+++ b/sigmodr/models/StatusModel.h
@@ -38,8 +38,6 @@ class StatusModel : public ObjectModel
~StatusModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};
diff --git a/sigmodr/models/StoreGroupModel.cpp b/sigmodr/models/StoreGroupModel.cpp
index 6588b70e..f5561fec 100644
--- a/sigmodr/models/StoreGroupModel.cpp
+++ b/sigmodr/models/StoreGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::StoreGroupModel::StoreGroupModel(BaseModel* parent, Sigmod::Sigmod* sigmod) :
GroupModel(parent, sigmod, "Stores")
{
@@ -57,18 +54,14 @@ bool Sigmodr::StoreGroupModel::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) && (xml.doctype().name() == "Store"))
{
- if (xml.doctype().name() == "Store")
- {
- addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newStore(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newStore(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/StoreModel.cpp b/sigmodr/models/StoreModel.cpp
index 85aca1b1..b3784b66 100644
--- a/sigmodr/models/StoreModel.cpp
+++ b/sigmodr/models/StoreModel.cpp
@@ -31,9 +31,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::StoreModel::StoreModel(BaseModel* parent, Sigmod::Store* store) :
ObjectModel(parent, store)
{
@@ -67,28 +64,6 @@ QVariant Sigmodr::StoreModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::StoreModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::StoreModel::deleteSelf()
{
qobject_cast<GroupModel*>(m_parent)->deleteObject(this);
diff --git a/sigmodr/models/StoreModel.h b/sigmodr/models/StoreModel.h
index ed108fe8..cd3bee43 100644
--- a/sigmodr/models/StoreModel.h
+++ b/sigmodr/models/StoreModel.h
@@ -38,8 +38,6 @@ class StoreModel : public ObjectModel
~StoreModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};
diff --git a/sigmodr/models/TileGroupModel.cpp b/sigmodr/models/TileGroupModel.cpp
index 291549ac..25f77bb6 100644
--- a/sigmodr/models/TileGroupModel.cpp
+++ b/sigmodr/models/TileGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::TileGroupModel::TileGroupModel(BaseModel* parent, Sigmod::Sigmod* sigmod) :
GroupModel(parent, sigmod, "Tiles")
{
@@ -57,18 +54,14 @@ bool Sigmodr::TileGroupModel::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) && (xml.doctype().name() == "Tile"))
{
- if (xml.doctype().name() == "Tile")
- {
- addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newTile(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newTile(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/TileModel.cpp b/sigmodr/models/TileModel.cpp
index 63f6344f..adb36740 100644
--- a/sigmodr/models/TileModel.cpp
+++ b/sigmodr/models/TileModel.cpp
@@ -31,9 +31,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::TileModel::TileModel(BaseModel* parent, Sigmod::Tile* tile) :
ObjectModel(parent, tile)
{
@@ -67,28 +64,6 @@ QVariant Sigmodr::TileModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::TileModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::TileModel::deleteSelf()
{
qobject_cast<GroupModel*>(m_parent)->deleteObject(this);
diff --git a/sigmodr/models/TileModel.h b/sigmodr/models/TileModel.h
index 11a089a2..95538553 100644
--- a/sigmodr/models/TileModel.h
+++ b/sigmodr/models/TileModel.h
@@ -38,8 +38,6 @@ class TileModel : public ObjectModel
~TileModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};
diff --git a/sigmodr/models/TimeGroupModel.cpp b/sigmodr/models/TimeGroupModel.cpp
index 061ef821..79f9061c 100644
--- a/sigmodr/models/TimeGroupModel.cpp
+++ b/sigmodr/models/TimeGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::TimeGroupModel::TimeGroupModel(BaseModel* parent, Sigmod::Sigmod* sigmod) :
GroupModel(parent, sigmod, "Times")
{
@@ -57,18 +54,14 @@ bool Sigmodr::TimeGroupModel::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) && (xml.doctype().name() == "Time"))
{
- if (xml.doctype().name() == "Time")
- {
- addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newTime(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newTime(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/TimeModel.cpp b/sigmodr/models/TimeModel.cpp
index af90c502..08180e73 100644
--- a/sigmodr/models/TimeModel.cpp
+++ b/sigmodr/models/TimeModel.cpp
@@ -31,9 +31,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::TimeModel::TimeModel(BaseModel* parent, Sigmod::Time* time) :
ObjectModel(parent, time)
{
@@ -67,28 +64,6 @@ QVariant Sigmodr::TimeModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::TimeModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::TimeModel::deleteSelf()
{
qobject_cast<GroupModel*>(m_parent)->deleteObject(this);
diff --git a/sigmodr/models/TimeModel.h b/sigmodr/models/TimeModel.h
index 922081a6..430f0250 100644
--- a/sigmodr/models/TimeModel.h
+++ b/sigmodr/models/TimeModel.h
@@ -38,8 +38,6 @@ class TimeModel : public ObjectModel
~TimeModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};
diff --git a/sigmodr/models/TrainerGroupModel.cpp b/sigmodr/models/TrainerGroupModel.cpp
index fbf45700..88fb98ef 100644
--- a/sigmodr/models/TrainerGroupModel.cpp
+++ b/sigmodr/models/TrainerGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::TrainerGroupModel::TrainerGroupModel(BaseModel* parent, Sigmod::Sigmod* sigmod) :
GroupModel(parent, sigmod, "Trainers")
{
@@ -57,18 +54,14 @@ bool Sigmodr::TrainerGroupModel::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) && (xml.doctype().name() == "Trainer"))
{
- if (xml.doctype().name() == "Trainer")
- {
- addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newTrainer(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newTrainer(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/TrainerModel.cpp b/sigmodr/models/TrainerModel.cpp
index b6b9d76b..fd2f188d 100644
--- a/sigmodr/models/TrainerModel.cpp
+++ b/sigmodr/models/TrainerModel.cpp
@@ -31,9 +31,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::TrainerModel::TrainerModel(BaseModel* parent, Sigmod::Trainer* trainer) :
ObjectModel(parent, trainer)
{
@@ -67,28 +64,6 @@ QVariant Sigmodr::TrainerModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::TrainerModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::TrainerModel::deleteSelf()
{
qobject_cast<GroupModel*>(m_parent)->deleteObject(this);
diff --git a/sigmodr/models/TrainerModel.h b/sigmodr/models/TrainerModel.h
index 7c1f8bd3..e124379f 100644
--- a/sigmodr/models/TrainerModel.h
+++ b/sigmodr/models/TrainerModel.h
@@ -38,8 +38,6 @@ class TrainerModel : public ObjectModel
~TrainerModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};
diff --git a/sigmodr/models/TypeGroupModel.cpp b/sigmodr/models/TypeGroupModel.cpp
index ce8f85a6..184030a3 100644
--- a/sigmodr/models/TypeGroupModel.cpp
+++ b/sigmodr/models/TypeGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::TypeGroupModel::TypeGroupModel(BaseModel* parent, Sigmod::Sigmod* sigmod) :
GroupModel(parent, sigmod, "Types")
{
@@ -57,18 +54,14 @@ bool Sigmodr::TypeGroupModel::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) && (xml.doctype().name() == "Type"))
{
- if (xml.doctype().name() == "Type")
- {
- addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newType(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newType(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/TypeModel.cpp b/sigmodr/models/TypeModel.cpp
index 27755053..7122f174 100644
--- a/sigmodr/models/TypeModel.cpp
+++ b/sigmodr/models/TypeModel.cpp
@@ -31,9 +31,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::TypeModel::TypeModel(BaseModel* parent, Sigmod::Type* type) :
ObjectModel(parent, type)
{
@@ -67,28 +64,6 @@ QVariant Sigmodr::TypeModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::TypeModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::TypeModel::deleteSelf()
{
qobject_cast<GroupModel*>(m_parent)->deleteObject(this);
diff --git a/sigmodr/models/TypeModel.h b/sigmodr/models/TypeModel.h
index a32ffdb9..da502ed9 100644
--- a/sigmodr/models/TypeModel.h
+++ b/sigmodr/models/TypeModel.h
@@ -38,8 +38,6 @@ class TypeModel : public ObjectModel
~TypeModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};
diff --git a/sigmodr/models/WeatherGroupModel.cpp b/sigmodr/models/WeatherGroupModel.cpp
index 7d36cb21..6d51fd2a 100644
--- a/sigmodr/models/WeatherGroupModel.cpp
+++ b/sigmodr/models/WeatherGroupModel.cpp
@@ -28,9 +28,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::WeatherGroupModel::WeatherGroupModel(BaseModel* parent, Sigmod::Sigmod* sigmod) :
GroupModel(parent, sigmod, "Weathers")
{
@@ -57,18 +54,14 @@ bool Sigmodr::WeatherGroupModel::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) && (xml.doctype().name() == "Weather"))
{
- if (xml.doctype().name() == "Weather")
- {
- addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newWeather(xml.documentElement()));
- return true;
- }
- file.close();
+ addObject(qobject_cast<Sigmod::Sigmod*>(m_object)->newWeather(xml.documentElement()));
+ return true;
}
}
}
diff --git a/sigmodr/models/WeatherModel.cpp b/sigmodr/models/WeatherModel.cpp
index 186d06bf..07f65f59 100644
--- a/sigmodr/models/WeatherModel.cpp
+++ b/sigmodr/models/WeatherModel.cpp
@@ -30,9 +30,6 @@
// KDE includes
#include <KMenu>
-// Qt includes
-#include <QtCore/QFile>
-
Sigmodr::WeatherModel::WeatherModel(BaseModel* parent, Sigmod::Weather* weather) :
ObjectModel(parent, weather)
{
@@ -66,28 +63,6 @@ QVariant Sigmodr::WeatherModel::data(int role) const
return Sigmodr::ObjectModel::data(role);
}
-bool Sigmodr::WeatherModel::setData(const QVariant& value, int role)
-{
- if (role == Sigmodr::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() == m_object->className())
- {
- m_object->load(xml.documentElement());
- return true;
- }
- file.close();
- }
- }
- }
- return false;
-}
-
void Sigmodr::WeatherModel::deleteSelf()
{
qobject_cast<GroupModel*>(m_parent)->deleteObject(this);
diff --git a/sigmodr/models/WeatherModel.h b/sigmodr/models/WeatherModel.h
index 700555e2..3de1e2c3 100644
--- a/sigmodr/models/WeatherModel.h
+++ b/sigmodr/models/WeatherModel.h
@@ -38,8 +38,6 @@ class WeatherModel : public ObjectModel
~WeatherModel();
QVariant data(int role = Qt::DisplayRole) const;
-
- bool setData(const QVariant& value, int role = Qt::EditRole);
public slots:
void deleteSelf();
};