@@ -436,6 +436,7 @@ def draw(self):
436
436
def set_tooltips (self ):
437
437
self .start_handle .setToolTip (
438
438
"Use this handle to resize the item by changing the start point."
439
+ "SHIFT+drag to resize freely without quantize"
439
440
)
440
441
self .length_handle .setToolTip (
441
442
"Use this handle to resize the item by changing the end point. "
@@ -456,7 +457,8 @@ def set_tooltips(self):
456
457
'can choose a time stretching algorithm by '
457
458
'right-click->Properties->TimestretchMode. Note that each '
458
459
'algorithm has different properties, and some will be more '
459
- 'time-accurate than others'
460
+ 'time-accurate than others. '
461
+ "SHIFT+drag to stretch without quantize"
460
462
)
461
463
self .setToolTip (sg_strings .AudioSeqItem )
462
464
@@ -982,6 +984,9 @@ def _mm_fade_out(self, a_event):
982
984
f_item .update_fade_out_line ()
983
985
984
986
def _mm_stretch (self , a_event ):
987
+ is_shift = bool (
988
+ a_event .modifiers () & QtCore .Qt .KeyboardModifier .ShiftModifier
989
+ )
985
990
f_event_diff = self ._mm_event_diff (a_event )
986
991
for f_item in shared .AUDIO_SEQ .audio_items :
987
992
if (
@@ -997,7 +1002,8 @@ def _mm_stretch(self, a_event):
997
1002
f_item .stretch_width_default * 200.0 ,
998
1003
)
999
1004
f_x = clip_max (f_x , f_item .max_stretch )
1000
- f_x = _shared .quantize (f_x )
1005
+ if not is_shift :
1006
+ f_x = _shared .quantize (f_x )
1001
1007
f_x -= f_item .quantize_offset
1002
1008
f_item .stretch_handle .setPos (
1003
1009
f_x - shared .AUDIO_ITEM_HANDLE_SIZE ,
@@ -1212,7 +1218,8 @@ def mouseReleaseEvent(self, a_event):
1212
1218
f_audio_item .stretch_width_default * 200.0 ,
1213
1219
)
1214
1220
f_x = clip_max (f_x , f_audio_item .max_stretch )
1215
- f_x = _shared .quantize (f_x )
1221
+ if not is_shift :
1222
+ f_x = _shared .quantize (f_x )
1216
1223
f_x -= f_audio_item .quantize_offset
1217
1224
f_item .timestretch_amt = \
1218
1225
f_x / f_audio_item .stretch_width_default
0 commit comments