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

Side by Side Diff: chrome/browser/ui/gtk/bookmarks/bookmark_utils_gtk.cc

Issue 7377003: Add support for text/html to bookmarks gtk drag/drop. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Add memory leak fix to test Created 9 years, 5 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 | « no previous file | chrome/browser/ui/gtk/bookmarks/bookmark_utils_gtk_unittest.cc » ('j') | 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/gtk/bookmarks/bookmark_utils_gtk.h" 5 #include "chrome/browser/ui/gtk/bookmarks/bookmark_utils_gtk.h"
6 6
7 #include "base/pickle.h" 7 #include "base/pickle.h"
8 #include "base/string16.h" 8 #include "base/string16.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 gtk_widget_modify_fg(label, GTK_STATE_PRELIGHT, &gtk_util::kGdkBlack); 283 gtk_widget_modify_fg(label, GTK_STATE_PRELIGHT, &gtk_util::kGdkBlack);
284 } 284 }
285 } 285 }
286 286
287 // DnD-related ----------------------------------------------------------------- 287 // DnD-related -----------------------------------------------------------------
288 288
289 int GetCodeMask(bool folder) { 289 int GetCodeMask(bool folder) {
290 int rv = ui::CHROME_BOOKMARK_ITEM; 290 int rv = ui::CHROME_BOOKMARK_ITEM;
291 if (!folder) { 291 if (!folder) {
292 rv |= ui::TEXT_URI_LIST | 292 rv |= ui::TEXT_URI_LIST |
293 ui::TEXT_HTML |
293 ui::TEXT_PLAIN | 294 ui::TEXT_PLAIN |
294 ui::NETSCAPE_URL; 295 ui::NETSCAPE_URL;
295 } 296 }
296 return rv; 297 return rv;
297 } 298 }
298 299
299 void WriteBookmarkToSelection(const BookmarkNode* node, 300 void WriteBookmarkToSelection(const BookmarkNode* node,
300 GtkSelectionData* selection_data, 301 GtkSelectionData* selection_data,
301 guint target_type, 302 guint target_type,
302 Profile* profile) { 303 Profile* profile) {
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 // This const cast should be safe as gtk_selection_data_set_uris() 345 // This const cast should be safe as gtk_selection_data_set_uris()
345 // makes copies. 346 // makes copies.
346 uris[i] = const_cast<gchar*>(url.spec().c_str()); 347 uris[i] = const_cast<gchar*>(url.spec().c_str());
347 } 348 }
348 uris[nodes.size()] = NULL; 349 uris[nodes.size()] = NULL;
349 350
350 gtk_selection_data_set_uris(selection_data, uris); 351 gtk_selection_data_set_uris(selection_data, uris);
351 free(uris); 352 free(uris);
352 break; 353 break;
353 } 354 }
355 case ui::TEXT_HTML: {
356 std::string utf8_title = UTF16ToUTF8(nodes[0]->GetTitle());
357 std::string utf8_html = StringPrintf("<a href=\"%s\">%s</a>",
358 nodes[0]->GetURL().spec().c_str(),
359 utf8_title.c_str());
360 gtk_selection_data_set(selection_data,
361 GetAtomForTarget(ui::TEXT_HTML),
362 kBitsInAByte,
363 reinterpret_cast<const guchar*>(utf8_html.data()),
364 utf8_html.size());
365 break;
366 }
354 case ui::TEXT_PLAIN: { 367 case ui::TEXT_PLAIN: {
355 gtk_selection_data_set_text(selection_data, 368 gtk_selection_data_set_text(selection_data,
356 nodes[0]->GetURL().spec().c_str(), -1); 369 nodes[0]->GetURL().spec().c_str(), -1);
357 break; 370 break;
358 } 371 }
359 default: { 372 default: {
360 DLOG(ERROR) << "Unsupported drag get type!"; 373 DLOG(ERROR) << "Unsupported drag get type!";
361 } 374 }
362 } 375 }
363 } 376 }
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 GURL url; 437 GURL url;
425 string16 title; 438 string16 title;
426 if (!ui::ExtractNetscapeURL(selection_data, &url, &title)) 439 if (!ui::ExtractNetscapeURL(selection_data, &url, &title))
427 return false; 440 return false;
428 441
429 model->AddURL(parent, idx, title, url); 442 model->AddURL(parent, idx, title, url);
430 return true; 443 return true;
431 } 444 }
432 445
433 } // namespace bookmark_utils 446 } // namespace bookmark_utils
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/ui/gtk/bookmarks/bookmark_utils_gtk_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698