Fixed key rotation issues (fixes #36 and #37)

plate-64p
Kirpal Demian 8 years ago
parent 210b6fbff2
commit e2d7c92854
  1. 61
      import_keyboard.py

@ -182,12 +182,12 @@ def getKey(filePath):
# add list of keyboard rows
keyboard["rows"] = []
keyboard["keyCount"] = 0
y = 0 + 0.05
y = 0
# default align
align = 4
# iterate over rows
for rowNum, row in enumerate(layout):
x = 0.05
x = 0
# add empty row
keyboard["rows"].append([])
# check if item is a row or if it is a dict of keyboard properties
@ -218,23 +218,21 @@ def getKey(filePath):
rowData["y"] += prev["y"]
y += prev["y"]
if "w" in prev:
key["w"] = prev["w"] - 0.05
key["w"] = prev["w"]
else:
key["w"] = 1 - 0.05
key["w"] = 1
if "h" in prev:
key["h"] = prev["h"]
else:
key["h"] = 1
if key["h"] > 1:
key["h"] += (int(key["h"])-1) * 0.05
if "x2" in prev:
key["x2"] = prev["x2"]
if "y2" in prev:
key["y2"] = prev["y2"]
if "w2" in prev:
key["w2"] = prev["w2"] - 0.05
key["w2"] = prev["w2"]
if "h2" in prev:
key["h2"] = prev["h2"] - 0.05
key["h2"] = prev["h2"]
if "l" in prev:
key["l"] = prev["l"]
if "n" in prev:
@ -267,10 +265,30 @@ def getKey(filePath):
if "rx" in prev:
rowData["rx"] = prev["rx"]
if "ry" in prev:
rowData["ry2"] = prev["ry"]
rowData["ry"] = prev["ry"]
elif "ry" in rowData and "r" in prev:
rowData["ry2"] = rowData["ry"]
if "yCoord" in rowData:
rowData["ry"] = prev["ry"]
rowData["y"] = prev["ry"] + rowData["yCoord"]
y = prev["ry"] + rowData["yCoord"]
else:
rowData["ry"] = prev["ry"]
rowData["y"] = prev["ry"]
y = prev["ry"]
elif "r" in prev and "ry" in rowData:
if "yCoord" in rowData:
rowData["y"] = rowData["ry"] + rowData["yCoord"]
y = rowData["ry"] + rowData["yCoord"]
else:
rowData["y"] = rowData["ry"]
y = rowData["ry"]
elif "r" in prev:
if "yCoord" in rowData:
rowData["ry"] = 0
rowData["y"] = rowData["yCoord"]
y = rowData["yCoord"]
else:
rowData["ry"] = 0
rowData["y"] = 0
y = 0
# if rowData has property set then add it to key
if "a" in rowData:
@ -280,7 +298,7 @@ def getKey(filePath):
else:
key["xCoord"] = 0
key["d"] = False
key["w"] = 1 - 0.05
key["w"] = 1
key["h"] = 1
# if rowData has property set then add it to key
@ -312,11 +330,6 @@ def getKey(filePath):
key["rx"] = rowData["rx"]
if "ry" in rowData:
key["ry"] = rowData["ry"]
if "ry2" in rowData:
if "yCoord" in rowData:
key["ry2"] = rowData["ry2"] + rowData["yCoord"]
else:
key["ry2"] = rowData["ry2"]
if "p" not in rowData:
key["p"] = fallbackProfile
@ -339,16 +352,12 @@ def getKey(filePath):
if "rx" in key:
key["x"] += key["rx"]
if "ry2" in key:
key["y"] = key["ry2"]
# add the key to the current row
keyboard["rows"][key["row"]].append(key)
keyboard["keyCount"] += 1
x += key["w"] + 0.05
y += 1 + 0.05
if "ry2" in key:
rowData["ry2"] += 1
x += key["w"]
y += 1
else:
# if the current item is a dict then add the backcolor property to
# the keyboard
@ -484,7 +493,7 @@ def read(filepath):
boxHeight = key["h"] - (alignLegendsProfile(
key["p"])[1] + alignLegendsProfile(key["p"])[3])
boxWidth = key["w"] - 0.05 - (alignLegendsProfile(
boxWidth = key["w"] - (alignLegendsProfile(
key["p"])[0] + alignLegendsProfile(key["p"])[2])
new_label.data.text_boxes[0].width = boxWidth
@ -578,6 +587,8 @@ def read(filepath):
# iterate over keys in row
for key in row:
if key["d"] is False:
key["w"] -= 0.05
key["h"] -= 0.05
if key["c"] not in bpy.data.materials:
# new material for key
m = Material()

Loading…
Cancel
Save