diff --git a/frontends/gnustep/Preferences.h b/frontends/gnustep/Preferences.h index 46be295df..73cf014b6 100644 --- a/frontends/gnustep/Preferences.h +++ b/frontends/gnustep/Preferences.h @@ -114,5 +114,26 @@ typedef NS_ENUM(NSInteger, PreferenceType) { -(NSUInteger)fontSize; -(void)setFontSize: (NSUInteger)value; +-(BOOL)enableReferralSubmission; +-(void)setEnableReferralSubmission: (BOOL)value; + +-(BOOL)sendDoNotTrackRequest; +-(void)setSendDoNotTrackRequest: (BOOL)value; + +-(BOOL)showHistoryTooltip; +-(void)setShowHistoryTooltip: (BOOL)value; + +-(NSUInteger)browsingHistoryDays; +-(void)setBrowsingHistoryDays: (NSUInteger)value; + +-(NSUInteger)diskCacheSize; +-(void)setDiskCacheSize: (NSUInteger)value; + +-(NSUInteger)memCacheSize; +-(void)setMemCacheSize: (NSUInteger)value; + +-(NSUInteger)cacheExpiryDays; +-(void)setCacheExpiryDays: (NSUInteger)value; + +(Preferences*)defaultPreferences; @end diff --git a/frontends/gnustep/Preferences.m b/frontends/gnustep/Preferences.m index 20b83ce61..ffc58bb1d 100644 --- a/frontends/gnustep/Preferences.m +++ b/frontends/gnustep/Preferences.m @@ -17,6 +17,8 @@ #define KEY_DEVELOPER_VIEW_LOCATION @"developer_view_location" #define KEY_SHOW_URL_SUGGESTIONS @"show_url_suggestions" #define KEY_URL_BAR_BUTTON_TYPE @"url_bar_button_type" +#define KEY_SHOW_HISTORY_TOOLTIP @"show_history_tooltip" +#define KEY_BROWSING_HISTORY_DAYS @"browsing_history_days" @interface Preferences (Private) @@ -313,6 +315,67 @@ [self saveNetsurfPrefsFile]; } + +-(BOOL)enableReferralSubmission { + return (BOOL)nsoption_bool(send_referer); +} +-(void)setEnableReferralSubmission: (BOOL)value { + nsoption_set_bool(send_referer, (bool)value); + [self saveNetsurfPrefsFile]; +} + +-(BOOL)sendDoNotTrackRequest { + return (BOOL)nsoption_bool(do_not_track); +} +-(void)setSendDoNotTrackRequest: (BOOL)value { + nsoption_set_bool(do_not_track, (bool)value); + [self saveNetsurfPrefsFile]; +} + +-(BOOL)showHistoryTooltip { + if ([defaults objectForKey: KEY_SHOW_HISTORY_TOOLTIP] != nil) { + return [defaults boolForKey: KEY_SHOW_HISTORY_TOOLTIP]; + } else { + return NO; + } +} +-(void)setShowHistoryTooltip: (BOOL)value { + [defaults setBool: value forKey: KEY_SHOW_HISTORY_TOOLTIP]; +} + +-(NSUInteger)browsingHistoryDays { + return [defaults integerForKey: KEY_BROWSING_HISTORY_DAYS]; +} +-(void)setBrowsingHistoryDays: (NSUInteger)value { + [defaults setInteger: value forKey: KEY_BROWSING_HISTORY_DAYS]; +} + +-(NSUInteger)diskCacheSize { + NSUInteger bytes = (NSUInteger)nsoption_int(disc_cache_size); + return bytes / 0x100000; +} +-(void)setDiskCacheSize: (NSUInteger)value { + nsoption_set_int(disc_cache_size, (int)(value * 0x100000)); + [self saveNetsurfPrefsFile]; +} + +-(NSUInteger)memCacheSize { + NSUInteger bytes = (NSUInteger)nsoption_int(memory_cache_size); + return bytes / 0x100000; +} +-(void)setMemCacheSize: (NSUInteger)value { + nsoption_set_int(memory_cache_size, (int)(value * 0x100000)); + [self saveNetsurfPrefsFile]; +} + +-(NSUInteger)cacheExpiryDays { + return (NSUInteger)nsoption_int(disc_cache_age); +} +-(void)setCacheExpiryDays: (NSUInteger)value { + nsoption_set_int(disc_cache_age, (int)value); + [self saveNetsurfPrefsFile]; +} + +(Preferences*)defaultPreferences { static Preferences *prefs; if (prefs == nil) { diff --git a/frontends/gnustep/PreferencesWindowController.m b/frontends/gnustep/PreferencesWindowController.m index 9517f6d6d..15029be01 100644 --- a/frontends/gnustep/PreferencesWindowController.m +++ b/frontends/gnustep/PreferencesWindowController.m @@ -362,34 +362,63 @@ // MARK: - PRIVACY TAB -(void)configurePrivacyTab { NSLog(@"Configure content tab"); + [doNotTrackButton setState: [[Preferences defaultPreferences] + sendDoNotTrackRequest] ? NSOnState : NSOffState]; + [referralSubmissionButton setState: [[Preferences defaultPreferences] + enableReferralSubmission] ? NSOnState : NSOffState]; + [localHistoryUrlTooltipButton setState: [[Preferences defaultPreferences] + showHistoryTooltip] ? NSOnState : NSOffState]; + + [rememberHistoryField setStringValue: [NSString stringWithFormat: @"%u", + [[Preferences defaultPreferences] browsingHistoryDays]]]; + [memCacheSizeField setStringValue: [NSString stringWithFormat: @"%u", + [[Preferences defaultPreferences] memCacheSize]]]; + [diskCacheSizeField setStringValue: [NSString stringWithFormat: @"%u", + [[Preferences defaultPreferences] diskCacheSize]]]; + [expireCacheField setStringValue: [NSString stringWithFormat: @"%u", + [[Preferences defaultPreferences] cacheExpiryDays]]]; } -(void)didPressReferralSubmission: (id)sender { NSLog(@"didPressReferralSubmission", sender); + [[Preferences defaultPreferences] setEnableReferralSubmission: [sender state] + == NSOnState ? YES : NO]; } -(void)didPressDoNotTrack: (id)sender { NSLog(@"didPressDoNotTrack", sender); + [[Preferences defaultPreferences] setSendDoNotTrackRequest: [sender state] + == NSOnState ? YES : NO]; } -(void)didPressLocalHistoryTooltip: (id)sender { NSLog(@"didPressLocalHistoryTooltip", sender); + [[Preferences defaultPreferences] setShowHistoryTooltip: [sender state] + == NSOnState ? YES : NO]; } -(void)didChangeBrowsingHistory: (id)sender { NSLog(@"didChangeBrowsingHistory", sender); + [[Preferences defaultPreferences] setBrowsingHistoryDays: + (NSUInteger)[[sender stringValue] integerValue]]; } -(void)didChangeMemCacheSize: (id)sender { NSLog(@"didChangeMemCacheSize", sender); + [[Preferences defaultPreferences] setMemCacheSize: + (NSUInteger)[[sender stringValue] integerValue]]; } -(void)didChangeDiskCacheSize: (id)sender { NSLog(@"didChangeDiskCacheSize", sender); + [[Preferences defaultPreferences] setDiskCacheSize: + (NSUInteger)[[sender stringValue] integerValue]]; } -(void)didChangeExpireCache: (id)sender { NSLog(@"didChangeExpireCache", sender); + [[Preferences defaultPreferences] setCacheExpiryDays: + (NSUInteger)[[sender stringValue] integerValue]]; } @end diff --git a/frontends/gnustep/res/Preferences.gorm/objects.gorm b/frontends/gnustep/res/Preferences.gorm/objects.gorm index 8f0c0423e..0a3002ff8 100644 Binary files a/frontends/gnustep/res/Preferences.gorm/objects.gorm and b/frontends/gnustep/res/Preferences.gorm/objects.gorm differ