mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-26 14:22:01 +00:00
Ensure that correct Bookmarks context menu items are enabled when certain types of element are selected. Hook up 'Open in New Window' for Bookmark Groups
This commit is contained in:
parent
181ca4c488
commit
875ed4db44
@ -84,6 +84,8 @@ class nsIAtom;
|
||||
-(IBAction)openBookmarkInNewTab:(id)aSender;
|
||||
-(IBAction)openBookmarkInNewWindow:(id)aSender;
|
||||
|
||||
-(void)openBookmarkGroup:(id)aTabView groupElement:(nsIDOMElement*)aFolder;
|
||||
|
||||
// Datasource methods.
|
||||
- (id)outlineView:(NSOutlineView *)outlineView child:(int)index ofItem:(id)item;
|
||||
- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item;
|
||||
|
@ -675,10 +675,46 @@
|
||||
NSString* hrefStr = [NSString stringWithCharacters:hrefAttr.get() length:hrefAttr.Length()];
|
||||
NSURL* urlToLoad = [NSURL URLWithString: hrefStr];
|
||||
|
||||
[mBrowserWindowController openNewWindowWithURL: urlToLoad loadInBackground: NO];
|
||||
nsAutoString group;
|
||||
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface([item contentNode]));
|
||||
elt->GetAttribute(NS_LITERAL_STRING("group"), group);
|
||||
if (group.IsEmpty())
|
||||
[mBrowserWindowController openNewWindowWithURL: urlToLoad loadInBackground: NO];
|
||||
else
|
||||
[mBrowserWindowController openNewWindowWithGroup: elt loadInBackground: NO];
|
||||
}
|
||||
}
|
||||
|
||||
-(void)openBookmarkGroup:(id)aTabView groupElement:(nsIDOMElement*)aFolder
|
||||
{
|
||||
mBookmarks->OpenBookmarkGroup(aTabView, aFolder);
|
||||
}
|
||||
|
||||
-(BOOL)validateMenuItem:(NSMenuItem*)aMenuItem
|
||||
{
|
||||
int index = [mOutlineView selectedRow];
|
||||
if (index == -1)
|
||||
return NO;
|
||||
|
||||
BookmarkItem* item = [mOutlineView itemAtRow: index];
|
||||
BOOL isBookmark = [mOutlineView isExpandable:item] == NO;
|
||||
|
||||
nsAutoString group;
|
||||
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface([item contentNode]));
|
||||
elt->GetAttribute(NS_LITERAL_STRING("group"), group);
|
||||
BOOL isGroup = !group.IsEmpty();
|
||||
|
||||
if (([aMenuItem action] == @selector(openBookmarkInNewWindow:))) {
|
||||
// Bookmarks and Bookmark Groups can be opened in a new window
|
||||
return (isBookmark || isGroup);
|
||||
}
|
||||
else if (([aMenuItem action] == @selector(openBookmarkInNewTab:))) {
|
||||
// Only Bookmarks can be opened in new tabs
|
||||
return isBookmark;
|
||||
}
|
||||
return YES;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation BookmarkItem
|
||||
|
@ -161,6 +161,7 @@ class nsIDOMNode;
|
||||
-(void)enterModalSession;
|
||||
|
||||
-(void)openNewWindowWithURL: (NSURL*)aURL loadInBackground: (BOOL)aLoadInBG;
|
||||
-(void)openNewWindowWithGroup: (nsIDOMElement*)aFolderElement loadInBackground: (BOOL)aLoadInBG;
|
||||
-(void)openNewTabWithURL: (NSURL*)aURL loadInBackground: (BOOL)aLoadInBG;
|
||||
|
||||
-(void)autosaveWindowFrame;
|
||||
|
@ -750,6 +750,25 @@ static NSString *PrintToolbarItemIdentifier = @"Print Toolbar Item";
|
||||
}
|
||||
}
|
||||
|
||||
-(void)openNewWindowWithGroup: (nsIDOMElement*)aFolderElement loadInBackground: (BOOL)aLoadInBG
|
||||
{
|
||||
// Autosave our dimensions before we open a new window. That ensures the size ends up matching.
|
||||
[self autosaveWindowFrame];
|
||||
|
||||
// Tell the Tab Browser in the newly created window to load the group
|
||||
BrowserWindowController* browser = [[BrowserWindowController alloc] initWithWindowNibName: @"BrowserWindow"];
|
||||
if (aLoadInBG)
|
||||
[[browser window] orderWindow: NSWindowBelow relativeTo: [[self window] windowNumber]];
|
||||
else {
|
||||
// Focus the content area and show the window.
|
||||
[browser enterModalSession];
|
||||
[[[browser getBrowserWrapper] getBrowserView] setActive: YES];
|
||||
}
|
||||
|
||||
id tabBrowser = [browser getTabBrowser];
|
||||
[mSidebarBookmarksDataSource openBookmarkGroup: tabBrowser groupElement: aFolderElement];
|
||||
}
|
||||
|
||||
-(void)openNewTabWithURL: (NSURL*)aURL loadInBackground: (BOOL)aLoadInBG
|
||||
{
|
||||
NSTabViewItem* newTab = [[[NSTabViewItem alloc] initWithIdentifier: nil] autorelease];
|
||||
|
@ -84,6 +84,8 @@ class nsIAtom;
|
||||
-(IBAction)openBookmarkInNewTab:(id)aSender;
|
||||
-(IBAction)openBookmarkInNewWindow:(id)aSender;
|
||||
|
||||
-(void)openBookmarkGroup:(id)aTabView groupElement:(nsIDOMElement*)aFolder;
|
||||
|
||||
// Datasource methods.
|
||||
- (id)outlineView:(NSOutlineView *)outlineView child:(int)index ofItem:(id)item;
|
||||
- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item;
|
||||
|
@ -675,10 +675,46 @@
|
||||
NSString* hrefStr = [NSString stringWithCharacters:hrefAttr.get() length:hrefAttr.Length()];
|
||||
NSURL* urlToLoad = [NSURL URLWithString: hrefStr];
|
||||
|
||||
[mBrowserWindowController openNewWindowWithURL: urlToLoad loadInBackground: NO];
|
||||
nsAutoString group;
|
||||
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface([item contentNode]));
|
||||
elt->GetAttribute(NS_LITERAL_STRING("group"), group);
|
||||
if (group.IsEmpty())
|
||||
[mBrowserWindowController openNewWindowWithURL: urlToLoad loadInBackground: NO];
|
||||
else
|
||||
[mBrowserWindowController openNewWindowWithGroup: elt loadInBackground: NO];
|
||||
}
|
||||
}
|
||||
|
||||
-(void)openBookmarkGroup:(id)aTabView groupElement:(nsIDOMElement*)aFolder
|
||||
{
|
||||
mBookmarks->OpenBookmarkGroup(aTabView, aFolder);
|
||||
}
|
||||
|
||||
-(BOOL)validateMenuItem:(NSMenuItem*)aMenuItem
|
||||
{
|
||||
int index = [mOutlineView selectedRow];
|
||||
if (index == -1)
|
||||
return NO;
|
||||
|
||||
BookmarkItem* item = [mOutlineView itemAtRow: index];
|
||||
BOOL isBookmark = [mOutlineView isExpandable:item] == NO;
|
||||
|
||||
nsAutoString group;
|
||||
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface([item contentNode]));
|
||||
elt->GetAttribute(NS_LITERAL_STRING("group"), group);
|
||||
BOOL isGroup = !group.IsEmpty();
|
||||
|
||||
if (([aMenuItem action] == @selector(openBookmarkInNewWindow:))) {
|
||||
// Bookmarks and Bookmark Groups can be opened in a new window
|
||||
return (isBookmark || isGroup);
|
||||
}
|
||||
else if (([aMenuItem action] == @selector(openBookmarkInNewTab:))) {
|
||||
// Only Bookmarks can be opened in new tabs
|
||||
return isBookmark;
|
||||
}
|
||||
return YES;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation BookmarkItem
|
||||
|
@ -161,6 +161,7 @@ class nsIDOMNode;
|
||||
-(void)enterModalSession;
|
||||
|
||||
-(void)openNewWindowWithURL: (NSURL*)aURL loadInBackground: (BOOL)aLoadInBG;
|
||||
-(void)openNewWindowWithGroup: (nsIDOMElement*)aFolderElement loadInBackground: (BOOL)aLoadInBG;
|
||||
-(void)openNewTabWithURL: (NSURL*)aURL loadInBackground: (BOOL)aLoadInBG;
|
||||
|
||||
-(void)autosaveWindowFrame;
|
||||
|
@ -750,6 +750,25 @@ static NSString *PrintToolbarItemIdentifier = @"Print Toolbar Item";
|
||||
}
|
||||
}
|
||||
|
||||
-(void)openNewWindowWithGroup: (nsIDOMElement*)aFolderElement loadInBackground: (BOOL)aLoadInBG
|
||||
{
|
||||
// Autosave our dimensions before we open a new window. That ensures the size ends up matching.
|
||||
[self autosaveWindowFrame];
|
||||
|
||||
// Tell the Tab Browser in the newly created window to load the group
|
||||
BrowserWindowController* browser = [[BrowserWindowController alloc] initWithWindowNibName: @"BrowserWindow"];
|
||||
if (aLoadInBG)
|
||||
[[browser window] orderWindow: NSWindowBelow relativeTo: [[self window] windowNumber]];
|
||||
else {
|
||||
// Focus the content area and show the window.
|
||||
[browser enterModalSession];
|
||||
[[[browser getBrowserWrapper] getBrowserView] setActive: YES];
|
||||
}
|
||||
|
||||
id tabBrowser = [browser getTabBrowser];
|
||||
[mSidebarBookmarksDataSource openBookmarkGroup: tabBrowser groupElement: aFolderElement];
|
||||
}
|
||||
|
||||
-(void)openNewTabWithURL: (NSURL*)aURL loadInBackground: (BOOL)aLoadInBG
|
||||
{
|
||||
NSTabViewItem* newTab = [[[NSTabViewItem alloc] initWithIdentifier: nil] autorelease];
|
||||
|
@ -84,6 +84,8 @@ class nsIAtom;
|
||||
-(IBAction)openBookmarkInNewTab:(id)aSender;
|
||||
-(IBAction)openBookmarkInNewWindow:(id)aSender;
|
||||
|
||||
-(void)openBookmarkGroup:(id)aTabView groupElement:(nsIDOMElement*)aFolder;
|
||||
|
||||
// Datasource methods.
|
||||
- (id)outlineView:(NSOutlineView *)outlineView child:(int)index ofItem:(id)item;
|
||||
- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item;
|
||||
|
@ -675,10 +675,46 @@
|
||||
NSString* hrefStr = [NSString stringWithCharacters:hrefAttr.get() length:hrefAttr.Length()];
|
||||
NSURL* urlToLoad = [NSURL URLWithString: hrefStr];
|
||||
|
||||
[mBrowserWindowController openNewWindowWithURL: urlToLoad loadInBackground: NO];
|
||||
nsAutoString group;
|
||||
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface([item contentNode]));
|
||||
elt->GetAttribute(NS_LITERAL_STRING("group"), group);
|
||||
if (group.IsEmpty())
|
||||
[mBrowserWindowController openNewWindowWithURL: urlToLoad loadInBackground: NO];
|
||||
else
|
||||
[mBrowserWindowController openNewWindowWithGroup: elt loadInBackground: NO];
|
||||
}
|
||||
}
|
||||
|
||||
-(void)openBookmarkGroup:(id)aTabView groupElement:(nsIDOMElement*)aFolder
|
||||
{
|
||||
mBookmarks->OpenBookmarkGroup(aTabView, aFolder);
|
||||
}
|
||||
|
||||
-(BOOL)validateMenuItem:(NSMenuItem*)aMenuItem
|
||||
{
|
||||
int index = [mOutlineView selectedRow];
|
||||
if (index == -1)
|
||||
return NO;
|
||||
|
||||
BookmarkItem* item = [mOutlineView itemAtRow: index];
|
||||
BOOL isBookmark = [mOutlineView isExpandable:item] == NO;
|
||||
|
||||
nsAutoString group;
|
||||
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface([item contentNode]));
|
||||
elt->GetAttribute(NS_LITERAL_STRING("group"), group);
|
||||
BOOL isGroup = !group.IsEmpty();
|
||||
|
||||
if (([aMenuItem action] == @selector(openBookmarkInNewWindow:))) {
|
||||
// Bookmarks and Bookmark Groups can be opened in a new window
|
||||
return (isBookmark || isGroup);
|
||||
}
|
||||
else if (([aMenuItem action] == @selector(openBookmarkInNewTab:))) {
|
||||
// Only Bookmarks can be opened in new tabs
|
||||
return isBookmark;
|
||||
}
|
||||
return YES;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation BookmarkItem
|
||||
|
@ -161,6 +161,7 @@ class nsIDOMNode;
|
||||
-(void)enterModalSession;
|
||||
|
||||
-(void)openNewWindowWithURL: (NSURL*)aURL loadInBackground: (BOOL)aLoadInBG;
|
||||
-(void)openNewWindowWithGroup: (nsIDOMElement*)aFolderElement loadInBackground: (BOOL)aLoadInBG;
|
||||
-(void)openNewTabWithURL: (NSURL*)aURL loadInBackground: (BOOL)aLoadInBG;
|
||||
|
||||
-(void)autosaveWindowFrame;
|
||||
|
@ -750,6 +750,25 @@ static NSString *PrintToolbarItemIdentifier = @"Print Toolbar Item";
|
||||
}
|
||||
}
|
||||
|
||||
-(void)openNewWindowWithGroup: (nsIDOMElement*)aFolderElement loadInBackground: (BOOL)aLoadInBG
|
||||
{
|
||||
// Autosave our dimensions before we open a new window. That ensures the size ends up matching.
|
||||
[self autosaveWindowFrame];
|
||||
|
||||
// Tell the Tab Browser in the newly created window to load the group
|
||||
BrowserWindowController* browser = [[BrowserWindowController alloc] initWithWindowNibName: @"BrowserWindow"];
|
||||
if (aLoadInBG)
|
||||
[[browser window] orderWindow: NSWindowBelow relativeTo: [[self window] windowNumber]];
|
||||
else {
|
||||
// Focus the content area and show the window.
|
||||
[browser enterModalSession];
|
||||
[[[browser getBrowserWrapper] getBrowserView] setActive: YES];
|
||||
}
|
||||
|
||||
id tabBrowser = [browser getTabBrowser];
|
||||
[mSidebarBookmarksDataSource openBookmarkGroup: tabBrowser groupElement: aFolderElement];
|
||||
}
|
||||
|
||||
-(void)openNewTabWithURL: (NSURL*)aURL loadInBackground: (BOOL)aLoadInBG
|
||||
{
|
||||
NSTabViewItem* newTab = [[[NSTabViewItem alloc] initWithIdentifier: nil] autorelease];
|
||||
|
@ -84,6 +84,8 @@ class nsIAtom;
|
||||
-(IBAction)openBookmarkInNewTab:(id)aSender;
|
||||
-(IBAction)openBookmarkInNewWindow:(id)aSender;
|
||||
|
||||
-(void)openBookmarkGroup:(id)aTabView groupElement:(nsIDOMElement*)aFolder;
|
||||
|
||||
// Datasource methods.
|
||||
- (id)outlineView:(NSOutlineView *)outlineView child:(int)index ofItem:(id)item;
|
||||
- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item;
|
||||
|
@ -675,10 +675,46 @@
|
||||
NSString* hrefStr = [NSString stringWithCharacters:hrefAttr.get() length:hrefAttr.Length()];
|
||||
NSURL* urlToLoad = [NSURL URLWithString: hrefStr];
|
||||
|
||||
[mBrowserWindowController openNewWindowWithURL: urlToLoad loadInBackground: NO];
|
||||
nsAutoString group;
|
||||
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface([item contentNode]));
|
||||
elt->GetAttribute(NS_LITERAL_STRING("group"), group);
|
||||
if (group.IsEmpty())
|
||||
[mBrowserWindowController openNewWindowWithURL: urlToLoad loadInBackground: NO];
|
||||
else
|
||||
[mBrowserWindowController openNewWindowWithGroup: elt loadInBackground: NO];
|
||||
}
|
||||
}
|
||||
|
||||
-(void)openBookmarkGroup:(id)aTabView groupElement:(nsIDOMElement*)aFolder
|
||||
{
|
||||
mBookmarks->OpenBookmarkGroup(aTabView, aFolder);
|
||||
}
|
||||
|
||||
-(BOOL)validateMenuItem:(NSMenuItem*)aMenuItem
|
||||
{
|
||||
int index = [mOutlineView selectedRow];
|
||||
if (index == -1)
|
||||
return NO;
|
||||
|
||||
BookmarkItem* item = [mOutlineView itemAtRow: index];
|
||||
BOOL isBookmark = [mOutlineView isExpandable:item] == NO;
|
||||
|
||||
nsAutoString group;
|
||||
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface([item contentNode]));
|
||||
elt->GetAttribute(NS_LITERAL_STRING("group"), group);
|
||||
BOOL isGroup = !group.IsEmpty();
|
||||
|
||||
if (([aMenuItem action] == @selector(openBookmarkInNewWindow:))) {
|
||||
// Bookmarks and Bookmark Groups can be opened in a new window
|
||||
return (isBookmark || isGroup);
|
||||
}
|
||||
else if (([aMenuItem action] == @selector(openBookmarkInNewTab:))) {
|
||||
// Only Bookmarks can be opened in new tabs
|
||||
return isBookmark;
|
||||
}
|
||||
return YES;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation BookmarkItem
|
||||
|
@ -161,6 +161,7 @@ class nsIDOMNode;
|
||||
-(void)enterModalSession;
|
||||
|
||||
-(void)openNewWindowWithURL: (NSURL*)aURL loadInBackground: (BOOL)aLoadInBG;
|
||||
-(void)openNewWindowWithGroup: (nsIDOMElement*)aFolderElement loadInBackground: (BOOL)aLoadInBG;
|
||||
-(void)openNewTabWithURL: (NSURL*)aURL loadInBackground: (BOOL)aLoadInBG;
|
||||
|
||||
-(void)autosaveWindowFrame;
|
||||
|
@ -750,6 +750,25 @@ static NSString *PrintToolbarItemIdentifier = @"Print Toolbar Item";
|
||||
}
|
||||
}
|
||||
|
||||
-(void)openNewWindowWithGroup: (nsIDOMElement*)aFolderElement loadInBackground: (BOOL)aLoadInBG
|
||||
{
|
||||
// Autosave our dimensions before we open a new window. That ensures the size ends up matching.
|
||||
[self autosaveWindowFrame];
|
||||
|
||||
// Tell the Tab Browser in the newly created window to load the group
|
||||
BrowserWindowController* browser = [[BrowserWindowController alloc] initWithWindowNibName: @"BrowserWindow"];
|
||||
if (aLoadInBG)
|
||||
[[browser window] orderWindow: NSWindowBelow relativeTo: [[self window] windowNumber]];
|
||||
else {
|
||||
// Focus the content area and show the window.
|
||||
[browser enterModalSession];
|
||||
[[[browser getBrowserWrapper] getBrowserView] setActive: YES];
|
||||
}
|
||||
|
||||
id tabBrowser = [browser getTabBrowser];
|
||||
[mSidebarBookmarksDataSource openBookmarkGroup: tabBrowser groupElement: aFolderElement];
|
||||
}
|
||||
|
||||
-(void)openNewTabWithURL: (NSURL*)aURL loadInBackground: (BOOL)aLoadInBG
|
||||
{
|
||||
NSTabViewItem* newTab = [[[NSTabViewItem alloc] initWithIdentifier: nil] autorelease];
|
||||
|
Loading…
Reference in New Issue
Block a user