Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(240)

Unified Diff: chrome/browser/cocoa/task_manager_mac.mm

Issue 3029041: Mac: Keep groups when sorting task manager, like windows does. (Closed)
Patch Set: '' Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/browser/cocoa/task_manager_mac_unittest.mm » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/cocoa/task_manager_mac.mm
diff --git a/chrome/browser/cocoa/task_manager_mac.mm b/chrome/browser/cocoa/task_manager_mac.mm
index f081dbb9b12f3eab5bd1686d177395785b127153..8aa4416453598fab7ec13db6d6e0e1909faa08ab 100644
--- a/chrome/browser/cocoa/task_manager_mac.mm
+++ b/chrome/browser/cocoa/task_manager_mac.mm
@@ -60,10 +60,19 @@ class SortHelper {
model_(model) {}
bool operator()(int a, int b) {
- int cmp_result = model_->CompareValues(a, b, sort_column_ );
+ std::pair<int, int> group_range1 = model_->GetGroupRangeForResource(a);
+ std::pair<int, int> group_range2 = model_->GetGroupRangeForResource(b);
+ if (group_range1 == group_range2) {
+ // The two rows are in the same group, sort so that items in the same
+ // group always appear in the same order. |ascending_| is intentionally
+ // ignored.
+ return a < b;
+ }
+ // Sort by the first entry of each of the groups.
+ int cmp_result = model_->CompareValues(
+ group_range1.first, group_range2.first, sort_column_);
if (!ascending_)
cmp_result = -cmp_result;
- // TODO(thakis): Do grouping like on GTK.
return cmp_result < 0;
}
private:
@@ -410,7 +419,8 @@ class SortHelper {
NSString* title = [self modelTextForRow:rowIndex
column:[[tableColumn identifier] intValue]];
[buttonCell setTitle:title];
- [buttonCell setImage:taskManagerObserver_->GetImageForRow(rowIndex)];
+ [buttonCell setImage:
+ taskManagerObserver_->GetImageForRow(indexShuffle_[rowIndex])];
[buttonCell setRefusesFirstResponder:YES]; // Don't push in like a button.
[buttonCell setHighlightsBy:NSNoCellMask];
}
« no previous file with comments | « no previous file | chrome/browser/cocoa/task_manager_mac_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698