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 #include "ui/app_list/app_list_model.h" | 5 #include "ui/app_list/app_list_model.h" |
6 | 6 |
7 #include "ui/app_list/app_list_item_model.h" | 7 #include "ui/app_list/app_list_item_model.h" |
8 #include "ui/app_list/app_list_model_observer.h" | 8 #include "ui/app_list/app_list_model_observer.h" |
9 #include "ui/app_list/search_box_model.h" | 9 #include "ui/app_list/search_box_model.h" |
10 #include "ui/app_list/search_result.h" | 10 #include "ui/app_list/search_result.h" |
11 | 11 |
12 namespace app_list { | 12 namespace app_list { |
13 | 13 |
14 AppListModel::AppListModel() | 14 AppListModel::AppListModel() |
15 : apps_(new Apps), | 15 : apps_(new Apps), |
16 search_box_(new SearchBoxModel), | 16 search_box_(new SearchBoxModel), |
17 results_(new SearchResults), | 17 results_(new SearchResults), |
18 signed_in_(false), | 18 signed_in_(false), |
19 status_(STATUS_NORMAL) { | 19 status_(STATUS_NORMAL) { |
20 } | 20 } |
21 | 21 |
22 AppListModel::~AppListModel() { | 22 AppListModel::~AppListModel() { |
| 23 STLDeleteElements(&users_); |
23 } | 24 } |
24 | 25 |
25 void AppListModel::AddObserver(AppListModelObserver* observer) { | 26 void AppListModel::AddObserver(AppListModelObserver* observer) { |
26 observers_.AddObserver(observer); | 27 observers_.AddObserver(observer); |
27 } | 28 } |
28 | 29 |
29 void AppListModel::RemoveObserver(AppListModelObserver* observer) { | 30 void AppListModel::RemoveObserver(AppListModelObserver* observer) { |
30 observers_.RemoveObserver(observer); | 31 observers_.RemoveObserver(observer); |
31 } | 32 } |
32 | 33 |
33 void AppListModel::SetStatus(Status status) { | 34 void AppListModel::SetStatus(Status status) { |
34 if (status_ == status) | 35 if (status_ == status) |
35 return; | 36 return; |
36 | 37 |
37 status_ = status; | 38 status_ = status; |
38 FOR_EACH_OBSERVER(AppListModelObserver, | 39 FOR_EACH_OBSERVER(AppListModelObserver, |
39 observers_, | 40 observers_, |
40 OnAppListModelStatusChanged()); | 41 OnAppListModelStatusChanged()); |
41 } | 42 } |
42 | 43 |
43 void AppListModel::SetCurrentUser(const base::string16& current_user_name, | 44 void AppListModel::SetUsers(const Users& users) { |
44 const base::string16& current_user_email) { | 45 STLDeleteElements(&users_); |
45 if (current_user_name_ == current_user_name && | 46 users_ = users; |
46 current_user_email_ == current_user_email) { | |
47 return; | |
48 } | |
49 current_user_name_ = current_user_name; | |
50 current_user_email_ = current_user_email; | |
51 FOR_EACH_OBSERVER(AppListModelObserver, | 47 FOR_EACH_OBSERVER(AppListModelObserver, |
52 observers_, | 48 observers_, |
53 OnAppListModelCurrentUserChanged()); | 49 OnAppListModelUsersChanged()); |
54 } | 50 } |
55 | 51 |
56 void AppListModel::SetSignedIn(bool signed_in) { | 52 void AppListModel::SetSignedIn(bool signed_in) { |
57 if (signed_in_ == signed_in) | 53 if (signed_in_ == signed_in) |
58 return; | 54 return; |
59 | 55 |
60 signed_in_ = signed_in; | 56 signed_in_ = signed_in; |
61 FOR_EACH_OBSERVER(AppListModelObserver, | 57 FOR_EACH_OBSERVER(AppListModelObserver, |
62 observers_, | 58 observers_, |
63 OnAppListModelSigninStatusChanged()); | 59 OnAppListModelSigninStatusChanged()); |
64 } | 60 } |
65 | 61 |
66 } // namespace app_list | 62 } // namespace app_list |
OLD | NEW |