+ # Calculate the proper number of screens, columns, and rows in this db
+ screensIdMap = []
+ hotseatIdMap = []
+ HOTSEAT_SIZE = 0
+ for d in data:
+ if d["spanX"] is None:
+ d["spanX"] = 1
+ if d["spanY"] is None:
+ d["spanY"] = 1
+ if d["container"] == CONTAINER_DESKTOP:
+ if d["screen"] not in screensIdMap:
+ screensIdMap.append(d["screen"])
+ COLUMNS = max(COLUMNS, d["cellX"] + d["spanX"])
+ ROWS = max(ROWS, d["cellX"] + d["spanX"])
+ elif d["container"] == CONTAINER_HOTSEAT:
+ hotseatIdMap.append(d["screen"])
+ HOTSEAT_SIZE = max(HOTSEAT_SIZE, d["screen"] + 1)
+ SCREENS = len(screensIdMap)
+
+ out = codecs.open(INDEX_FILE, encoding="utf-8", mode="w")