Esempio n. 1
0
 def __new__(cls, cls_name, cls_bases, cls_dict):
     super_new = super(QPropertyMeta, cls).__new__
     props = cls_dict.get("__qtprops__", None)
     if props is not None:
         for key, values in six.iteritems(props):
             nty = cls_dict['_nty_'+key] = QtCore.pyqtSignal()
             if isinstance(values, tuple) and len(values) == 2:
                 _type, default = values
             else:    
                 _type = type(values)
                 if _type not in (int, str, bool):
                     _type = "QVariant"
                 default = values
                 
             cls_dict["_"+key] = default
             
             def _get(key):
                 def f(self):
                     return getattr(self, '_'+key)
                 return f
             
             def _set(key):
                 def f(self, value):
                     setattr(self, '_'+key, value)
                     getattr(self, "_nty_"+key).emit()                    
                 return f
             
             set_func = cls_dict['_set_'+key] = _set(key)
             get_func = cls_dict['_get_'+key] = _get(key)
             
             cls_dict[key] = QtCore.pyqtProperty(_type, get_func, set_func, notify=nty)
     return super_new(cls, cls_name, cls_bases, cls_dict)        
Esempio n. 2
0
def get_instance_dict(instance,
                      result=None,
                      key_profix="",
                      other_fields=None,
                      level=1):
    if result is None:
        result = dict()

    keys = list(instance.__dict__['_data'].keys())

    if other_fields is not None:
        keys.extend(list(other_fields))
        keys = set(keys)
    for key in keys:
        value = getattr(instance, key, None)
        if value is None:
            value = ""
        key = string_title(key)
        if key_profix != "":
            key = key.title()
        if isinstance(value, Model) and level != 0:
            get_instance_dict(value,
                              result,
                              key_profix="%s%s" % (key_profix, key),
                              other_fields=None,
                              level=level - 1)
        elif isinstance(value, dict):
            for k, v in six.iteritems(value):
                result["%s%s%s" % (key_profix, key, k.title())] = v
        else:
            result["%s%s" % (key_profix, key)] = value
    return result
Esempio n. 3
0
def peeweeWrapper(instance, others=None):
    params = instance.__dict__['_data']
    ret = {}
    for k, v in six.iteritems(params):
        ret[string_title(k)] = v
    ret.update(others)
    return ObjectWrapper(ret)
Esempio n. 4
0
def peeweeWrapper(instance, others=None):
    params = instance.__dict__['_data']
    ret = {}
    for k, v in six.iteritems(params):
        ret[string_title(k)] = v
    ret.update(others)    
    return ObjectWrapper(ret)
Esempio n. 5
0
def check_update_data(obj, data):
    change = False
    change_fields = []
    for (key, new_value,) in six.iteritems(data):
        old_val = getattr(obj, key, None)
        if old_val != new_value:
            change = True
            change_fields.append(key)
            setattr(obj, key, new_value)

    if change:
        obj.save(update_fields=change_fields)
Esempio n. 6
0
 def data(self, index, role):
     if not index.isValid() or index.row() > self.size():
         return QtCore.QVariant()
     try:
         item = self._data[index.row()]
     except:
         return QtCore.QVariant()
     
     for r, name in six.iteritems(self._roles):
         if r == role:
             getattr(item, name, QtCore.QVariant())
     return QtCore.QVariant()        
Esempio n. 7
0
    def data(self, index, role):
        if not index.isValid() or index.row() > self.size():
            return QtCore.QVariant()
        try:
            item = self._data[index.row()]
        except:
            return QtCore.QVariant()

        for r, name in six.iteritems(self._roles):
            if r == role:
                getattr(item, name, QtCore.QVariant())
        return QtCore.QVariant()
Esempio n. 8
0
 def _check_hotkey(self):
     removed_keys = []
     for k, v in six.iteritems(self._keymap):
         if len(v) != len(self._key_downs):
             continue
         
         if self._check_key_downs(v):
             if self.check_key_event(k):
                 self._identifier = k
             else: 
                 removed_keys.append(k)
                 
     for key in removed_keys:            
         del self._keymap[key]
Esempio n. 9
0
def check_update_data(obj, data):
    change = False
    change_fields = []
    for (
            key,
            new_value,
    ) in six.iteritems(data):
        old_val = getattr(obj, key, None)
        if old_val != new_value:
            change = True
            change_fields.append(key)
            setattr(obj, key, new_value)

    if change:
        obj.save(update_fields=change_fields)
Esempio n. 10
0
    def __new__(cls, cls_name, cls_bases, cls_dict):
        super_new = super(QPropertyMeta, cls).__new__
        props = cls_dict.get("__qtprops__", None)
        if props is not None:
            for key, values in six.iteritems(props):
                nty = cls_dict['_nty_' + key] = QtCore.pyqtSignal()
                if isinstance(values, tuple) and len(values) == 2:
                    _type, default = values
                else:
                    _type = type(values)
                    if _type not in (int, str, bool):
                        _type = "QVariant"
                    default = values

                cls_dict["_" + key] = default

                def _get(key):
                    def f(self):
                        return getattr(self, '_' + key)

                    return f

                def _set(key):
                    def f(self, value):
                        setattr(self, '_' + key, value)
                        getattr(self, "_nty_" + key).emit()

                    return f

                set_func = cls_dict['_set_' + key] = _set(key)
                get_func = cls_dict['_get_' + key] = _get(key)

                cls_dict[key] = QtCore.pyqtProperty(_type,
                                                    get_func,
                                                    set_func,
                                                    notify=nty)
        return super_new(cls, cls_name, cls_bases, cls_dict)
Esempio n. 11
0
def get_instance_dict(instance, result=None, key_profix="", other_fields=None, level=1):    
    if result is None:
        result = dict()
        
    keys = list(instance.__dict__['_data'].keys())
    
    if other_fields is not None:
        keys.extend(list(other_fields))
        keys = set(keys)
    for key in keys:
        value = getattr(instance, key, None)
        if value is None:
            value = ""
        key = string_title(key)
        if key_profix != "":
            key = key.title()
        if isinstance(value, Model) and level != 0:
            get_instance_dict(value, result, key_profix="%s%s" % (key_profix, key), other_fields=None, level=level-1)
        elif isinstance(value, dict):
            for k, v in six.iteritems(value):
                result["%s%s%s" % (key_profix, key, k.title())] = v
        else:
            result["%s%s" % (key_profix, key)] = value
    return result        
Esempio n. 12
0
    219: 'Oem_4',
    220: 'Oem_5',
    221: 'Oem_6',
    222: 'Oem_7',
    1001: 'mouse left', #mouse hotkeys
    1002: 'mouse right',
    1003: 'mouse middle',
    1000: 'mouse move', #single event hotkeys
    1004: 'mouse wheel up',
    1005: 'mouse wheel down',
    1010: 'Ctrl', #merged hotkeys
    1011: 'Alt',
    1012: 'Shift'
}

KEY2ID = dict((v, k) for k,v in six.iteritems(ID2KEY))

"""
Merge two keys into one

KeyID   MEID    MergeHumanHotkey
162     1010     Ctrl  (Lcontrol)
163     1010     Ctrl  (Rcontrol
164     1011     Alt   (Lmenu)
165     1011     Alt   (Rmenu)
160     1012     Shift (Lshift)
161     1012     Shift (Rshift)
"""

MEID2KEYIDS = {
    1010 : (162, 163),