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

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

Issue 194052: Clipboard:... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fixes Created 11 years, 3 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
« no previous file with comments | « chrome/browser/autocomplete/autocomplete_edit_view_win.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/pickle.h" 8 #include "base/pickle.h"
9 #include "base/scoped_clipboard_writer.h" 9 #include "base/scoped_clipboard_writer.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
11 #include "chrome/browser/bookmarks/bookmark_model.h" 11 #include "chrome/browser/bookmarks/bookmark_model.h"
12 #include "chrome/browser/profile.h" 12 #include "chrome/browser/profile.h"
13 #include "chrome/common/url_constants.h" 13 #include "chrome/common/url_constants.h"
14 #include "chrome/browser/browser_process.h" 14 #include "chrome/browser/browser_process.h"
15 #include "net/base/escape.h"
15 16
16 const char* BookmarkDragData::kClipboardFormatString = 17 const char* BookmarkDragData::kClipboardFormatString =
17 "chromium/x-bookmark-entries"; 18 "chromium/x-bookmark-entries";
18 19
19 BookmarkDragData::Element::Element(const BookmarkNode* node) 20 BookmarkDragData::Element::Element(const BookmarkNode* node)
20 : is_url(node->is_url()), 21 : is_url(node->is_url()),
21 url(node->GetURL()), 22 url(node->GetURL()),
22 title(node->GetTitle()), 23 title(node->GetTitle()),
23 id_(node->id()) { 24 id_(node->id()) {
24 for (int i = 0; i < node->GetChildCount(); ++i) 25 for (int i = 0; i < node->GetChildCount(); ++i)
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 elements.push_back(Element(nodes[i])); 90 elements.push_back(Element(nodes[i]));
90 } 91 }
91 92
92 #if !defined(OS_MACOSX) 93 #if !defined(OS_MACOSX)
93 void BookmarkDragData::WriteToClipboard(Profile* profile) const { 94 void BookmarkDragData::WriteToClipboard(Profile* profile) const {
94 ScopedClipboardWriter scw(g_browser_process->clipboard()); 95 ScopedClipboardWriter scw(g_browser_process->clipboard());
95 96
96 // If there is only one element and it is a URL, write the URL to the 97 // If there is only one element and it is a URL, write the URL to the
97 // clipboard. 98 // clipboard.
98 if (elements.size() == 1 && elements[0].is_url) { 99 if (elements.size() == 1 && elements[0].is_url) {
99 scw.WriteBookmark(WideToUTF16Hack(elements[0].title), 100 string16 title = WideToUTF16Hack(elements[0].title);
100 elements[0].url.spec()); 101 std::string url = elements[0].url.spec();
102
103 scw.WriteBookmark(title, url);
104 scw.WriteHyperlink(EscapeForHTML(UTF16ToUTF8(title)), url);
101 } 105 }
102 106
103 Pickle pickle; 107 Pickle pickle;
104 WriteToPickle(profile, &pickle); 108 WriteToPickle(profile, &pickle);
105 scw.WritePickledData(pickle, kClipboardFormatString); 109 scw.WritePickledData(pickle, kClipboardFormatString);
106 } 110 }
107 111
108 bool BookmarkDragData::ReadFromClipboard() { 112 bool BookmarkDragData::ReadFromClipboard() {
109 std::string data; 113 std::string data;
110 Clipboard* clipboard = g_browser_process->clipboard(); 114 Clipboard* clipboard = g_browser_process->clipboard();
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 251
248 bool BookmarkDragData::IsFromProfile(Profile* profile) const { 252 bool BookmarkDragData::IsFromProfile(Profile* profile) const {
249 // An empty path means the data is not associated with any profile. 253 // An empty path means the data is not associated with any profile.
250 return (!profile_path_.empty() && 254 return (!profile_path_.empty() &&
251 #if defined(WCHAR_T_IS_UTF16) 255 #if defined(WCHAR_T_IS_UTF16)
252 profile->GetPath().ToWStringHack() == profile_path_); 256 profile->GetPath().ToWStringHack() == profile_path_);
253 #elif defined(WCHAR_T_IS_UTF32) 257 #elif defined(WCHAR_T_IS_UTF32)
254 profile->GetPath().value() == profile_path_); 258 profile->GetPath().value() == profile_path_);
255 #endif 259 #endif
256 } 260 }
OLDNEW
« no previous file with comments | « chrome/browser/autocomplete/autocomplete_edit_view_win.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698