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)
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
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)
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)
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()
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]
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)
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)
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
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),