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

Side by Side Diff: chrome/browser/bookmarks/bookmark_drag_data.cc

Issue 1691018: GTK: make tabbed bookmark manager compatible with more types of drops. (Closed) Base URL: git://codf21.jail/chromium.git
Patch Set: naming Created 10 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
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/bookmarks/bookmark_drag_data.h" 5 #include "chrome/browser/bookmarks/bookmark_drag_data.h"
6 6
7 #include "app/clipboard/scoped_clipboard_writer.h" 7 #include "app/clipboard/scoped_clipboard_writer.h"
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/pickle.h" 9 #include "base/pickle.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 98
99 if (nodes.empty()) 99 if (nodes.empty())
100 return false; 100 return false;
101 101
102 for (size_t i = 0; i < nodes.size(); ++i) 102 for (size_t i = 0; i < nodes.size(); ++i)
103 elements.push_back(Element(nodes[i])); 103 elements.push_back(Element(nodes[i]));
104 104
105 return true; 105 return true;
106 } 106 }
107 107
108 bool BookmarkDragData::ReadFromTuple(const GURL& url, const string16& title) {
109 Clear();
110
111 if (!url.is_valid())
112 return false;
113
114 Element element;
115 element.title = title;
116 element.url = url;
117 element.is_url = true;
118
119 elements.push_back(element);
120 }
121
108 #if !defined(OS_MACOSX) 122 #if !defined(OS_MACOSX)
109 void BookmarkDragData::WriteToClipboard(Profile* profile) const { 123 void BookmarkDragData::WriteToClipboard(Profile* profile) const {
110 ScopedClipboardWriter scw(g_browser_process->clipboard()); 124 ScopedClipboardWriter scw(g_browser_process->clipboard());
111 125
112 // If there is only one element and it is a URL, write the URL to the 126 // If there is only one element and it is a URL, write the URL to the
113 // clipboard. 127 // clipboard.
114 if (elements.size() == 1 && elements[0].is_url) { 128 if (elements.size() == 1 && elements[0].is_url) {
115 const string16& title = elements[0].title; 129 const string16& title = elements[0].title;
116 std::string url = elements[0].url.spec(); 130 std::string url = elements[0].url.spec();
117 131
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 221
208 if (data.HasCustomFormat(GetBookmarkCustomFormat())) { 222 if (data.HasCustomFormat(GetBookmarkCustomFormat())) {
209 Pickle drag_data_pickle; 223 Pickle drag_data_pickle;
210 if (data.GetPickledData(GetBookmarkCustomFormat(), &drag_data_pickle)) { 224 if (data.GetPickledData(GetBookmarkCustomFormat(), &drag_data_pickle)) {
211 if (!ReadFromPickle(&drag_data_pickle)) 225 if (!ReadFromPickle(&drag_data_pickle))
212 return false; 226 return false;
213 } 227 }
214 } else { 228 } else {
215 // See if there is a URL on the clipboard. 229 // See if there is a URL on the clipboard.
216 Element element; 230 Element element;
231 GURL url;
217 std::wstring title; 232 std::wstring title;
218 if (data.GetURLAndTitle(&element.url, &title) && 233 if (data.GetURLAndTitle(&url, &title))
219 element.url.is_valid()) { 234 ReadFromTuple(url, WideToUTF16(title));
220 element.title = WideToUTF16(title); 235 }
221 element.is_url = true;
222 elements.push_back(element);
223 }
224 }
225 236
226 return is_valid(); 237 return is_valid();
227 } 238 }
228 #endif 239 #endif
229 240
230 void BookmarkDragData::WriteToPickle(Profile* profile, Pickle* pickle) const { 241 void BookmarkDragData::WriteToPickle(Profile* profile, Pickle* pickle) const {
231 FilePath path = profile ? profile->GetPath() : FilePath(); 242 FilePath path = profile ? profile->GetPath() : FilePath();
232 FilePath::WriteStringTypeToPickle(pickle, path.value()); 243 FilePath::WriteStringTypeToPickle(pickle, path.value());
233 pickle->WriteSize(elements.size()); 244 pickle->WriteSize(elements.size());
234 245
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 DCHECK(profile_path_.empty()); 299 DCHECK(profile_path_.empty());
289 300
290 if (profile) 301 if (profile)
291 profile_path_ = profile->GetPath().value(); 302 profile_path_ = profile->GetPath().value();
292 } 303 }
293 304
294 bool BookmarkDragData::IsFromProfile(Profile* profile) const { 305 bool BookmarkDragData::IsFromProfile(Profile* profile) const {
295 // An empty path means the data is not associated with any profile. 306 // An empty path means the data is not associated with any profile.
296 return !profile_path_.empty() && profile_path_ == profile->GetPath().value(); 307 return !profile_path_.empty() && profile_path_ == profile->GetPath().value();
297 } 308 }
OLDNEW
« no previous file with comments | « chrome/browser/bookmarks/bookmark_drag_data.h ('k') | chrome/browser/tab_contents/web_drag_dest_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698