More work on importing of bookmarks.

This commit is contained in:
hyatt%netscape.com 2002-04-29 01:28:30 +00:00
Родитель 435f28cf26
Коммит cc4abd5828
28 изменённых файлов: 252 добавлений и 28 удалений

Просмотреть файл

@ -97,6 +97,8 @@ class nsIAtom;
- (id)copyWithZone:(NSZone *)aZone;
@end
class nsIDOMHTMLDocument;
class BookmarksService
{
public:
@ -125,6 +127,8 @@ public:
static void EnsureToolbarRoot();
static void ImportBookmarks(nsIDOMHTMLDocument* aHTMLDoc);
static void GetTitleAndHrefForBrowserView(id aBrowserView, nsString& aTitle, nsString& aHref);
static void OpenBookmarkGroup(id aTabView, nsIDOMElement* aFolder);

Просмотреть файл

@ -979,6 +979,12 @@ BookmarksService::OpenMenuBookmark(BrowserWindowController* aController, id aMen
[[[aController getBrowserWrapper] getBrowserView] setActive: YES];
}
void
BookmarksService::ImportBookmarks(nsIDOMHTMLDocument* aHTMLDoc)
{
}
void
BookmarksService::OpenBookmarkGroup(id aTabView, nsIDOMElement* aFolder)
{

Просмотреть файл

@ -138,6 +138,7 @@ class nsIDOMNode;
- (void)addBookmarkExtended: (BOOL)aIsFromMenu isFolder:(BOOL)aIsFolder;
- (IBAction)manageBookmarks: (id)aSender;
- (void)importBookmarks: (NSURL*)aURL;
- (IBAction)toggleSidebar:(id)aSender;
- (void)newTab;

Просмотреть файл

@ -472,6 +472,19 @@ static NSString *PrintToolbarItemIdentifier = @"Print Toolbar Item";
[mSidebarTabView selectFirstTabViewItem:self];
}
- (void)importBookmarks: (NSURL*)aURL
{
// Open the bookmarks sidebar.
[self manageBookmarks: self];
// Now do the importing.
CHBrowserWrapper* newView = [[[CHBrowserWrapper alloc] initWithTab: nil andWindow: [self window]] autorelease];
[newView setFrame: NSZeroRect];
[newView setIsBookmarksImport: YES];
[[[self window] contentView] addSubview: newView];
[[newView getBrowserView] loadURI:aURL flags:NSLoadFlagsNone];
}
- (IBAction)goToLocationFromToolbarURLField:(id)sender
{
[self loadURL:[NSURL URLWithString:[sender stringValue]]];

Просмотреть файл

@ -57,6 +57,8 @@
BOOL mOffline;
BOOL mListenersAttached; // We hook up our click and context menu listeners lazily.
// If we never become the primary view, we don't bother creating the listeners.
BOOL mIsBookmarksImport; // This view was created for the purpose of importing bookmarks. Upon
// completion, we need to do the import and then destroy ourselves.
}
- (IBAction)load:(id)sender;
@ -74,8 +76,8 @@
-(void)setTab: (NSTabViewItem*)tab;
-(NSWindow*)getNativeWindow;
-(NSMenu*)getContextMenu;
-(void)setIsBookmarksImport:(BOOL)aIsImport;
-(id)initWithTab:(id)aTab andWindow:(NSWindow*)aWindow;

Просмотреть файл

@ -37,12 +37,16 @@
#import "CHBrowserWrapper.h"
#import "BrowserWindowController.h"
#import "BookmarksService.h"
#include "nsCOMPtr.h"
#include "nsIServiceManager.h"
#include "nsIIOService.h"
#include "ContentClickListener.h"
#include "nsIDOMWindow.h"
#include "nsIWebBrowser.h"
#include "nsIDOMDocument.h"
#include "nsIDOMHTMLDocument.h"
#include "nsIChromeEventHandler.h"
#include "nsPIDOMWindow.h"
#include "nsIDOMEventReceiver.h"
@ -98,6 +102,7 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
{
mTab = aTab;
mWindow = aWindow;
mIsBookmarksImport = NO;
return [self initWithFrame: NSZeroRect];
}
@ -219,9 +224,6 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
if (mWindowController)
[mWindowController updateToolbarItems];
else {
printf("background load.\n");
}
}
- (void)onLoadingCompleted:(BOOL)succeeded
@ -239,7 +241,22 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
}
mIsBusy = NO;
if (mIsBookmarksImport) {
nsCOMPtr<nsIDOMWindow> domWindow;
nsCOMPtr<nsIWebBrowser> webBrowser = getter_AddRefs([mBrowserView getWebBrowser]);
webBrowser->GetContentDOMWindow(getter_AddRefs(domWindow));
if (domWindow) {
nsCOMPtr<nsIDOMDocument> domDocument;
domWindow->GetDocument(getter_AddRefs(domDocument));
nsCOMPtr<nsIDOMHTMLDocument> htmlDoc(do_QueryInterface(domDocument));
if (htmlDoc)
BookmarksService::ImportBookmarks(htmlDoc);
}
[self windowClosed];
[self removeFromSuperview];
}
if (mWindowController)
[mWindowController updateToolbarItems];
}
@ -346,6 +363,11 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
return nil;
}
-(void)setIsBookmarksImport:(BOOL)aIsImport
{
mIsBookmarksImport = aIsImport;
}
- (void)offlineModeChanged: (NSNotification*)aNotification
{
nsCOMPtr<nsIIOService> ioService(do_GetService(ioServiceContractID));

Просмотреть файл

@ -130,7 +130,7 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
-(IBAction) openFile:(id)aSender
{
NSOpenPanel* openPanel = [[NSOpenPanel alloc] init];
NSOpenPanel* openPanel = [[[NSOpenPanel alloc] init] autorelease];
[openPanel setCanChooseFiles: YES];
[openPanel setCanChooseDirectories: NO];
[openPanel setAllowsMultipleSelection: NO];
@ -293,7 +293,7 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
// IE favorites: ~/Library/Preferences/Explorer/Favorites.html
// Omniweb favorites: ~/Library/Application Support/Omniweb/Bookmarks.html
// For now, open the panel to IE's favorites.
NSOpenPanel* openPanel = [[NSOpenPanel alloc] init];
NSOpenPanel* openPanel = [[[NSOpenPanel alloc] init] autorelease];
[openPanel setCanChooseFiles: YES];
[openPanel setCanChooseDirectories: NO];
[openPanel setAllowsMultipleSelection: NO];
@ -306,6 +306,14 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
if ([urlArray count] == 0)
return;
NSURL* url = [urlArray objectAtIndex: 0];
NSWindow* window = [mApplication mainWindow];
if (!window) {
[self newWindow: self];
window = [mApplication mainWindow];
}
[[window windowController] importBookmarks: url];
}
}

Просмотреть файл

@ -130,7 +130,7 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
-(IBAction) openFile:(id)aSender
{
NSOpenPanel* openPanel = [[NSOpenPanel alloc] init];
NSOpenPanel* openPanel = [[[NSOpenPanel alloc] init] autorelease];
[openPanel setCanChooseFiles: YES];
[openPanel setCanChooseDirectories: NO];
[openPanel setAllowsMultipleSelection: NO];
@ -293,7 +293,7 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
// IE favorites: ~/Library/Preferences/Explorer/Favorites.html
// Omniweb favorites: ~/Library/Application Support/Omniweb/Bookmarks.html
// For now, open the panel to IE's favorites.
NSOpenPanel* openPanel = [[NSOpenPanel alloc] init];
NSOpenPanel* openPanel = [[[NSOpenPanel alloc] init] autorelease];
[openPanel setCanChooseFiles: YES];
[openPanel setCanChooseDirectories: NO];
[openPanel setAllowsMultipleSelection: NO];
@ -306,6 +306,14 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
if ([urlArray count] == 0)
return;
NSURL* url = [urlArray objectAtIndex: 0];
NSWindow* window = [mApplication mainWindow];
if (!window) {
[self newWindow: self];
window = [mApplication mainWindow];
}
[[window windowController] importBookmarks: url];
}
}

Просмотреть файл

@ -97,6 +97,8 @@ class nsIAtom;
- (id)copyWithZone:(NSZone *)aZone;
@end
class nsIDOMHTMLDocument;
class BookmarksService
{
public:
@ -125,6 +127,8 @@ public:
static void EnsureToolbarRoot();
static void ImportBookmarks(nsIDOMHTMLDocument* aHTMLDoc);
static void GetTitleAndHrefForBrowserView(id aBrowserView, nsString& aTitle, nsString& aHref);
static void OpenBookmarkGroup(id aTabView, nsIDOMElement* aFolder);

Просмотреть файл

@ -979,6 +979,12 @@ BookmarksService::OpenMenuBookmark(BrowserWindowController* aController, id aMen
[[[aController getBrowserWrapper] getBrowserView] setActive: YES];
}
void
BookmarksService::ImportBookmarks(nsIDOMHTMLDocument* aHTMLDoc)
{
}
void
BookmarksService::OpenBookmarkGroup(id aTabView, nsIDOMElement* aFolder)
{

Просмотреть файл

@ -138,6 +138,7 @@ class nsIDOMNode;
- (void)addBookmarkExtended: (BOOL)aIsFromMenu isFolder:(BOOL)aIsFolder;
- (IBAction)manageBookmarks: (id)aSender;
- (void)importBookmarks: (NSURL*)aURL;
- (IBAction)toggleSidebar:(id)aSender;
- (void)newTab;

Просмотреть файл

@ -472,6 +472,19 @@ static NSString *PrintToolbarItemIdentifier = @"Print Toolbar Item";
[mSidebarTabView selectFirstTabViewItem:self];
}
- (void)importBookmarks: (NSURL*)aURL
{
// Open the bookmarks sidebar.
[self manageBookmarks: self];
// Now do the importing.
CHBrowserWrapper* newView = [[[CHBrowserWrapper alloc] initWithTab: nil andWindow: [self window]] autorelease];
[newView setFrame: NSZeroRect];
[newView setIsBookmarksImport: YES];
[[[self window] contentView] addSubview: newView];
[[newView getBrowserView] loadURI:aURL flags:NSLoadFlagsNone];
}
- (IBAction)goToLocationFromToolbarURLField:(id)sender
{
[self loadURL:[NSURL URLWithString:[sender stringValue]]];

Просмотреть файл

@ -57,6 +57,8 @@
BOOL mOffline;
BOOL mListenersAttached; // We hook up our click and context menu listeners lazily.
// If we never become the primary view, we don't bother creating the listeners.
BOOL mIsBookmarksImport; // This view was created for the purpose of importing bookmarks. Upon
// completion, we need to do the import and then destroy ourselves.
}
- (IBAction)load:(id)sender;
@ -74,8 +76,8 @@
-(void)setTab: (NSTabViewItem*)tab;
-(NSWindow*)getNativeWindow;
-(NSMenu*)getContextMenu;
-(void)setIsBookmarksImport:(BOOL)aIsImport;
-(id)initWithTab:(id)aTab andWindow:(NSWindow*)aWindow;

Просмотреть файл

@ -37,12 +37,16 @@
#import "CHBrowserWrapper.h"
#import "BrowserWindowController.h"
#import "BookmarksService.h"
#include "nsCOMPtr.h"
#include "nsIServiceManager.h"
#include "nsIIOService.h"
#include "ContentClickListener.h"
#include "nsIDOMWindow.h"
#include "nsIWebBrowser.h"
#include "nsIDOMDocument.h"
#include "nsIDOMHTMLDocument.h"
#include "nsIChromeEventHandler.h"
#include "nsPIDOMWindow.h"
#include "nsIDOMEventReceiver.h"
@ -98,6 +102,7 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
{
mTab = aTab;
mWindow = aWindow;
mIsBookmarksImport = NO;
return [self initWithFrame: NSZeroRect];
}
@ -219,9 +224,6 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
if (mWindowController)
[mWindowController updateToolbarItems];
else {
printf("background load.\n");
}
}
- (void)onLoadingCompleted:(BOOL)succeeded
@ -239,7 +241,22 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
}
mIsBusy = NO;
if (mIsBookmarksImport) {
nsCOMPtr<nsIDOMWindow> domWindow;
nsCOMPtr<nsIWebBrowser> webBrowser = getter_AddRefs([mBrowserView getWebBrowser]);
webBrowser->GetContentDOMWindow(getter_AddRefs(domWindow));
if (domWindow) {
nsCOMPtr<nsIDOMDocument> domDocument;
domWindow->GetDocument(getter_AddRefs(domDocument));
nsCOMPtr<nsIDOMHTMLDocument> htmlDoc(do_QueryInterface(domDocument));
if (htmlDoc)
BookmarksService::ImportBookmarks(htmlDoc);
}
[self windowClosed];
[self removeFromSuperview];
}
if (mWindowController)
[mWindowController updateToolbarItems];
}
@ -346,6 +363,11 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
return nil;
}
-(void)setIsBookmarksImport:(BOOL)aIsImport
{
mIsBookmarksImport = aIsImport;
}
- (void)offlineModeChanged: (NSNotification*)aNotification
{
nsCOMPtr<nsIIOService> ioService(do_GetService(ioServiceContractID));

Просмотреть файл

@ -97,6 +97,8 @@ class nsIAtom;
- (id)copyWithZone:(NSZone *)aZone;
@end
class nsIDOMHTMLDocument;
class BookmarksService
{
public:
@ -125,6 +127,8 @@ public:
static void EnsureToolbarRoot();
static void ImportBookmarks(nsIDOMHTMLDocument* aHTMLDoc);
static void GetTitleAndHrefForBrowserView(id aBrowserView, nsString& aTitle, nsString& aHref);
static void OpenBookmarkGroup(id aTabView, nsIDOMElement* aFolder);

Просмотреть файл

@ -979,6 +979,12 @@ BookmarksService::OpenMenuBookmark(BrowserWindowController* aController, id aMen
[[[aController getBrowserWrapper] getBrowserView] setActive: YES];
}
void
BookmarksService::ImportBookmarks(nsIDOMHTMLDocument* aHTMLDoc)
{
}
void
BookmarksService::OpenBookmarkGroup(id aTabView, nsIDOMElement* aFolder)
{

Просмотреть файл

@ -138,6 +138,7 @@ class nsIDOMNode;
- (void)addBookmarkExtended: (BOOL)aIsFromMenu isFolder:(BOOL)aIsFolder;
- (IBAction)manageBookmarks: (id)aSender;
- (void)importBookmarks: (NSURL*)aURL;
- (IBAction)toggleSidebar:(id)aSender;
- (void)newTab;

Просмотреть файл

@ -472,6 +472,19 @@ static NSString *PrintToolbarItemIdentifier = @"Print Toolbar Item";
[mSidebarTabView selectFirstTabViewItem:self];
}
- (void)importBookmarks: (NSURL*)aURL
{
// Open the bookmarks sidebar.
[self manageBookmarks: self];
// Now do the importing.
CHBrowserWrapper* newView = [[[CHBrowserWrapper alloc] initWithTab: nil andWindow: [self window]] autorelease];
[newView setFrame: NSZeroRect];
[newView setIsBookmarksImport: YES];
[[[self window] contentView] addSubview: newView];
[[newView getBrowserView] loadURI:aURL flags:NSLoadFlagsNone];
}
- (IBAction)goToLocationFromToolbarURLField:(id)sender
{
[self loadURL:[NSURL URLWithString:[sender stringValue]]];

Просмотреть файл

@ -57,6 +57,8 @@
BOOL mOffline;
BOOL mListenersAttached; // We hook up our click and context menu listeners lazily.
// If we never become the primary view, we don't bother creating the listeners.
BOOL mIsBookmarksImport; // This view was created for the purpose of importing bookmarks. Upon
// completion, we need to do the import and then destroy ourselves.
}
- (IBAction)load:(id)sender;
@ -74,8 +76,8 @@
-(void)setTab: (NSTabViewItem*)tab;
-(NSWindow*)getNativeWindow;
-(NSMenu*)getContextMenu;
-(void)setIsBookmarksImport:(BOOL)aIsImport;
-(id)initWithTab:(id)aTab andWindow:(NSWindow*)aWindow;

Просмотреть файл

@ -37,12 +37,16 @@
#import "CHBrowserWrapper.h"
#import "BrowserWindowController.h"
#import "BookmarksService.h"
#include "nsCOMPtr.h"
#include "nsIServiceManager.h"
#include "nsIIOService.h"
#include "ContentClickListener.h"
#include "nsIDOMWindow.h"
#include "nsIWebBrowser.h"
#include "nsIDOMDocument.h"
#include "nsIDOMHTMLDocument.h"
#include "nsIChromeEventHandler.h"
#include "nsPIDOMWindow.h"
#include "nsIDOMEventReceiver.h"
@ -98,6 +102,7 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
{
mTab = aTab;
mWindow = aWindow;
mIsBookmarksImport = NO;
return [self initWithFrame: NSZeroRect];
}
@ -219,9 +224,6 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
if (mWindowController)
[mWindowController updateToolbarItems];
else {
printf("background load.\n");
}
}
- (void)onLoadingCompleted:(BOOL)succeeded
@ -239,7 +241,22 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
}
mIsBusy = NO;
if (mIsBookmarksImport) {
nsCOMPtr<nsIDOMWindow> domWindow;
nsCOMPtr<nsIWebBrowser> webBrowser = getter_AddRefs([mBrowserView getWebBrowser]);
webBrowser->GetContentDOMWindow(getter_AddRefs(domWindow));
if (domWindow) {
nsCOMPtr<nsIDOMDocument> domDocument;
domWindow->GetDocument(getter_AddRefs(domDocument));
nsCOMPtr<nsIDOMHTMLDocument> htmlDoc(do_QueryInterface(domDocument));
if (htmlDoc)
BookmarksService::ImportBookmarks(htmlDoc);
}
[self windowClosed];
[self removeFromSuperview];
}
if (mWindowController)
[mWindowController updateToolbarItems];
}
@ -346,6 +363,11 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
return nil;
}
-(void)setIsBookmarksImport:(BOOL)aIsImport
{
mIsBookmarksImport = aIsImport;
}
- (void)offlineModeChanged: (NSNotification*)aNotification
{
nsCOMPtr<nsIIOService> ioService(do_GetService(ioServiceContractID));

Просмотреть файл

@ -130,7 +130,7 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
-(IBAction) openFile:(id)aSender
{
NSOpenPanel* openPanel = [[NSOpenPanel alloc] init];
NSOpenPanel* openPanel = [[[NSOpenPanel alloc] init] autorelease];
[openPanel setCanChooseFiles: YES];
[openPanel setCanChooseDirectories: NO];
[openPanel setAllowsMultipleSelection: NO];
@ -293,7 +293,7 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
// IE favorites: ~/Library/Preferences/Explorer/Favorites.html
// Omniweb favorites: ~/Library/Application Support/Omniweb/Bookmarks.html
// For now, open the panel to IE's favorites.
NSOpenPanel* openPanel = [[NSOpenPanel alloc] init];
NSOpenPanel* openPanel = [[[NSOpenPanel alloc] init] autorelease];
[openPanel setCanChooseFiles: YES];
[openPanel setCanChooseDirectories: NO];
[openPanel setAllowsMultipleSelection: NO];
@ -306,6 +306,14 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
if ([urlArray count] == 0)
return;
NSURL* url = [urlArray objectAtIndex: 0];
NSWindow* window = [mApplication mainWindow];
if (!window) {
[self newWindow: self];
window = [mApplication mainWindow];
}
[[window windowController] importBookmarks: url];
}
}

Просмотреть файл

@ -130,7 +130,7 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
-(IBAction) openFile:(id)aSender
{
NSOpenPanel* openPanel = [[NSOpenPanel alloc] init];
NSOpenPanel* openPanel = [[[NSOpenPanel alloc] init] autorelease];
[openPanel setCanChooseFiles: YES];
[openPanel setCanChooseDirectories: NO];
[openPanel setAllowsMultipleSelection: NO];
@ -293,7 +293,7 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
// IE favorites: ~/Library/Preferences/Explorer/Favorites.html
// Omniweb favorites: ~/Library/Application Support/Omniweb/Bookmarks.html
// For now, open the panel to IE's favorites.
NSOpenPanel* openPanel = [[NSOpenPanel alloc] init];
NSOpenPanel* openPanel = [[[NSOpenPanel alloc] init] autorelease];
[openPanel setCanChooseFiles: YES];
[openPanel setCanChooseDirectories: NO];
[openPanel setAllowsMultipleSelection: NO];
@ -306,6 +306,14 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
if ([urlArray count] == 0)
return;
NSURL* url = [urlArray objectAtIndex: 0];
NSWindow* window = [mApplication mainWindow];
if (!window) {
[self newWindow: self];
window = [mApplication mainWindow];
}
[[window windowController] importBookmarks: url];
}
}

Просмотреть файл

@ -97,6 +97,8 @@ class nsIAtom;
- (id)copyWithZone:(NSZone *)aZone;
@end
class nsIDOMHTMLDocument;
class BookmarksService
{
public:
@ -125,6 +127,8 @@ public:
static void EnsureToolbarRoot();
static void ImportBookmarks(nsIDOMHTMLDocument* aHTMLDoc);
static void GetTitleAndHrefForBrowserView(id aBrowserView, nsString& aTitle, nsString& aHref);
static void OpenBookmarkGroup(id aTabView, nsIDOMElement* aFolder);

Просмотреть файл

@ -979,6 +979,12 @@ BookmarksService::OpenMenuBookmark(BrowserWindowController* aController, id aMen
[[[aController getBrowserWrapper] getBrowserView] setActive: YES];
}
void
BookmarksService::ImportBookmarks(nsIDOMHTMLDocument* aHTMLDoc)
{
}
void
BookmarksService::OpenBookmarkGroup(id aTabView, nsIDOMElement* aFolder)
{

Просмотреть файл

@ -138,6 +138,7 @@ class nsIDOMNode;
- (void)addBookmarkExtended: (BOOL)aIsFromMenu isFolder:(BOOL)aIsFolder;
- (IBAction)manageBookmarks: (id)aSender;
- (void)importBookmarks: (NSURL*)aURL;
- (IBAction)toggleSidebar:(id)aSender;
- (void)newTab;

Просмотреть файл

@ -472,6 +472,19 @@ static NSString *PrintToolbarItemIdentifier = @"Print Toolbar Item";
[mSidebarTabView selectFirstTabViewItem:self];
}
- (void)importBookmarks: (NSURL*)aURL
{
// Open the bookmarks sidebar.
[self manageBookmarks: self];
// Now do the importing.
CHBrowserWrapper* newView = [[[CHBrowserWrapper alloc] initWithTab: nil andWindow: [self window]] autorelease];
[newView setFrame: NSZeroRect];
[newView setIsBookmarksImport: YES];
[[[self window] contentView] addSubview: newView];
[[newView getBrowserView] loadURI:aURL flags:NSLoadFlagsNone];
}
- (IBAction)goToLocationFromToolbarURLField:(id)sender
{
[self loadURL:[NSURL URLWithString:[sender stringValue]]];

Просмотреть файл

@ -57,6 +57,8 @@
BOOL mOffline;
BOOL mListenersAttached; // We hook up our click and context menu listeners lazily.
// If we never become the primary view, we don't bother creating the listeners.
BOOL mIsBookmarksImport; // This view was created for the purpose of importing bookmarks. Upon
// completion, we need to do the import and then destroy ourselves.
}
- (IBAction)load:(id)sender;
@ -74,8 +76,8 @@
-(void)setTab: (NSTabViewItem*)tab;
-(NSWindow*)getNativeWindow;
-(NSMenu*)getContextMenu;
-(void)setIsBookmarksImport:(BOOL)aIsImport;
-(id)initWithTab:(id)aTab andWindow:(NSWindow*)aWindow;

Просмотреть файл

@ -37,12 +37,16 @@
#import "CHBrowserWrapper.h"
#import "BrowserWindowController.h"
#import "BookmarksService.h"
#include "nsCOMPtr.h"
#include "nsIServiceManager.h"
#include "nsIIOService.h"
#include "ContentClickListener.h"
#include "nsIDOMWindow.h"
#include "nsIWebBrowser.h"
#include "nsIDOMDocument.h"
#include "nsIDOMHTMLDocument.h"
#include "nsIChromeEventHandler.h"
#include "nsPIDOMWindow.h"
#include "nsIDOMEventReceiver.h"
@ -98,6 +102,7 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
{
mTab = aTab;
mWindow = aWindow;
mIsBookmarksImport = NO;
return [self initWithFrame: NSZeroRect];
}
@ -219,9 +224,6 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
if (mWindowController)
[mWindowController updateToolbarItems];
else {
printf("background load.\n");
}
}
- (void)onLoadingCompleted:(BOOL)succeeded
@ -239,7 +241,22 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
}
mIsBusy = NO;
if (mIsBookmarksImport) {
nsCOMPtr<nsIDOMWindow> domWindow;
nsCOMPtr<nsIWebBrowser> webBrowser = getter_AddRefs([mBrowserView getWebBrowser]);
webBrowser->GetContentDOMWindow(getter_AddRefs(domWindow));
if (domWindow) {
nsCOMPtr<nsIDOMDocument> domDocument;
domWindow->GetDocument(getter_AddRefs(domDocument));
nsCOMPtr<nsIDOMHTMLDocument> htmlDoc(do_QueryInterface(domDocument));
if (htmlDoc)
BookmarksService::ImportBookmarks(htmlDoc);
}
[self windowClosed];
[self removeFromSuperview];
}
if (mWindowController)
[mWindowController updateToolbarItems];
}
@ -346,6 +363,11 @@ static const char* ioServiceContractID = "@mozilla.org/network/io-service;1";
return nil;
}
-(void)setIsBookmarksImport:(BOOL)aIsImport
{
mIsBookmarksImport = aIsImport;
}
- (void)offlineModeChanged: (NSNotification*)aNotification
{
nsCOMPtr<nsIIOService> ioService(do_GetService(ioServiceContractID));