Merge "SideBySide2: Restore some old keybindings and fix help popup" into stable-2.8
This commit is contained in:
		@@ -24,6 +24,7 @@ public abstract class KeyCommand implements KeyPressHandler {
 | 
			
		||||
  public static final int M_CTRL = 1 << 16;
 | 
			
		||||
  public static final int M_ALT = 2 << 16;
 | 
			
		||||
  public static final int M_META = 4 << 16;
 | 
			
		||||
  public static final int M_SHIFT = 8 << 16;
 | 
			
		||||
 | 
			
		||||
  public static boolean same(final KeyCommand a, final KeyCommand b) {
 | 
			
		||||
    return a.getClass() == b.getClass() && a.helpText.equals(b.helpText);
 | 
			
		||||
@@ -58,6 +59,9 @@ public abstract class KeyCommand implements KeyPressHandler {
 | 
			
		||||
    if ((keyMask & M_META) == M_META) {
 | 
			
		||||
      modifier(b, KeyConstants.I.keyMeta());
 | 
			
		||||
    }
 | 
			
		||||
    if ((keyMask & M_SHIFT) == M_SHIFT) {
 | 
			
		||||
      modifier(b, KeyConstants.I.keyShift());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    final char c = (char) (keyMask & 0xffff);
 | 
			
		||||
    switch (c) {
 | 
			
		||||
 
 | 
			
		||||
@@ -32,6 +32,7 @@ public interface KeyConstants extends Constants {
 | 
			
		||||
  String keyCtrl();
 | 
			
		||||
  String keyAlt();
 | 
			
		||||
  String keyMeta();
 | 
			
		||||
  String keyShift();
 | 
			
		||||
  String keyEnter();
 | 
			
		||||
  String keyEsc();
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -10,5 +10,6 @@ thenOtherKey = then
 | 
			
		||||
keyCtrl = Ctrl
 | 
			
		||||
keyAlt = Alt
 | 
			
		||||
keyMeta = Meta
 | 
			
		||||
keyShift = Shift
 | 
			
		||||
keyEnter = Enter
 | 
			
		||||
keyEsc = Esc
 | 
			
		||||
 
 | 
			
		||||
@@ -316,12 +316,30 @@ public class SideBySide2 extends Screen {
 | 
			
		||||
            (header.hasNext() ? header.next : header.up).go();
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
        .on("Shift-Alt-/", new Runnable() {
 | 
			
		||||
        .on("Shift-/", new Runnable() {
 | 
			
		||||
          @Override
 | 
			
		||||
          public void run() {
 | 
			
		||||
            new ShowHelpCommand().onKeyPress(null);
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
        .on("Ctrl-F", new Runnable() {
 | 
			
		||||
          @Override
 | 
			
		||||
          public void run() {
 | 
			
		||||
            CodeMirror.handleVimKey(cm, "/");
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
        .on("Space", new Runnable() {
 | 
			
		||||
          @Override
 | 
			
		||||
          public void run() {
 | 
			
		||||
            CodeMirror.handleVimKey(cm, "<PageDown>");
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
        .on("Ctrl-A", new Runnable() {
 | 
			
		||||
          @Override
 | 
			
		||||
          public void run() {
 | 
			
		||||
            cm.execCommand("selectAll");
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
        .on("N", maybeNextVimSearch(cm))
 | 
			
		||||
        .on("P", diffChunkNav(cm, true))
 | 
			
		||||
        .on("Shift-O", openClosePublished(cm))
 | 
			
		||||
@@ -336,9 +354,13 @@ public class SideBySide2 extends Screen {
 | 
			
		||||
    keysNavigation.add(new UpToChangeCommand2(revision, 0, 'u'));
 | 
			
		||||
    keysNavigation.add(new NoOpKeyCommand(0, 'j', PatchUtil.C.lineNext()));
 | 
			
		||||
    keysNavigation.add(new NoOpKeyCommand(0, 'k', PatchUtil.C.linePrev()));
 | 
			
		||||
    keysNavigation.add(new NoOpKeyCommand(0, 'n', PatchUtil.C.chunkNext2()));
 | 
			
		||||
    keysNavigation.add(new NoOpKeyCommand(0, 'p', PatchUtil.C.chunkPrev2()));
 | 
			
		||||
 | 
			
		||||
    keysAction = new KeyCommandSet(Gerrit.C.sectionActions());
 | 
			
		||||
    keysAction.add(new NoOpKeyCommand(0, 'o', PatchUtil.C.expandComment()));
 | 
			
		||||
    keysAction.add(new NoOpKeyCommand(
 | 
			
		||||
        KeyCommand.M_SHIFT, 'o', PatchUtil.C.expandAllCommentsOnCurrentLine()));
 | 
			
		||||
    keysAction.add(new KeyCommand(0, 'r', PatchUtil.C.toggleReviewed()) {
 | 
			
		||||
      @Override
 | 
			
		||||
      public void onKeyPress(KeyPressEvent event) {
 | 
			
		||||
 
 | 
			
		||||
@@ -45,10 +45,13 @@ public interface PatchConstants extends Constants {
 | 
			
		||||
  String lineNext();
 | 
			
		||||
  String chunkPrev();
 | 
			
		||||
  String chunkNext();
 | 
			
		||||
  String chunkPrev2();
 | 
			
		||||
  String chunkNext2();
 | 
			
		||||
  String commentPrev();
 | 
			
		||||
  String commentNext();
 | 
			
		||||
  String fileList();
 | 
			
		||||
  String expandComment();
 | 
			
		||||
  String expandAllCommentsOnCurrentLine();
 | 
			
		||||
 | 
			
		||||
  String toggleReviewed();
 | 
			
		||||
  String markAsReviewedAndGoToNext();
 | 
			
		||||
 
 | 
			
		||||
@@ -27,10 +27,13 @@ linePrev = Previous line
 | 
			
		||||
lineNext = Next line
 | 
			
		||||
chunkPrev = Previous diff chunk or comment
 | 
			
		||||
chunkNext = Next diff chunk or comment
 | 
			
		||||
chunkPrev2 = Previous diff chunk
 | 
			
		||||
chunkNext2 = Next diff chunk or search result
 | 
			
		||||
commentPrev = Previous comment
 | 
			
		||||
commentNext = Next comment
 | 
			
		||||
fileList = Browse files in patch set
 | 
			
		||||
expandComment = Expand or collapse comment
 | 
			
		||||
expandAllCommentsOnCurrentLine = Expand or collapse all comments on current line
 | 
			
		||||
 | 
			
		||||
toggleReviewed = Toggle the reviewed flag
 | 
			
		||||
markAsReviewedAndGoToNext = Mark patch as reviewed and go to next unreviewed patch
 | 
			
		||||
 
 | 
			
		||||
@@ -291,6 +291,10 @@ public class CodeMirror extends JavaScriptObject {
 | 
			
		||||
    return o;
 | 
			
		||||
  }-*/;
 | 
			
		||||
 | 
			
		||||
  public final native void execCommand(String cmd) /*-{
 | 
			
		||||
    this.execCommand(cmd);
 | 
			
		||||
  }-*/;
 | 
			
		||||
 | 
			
		||||
  public static final native void addKeyMap(String name, KeyMap km) /*-{
 | 
			
		||||
    $wnd.CodeMirror.keyMap[name] = km;
 | 
			
		||||
  }-*/;
 | 
			
		||||
 
 | 
			
		||||
@@ -90,7 +90,8 @@ class Loader {
 | 
			
		||||
  private static void initVimKeys() {
 | 
			
		||||
    // TODO: Better custom keybindings, remove temporary navigation hacks.
 | 
			
		||||
    KeyMap km = CodeMirror.cloneKeyMap("vim");
 | 
			
		||||
    for (String s : new String[] {"A", "C", "O", "R", "U", "Ctrl-C"}) {
 | 
			
		||||
    for (String s : new String[] {
 | 
			
		||||
        "A", "C", "O", "R", "U", "Ctrl-C", "Ctrl-O"}) {
 | 
			
		||||
      km.remove(s);
 | 
			
		||||
    }
 | 
			
		||||
    CodeMirror.addKeyMap("vim_ro", km);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user