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

Side by Side Diff: chrome/browser/ui/autofill/autofill_dialog_models.h

Issue 13331007: Multi-account AccountChooser for interactive autocomplete. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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_UI_AUTOFILL_AUTOFILL_DIALOG_MODELS_H_ 5 #ifndef CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_DIALOG_MODELS_H_
6 #define CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_DIALOG_MODELS_H_ 6 #define CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_DIALOG_MODELS_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 virtual ~AccountChooserModel(); 115 virtual ~AccountChooserModel();
116 116
117 // ui::SimpleMenuModel::Delegate implementation. 117 // ui::SimpleMenuModel::Delegate implementation.
118 virtual bool IsCommandIdChecked(int command_id) const OVERRIDE; 118 virtual bool IsCommandIdChecked(int command_id) const OVERRIDE;
119 virtual bool IsCommandIdEnabled(int command_id) const OVERRIDE; 119 virtual bool IsCommandIdEnabled(int command_id) const OVERRIDE;
120 virtual bool GetAcceleratorForCommandId( 120 virtual bool GetAcceleratorForCommandId(
121 int command_id, 121 int command_id,
122 ui::Accelerator* accelerator) OVERRIDE; 122 ui::Accelerator* accelerator) OVERRIDE;
123 virtual void ExecuteCommand(int command_id, int event_flags) OVERRIDE; 123 virtual void ExecuteCommand(int command_id, int event_flags) OVERRIDE;
124 124
125 // Forces the currently selected account to be the Wallet as part of
126 // interactive sign-in flows (e.g. when the user clicks the "Sign in" link)
127 // which should be considered as the selected account change.
Evan Stade 2013/03/29 23:08:45 this comment is hard to understand.
aruslan 2013/03/30 00:07:47 Done.
128 // This will calls AccountChoiceChanged on the delegate.
129 void ForceWalletAccountSelected();
130
131 // Returns true if there are any available accounts or if the currently
132 // signed-in account is known.
133 bool HasAccountsToChoose() const;
134
135 // Should be called if the set of available accounts is changed.
136 // The set doesn't have to include the currently signed-in account.
137 // The menu model will be reconstructed due to this call.
138 // It is the responsibility of the caller to update the view accordingly.
139 void SetAvailableAccounts(const std::vector<std::string>& accounts);
140
141 // Should be called if the signed-in account in the content area is known.
142 // The menu model will be reconstructed due to this call.
143 // It is the responsibility of the caller to update the view accordingly.
144 void SetCurrentlySignedInAccount(const std::string& account);
145
146 // Should be called if the sign-in status of the content area is unknown.
147 // Any Wallet error automatically resets the currently signed-in account.
148 // The menu model will be reconstructed due to this call.
149 // It is the responsibility of the caller to update the view accordingly.
150 void ResetCurrentlySignedInAccount();
151
152 // Returns the last known signed-in account, or an empty string.
153 // Returned account may be different from the currently selected account
154 // if the currently selected account is the autofill data.
155 std::string GetCurrentlySignedInAccount() const;
156
125 // Should be called when the Wallet server returns an error. 157 // Should be called when the Wallet server returns an error.
158 // This disables all Wallet accounts and switches to the autofill data.
159 // The AccountChoiceChanged() will be called on the delegate.
126 void SetHadWalletError(); 160 void SetHadWalletError();
127 161
128 // Should be called when the Online Wallet sign-in attempt has failed. 162 // Should be called when the Online Wallet sign-in attempt has failed.
163 // This swithes the dialog to the autofill data.
164 // The AccountChoiceChanged() will be called on the delegate.
129 void SetHadWalletSigninError(); 165 void SetHadWalletSigninError();
130 166
131 bool had_wallet_error() const { return had_wallet_error_; } 167 bool had_wallet_error() const { return had_wallet_error_; }
132 168
169 // Returns true if the selected account is an Online Wallet account.
133 bool WalletIsSelected() const; 170 bool WalletIsSelected() const;
134 171
172 // Returns true if the currently selected account matches the currently
173 // signed-in account.
174 bool IsCurrentlySignedInAccountSelected() const;
175
176 // Returns the command id of the currently selected account.
135 int checked_item() const { return checked_item_; } 177 int checked_item() const { return checked_item_; }
136 178
137 private: 179 private:
138 void PrefChanged(const std::string& pref); 180 void PrefChanged(const std::string& pref);
139 181
140 // Sets |checked_item_| from the relevant pref. 182 // Sets |checked_item_| from the relevant pref.
141 void UpdateCheckmarkFromPref(); 183 void UpdateCheckmarkFromPref();
142 184
143 // Command IDs of the items in this menu. For now, we only support a single 185 // Reconstructs the set of menu items.
144 // account, so there's only one wallet item. 186 void ReconstructMenuItems();
145 static const int kWalletItemId; 187
146 static const int kAutofillItemId; 188 // Command IDs of the items in this menu.
189 static const int kContentAreaWalletItemId; // The content area sign-in.
190 static const int kAutofillItemId; // Local data.
191 static const int kFirstAccountItemId; // First command id for other accounts.
147 192
148 AccountChooserModelDelegate* account_delegate_; 193 AccountChooserModelDelegate* account_delegate_;
149 194
150 PrefService* prefs_; 195 PrefService* prefs_;
151 196
152 // The command id of the currently active item. 197 // The command id of the currently active item.
153 int checked_item_; 198 int checked_item_;
154 199
155 // Whether there has been a Wallet error while the owning dialog has been 200 // Whether there has been a Wallet error while the owning dialog has been
156 // open. 201 // open.
157 bool had_wallet_error_; 202 bool had_wallet_error_;
158 203
159 PrefChangeRegistrar pref_change_registrar_; 204 PrefChangeRegistrar pref_change_registrar_;
160 205
206 // The user account name (email) that is currently signed into the content.
207 // May be different from the currently selected account (e.g. autofill data).
208 // Set whenever the sign-in helper fetches the user info.
209 std::string current_username_;
210
211 // The set of accounts the user could choose from (excluding autofill data).
212 // Doesn't have to include the account currently signed into the content.
213 std::vector<std::string> available_accounts_;
214
161 DISALLOW_COPY_AND_ASSIGN(AccountChooserModel); 215 DISALLOW_COPY_AND_ASSIGN(AccountChooserModel);
162 }; 216 };
163 217
164 // A model for possible months in the Gregorian calendar. 218 // A model for possible months in the Gregorian calendar.
165 class MonthComboboxModel : public ui::ComboboxModel { 219 class MonthComboboxModel : public ui::ComboboxModel {
166 public: 220 public:
167 MonthComboboxModel(); 221 MonthComboboxModel();
168 virtual ~MonthComboboxModel(); 222 virtual ~MonthComboboxModel();
169 223
170 static string16 FormatMonth(int index); 224 static string16 FormatMonth(int index);
(...skipping 19 matching lines...) Expand all
190 private: 244 private:
191 // The current year (e.g., 2012). 245 // The current year (e.g., 2012).
192 int this_year_; 246 int this_year_;
193 247
194 DISALLOW_COPY_AND_ASSIGN(YearComboboxModel); 248 DISALLOW_COPY_AND_ASSIGN(YearComboboxModel);
195 }; 249 };
196 250
197 } // autofill 251 } // autofill
198 252
199 #endif // CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_DIALOG_MODELS_H_ 253 #endif // CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_DIALOG_MODELS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698