Preference to display patch sets in reverse order

Added a new general user preference by which the
display order of the patch sets in the
ChangeScreen can be reversed so that the latest
patch set is always shown on top.

If there are a lot of patch sets for a change the
latest patch set and the links to the diffs in the
patch set are below the fold of the ChangeScreen.
In most cases users are interest in the latest
patch set. This is why it may be more convinient
if the latest patch set is always displayed on
top.

Bug: issue 556
Change-Id: I01b718252c260bfeea63819466a8286de7a43459
Signed-off-by: Edwin Kempin <edwin.kempin@gmail.com>
This commit is contained in:
Edwin Kempin
2010-10-14 14:21:50 +02:00
committed by Shawn O. Pearce
parent 002e0a9dda
commit 5b50240129
7 changed files with 66 additions and 2 deletions

View File

@@ -30,6 +30,7 @@ public interface AccountConstants extends Constants {
String showSiteHeader();
String useFlashClipboard();
String copySelfOnEmails();
String displayPatchSetsInReverseOrder();
String buttonSaveChanges();
String tabAccountSummary();

View File

@@ -7,6 +7,7 @@ accountId = Account ID
showSiteHeader = Show Site Header
useFlashClipboard = Use Flash Clipboard Widget
copySelfOnEmails = CC Me On Comments I Write
displayPatchSetsInReverseOrder = Display Patch Sets In Reverse Order
defaultContextFieldLabel = Default Context:
maximumPageSizeFieldLabel = Maximum Page Size:
dateFormatLabel = Date/Time Format:

View File

@@ -41,6 +41,7 @@ public class MyPreferencesScreen extends SettingsScreen {
private CheckBox showSiteHeader;
private CheckBox useFlashClipboard;
private CheckBox copySelfOnEmails;
private CheckBox displayPatchSetsInReverseOrder;
private ListBox maximumPageSize;
private ListBox dateFormat;
private ListBox timeFormat;
@@ -72,6 +73,9 @@ public class MyPreferencesScreen extends SettingsScreen {
copySelfOnEmails = new CheckBox(Util.C.copySelfOnEmails());
copySelfOnEmails.addClickHandler(onClickSave);
displayPatchSetsInReverseOrder = new CheckBox(Util.C.displayPatchSetsInReverseOrder());
displayPatchSetsInReverseOrder.addClickHandler(onClickSave);
maximumPageSize = new ListBox();
for (final short v : PAGESIZE_CHOICES) {
maximumPageSize.addItem(Util.M.rowsPerPage(v), String.valueOf(v));
@@ -113,7 +117,7 @@ public class MyPreferencesScreen extends SettingsScreen {
dateTimePanel.add(dateFormat);
dateTimePanel.add(timeFormat);
}
final Grid formGrid = new Grid(5, 2);
final Grid formGrid = new Grid(6, 2);
int row = 0;
formGrid.setText(row, labelIdx, "");
@@ -128,6 +132,10 @@ public class MyPreferencesScreen extends SettingsScreen {
formGrid.setWidget(row, fieldIdx, copySelfOnEmails);
row++;
formGrid.setText(row, labelIdx, "");
formGrid.setWidget(row, fieldIdx, displayPatchSetsInReverseOrder);
row++;
formGrid.setText(row, labelIdx, Util.C.maximumPageSizeFieldLabel());
formGrid.setWidget(row, fieldIdx, maximumPageSize);
row++;
@@ -163,6 +171,7 @@ public class MyPreferencesScreen extends SettingsScreen {
showSiteHeader.setEnabled(on);
useFlashClipboard.setEnabled(on);
copySelfOnEmails.setEnabled(on);
displayPatchSetsInReverseOrder.setEnabled(on);
maximumPageSize.setEnabled(on);
dateFormat.setEnabled(on);
timeFormat.setEnabled(on);
@@ -172,6 +181,7 @@ public class MyPreferencesScreen extends SettingsScreen {
showSiteHeader.setValue(p.isShowSiteHeader());
useFlashClipboard.setValue(p.isUseFlashClipboard());
copySelfOnEmails.setValue(p.isCopySelfOnEmails());
displayPatchSetsInReverseOrder.setValue(p.isDisplayPatchSetsInReverseOrder());
setListBox(maximumPageSize, DEFAULT_PAGESIZE, p.getMaximumPageSize());
setListBox(dateFormat, AccountGeneralPreferences.DateFormat.STD, //
p.getDateFormat());
@@ -231,6 +241,7 @@ public class MyPreferencesScreen extends SettingsScreen {
p.setShowSiteHeader(showSiteHeader.getValue());
p.setUseFlashClipboard(useFlashClipboard.getValue());
p.setCopySelfOnEmails(copySelfOnEmails.getValue());
p.setDisplayPatchSetsInReverseOrder(displayPatchSetsInReverseOrder.getValue());
p.setMaximumPageSize(getListBox(maximumPageSize, DEFAULT_PAGESIZE));
p.setDateFormat(getListBox(dateFormat,
AccountGeneralPreferences.DateFormat.STD,

View File

@@ -16,6 +16,7 @@ package com.google.gerrit.client.changes;
import com.google.gerrit.client.Gerrit;
import com.google.gerrit.common.data.ChangeDetail;
import com.google.gerrit.reviewdb.AccountGeneralPreferences;
import com.google.gerrit.reviewdb.PatchSet;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
@@ -30,6 +31,7 @@ import com.google.gwtexpui.globalkey.client.GlobalKey;
import com.google.gwtexpui.globalkey.client.KeyCommand;
import com.google.gwtexpui.globalkey.client.KeyCommandSet;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -73,6 +75,14 @@ public class PatchSetsBlock extends Composite {
currentPatchSetId = currps.getId();
patchSets = detail.getPatchSets();
if (Gerrit.isSignedIn()) {
final AccountGeneralPreferences p =
Gerrit.getUserAccount().getGeneralPreferences();
if (p.isDisplayPatchSetsInReverseOrder()) {
Collections.reverse(patchSets);
}
}
for (final PatchSet ps : patchSets) {
if (ps == currps) {
add(new PatchSetComplexDisclosurePanel(parent, detail, detail