[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kajongg/sid] src: simplify saving/copying rulesets
From: Wolfgang Rohdewald <wolfgang () rohdewald ! de>
Date: 2013-10-31 21:21:06
Message-ID: E1Vbzfu-0002lj-Ko () scm ! kde ! org
[Download RAW message or body]
Git commit b767c352d8f92b2b1ec9a82c7b920ff96b97da1d by Wolfgang Rohdewald.
Committed on 29/10/2013 at 22:25.
Pushed by wrohdewald into branch 'sid'.
simplify saving/copying rulesets
this should not change behaviour, it just removes code paths which can never be \
reached
M +1 -1 src/game.py
M +1 -1 src/humanclient.py
M +9 -7 src/rule.py
M +1 -1 src/rulesetselector.py
M +1 -1 src/server.py
http://commits.kde.org/kajongg/b767c352d8f92b2b1ec9a82c7b920ff96b97da1d
diff --git a/src/game.py b/src/game.py
index f800cde..687cfe7 100644
--- a/src/game.py
+++ b/src/game.py
@@ -390,7 +390,7 @@ class Game(object):
self.ruleset.rulesetId = query.records[0][0]
else:
# generate a new ruleset
- self.ruleset.save(copy=True, minus=False)
+ self.ruleset.save()
def _setHandSeed(self):
"""set seed to a reproducable value, independent of what happend
diff --git a/src/humanclient.py b/src/humanclient.py
index 8843cf2..149e05c 100644
--- a/src/humanclient.py
+++ b/src/humanclient.py
@@ -477,7 +477,7 @@ class HumanClient(Client):
def gotRulesets(result):
"""the server sent us the wanted ruleset definitions"""
for ruleset in result:
- Ruleset.cached(ruleset).save(copy=True) # make it known to the cache \
and save in db + Ruleset.cached(ruleset).save() # make it known to the \
cache and save in db return tables
rulesetHashes = set(x[1] for x in tables)
needRulesets = list(x for x in rulesetHashes if not Ruleset.hashIsKnown(x))
diff --git a/src/rule.py b/src/rule.py
index 65e46e1..a9d2d8c 100644
--- a/src/rule.py
+++ b/src/rule.py
@@ -502,10 +502,11 @@ into a situation where you have to pay a penalty"""))
return 'type=%s, id=%d,rulesetId=%d,name=%s' % (
type(self), id(self), self.rulesetId, self.name)
- def copy(self, minus=False):
- """make a copy of self and return the new ruleset id. Returns a new ruleset \
or None""" + def copyTemplate(self):
+ """make a copy of self and return the new ruleset id. Returns the new \
ruleset. + To be used only for ruleset templates"""
newRuleset = self.clone().load()
- newRuleset.save(copy=True, minus=minus)
+ newRuleset.save(minus=True)
if isinstance(newRuleset, PredefinedRuleset):
newRuleset = Ruleset(newRuleset.rulesetId)
return newRuleset
@@ -582,12 +583,13 @@ into a situation where you have to pay a penalty"""))
' VALUES(?,?,?,?,?,?,?,?,?)',
self.ruleRecord(rule))
- def save(self, copy=False, minus=False):
+ def save(self, minus=False):
"""save the ruleset to the database.
- copy=True gives it a new id. If the name already exists in the database, \
also give it a new name""" + It always gets a new id, as it does not yet exist \
in database. + If the name already exists in the database, also give it a new \
name""" + assert self.rulesetId == 0, self
with Transaction():
- if copy:
- self.rulesetId, self.name = self._newKey(minus)
+ self.rulesetId, self.name = self._newKey(minus)
Query('INSERT INTO ruleset(id,name,hash,description) VALUES(?,?,?,?)',
list([self.rulesetId, english(self.name), self.hash, \
self.description]))
# do not put this into the transaction, keep it as short as possible. \
sqlite3/Qt
diff --git a/src/rulesetselector.py b/src/rulesetselector.py
index 341db8c..c903ded 100644
--- a/src/rulesetselector.py
+++ b/src/rulesetselector.py
@@ -432,7 +432,7 @@ class RuleTreeView(QTreeView):
return
item = row.internalPointer()
assert isinstance(item, RulesetItem)
- self.model().appendRuleset(item.rawContent.copy(minus=True))
+ self.model().appendRuleset(item.rawContent.copyTemplate())
def removeRow(self):
"""removes a ruleset or a rule"""
diff --git a/src/server.py b/src/server.py
index 446597b..5d69337 100644
--- a/src/server.py
+++ b/src/server.py
@@ -871,7 +871,7 @@ class MJServer(object):
"""user creates new table and joins it"""
def gotRuleset(ruleset):
"""now we have the full ruleset definition from the client"""
- Ruleset.cached(ruleset).save(copy=True) # make it known to the cache and \
save in db + Ruleset.cached(ruleset).save() # make it known to the cache \
and save in db if tableId in self.tables:
return fail(srvError(pb.Error,
'You want a new table with id=%d but that id is already used for \
table %s' % (
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic