File tree 3 files changed +31
-4
lines changed
3 files changed +31
-4
lines changed Original file line number Diff line number Diff line change @@ -284,6 +284,13 @@ App.controller("TimelineCtrl", function ($scope) {
284
284
scrolling_tracks . scrollLeft ( new_cursor_x ) ;
285
285
} ;
286
286
287
+ // Scroll the timeline horizontally of a certain amount (scrol_value)
288
+ $scope . scrollLeft = function ( scroll_value ) {
289
+ var scrolling_tracks = $ ( "#scrolling_tracks" ) ;
290
+ var horz_scroll_offset = scrolling_tracks . scrollLeft ( ) ;
291
+ scrolling_tracks . scrollLeft ( horz_scroll_offset + scroll_value ) ;
292
+ } ;
293
+
287
294
// Center the timeline on a given time position
288
295
$scope . centerOnTime = function ( centerTime ) {
289
296
// Get the width of the timeline
Original file line number Diff line number Diff line change @@ -2783,14 +2783,17 @@ def update_zoom(self, newValue):
2783
2783
2784
2784
# Capture wheel event to alter zoom slider control
2785
2785
def wheelEvent (self , event ):
2786
- if int (QCoreApplication .instance ().keyboardModifiers () & Qt .ControlModifier ) > 0 :
2786
+ if event .modifiers () & Qt .ControlModifier :
2787
+ event .accept ()
2788
+ zoom = self .window .sliderZoom
2787
2789
# For each 120 (standard scroll unit) adjust the zoom slider
2788
2790
tick_scale = 120
2789
2791
steps = int (event .angleDelta ().y () / tick_scale )
2790
- self .window .sliderZoom .setValue (self .window .sliderZoom .value () - self .window .sliderZoom .pageStep () * steps )
2792
+ delta = zoom .pageStep () * steps
2793
+ log .debug ("Zooming by %d steps" , - steps )
2794
+ zoom .setValue (zoom .value () - delta )
2791
2795
else :
2792
- # Otherwise pass on to implement default functionality (scroll in QWebEngineView)
2793
- super (type (self ), self ).wheelEvent (event )
2796
+ super ().wheelEvent (event )
2794
2797
2795
2798
# An item is being dragged onto the timeline (mouse is entering the timeline now)
2796
2799
def dragEnterEvent (self , event ):
Original file line number Diff line number Diff line change @@ -123,3 +123,20 @@ def keyPressEvent(self, event):
123
123
else :
124
124
# Ignore most keypresses
125
125
event .ignore ()
126
+
127
+ def wheelEvent (self , event ):
128
+ """ Mousewheel scrolling """
129
+ if event .modifiers () & Qt .ShiftModifier :
130
+ event .accept ()
131
+ frame = self .page ().mainFrame ()
132
+ # Compute scroll offset from wheel motion
133
+ tick_scale = 120
134
+ steps = int (event .angleDelta ().y () / tick_scale )
135
+ delta = - (steps * 100 )
136
+ log .debug ("Scrolling horizontally by %d pixels" , delta )
137
+ # Update the scroll position using AngularJS
138
+ js = f"$('body').scope().scrollLeft({ delta } );"
139
+ frame .evaluateJavaScript (js )
140
+ else :
141
+ super ().wheelEvent (event )
142
+
You can’t perform that action at this time.
0 commit comments