update key bindings

This commit is contained in:
2021-11-15 14:16:46 +01:00
parent d6805f383b
commit 59987f262d
5 changed files with 77 additions and 11 deletions

View File

@ -27,10 +27,14 @@ import com.minres.scviewer.database.tx.ITx;
public interface IWaveformView extends PropertyChangeListener, ISelectionProvider{
String CURSOR_PROPERTY = "cursor_time";
static final String CURSOR_PROPERTY = "cursor_time";
String MARKER_PROPERTY = "marker_time";
static final String MARKER_PROPERTY = "marker_time";
static final int CURSOR_POS = 0;
static final int MARKER_POS = 1;
public static final RelationType NEXT_PREV_IN_STREAM = RelationTypeFactory.create("Prev/Next in stream");
public void addSelectionChangedListener(ISelectionChangedListener listener);
@ -113,6 +117,8 @@ public interface IWaveformView extends PropertyChangeListener, ISelectionProvide
public void scrollHorizontal(int percent);
public void scrollTo(int pos);
public void addDisposeListener( DisposeListener listener );
public void deleteSelectedTracks();

View File

@ -496,6 +496,12 @@ public class WaveformCanvas extends Canvas {
}
}
public void centerAt(long time) {
int scaledTime = (int) (time / scaleFactor);
int newX = -scaledTime+getWidth()/2;
setOrigin(newX>0?0:newX, origin.y);
}
public int getRulerHeight() {
return rulerHeight;
}

View File

@ -292,8 +292,8 @@ public class WaveformView implements IWaveformView {
@Override
public void handleEvent(Event e) {
switch (e.type) {
// case SWT.MouseWheel:
// break;
// case SWT.MouseWheel:
// break;
case SWT.MouseDown:
start = new Point(e.x, e.y);
end = new Point(e.x, e.y);
@ -1509,6 +1509,22 @@ public class WaveformView implements IWaveformView {
waveformCanvas.redraw();
}
@Override
public void scrollTo(int pos) {
long time = 0;
switch(pos) {
case IWaveformView.CURSOR_POS:
time = getCursorTime();
break;
case IWaveformView.MARKER_POS:
time = getMarkerTime(selectedMarker);
break;
default:
break;
}
waveformCanvas.centerAt(time);
}
public void asyncUpdate(Widget widget) {
widget.getDisplay().asyncExec(() -> {
waveformCanvas.redraw();
@ -1539,4 +1555,13 @@ public class WaveformView implements IWaveformView {
return e;
}
}

View File

@ -357,9 +357,13 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
waveformPane.moveSelection(GotoDirection.DOWN);
return;
case SWT.HOME:
waveformPane.scrollTo(IWaveformView.MARKER_POS);
return;
case SWT.END:
waveformPane.scrollTo(IWaveformView.CURSOR_POS);
return;
case SWT.DEL:
waveformPane.deleteSelectedTracks();
default:
break;
}