OLD | NEW |
1 // Copyright (c) 2012 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 #ifndef CHROME_BROWSER_CUSTOM_HOME_PAGES_TABLE_MODEL_H_ | 5 #ifndef CHROME_BROWSER_CUSTOM_HOME_PAGES_TABLE_MODEL_H_ |
6 #define CHROME_BROWSER_CUSTOM_HOME_PAGES_TABLE_MODEL_H_ | 6 #define CHROME_BROWSER_CUSTOM_HOME_PAGES_TABLE_MODEL_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
11 #include "base/compiler_specific.h" | 11 #include "base/compiler_specific.h" |
12 #include "base/task/cancelable_task_tracker.h" | 12 #include "chrome/browser/history/history_service.h" |
13 #include "chrome/browser/history/history_types.h" | |
14 #include "ui/base/models/table_model.h" | 13 #include "ui/base/models/table_model.h" |
15 | 14 |
16 class GURL; | 15 class GURL; |
17 class Profile; | 16 class Profile; |
18 class HistoryService; | |
19 | |
20 namespace history { | |
21 class URLRow; | |
22 } | |
23 | 17 |
24 namespace ui { | 18 namespace ui { |
25 class TableModelObserver; | 19 class TableModelObserver; |
26 } | 20 } |
27 | 21 |
28 // CustomHomePagesTableModel is the model for the TableView showing the list | 22 // CustomHomePagesTableModel is the model for the TableView showing the list |
29 // of pages the user wants opened on startup. | 23 // of pages the user wants opened on startup. |
30 | 24 |
31 class CustomHomePagesTableModel : public ui::TableModel { | 25 class CustomHomePagesTableModel : public ui::TableModel { |
32 public: | 26 public: |
(...skipping 29 matching lines...) Expand all Loading... |
62 | 56 |
63 private: | 57 private: |
64 // Each item in the model is represented as an Entry. Entry stores the URL | 58 // Each item in the model is represented as an Entry. Entry stores the URL |
65 // and title of the page. | 59 // and title of the page. |
66 struct Entry; | 60 struct Entry; |
67 | 61 |
68 // Loads the title for the specified entry. | 62 // Loads the title for the specified entry. |
69 void LoadTitle(Entry* entry); | 63 void LoadTitle(Entry* entry); |
70 | 64 |
71 // Callback from history service. Updates the title of the Entry whose | 65 // Callback from history service. Updates the title of the Entry whose |
72 // |url| matches |entry_url| and notifies the observer of the change. | 66 // |title_handle| matches |handle| and notifies the observer of the change. |
73 void OnGotTitle(const GURL& entry_url, | 67 void OnGotTitle(HistoryService::Handle handle, |
74 bool found_url, | 68 bool found_url, |
75 const history::URLRow& row, | 69 const history::URLRow* row, |
76 const history::VisitVector& visits); | 70 history::VisitVector* visits); |
| 71 |
| 72 // Returns the entry whose |member| matches |handle| and sets |entry_index| to |
| 73 // the index of the entry. |
| 74 Entry* GetEntryByLoadHandle(CancelableRequestProvider::Handle Entry::* member, |
| 75 CancelableRequestProvider::Handle handle, |
| 76 int* entry_index); |
77 | 77 |
78 // Returns the URL for a particular row, formatted for display to the user. | 78 // Returns the URL for a particular row, formatted for display to the user. |
79 base::string16 FormattedURL(int row) const; | 79 base::string16 FormattedURL(int row) const; |
80 | 80 |
81 // Set of entries we're showing. | 81 // Set of entries we're showing. |
82 std::vector<Entry> entries_; | 82 std::vector<Entry> entries_; |
83 | 83 |
84 // Profile used to load titles. | 84 // Profile used to load titles. |
85 Profile* profile_; | 85 Profile* profile_; |
86 | 86 |
87 ui::TableModelObserver* observer_; | 87 ui::TableModelObserver* observer_; |
88 | 88 |
89 // Used in loading titles. | 89 // Used in loading titles. |
90 base::CancelableTaskTracker task_tracker_; | 90 CancelableRequestConsumer history_query_consumer_; |
91 | 91 |
92 DISALLOW_COPY_AND_ASSIGN(CustomHomePagesTableModel); | 92 DISALLOW_COPY_AND_ASSIGN(CustomHomePagesTableModel); |
93 }; | 93 }; |
94 | 94 |
95 #endif // CHROME_BROWSER_CUSTOM_HOME_PAGES_TABLE_MODEL_H_ | 95 #endif // CHROME_BROWSER_CUSTOM_HOME_PAGES_TABLE_MODEL_H_ |
OLD | NEW |