summaryrefslogtreecommitdiff
path: root/cocoa
diff options
context:
space:
mode:
authorSven Weidauer <sven.weidauer@gmail.com>2011-02-25 15:31:48 +0000
committerSven Weidauer <sven.weidauer@gmail.com>2011-02-25 15:31:48 +0000
commitba20058f2c42c471d0882e78cc6191bd8e11cd11 (patch)
treebdb94664769307e9684bb0f1b69feb296dd25f49 /cocoa
parent2e04c57929aaae8b36b57e873b680b32304b29c4 (diff)
downloadnetsurf-ba20058f2c42c471d0882e78cc6191bd8e11cd11.tar.gz
netsurf-ba20058f2c42c471d0882e78cc6191bd8e11cd11.tar.bz2
Saving bookmarks before quitting NetSurf.
svn path=/trunk/netsurf/; revision=11794
Diffstat (limited to 'cocoa')
-rw-r--r--cocoa/BookmarksController.m22
-rw-r--r--cocoa/NetsurfApp.m2
2 files changed, 24 insertions, 0 deletions
diff --git a/cocoa/BookmarksController.m b/cocoa/BookmarksController.m
index 76ea5c299..360010242 100644
--- a/cocoa/BookmarksController.m
+++ b/cocoa/BookmarksController.m
@@ -27,6 +27,11 @@
#import "desktop/tree.h"
#import "desktop/tree_url_node.h"
+@interface BookmarksController ()
+- (void) noteAppWillTerminate: (NSNotification *) note;
+- (void) save;
+@end
+
@implementation BookmarksController
@synthesize defaultMenu;
@@ -46,9 +51,24 @@ static const char *cocoa_hotlist_path( void )
hotlist_initialise( [tree tree], cocoa_hotlist_path(), "" );
nodeForMenu = NSCreateMapTable( NSNonOwnedPointerMapKeyCallBacks, NSNonOwnedPointerMapValueCallBacks, 0 );
+ [[NSNotificationCenter defaultCenter] addObserver:self
+ selector:@selector( noteAppWillTerminate: )
+ name:NSApplicationWillTerminateNotification
+ object:NSApp];
+
return self;
}
+- (void) noteAppWillTerminate: (NSNotification *) note;
+{
+ [self save];
+}
+
+- (void) save;
+{
+ hotlist_export( cocoa_hotlist_path() );
+}
+
- (void) dealloc;
{
[self setView: nil];
@@ -56,6 +76,8 @@ static const char *cocoa_hotlist_path( void )
hotlist_cleanup( cocoa_hotlist_path() );
[tree release];
+ [[NSNotificationCenter defaultCenter] removeObserver: self];
+
[super dealloc];
}
diff --git a/cocoa/NetsurfApp.m b/cocoa/NetsurfApp.m
index 6d881bb9d..f1245ece3 100644
--- a/cocoa/NetsurfApp.m
+++ b/cocoa/NetsurfApp.m
@@ -93,6 +93,8 @@
-(void) terminate: (id)sender;
{
+ [[NSNotificationCenter defaultCenter] postNotificationName:NSApplicationWillTerminateNotification object:self];
+
netsurf_quit = true;
[self postEvent: [NSEvent otherEventWithType: NSApplicationDefined location: NSZeroPoint
modifierFlags: 0 timestamp: 0 windowNumber: 0 context: NULL