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

Side by Side Diff: chrome/browser/ui/cocoa/bookmarks/bookmark_name_folder_controller.mm

Issue 8598015: Do not allow multiline input when naming bookmarks/folders on Mac (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Created 9 years, 1 month 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/cocoa/bookmarks/bookmark_name_folder_controller_unittest.mm » ('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 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_name_folder_controller.h" 5 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_name_folder_controller.h"
6 6
7 #include "base/mac/mac_util.h" 7 #include "base/mac/mac_util.h"
8 #include "base/sys_string_conversions.h" 8 #include "base/sys_string_conversions.h"
9 #include "chrome/browser/profiles/profile.h" 9 #include "chrome/browser/profiles/profile.h"
10 #include "chrome/browser/ui/cocoa/bookmarks/bookmark_model_observer_for_cocoa.h" 10 #include "chrome/browser/ui/cocoa/bookmarks/bookmark_model_observer_for_cocoa.h"
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 modalDelegate:self 81 modalDelegate:self
82 didEndSelector:@selector(didEndSheet:returnCode:contextInfo:) 82 didEndSelector:@selector(didEndSheet:returnCode:contextInfo:)
83 contextInfo:nil]; 83 contextInfo:nil];
84 } 84 }
85 85
86 - (IBAction)cancel:(id)sender { 86 - (IBAction)cancel:(id)sender {
87 [NSApp endSheet:[self window]]; 87 [NSApp endSheet:[self window]];
88 } 88 }
89 89
90 - (IBAction)ok:(id)sender { 90 - (IBAction)ok:(id)sender {
91 NSString* name = [nameField_ stringValue];
92 BookmarkModel* model = profile_->GetBookmarkModel(); 91 BookmarkModel* model = profile_->GetBookmarkModel();
92 NSMutableString* name =
93 [[NSMutableString alloc] initWithString:[nameField_ stringValue]];
94
95 // Replace occurrences of multiple newlines with single newlines.
96 while (NSNotFound != [name rangeOfString:@"\n\n"].location) {
97 [name replaceOccurrencesOfString:@"\n\n"
98 withString:@"\n"
99 options:0
100 range:NSMakeRange(0, [name length])];
101 }
102
103 // Replace single newlines with single spaces.
104 [name replaceOccurrencesOfString:@"\n"
105 withString:@" "
106 options:0
107 range:NSMakeRange(0, [name length])];
108
109 // Make the clean string immutable again and release the mutable object.
110 NSString* clean_name = [name copy];
111 [name release];
112
93 if (node_) { 113 if (node_) {
94 model->SetTitle(node_, base::SysNSStringToUTF16(name)); 114 model->SetTitle(node_, base::SysNSStringToUTF16(clean_name));
Ilya Sherman 2011/11/18 22:51:29 Since I don't think our other platforms can displa
95 } else { 115 } else {
96 model->AddFolder(parent_, 116 model->AddFolder(parent_,
97 newIndex_, 117 newIndex_,
98 base::SysNSStringToUTF16(name)); 118 base::SysNSStringToUTF16(clean_name));
99 } 119 }
120
100 [NSApp endSheet:[self window]]; 121 [NSApp endSheet:[self window]];
101 } 122 }
102 123
103 - (void)didEndSheet:(NSWindow*)sheet 124 - (void)didEndSheet:(NSWindow*)sheet
104 returnCode:(int)returnCode 125 returnCode:(int)returnCode
105 contextInfo:(void*)contextInfo { 126 contextInfo:(void*)contextInfo {
106 [[self window] orderOut:self]; 127 [[self window] orderOut:self];
107 observer_.reset(NULL); 128 observer_.reset(NULL);
108 [self autorelease]; 129 [self autorelease];
109 } 130 }
110 131
111 - (NSString*)folderName { 132 - (NSString*)folderName {
112 return [nameField_ stringValue]; 133 return [nameField_ stringValue];
113 } 134 }
114 135
115 - (void)setFolderName:(NSString*)name { 136 - (void)setFolderName:(NSString*)name {
116 [nameField_ setStringValue:name]; 137 [nameField_ setStringValue:name];
117 } 138 }
118 139
119 - (NSButton*)okButton { 140 - (NSButton*)okButton {
120 return okButton_; 141 return okButton_;
121 } 142 }
122 143
123 @end // BookmarkNameFolderController 144 @end // BookmarkNameFolderController
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/ui/cocoa/bookmarks/bookmark_name_folder_controller_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698