[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