def load_children(children): """Loads children""" index = 0 for child in children: new_item = None if "brick" in child: brick = load_brick(child["type"], child["name"]) child["brick"] = brick new_item = Qt4_BaseLayoutItems.BrickCfg( child["name"], child["type"]) new_item["brick"] = brick self.bricks[child["name"]] = new_item else: if child["type"] == "window": new_item = Qt4_BaseLayoutItems.WindowCfg(child["name"]) self.windows[child["name"]] = new_item else: NewItemClass = Configuration.classes[child["type"]] new_item = NewItemClass(child["name"], child["type"]) self.items[child["name"]] = new_item if new_item is not None: if type(child["properties"]) == bytes: #if type(child["properties"]) == str: try: new_item.setProperties( pickle.loads(child["properties"])) #newItem.setProperties(pickle.loads(child["properties"].encode('utf8'))) except: logging.getLogger().exception(\ "Error: could not load properties " + \ "for %s", child["name"]) new_item.properties = PropertyBag.PropertyBag() else: new_item.setProperties(child["properties"]) child["properties"] = new_item.properties new_item.__dict__ = child #try: # new_item_signals = new_item["signals"] # new_item_slots = new_item["slots"] #except: # new_item.__dict__ = child #else: # new_item.__dict__ = child # new_item.slots = new_item_slots # new_item.signals = new_item_signals # children[index] = new_item children[index] = new_item load_children(child["children"]) index += 1
def loadChildren(children): i = 0 for child in children: newItem = None if "brick" in child: b = loadBrick(child["type"], child["name"]) child["brick"] = b newItem = Qt4_BaseLayoutItems.BrickCfg(child["name"], child["type"]) newItem["brick"] = b self.bricks[child["name"]] = newItem else: if child["type"] == "window": newItem = Qt4_BaseLayoutItems.WindowCfg(child["name"]) self.windows[child["name"]] = newItem else: newItemClass = Configuration.classes[child["type"]] newItem = newItemClass(child["name"], child["type"]) self.items[child["name"]] = newItem if newItem is not None: # LNLS if type(child["properties"]) == bytes: #if type(child["properties"]) == str: try: newItem.setProperties(pickle.loads(child["properties"])) #newItem.setProperties(pickle.loads(child["properties"].encode('utf8'))) except: logging.getLogger().exception("Error: could not load properties for %s", child["name"]) newItem.properties = PropertyBag.PropertyBag() else: newItem.setProperties(child["properties"]) child["properties"] = newItem.properties try: newItemSignals = newItem["signals"] newItemSlots = newItem["slots"] except: newItem.__dict__ = child else: newItem.__dict__ = child newItem.slots = newItemSlots newItem.signals = newItemSignals children[i] = newItem loadChildren(child["children"]) i += 1
def addBrick(self, brick_type, parent): """ Descript. : """ i = sum([ x.startswith(brick_type) and 1 or 0 for x in self.bricks ]) brick_name = "%s%d" % (brick_type, i) while brick_name in self.bricks: i+=1 brick_name="%s%d" % (brick_type, i) brick = loadBrick(brick_type, brick_name) error = parent.addChild(Qt4_BaseLayoutItems.BrickCfg(brick_name, brick_type, brick)) if len(error) == 0: self.bricks[brick_name] = parent["children"][-1] self.hasChanged = True return parent["children"][-1] else: brick.close(True) return error
def add_brick(self, brick_type, parent): """Adds brick to the gui :param brick_type: brick type :type brick_type: class :param parent: parent :type parent: widget """ i = sum([x.startswith(brick_type) and 1 or 0 for x in self.bricks]) brick_name = "%s%d" % (brick_type, i) while brick_name in self.bricks: i += 1 brick_name = "%s%d" % (brick_type, i) brick = load_brick(brick_type, brick_name) error = parent.addChild( Qt4_BaseLayoutItems.BrickCfg(brick_name, brick_type, brick)) if len(error) == 0: self.bricks[brick_name] = parent["children"][-1] self.has_changed = True return parent["children"][-1] else: brick.close(True) return error
def add_window(self): """Adds window to the list of windows :returns: added Window """ i = sum([x.startswith("window") and 1 or 0 for x in self.windows]) window_name = "window%d" % i while window_name in self.windows: i += 1 window_name = "window%d" % i self.windows_list.append(Qt4_BaseLayoutItems.WindowCfg(window_name)) self.windows[window_name] = self.windows_list[-1] self.has_changed = True return self.windows_list[-1]
def addWindow(self): """ Descript. : """ i = sum([ x.startswith("window") and 1 or 0 for x in self.windows ]) window_name = "window%d" % i while window_name in self.windows: i+=1 window_name = "window%d" % i self.windows_list.append(Qt4_BaseLayoutItems.WindowCfg(window_name)) self.windows[window_name] = self.windows_list[-1] self.hasChanged = True return self.windows_list[-1]
def reload_brick(self, brick_cfg): """Reloads brick """ if type(brick_cfg) == bytes: brick_cfg = self.find_item(brick_cfg) brick_name = brick_cfg["name"] brick_type = brick_cfg["type"] parent, index = self.find_parent(brick_name, self.windows_list) if parent is not None: brick = load_brick(brick_type, brick_name) old_brick_cfg = parent["children"][index] new_brick_cfg = Qt4_BaseLayoutItems.BrickCfg( brick_name, brick_type, brick) parent["children"][index] = new_brick_cfg new_brick_cfg.setProperties(old_brick_cfg["properties"]) return new_brick_cfg