コード例 #1
0
 def _readElement(self, element, key):
     keyType = PARAM_INFO[key][INFO_TYPE]
     resmgrAttr = { 'Bool': 'asBool', 'Int': 'asInt', 'Float': 'asFloat', 'String': 'asString' }
     #log.debug('read element as "{}" from section'.format(key))
     if keyType in resmgrAttr:
         try:
             return getattr(element, resmgrAttr[keyType])
         except:
             log.current_exception()
     elif keyType == 'Enum':
         try:
             v = element.asString
             e = PARAM_INFO[key][INFO_ENUM]
             if v in e:
                 return v
             else:
                 log.warning('found invalid item "{}", available only {}'.format(v, e))
                 return None
         except:
             log.current_exception()
     elif keyType == 'List':
         values = []
         child = PARAM_INFO[key][INFO_CHILD]
         for k, v in element.items():
             if k == child:
                 v = self._readElement(v, k)
                 if v:
                     values.append(v)
             else:
                 log.warning('found invalid tag "{}", available only "{}"'.format(k, child))
         return values
     return None
コード例 #2
0
 def handleKeyEvent(self, event):
     if event.isKeyDown() and not event.isRepeatedEvent():
         callback = self._callbacks.get(event.key, None)
         if callback:
             try:
                 callback()
             except Exception:
                 log.current_exception()
     return False
コード例 #3
0
def __event_handler(prepend, e, m, *a, **k):
    try:
        if prepend:
            e.fire(*a, **k)
            r = m(*a, **k)
        else:
            r = m(*a, **k)
            e.fire(*a, **k)
        return r
    except:
        log.current_exception()