Exemple #1
0
def initRulesets():
    """exits if user only wanted to see available rulesets"""
    import predefined  # pylint: disable=unused-variable

    if Options.showRulesets or Options.rulesetName:
        from rule import Ruleset

        rulesets = dict((x.name, x) for x in Ruleset.selectableRulesets())
        if Options.showRulesets:
            for name in rulesets:
                kprint(name)
            Internal.db.close()
            sys.exit(0)
        elif Options.rulesetName in rulesets:
            # we have an exact match
            Options.ruleset = rulesets[Options.rulesetName]
        else:
            matches = list(x for x in rulesets if Options.rulesetName in x)
            if len(matches) != 1:
                if len(matches) == 0:
                    msg = "Ruleset %s is unknown" % Options.rulesetName
                else:
                    msg = "Ruleset %s is ambiguous: %s" % (Options.rulesetName, ", ".join(matches))
                Internal.db.close()
                raise SystemExit(msg)
            Options.ruleset = rulesets[matches[0]]
Exemple #2
0
def initRulesets():
    """exits if user only wanted to see available rulesets"""
    import predefined
    predefined.load()
    if Options.showRulesets or Options.rulesetName:
        from rule import Ruleset
        rulesets = dict((x.name, x) for x in Ruleset.selectableRulesets())
        if Options.showRulesets:
            for name in rulesets:
                print(name)
            Internal.db.close()
            sys.exit(0)
        elif Options.rulesetName in rulesets:
            # we have an exact match
            Options.ruleset = rulesets[Options.rulesetName]
        else:
            matches = list(x for x in rulesets if Options.rulesetName in x)
            if len(matches) != 1:
                if len(matches) == 0:
                    msg = 'Ruleset %s is unknown' % Options.rulesetName
                else:
                    msg = 'Ruleset %s is ambiguous: %s' % (Options.rulesetName,
                                                           ', '.join(matches))
                Internal.db.close()
                raise SystemExit(msg)
            Options.ruleset = rulesets[matches[0]]
Exemple #3
0
 def serverChanged(self, dummyText=None):
     """the user selected a different server"""
     records = Query('select player.name from player, passwords '
             'where passwords.url=? and passwords.player = player.id', list([self.url])).records
     players = list(x[0] for x in records)
     preferPlayer = Options.player
     if preferPlayer:
         if preferPlayer in players:
             players.remove(preferPlayer)
         players.insert(0, preferPlayer)
     self.cbUser.clear()
     self.cbUser.addItems(players)
     if not self.cbUser.count():
         user = KUser() if os.name == 'nt' else KUser(os.geteuid())
         self.cbUser.addItem(user.fullName() or user.loginName())
     if not preferPlayer:
         userNames = [x[1] for x in self.servers if x[0] == self.url]
         if userNames:
             userIdx = self.cbUser.findText(userNames[0])
             if userIdx >= 0:
                 self.cbUser.setCurrentIndex(userIdx)
     showPW = self.url != Query.localServerName
     self.grid.labelForField(self.edPassword).setVisible(showPW)
     self.edPassword.setVisible(showPW)
     self.grid.labelForField(self.cbRuleset).setVisible(not showPW and not Options.ruleset)
     self.cbRuleset.setVisible(not showPW and not Options.ruleset)
     if not showPW:
         self.cbRuleset.clear()
         if Options.ruleset:
             self.cbRuleset.items = [Options.ruleset]
         else:
             self.cbRuleset.items = Ruleset.selectableRulesets(self.url)
Exemple #4
0
 def serverChanged(self, dummyText=None):
     """the user selected a different server"""
     records = Query(
         'select player.name from player, passwords '
         'where passwords.url=? and passwords.player = player.id',
         list([self.url])).records
     players = list(x[0] for x in records)
     preferPlayer = Options.player
     if preferPlayer:
         if preferPlayer in players:
             players.remove(preferPlayer)
         players.insert(0, preferPlayer)
     self.cbUser.clear()
     self.cbUser.addItems(players)
     if not self.cbUser.count():
         user = KUser() if os.name == 'nt' else KUser(os.geteuid())
         self.cbUser.addItem(user.fullName() or user.loginName())
     if not preferPlayer:
         userNames = [x[1] for x in self.servers if x[0] == self.url]
         if userNames:
             userIdx = self.cbUser.findText(userNames[0])
             if userIdx >= 0:
                 self.cbUser.setCurrentIndex(userIdx)
     showPW = self.url != Query.localServerName
     self.grid.labelForField(self.edPassword).setVisible(showPW)
     self.edPassword.setVisible(showPW)
     self.grid.labelForField(self.cbRuleset).setVisible(
         not showPW and not Options.ruleset)
     self.cbRuleset.setVisible(not showPW and not Options.ruleset)
     if not showPW:
         self.cbRuleset.clear()
         if Options.ruleset:
             self.cbRuleset.items = [Options.ruleset]
         else:
             self.cbRuleset.items = Ruleset.selectableRulesets(self.url)
Exemple #5
0
 def __defineRuleset(self):
     """find out what ruleset to use"""
     if Options.ruleset:
         return Options.ruleset
     elif Internal.autoPlay or bool(Options.host):
         return Ruleset.selectableRulesets()[0]
     else:
         return self.cbRuleset.current
Exemple #6
0
 def __defineRuleset(self):
     """find out what ruleset to use"""
     if Options.ruleset:
         return Options.ruleset
     elif Internal.autoPlay or bool(Options.host):
         return Ruleset.selectableRulesets()[0]
     else:
         return self.cbRuleset.current
Exemple #7
0
 def __init__(self, server=None):
     QDialog.__init__(self, None)
     self.setWindowTitle(m18n('Select a ruleset') + ' - Kajongg')
     self.buttonBox = KDialogButtonBox(self)
     self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel|QDialogButtonBox.Ok)
     self.buttonBox.accepted.connect(self.accept)
     self.buttonBox.rejected.connect(self.reject)
     self.cbRuleset = ListComboBox(Ruleset.selectableRulesets(server))
     self.grid = QGridLayout() # our child SelectPlayers needs this
     self.grid.setColumnStretch(0, 1)
     self.grid.setColumnStretch(1, 6)
     vbox = QVBoxLayout(self)
     vbox.addLayout(self.grid)
     vbox.addWidget(self.cbRuleset)
     vbox.addWidget(self.buttonBox)
Exemple #8
0
 def __init__(self, server=None):
     QDialog.__init__(self, None)
     decorateWindow(self, i18n('Select a ruleset'))
     self.buttonBox = KDialogButtonBox(self)
     self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel
                                       | QDialogButtonBox.Ok)
     self.buttonBox.accepted.connect(self.accept)
     self.buttonBox.rejected.connect(self.reject)
     self.cbRuleset = ListComboBox(Ruleset.selectableRulesets(server))
     self.grid = QGridLayout()  # our child SelectPlayers needs this
     self.grid.setColumnStretch(0, 1)
     self.grid.setColumnStretch(1, 6)
     vbox = QVBoxLayout(self)
     vbox.addLayout(self.grid)
     vbox.addWidget(self.cbRuleset)
     vbox.addWidget(self.buttonBox)
Exemple #9
0
def initRulesets():
    """exits if user only wanted to see available rulesets"""
    import predefined # pylint: disable=W0612
    if Options.showRulesets or Options.rulesetName:
        from rule import Ruleset
        from util import kprint
        from query import DBHandle
        rulesets = Ruleset.selectableRulesets()
        if Options.showRulesets:
            for ruleset in rulesets:
                kprint(ruleset.name)
            DBHandle.default = None
            sys.exit(0)
        else:
            for ruleset in rulesets:
                if ruleset.name == Options.rulesetName:
                    Options.ruleset = ruleset
                    break
            else:
                DBHandle.default = None
                raise SystemExit('Ruleset %s is unknown' % Options.rulesetName)