summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2008-12-31 09:35:11 -0500
committerBen Boeckel <MathStuf@gmail.com>2008-12-31 09:35:11 -0500
commit541ed4742c6368cc36c35ca74dba09b9d108283b (patch)
tree67e5d39723bcb7638eecaf0687baf16ed513ad00
parent06387e2d3c6e4396560dfa7d6fe86d4854089858 (diff)
downloadsigen-541ed4742c6368cc36c35ca74dba09b9d108283b.tar.gz
sigen-541ed4742c6368cc36c35ca74dba09b9d108283b.tar.xz
sigen-541ed4742c6368cc36c35ca74dba09b9d108283b.zip
Changed Config to use Config as parents instead of plain QObject
-rw-r--r--sigbattle/ATBArena.cpp2
-rw-r--r--sigbattle/ATBArena.h2
-rw-r--r--sigbattle/Arena.cpp2
-rw-r--r--sigbattle/Arena.h2
-rw-r--r--sigbattle/Containment.cpp4
-rw-r--r--sigbattle/Containment.h8
-rw-r--r--sigbattle/Player.cpp2
-rw-r--r--sigbattle/Player.h2
-rw-r--r--sigbattle/Team.cpp2
-rw-r--r--sigbattle/Team.h2
-rw-r--r--sigbattle/TurnArena.cpp2
-rw-r--r--sigbattle/TurnArena.h2
-rw-r--r--sigscript/Config.cpp20
-rw-r--r--sigscript/Config.h3
14 files changed, 31 insertions, 24 deletions
diff --git a/sigbattle/ATBArena.cpp b/sigbattle/ATBArena.cpp
index b88ddf5d..eaea0134 100644
--- a/sigbattle/ATBArena.cpp
+++ b/sigbattle/ATBArena.cpp
@@ -24,7 +24,7 @@
// Qt includes
#include <QtCore/QTimer>
-Sigbattle::ATBArena::ATBArena(Sigscript::SigmodWrapper* sigmod, QSet<Player*> players, const bool isWild, QObject* parent) :
+Sigbattle::ATBArena::ATBArena(Sigscript::SigmodWrapper* sigmod, QSet<Player*> players, const bool isWild, Sigscript::Config* parent) :
Arena(sigmod, players, isWild, parent)
{
setupBattle();
diff --git a/sigbattle/ATBArena.h b/sigbattle/ATBArena.h
index b037f3a8..f5398d22 100644
--- a/sigbattle/ATBArena.h
+++ b/sigbattle/ATBArena.h
@@ -34,7 +34,7 @@ class SIGBATTLE_EXPORT ATBArena : public Arena
Q_OBJECT
public:
- ATBArena(Sigscript::SigmodWrapper* sigmod, QSet<Player*> players, const bool isWild, QObject* parent);
+ ATBArena(Sigscript::SigmodWrapper* sigmod, QSet<Player*> players, const bool isWild, Sigscript::Config* parent);
void handleAction(TeamMember* teamMember, TeamMember::Action action);
public slots:
diff --git a/sigbattle/Arena.cpp b/sigbattle/Arena.cpp
index ab4ea4d4..8a6dc7bd 100644
--- a/sigbattle/Arena.cpp
+++ b/sigbattle/Arena.cpp
@@ -50,7 +50,7 @@ Sigbattle::TeamMember::Action Sigbattle::decision(TeamMember* teamMember)
return teamMember->requestAction();
}
-Sigbattle::Arena::Arena(Sigscript::SigmodWrapper* sigmod, QSet<Player*> players, const bool isWild, QObject* parent) :
+Sigbattle::Arena::Arena(Sigscript::SigmodWrapper* sigmod, QSet<Player*> players, const bool isWild, Sigscript::Config* parent) :
Sigscript::Config(parent),
m_sigmod(sigmod),
m_isWild(isWild),
diff --git a/sigbattle/Arena.h b/sigbattle/Arena.h
index 57bb5c6c..2a7c5350 100644
--- a/sigbattle/Arena.h
+++ b/sigbattle/Arena.h
@@ -73,7 +73,7 @@ class SIGBATTLE_EXPORT Arena : public Sigscript::Config
void aboutToClearActions();
protected:
- Arena(Sigscript::SigmodWrapper* sigmod, QSet<Player*> players, const bool isWild, QObject* parent);
+ Arena(Sigscript::SigmodWrapper* sigmod, QSet<Player*> players, const bool isWild, Sigscript::Config* parent);
~Arena();
virtual void handleAction(TeamMember* teamMember, TeamMember::Action action);
diff --git a/sigbattle/Containment.cpp b/sigbattle/Containment.cpp
index 6e39b195..12d778aa 100644
--- a/sigbattle/Containment.cpp
+++ b/sigbattle/Containment.cpp
@@ -25,8 +25,8 @@
#include "../sigscript/RulesWrapper.h"
#include "../sigscript/SigmodWrapper.h"
-Sigbattle::Containment::Containment(Sigscript::SigmodWrapper* sigmod, QObject* parent) :
- QObject(parent),
+Sigbattle::Containment::Containment(Sigscript::SigmodWrapper* sigmod, Sigscript::Config* parent) :
+ Sigscript::Config(parent),
m_sigmod(sigmod)
{
}
diff --git a/sigbattle/Containment.h b/sigbattle/Containment.h
index 6b75876c..08c1ab8e 100644
--- a/sigbattle/Containment.h
+++ b/sigbattle/Containment.h
@@ -21,9 +21,11 @@
// Sigbattle includes
#include "Global.h"
+// Sigscript includes
+#include "../sigscript/Config.h"
+
// Qt includes
#include <QtCore/QMetaType>
-#include <QtCore/QObject>
#include <QtCore/QUuid>
// Forward declarations
@@ -36,12 +38,12 @@ namespace Sigbattle
{
class TeamMember;
-class SIGBATTLE_EXPORT Containment : public QObject
+class SIGBATTLE_EXPORT Containment : public Sigscript::Config
{
Q_OBJECT
public:
- Containment(Sigscript::SigmodWrapper* sigmod, QObject* parent);
+ Containment(Sigscript::SigmodWrapper* sigmod, Sigscript::Config* parent);
QList<TeamMember*> members() const;
bool addMember(TeamMember* member);
diff --git a/sigbattle/Player.cpp b/sigbattle/Player.cpp
index 8103d52f..748aaf30 100644
--- a/sigbattle/Player.cpp
+++ b/sigbattle/Player.cpp
@@ -22,7 +22,7 @@
#include "../sigscript/RulesWrapper.h"
#include "../sigscript/SigmodWrapper.h"
-Sigbattle::Player::Player(Sigscript::SigmodWrapper* sigmod, QObject* parent) :
+Sigbattle::Player::Player(Sigscript::SigmodWrapper* sigmod, Sigscript::Config* parent) :
Team(sigmod, parent),
m_arena(NULL),
m_money(0)
diff --git a/sigbattle/Player.h b/sigbattle/Player.h
index dbe11a8a..b04c606e 100644
--- a/sigbattle/Player.h
+++ b/sigbattle/Player.h
@@ -41,7 +41,7 @@ class SIGBATTLE_EXPORT Player : public Team
Q_OBJECT
public:
- Player(Sigscript::SigmodWrapper* sigmod, QObject* parent);
+ Player(Sigscript::SigmodWrapper* sigmod, Sigscript::Config* parent);
void enterArena(Arena* arena);
diff --git a/sigbattle/Team.cpp b/sigbattle/Team.cpp
index 9338b3c8..bfc89c92 100644
--- a/sigbattle/Team.cpp
+++ b/sigbattle/Team.cpp
@@ -18,7 +18,7 @@
// Header include
#include "Team.h"
-Sigbattle::Team::Team(Sigscript::SigmodWrapper* sigmod, QObject* parent) :
+Sigbattle::Team::Team(Sigscript::SigmodWrapper* sigmod, Sigscript::Config* parent) :
Containment(sigmod, parent)
{
// TODO: construct
diff --git a/sigbattle/Team.h b/sigbattle/Team.h
index 4db01b47..98467dcc 100644
--- a/sigbattle/Team.h
+++ b/sigbattle/Team.h
@@ -31,7 +31,7 @@ class SIGBATTLE_EXPORT Team : public Containment
Q_OBJECT
public:
- Team(Sigscript::SigmodWrapper* sigmod, QObject* parent);
+ Team(Sigscript::SigmodWrapper* sigmod, Sigscript::Config* parent);
virtual bool isMutable() const;
public slots:
diff --git a/sigbattle/TurnArena.cpp b/sigbattle/TurnArena.cpp
index 0efe76b6..2d006011 100644
--- a/sigbattle/TurnArena.cpp
+++ b/sigbattle/TurnArena.cpp
@@ -55,7 +55,7 @@ bool Sigbattle::sortActions(const TeamMember::RequestedAction& reqAction1, const
return false;
}
-Sigbattle::TurnArena::TurnArena(Sigscript::SigmodWrapper* sigmod, QSet<Player*> players, const bool isWild, QObject* parent) :
+Sigbattle::TurnArena::TurnArena(Sigscript::SigmodWrapper* sigmod, QSet<Player*> players, const bool isWild, Sigscript::Config* parent) :
Arena(sigmod, players, isWild, parent),
m_watcher(new QFutureWatcher<TeamMember::RequestedAction>(this)),
m_timer(new QTimer(this))
diff --git a/sigbattle/TurnArena.h b/sigbattle/TurnArena.h
index 9df0681d..91222d27 100644
--- a/sigbattle/TurnArena.h
+++ b/sigbattle/TurnArena.h
@@ -35,7 +35,7 @@ class SIGBATTLE_EXPORT TurnArena : public Arena
Q_OBJECT
public:
- TurnArena(Sigscript::SigmodWrapper* sigmod, QSet<Player*> players, const bool isWild, QObject* parent);
+ TurnArena(Sigscript::SigmodWrapper* sigmod, QSet<Player*> players, const bool isWild, Sigscript::Config* parent);
public slots:
signals:
void roundAboutToStart();
diff --git a/sigscript/Config.cpp b/sigscript/Config.cpp
index 54774720..70644be5 100644
--- a/sigscript/Config.cpp
+++ b/sigscript/Config.cpp
@@ -18,9 +18,13 @@
// Header include
#include "Config.h"
-Sigscript::Config::Config(QObject* parent) :
+// Qt includes
+#include <QtCore/QSet>
+
+Sigscript::Config::Config(Config* parent) :
QObject(parent),
- m_lock(QReadWriteLock::Recursive)
+ m_lock(QReadWriteLock::Recursive),
+ m_parent(parent)
{
}
@@ -78,12 +82,12 @@ QVariant Sigscript::Config::value(const QString& name, const bool recursive) con
}
if (recursive)
{
- QObject* par = parent();
+ Config* par = m_parent;
while (par)
{
- if (qobject_cast<Config*>(par) && qobject_cast<Config*>(par)->hasValue(name))
- return qobject_cast<Config*>(par)->value(name);
- par = par->parent();
+ if (par->hasValue(name))
+ return par->value(name);
+ par = par->m_parent;
}
}
return QVariant();
@@ -94,8 +98,8 @@ bool Sigscript::Config::hasValue(const QString& name, const bool recursive) cons
QReadLocker locker(&m_lock);
if (m_values.contains(name))
return !(m_values[name].second & (Deleted | Hidden));
- if (recursive && qobject_cast<Config*>(parent()))
- return qobject_cast<Config*>(parent())->hasValue(name, true);
+ if (recursive)
+ return m_parent->hasValue(name, true);
return false;
}
diff --git a/sigscript/Config.h b/sigscript/Config.h
index 309220c2..33fb4011 100644
--- a/sigscript/Config.h
+++ b/sigscript/Config.h
@@ -55,7 +55,7 @@ class SIGSCRIPT_EXPORT Config : public QObject
typedef QPair<QVariant, Options> Value;
- Config(QObject* parent);
+ Config(Config* parent);
Q_SCRIPTABLE QVariant value(const QString& name, const bool recursive = true) const;
template<typename T> T valueOfType(const QString& name, const bool recursive = true) const;
@@ -78,6 +78,7 @@ class SIGSCRIPT_EXPORT Config : public QObject
virtual void writeBack();
private:
mutable QReadWriteLock m_lock;
+ Config* m_parent;
QMap<QString, Value> m_values;
};