| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/cocoa/task_manager_mac.h" | 5 #include "chrome/browser/ui/cocoa/task_manager_mac.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/mac/bundle_locations.h" | 10 #include "base/mac/bundle_locations.h" |
| 11 #include "base/mac/mac_util.h" | 11 #include "base/mac/mac_util.h" |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 }; | 62 }; |
| 63 | 63 |
| 64 class SortHelper { | 64 class SortHelper { |
| 65 public: | 65 public: |
| 66 SortHelper(TaskManagerModel* model, NSSortDescriptor* column) | 66 SortHelper(TaskManagerModel* model, NSSortDescriptor* column) |
| 67 : sort_column_([[column key] intValue]), | 67 : sort_column_([[column key] intValue]), |
| 68 ascending_([column ascending]), | 68 ascending_([column ascending]), |
| 69 model_(model) {} | 69 model_(model) {} |
| 70 | 70 |
| 71 bool operator()(int a, int b) { | 71 bool operator()(int a, int b) { |
| 72 std::pair<int, int> group_range1 = model_->GetGroupRangeForResource(a); | 72 TaskManagerModel::GroupRange group_range1 = |
| 73 std::pair<int, int> group_range2 = model_->GetGroupRangeForResource(b); | 73 model_->GetGroupRangeForResource(a); |
| 74 TaskManagerModel::GroupRange group_range2 = |
| 75 model_->GetGroupRangeForResource(b); |
| 74 if (group_range1 == group_range2) { | 76 if (group_range1 == group_range2) { |
| 75 // The two rows are in the same group, sort so that items in the same | 77 // The two rows are in the same group, sort so that items in the same |
| 76 // group always appear in the same order. |ascending_| is intentionally | 78 // group always appear in the same order. |ascending_| is intentionally |
| 77 // ignored. | 79 // ignored. |
| 78 return a < b; | 80 return a < b; |
| 79 } | 81 } |
| 80 // Sort by the first entry of each of the groups. | 82 // Sort by the first entry of each of the groups. |
| 81 int cmp_result = model_->CompareValues( | 83 int cmp_result = model_->CompareValues( |
| 82 group_range1.first, group_range2.first, sort_column_); | 84 group_range1.first, group_range2.first, sort_column_); |
| 83 if (!ascending_) | 85 if (!ascending_) |
| (...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 352 // are selected as well. Also, check if the selection contains the browser | 354 // are selected as well. Also, check if the selection contains the browser |
| 353 // process. | 355 // process. |
| 354 NSIndexSet* selection = [tableView_ selectedRowIndexes]; | 356 NSIndexSet* selection = [tableView_ selectedRowIndexes]; |
| 355 for (NSUInteger i = [selection lastIndex]; | 357 for (NSUInteger i = [selection lastIndex]; |
| 356 i != NSNotFound; | 358 i != NSNotFound; |
| 357 i = [selection indexLessThanIndex:i]) { | 359 i = [selection indexLessThanIndex:i]) { |
| 358 int modelIndex = viewToModelMap_[i]; | 360 int modelIndex = viewToModelMap_[i]; |
| 359 if (taskManager_->IsBrowserProcess(modelIndex)) | 361 if (taskManager_->IsBrowserProcess(modelIndex)) |
| 360 selectionContainsBrowserProcess = true; | 362 selectionContainsBrowserProcess = true; |
| 361 | 363 |
| 362 std::pair<int, int> rangePair = | 364 TaskManagerModel::GroupRange rangePair = |
| 363 model_->GetGroupRangeForResource(modelIndex); | 365 model_->GetGroupRangeForResource(modelIndex); |
| 364 NSMutableIndexSet* indexSet = [NSMutableIndexSet indexSet]; | 366 NSMutableIndexSet* indexSet = [NSMutableIndexSet indexSet]; |
| 365 for (int j = 0; j < rangePair.second; ++j) | 367 for (int j = 0; j < rangePair.second; ++j) |
| 366 [indexSet addIndex:modelToViewMap_[rangePair.first + j]]; | 368 [indexSet addIndex:modelToViewMap_[rangePair.first + j]]; |
| 367 [tableView_ selectRowIndexes:indexSet byExtendingSelection:YES]; | 369 [tableView_ selectRowIndexes:indexSet byExtendingSelection:YES]; |
| 368 } | 370 } |
| 369 | 371 |
| 370 bool enabled = [selection count] > 0 && !selectionContainsBrowserProcess; | 372 bool enabled = [selection count] > 0 && !selectionContainsBrowserProcess; |
| 371 [endProcessButton_ setEnabled:enabled]; | 373 [endProcessButton_ setEnabled:enabled]; |
| 372 } | 374 } |
| (...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 644 // "Task Manager" so close the existing window and fall through to | 646 // "Task Manager" so close the existing window and fall through to |
| 645 // open a new one. | 647 // open a new one. |
| 646 [[instance_->window_controller_ window] close]; | 648 [[instance_->window_controller_ window] close]; |
| 647 } | 649 } |
| 648 } | 650 } |
| 649 // Create a new instance. | 651 // Create a new instance. |
| 650 instance_ = new TaskManagerMac(TaskManager::GetInstance(), | 652 instance_ = new TaskManagerMac(TaskManager::GetInstance(), |
| 651 highlight_background_resources); | 653 highlight_background_resources); |
| 652 instance_->model_->StartUpdating(); | 654 instance_->model_->StartUpdating(); |
| 653 } | 655 } |
| OLD | NEW |