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

Side by Side Diff: chrome/browser/ui/intents/web_intent_picker_model.cc

Issue 10827238: [WebIntents, Gtk] "Waiting for Suggestion" dialog (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Update Gtk dialog to look decent. Created 8 years, 4 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 #include "chrome/browser/ui/intents/web_intent_picker_model.h" 5 #include "chrome/browser/ui/intents/web_intent_picker_model.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
11 #include "chrome/browser/ui/intents/web_intent_picker_model_observer.h" 11 #include "chrome/browser/ui/intents/web_intent_picker_model_observer.h"
12 #include "grit/generated_resources.h" 12 #include "grit/generated_resources.h"
13 #include "grit/ui_resources.h" 13 #include "grit/ui_resources.h"
14 #include "ui/base/l10n/l10n_util.h" 14 #include "ui/base/l10n/l10n_util.h"
15 #include "ui/base/resource/resource_bundle.h" 15 #include "ui/base/resource/resource_bundle.h"
16 #include "ui/gfx/image/image.h" 16 #include "ui/gfx/image/image.h"
17 17
18 namespace { 18 namespace {
19 19
20 const size_t kMaxSuggestionCount = 5; // Maximum number of visible suggestions. 20 const size_t kMaxSuggestionCount = 5; // Maximum number of visible suggestions.
21 21
22 } // namespace 22 } // namespace
23 23
24 WebIntentPickerModel::WebIntentPickerModel() 24 WebIntentPickerModel::WebIntentPickerModel()
25 : observer_(NULL) { 25 : observer_(NULL),
26 waiting_for_suggestions_(true) {
26 } 27 }
27 28
28 WebIntentPickerModel::~WebIntentPickerModel() { 29 WebIntentPickerModel::~WebIntentPickerModel() {
29 DestroyAll(); 30 DestroyAll();
30 } 31 }
31 32
32 void WebIntentPickerModel::AddInstalledService(const string16& title, 33 void WebIntentPickerModel::AddInstalledService(const string16& title,
33 const GURL& url, 34 const GURL& url,
34 Disposition disposition) { 35 Disposition disposition) {
35 // TODO(groby): Revisit to remove O(n^2) complexity. 36 // TODO(groby): Revisit to remove O(n^2) complexity.
(...skipping 15 matching lines...) Expand all
51 delete service; 52 delete service;
52 if (observer_) 53 if (observer_)
53 observer_->OnModelChanged(this); 54 observer_->OnModelChanged(this);
54 } 55 }
55 56
56 void WebIntentPickerModel::Clear() { 57 void WebIntentPickerModel::Clear() {
57 DestroyAll(); 58 DestroyAll();
58 action_.clear(); 59 action_.clear();
59 mimetype_.clear(); 60 mimetype_.clear();
60 inline_disposition_url_ = GURL::EmptyGURL(); 61 inline_disposition_url_ = GURL::EmptyGURL();
62 waiting_for_suggestions_ = true;
61 if (observer_) 63 if (observer_)
62 observer_->OnModelChanged(this); 64 observer_->OnModelChanged(this);
63 } 65 }
64 66
65 const WebIntentPickerModel::InstalledService& 67 const WebIntentPickerModel::InstalledService&
66 WebIntentPickerModel::GetInstalledServiceAt(size_t index) const { 68 WebIntentPickerModel::GetInstalledServiceAt(size_t index) const {
67 DCHECK_LT(index, installed_services_.size()); 69 DCHECK_LT(index, installed_services_.size());
68 return *installed_services_[index]; 70 return *installed_services_[index];
69 } 71 }
70 72
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 const InstalledService* service = GetInstalledServiceWithURL(url); 150 const InstalledService* service = GetInstalledServiceWithURL(url);
149 DCHECK(service); 151 DCHECK(service);
150 observer_->OnInlineDisposition(service->title, url); 152 observer_->OnInlineDisposition(service->title, url);
151 } 153 }
152 } 154 }
153 155
154 bool WebIntentPickerModel::IsInlineDisposition() const { 156 bool WebIntentPickerModel::IsInlineDisposition() const {
155 return !inline_disposition_url_.is_empty(); 157 return !inline_disposition_url_.is_empty();
156 } 158 }
157 159
160 bool WebIntentPickerModel::IsWaitingForSuggestions() const {
161 return waiting_for_suggestions_;
162 }
163
164 void WebIntentPickerModel::SetWaitingForSuggestions(bool waiting) {
165 waiting_for_suggestions_ = waiting;
166 if (observer_)
167 observer_->OnModelChanged(this);
168 }
169
158 void WebIntentPickerModel::DestroyAll() { 170 void WebIntentPickerModel::DestroyAll() {
159 STLDeleteElements(&installed_services_); 171 STLDeleteElements(&installed_services_);
160 STLDeleteElements(&suggested_extensions_); 172 STLDeleteElements(&suggested_extensions_);
161 } 173 }
162 174
163 WebIntentPickerModel::InstalledService::InstalledService( 175 WebIntentPickerModel::InstalledService::InstalledService(
164 const string16& title, 176 const string16& title,
165 const GURL& url, 177 const GURL& url,
166 Disposition disposition) 178 Disposition disposition)
167 : title(title), 179 : title(title),
(...skipping 12 matching lines...) Expand all
180 double average_rating) 192 double average_rating)
181 : title(title), 193 : title(title),
182 id(id), 194 id(id),
183 average_rating(average_rating), 195 average_rating(average_rating),
184 icon(ui::ResourceBundle::GetSharedInstance().GetNativeImageNamed( 196 icon(ui::ResourceBundle::GetSharedInstance().GetNativeImageNamed(
185 IDR_DEFAULT_FAVICON)) { 197 IDR_DEFAULT_FAVICON)) {
186 } 198 }
187 199
188 WebIntentPickerModel::SuggestedExtension::~SuggestedExtension() { 200 WebIntentPickerModel::SuggestedExtension::~SuggestedExtension() {
189 } 201 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698