コード例 #1
0
ファイル: qobject.py プロジェクト: binyuj/deepin-talk
 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)        
コード例 #2
0
ファイル: base.py プロジェクト: disda/deepin-talk
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
コード例 #3
0
ファイル: base.py プロジェクト: disda/deepin-talk
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)
コード例 #4
0
ファイル: base.py プロジェクト: binyuj/deepin-talk
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)
コード例 #5
0
ファイル: __init__.py プロジェクト: binyuj/deepin-talk
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)
コード例 #6
0
ファイル: qobject.py プロジェクト: binyuj/deepin-talk
 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()        
コード例 #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()
コード例 #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]
コード例 #9
0
ファイル: __init__.py プロジェクト: disda/deepin-talk
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)
コード例 #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)
コード例 #11
0
ファイル: base.py プロジェクト: binyuj/deepin-talk
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        
コード例 #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),