diff options
author | Ben Boeckel <MathStuf@gmail.com> | 2008-12-31 09:35:11 -0500 |
---|---|---|
committer | Ben Boeckel <MathStuf@gmail.com> | 2008-12-31 09:35:11 -0500 |
commit | 541ed4742c6368cc36c35ca74dba09b9d108283b (patch) | |
tree | 67e5d39723bcb7638eecaf0687baf16ed513ad00 | |
parent | 06387e2d3c6e4396560dfa7d6fe86d4854089858 (diff) | |
download | sigen-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.cpp | 2 | ||||
-rw-r--r-- | sigbattle/ATBArena.h | 2 | ||||
-rw-r--r-- | sigbattle/Arena.cpp | 2 | ||||
-rw-r--r-- | sigbattle/Arena.h | 2 | ||||
-rw-r--r-- | sigbattle/Containment.cpp | 4 | ||||
-rw-r--r-- | sigbattle/Containment.h | 8 | ||||
-rw-r--r-- | sigbattle/Player.cpp | 2 | ||||
-rw-r--r-- | sigbattle/Player.h | 2 | ||||
-rw-r--r-- | sigbattle/Team.cpp | 2 | ||||
-rw-r--r-- | sigbattle/Team.h | 2 | ||||
-rw-r--r-- | sigbattle/TurnArena.cpp | 2 | ||||
-rw-r--r-- | sigbattle/TurnArena.h | 2 | ||||
-rw-r--r-- | sigscript/Config.cpp | 20 | ||||
-rw-r--r-- | sigscript/Config.h | 3 |
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; }; |