@@ -166,6 +166,12 @@ def closeEvent(self, event):
166
166
# Stop threads
167
167
self .StopSignal .emit ()
168
168
169
+ # Stop thumbnail server thread
170
+ self .http_server_thread .kill ()
171
+
172
+ # Stop ZMQ polling thread
173
+ get_app ().logger_libopenshot .kill ()
174
+
169
175
# Process any queued events
170
176
QCoreApplication .processEvents ()
171
177
@@ -2079,19 +2085,7 @@ def actionSimple_View_trigger(self):
2079
2085
2080
2086
# Set initial size of docks
2081
2087
simple_state = "" .join ([
2082
- "AAAA/wAAAAD9AAAAAwAAAAAAAAEnAAAC3/wCAAAAA/wAAAJeAAAApwAAAAAA////+gAAAAACAAAAAfsAAAA"
2083
- "YAGQAbwBjAGsASwBlAHkAZgByAGEAbQBlAAAAAAD/////AAAAAAAAAAD7AAAAHABkAG8AYwBrAFAAcgBvAH"
2084
- "AAZQByAHQAaQBlAHMAAAAAJwAAAt8AAAChAP////sAAAAYAGQAbwBjAGsAVAB1AHQAbwByAGkAYQBsAgAAA"
2085
- "AAAAAAAAAAAyAAAAGQAAAABAAABHAAAAUD8AgAAAAH7AAAAGABkAG8AYwBrAEsAZQB5AGYAcgBhAG0AZQEA"
2086
- "AAFYAAAAFQAAAAAAAAAAAAAAAgAABEYAAALY/AEAAAAC/AAAAAAAAANnAAAA+gD////8AgAAAAL8AAAAJwA"
2087
- "AAcAAAACvAP////wBAAAAAvwAAAAAAAABFQAAAHsA////+gAAAAACAAAAA/sAAAASAGQAbwBjAGsARgBpAG"
2088
- "wAZQBzAQAAAAD/////AAAAkgD////7AAAAHgBkAG8AYwBrAFQAcgBhAG4AcwBpAHQAaQBvAG4AcwEAAAAA/"
2089
- "////wAAAJIA////+wAAABYAZABvAGMAawBFAGYAZgBlAGMAdABzAQAAAAD/////AAAAkgD////7AAAAEgBk"
2090
- "AG8AYwBrAFYAaQBkAGUAbwEAAAEbAAACTAAAAEcA////+wAAABgAZABvAGMAawBUAGkAbQBlAGwAaQBuAGU"
2091
- "BAAAB7QAAARIAAACWAP////wAAANtAAAA2QAAAIIA////+gAAAAECAAAAAvsAAAAiAGQAbwBjAGsAQwBhAH"
2092
- "AAdABpAG8AbgBFAGQAaQB0AG8AcgAAAAAA/////wAAAJgA////+wAAABQAZABvAGMAawBFAG0AbwBqAGkAc"
2093
- "wEAAADFAAACOgAAAJIA////AAAERgAAAAEAAAABAAAAAgAAAAEAAAAC/AAAAAEAAAACAAAAAQAAAA4AdABv"
2094
- "AG8AbABCAGEAcgEAAAAA/////wAAAAAAAAAA"
2088
+ "AAAA/wAAAAD9AAAAAwAAAAAAAAEnAAAC3/wCAAAAA/wAAAJeAAAApwAAAAAA////+gAAAAACAAAAAfsAAAAYAGQAbwBjAGsASwBlAHkAZgByAGEAbQBlAAAAAAD/////AAAAAAAAAAD7AAAAHABkAG8AYwBrAFAAcgBvAHAAZQByAHQAaQBlAHMAAAAAJwAAAt8AAAChAP////sAAAAYAGQAbwBjAGsAVAB1AHQAbwByAGkAYQBsAgAABUQAAAF6AAABYAAAANwAAAABAAABHAAAAUD8AgAAAAH7AAAAGABkAG8AYwBrAEsAZQB5AGYAcgBhAG0AZQEAAAFYAAAAFQAAAAAAAAAAAAAAAgAABEYAAALC/AEAAAAC/AAAAAAAAARGAAAA+gD////8AgAAAAL8AAAAPQAAAa4AAACvAP////wBAAAAAvwAAAAAAAABwQAAAJcA////+gAAAAACAAAABPsAAAASAGQAbwBjAGsARgBpAGwAZQBzAQAAAAD/////AAAAkgD////7AAAAHgBkAG8AYwBrAFQAcgBhAG4AcwBpAHQAaQBvAG4AcwEAAAAA/////wAAAJIA////+wAAABYAZABvAGMAawBFAGYAZgBlAGMAdABzAQAAAAD/////AAAAkgD////7AAAAFABkAG8AYwBrAEUAbQBvAGoAaQBzAQAAAAD/////AAAAkgD////7AAAAEgBkAG8AYwBrAFYAaQBkAGUAbwEAAAHHAAACfwAAAEcA////+wAAABgAZABvAGMAawBUAGkAbQBlAGwAaQBuAGUBAAAB8QAAAQ4AAACWAP////sAAAAiAGQAbwBjAGsAQwBhAHAAdABpAG8AbgBFAGQAaQB0AG8AcgAAAANtAAAA2QAAAFgA////AAAERgAAAAEAAAABAAAAAgAAAAEAAAAC/AAAAAEAAAACAAAAAQAAAA4AdABvAG8AbABCAGEAcgEAAAAA/////wAAAAAAAAAA"
2095
2089
])
2096
2090
self .restoreState (qt_types .str_to_bytes (simple_state ))
2097
2091
QCoreApplication .processEvents ()
@@ -2633,7 +2627,6 @@ def clearSelections(self):
2633
2627
2634
2628
def foundCurrentVersion (self , version ):
2635
2629
"""Handle the callback for detecting the current version on openshot.org"""
2636
- log .info ('foundCurrentVersion: Found the latest version: %s' % version )
2637
2630
_ = get_app ()._tr
2638
2631
2639
2632
# Compare versions (alphabetical compare of version strings should work fine)
@@ -2654,6 +2647,10 @@ def foundCurrentVersion(self, version):
2654
2647
updateButton .setToolButtonStyle (Qt .ToolButtonTextBesideIcon )
2655
2648
self .toolBar .addWidget (updateButton )
2656
2649
2650
+ # Initialize sentry exception tracing (now that we know the current version)
2651
+ from classes import sentry
2652
+ sentry .init_tracing ()
2653
+
2657
2654
def moveEvent (self , event ):
2658
2655
""" Move tutorial dialogs also (if any)"""
2659
2656
QMainWindow .moveEvent (self , event )
@@ -2823,17 +2820,25 @@ def __init__(self, *args, mode=None):
2823
2820
2824
2821
# Set unique install id (if blank)
2825
2822
if not s .get ("unique_install_id" ):
2823
+ # This is assumed to be the 1st launch
2826
2824
s .set ("unique_install_id" , str (uuid4 ()))
2827
2825
2828
2826
# Track 1st launch metric
2829
2827
track_metric_screen ("initial-launch-screen" )
2830
2828
2829
+ # Track 1st main screen
2830
+ track_metric_screen ("main-screen" )
2831
+
2832
+ # Opt-out of metrics tracking on 1st launch (and prompt user)
2833
+ track_metric_screen ("metrics-opt-out" )
2834
+ s .set ("send_metrics" , False )
2835
+ else :
2836
+ # Only track main screen
2837
+ track_metric_screen ("main-screen" )
2838
+
2831
2839
# Set unique id for Sentry
2832
2840
sentry .set_user ({"id" : s .get ("unique_install_id" )})
2833
2841
2834
- # Track main screen
2835
- track_metric_screen ("main-screen" )
2836
-
2837
2842
# Create blank tutorial manager
2838
2843
self .tutorial_manager = None
2839
2844
0 commit comments