Skip to content

Commit c97ff76

Browse files
committed
Added support for rotation to the transform handler for the tracker effect
- JSON communication with tracker effect no longer needs to pass the frame_number as argument - Added bounding box ID generator to Tracker effect
1 parent 4179022 commit c97ff76

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

src/windows/video_widget.py

+5-8
Original file line numberDiff line numberDiff line change
@@ -1025,9 +1025,11 @@ def updateEffectProperty(self, effect_id, frame_number, property_key, new_value,
10251025
"""Update a keyframe property to a new value, adding or updating keyframes as needed"""
10261026
found_point = False
10271027
effect_updated = False
1028+
1029+
raw_properties = json.loads(self.transforming_effect_object.Json())
10281030

1029-
raw_properties = json.loads(self.transforming_effect_object.Json(frame_number))
10301031
c = Effect.get(id=effect_id)
1032+
10311033
if not c:
10321034
# No clip found
10331035
return
@@ -1046,19 +1048,15 @@ def updateEffectProperty(self, effect_id, frame_number, property_key, new_value,
10461048
log.info("Created new point at X=%s" % frame_number)
10471049
raw_properties[property_key]["Points"].append({'co': {'X': frame_number, 'Y': new_value}, 'interpolation': openshot.BEZIER})
10481050

1049-
# Reduce # of clip properties we are saving (performance boost)
1050-
# raw_properties = {property_key: raw_properties.get(property_key)}
1051-
10521051
raw_properties_string = json.dumps(raw_properties)
10531052

1054-
self.transforming_effect_object.SetJson(frame_number, raw_properties_string)
1055-
10561053
if effect_updated:
10571054
c.save()
1055+
# Update the preview
10581056
if refresh:
10591057
get_app().window.refreshFrameSignal.emit()
10601058

1061-
self.transforming_effect_object.SetJson(frame_number, raw_properties_string)
1059+
self.transforming_effect_object.SetJson(raw_properties_string)
10621060

10631061
def refreshTriggered(self):
10641062
"""Signal to refresh viewport (i.e. a property might have changed that effects the preview)"""
@@ -1277,4 +1275,3 @@ def __init__(self, *args):
12771275
self.win.KeyFrameTransformSignal.connect(self.keyFrameTransformTriggered)
12781276
self.win.SelectRegionSignal.connect(self.regionTriggered)
12791277
self.win.refreshFrameSignal.connect(self.refreshTriggered)
1280-

src/windows/views/webview.py

+8
Original file line numberDiff line numberDiff line change
@@ -3020,8 +3020,16 @@ def callback(self, effect_names, callback_data):
30203020

30213021
# Get Effect JSON
30223022
effect.Id(get_app().project.generate_id())
3023+
30233024
effect_json = json.loads(effect.Json())
30243025

3026+
# Generate box_id to Tracker Effect
3027+
if "box_id" in effect_json:
3028+
boxId = get_app().project.generate_id()
3029+
effect_json["box_id"] = boxId
3030+
3031+
print(effect_json)
3032+
30253033
# Append effect JSON to clip
30263034
clip.data["effects"].append(effect_json)
30273035

0 commit comments

Comments
 (0)