зеркало из https://github.com/mozilla/pjs.git
Hook up preferences to load URLs from GetURL in new tabs or windows, and make UI for the 'load new tabs in background' pref (bug 150242). Also clarified the wording of the 'command-click opens new tab' pref.
This commit is contained in:
Родитель
e17057d531
Коммит
b877548b33
|
@ -37,17 +37,22 @@
|
||||||
// get the pref that specifies if we want to re-use the existing window or
|
// get the pref that specifies if we want to re-use the existing window or
|
||||||
// open a new one. There's really no point caching this pref.
|
// open a new one. There's really no point caching this pref.
|
||||||
PRBool reuseWindow = PR_FALSE;
|
PRBool reuseWindow = PR_FALSE;
|
||||||
|
PRBool loadInBackground = PR_FALSE;
|
||||||
|
|
||||||
nsCOMPtr<nsIPref> prefService ( do_GetService(NS_PREF_CONTRACTID) );
|
nsCOMPtr<nsIPref> prefService ( do_GetService(NS_PREF_CONTRACTID) );
|
||||||
if ( prefService )
|
if ( prefService ) {
|
||||||
prefService->GetBoolPref("browser.always_reuse_window", &reuseWindow);
|
prefService->GetBoolPref("browser.always_reuse_window", &reuseWindow);
|
||||||
|
prefService->GetBoolPref("browser.tabs.loadInBackground", &loadInBackground);
|
||||||
|
}
|
||||||
|
|
||||||
// reuse the main window if there is one. The user may have closed all of
|
// reuse the main window if there is one. The user may have closed all of
|
||||||
// them or we may get this event at startup before we've had time to load
|
// them or we may get this event at startup before we've had time to load
|
||||||
// our window.
|
// our window.
|
||||||
BrowserWindowController* controller = nsnull;
|
|
||||||
|
BrowserWindowController* controller = NULL;
|
||||||
if ( reuseWindow && [NSApp mainWindow] ) {
|
if ( reuseWindow && [NSApp mainWindow] ) {
|
||||||
controller = [[NSApp mainWindow] windowController];
|
controller = [[NSApp mainWindow] windowController];
|
||||||
[controller loadURLString:[self directParameter]];
|
[controller openNewTabWithURL:[self directParameter] loadInBackground:loadInBackground];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
controller = [[NSApp delegate] openBrowserWindowWithURL: [self directParameter]];
|
controller = [[NSApp delegate] openBrowserWindowWithURL: [self directParameter]];
|
||||||
|
|
|
@ -24,9 +24,11 @@
|
||||||
CLASS = OrgMozillaChimeraPreferenceNavigation;
|
CLASS = OrgMozillaChimeraPreferenceNavigation;
|
||||||
LANGUAGE = ObjC;
|
LANGUAGE = ObjC;
|
||||||
OUTLETS = {
|
OUTLETS = {
|
||||||
|
checkboxLoadTabsInBackground = NSButton;
|
||||||
checkboxNewTabBlank = NSButton;
|
checkboxNewTabBlank = NSButton;
|
||||||
checkboxNewWindowBlank = NSButton;
|
checkboxNewWindowBlank = NSButton;
|
||||||
checkboxOpenTabs = NSButton;
|
checkboxOpenTabs = NSButton;
|
||||||
|
checkboxOpenTabsForAEs = NSButton;
|
||||||
checkboxUseSystemHomePage = NSButton;
|
checkboxUseSystemHomePage = NSButton;
|
||||||
sliderHistoryDays = NSSlider;
|
sliderHistoryDays = NSSlider;
|
||||||
textFieldHistoryDays = NSTextField;
|
textFieldHistoryDays = NSTextField;
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<plist version="0.9">
|
<plist version="0.9">
|
||||||
<dict>
|
<dict>
|
||||||
<key>IBDocumentLocation</key>
|
<key>IBDocumentLocation</key>
|
||||||
<string>36 50 356 240 0 0 1152 746 </string>
|
<string>34 65 407 279 0 0 1152 746 </string>
|
||||||
<key>IBFramework Version</key>
|
<key>IBFramework Version</key>
|
||||||
<string>248.0</string>
|
<string>248.0</string>
|
||||||
<key>IBGroupedObjects</key>
|
<key>IBGroupedObjects</key>
|
||||||
|
|
Двоичные данные
camino/PreferencePanes/Navigation/English.lproj/Navigation.nib/objects.nib
сгенерированный
Двоичные данные
camino/PreferencePanes/Navigation/English.lproj/Navigation.nib/objects.nib
сгенерированный
Двоичный файл не отображается.
|
@ -30,10 +30,15 @@ class nsIPref;
|
||||||
{
|
{
|
||||||
// IBOutlet NSButton *buttonSystemPreferences;
|
// IBOutlet NSButton *buttonSystemPreferences;
|
||||||
IBOutlet NSTextField *textFieldHomePage;
|
IBOutlet NSTextField *textFieldHomePage;
|
||||||
|
|
||||||
IBOutlet NSButton *checkboxUseSystemHomePage;
|
IBOutlet NSButton *checkboxUseSystemHomePage;
|
||||||
IBOutlet NSButton *checkboxNewTabBlank;
|
IBOutlet NSButton *checkboxNewTabBlank;
|
||||||
IBOutlet NSButton *checkboxNewWindowBlank;
|
IBOutlet NSButton *checkboxNewWindowBlank;
|
||||||
|
|
||||||
IBOutlet NSButton *checkboxOpenTabs;
|
IBOutlet NSButton *checkboxOpenTabs;
|
||||||
|
IBOutlet NSButton *checkboxOpenTabsForAEs;
|
||||||
|
IBOutlet NSButton *checkboxLoadTabsInBackground;
|
||||||
|
|
||||||
IBOutlet NSSlider *sliderHistoryDays;
|
IBOutlet NSSlider *sliderHistoryDays;
|
||||||
IBOutlet NSTextField *textFieldHistoryDays;
|
IBOutlet NSTextField *textFieldHistoryDays;
|
||||||
|
|
||||||
|
@ -50,6 +55,12 @@ class nsIPref;
|
||||||
- (NSString*)getSystemHomePage;
|
- (NSString*)getSystemHomePage;
|
||||||
- (NSString*)getCurrentHomePage;
|
- (NSString*)getCurrentHomePage;
|
||||||
|
|
||||||
- (NSString*)getPrefString: (const char*)prefName;
|
- (NSString*)getStringPref: (const char*)prefName withSuccess:(BOOL*)outSuccess;
|
||||||
|
- (BOOL)getBooleanPref: (const char*)prefName withSuccess:(BOOL*)outSuccess;
|
||||||
|
- (int)getIntPref: (const char*)prefName withSuccess:(BOOL*)outSuccess;
|
||||||
|
|
||||||
- (void)setPref: (const char*)prefName toString:(NSString*)value;
|
- (void)setPref: (const char*)prefName toString:(NSString*)value;
|
||||||
|
- (void)setPref: (const char*)prefName toBoolean:(BOOL)value;
|
||||||
|
- (void)setPref: (const char*)prefName toInt:(int)value;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
|
@ -56,33 +56,27 @@ const int kDefaultExpireDays = 9;
|
||||||
if (!mPrefService)
|
if (!mPrefService)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
PRBool boolPref;
|
BOOL gotPref;
|
||||||
PRInt32 intPref;
|
|
||||||
nsresult rv = mPrefService->GetIntPref("browser.startup.page", &intPref);
|
|
||||||
// Check for NS_FAILED because we don't want to falsely interpret
|
|
||||||
// a failure as a preference set to 0.
|
|
||||||
if (NS_SUCCEEDED(rv) && intPref == 0)
|
|
||||||
[checkboxNewWindowBlank setState:YES];
|
|
||||||
|
|
||||||
rv = mPrefService->GetIntPref("browser.tabs.startPage", &intPref);
|
|
||||||
if (NS_SUCCEEDED(rv) && intPref == 0)
|
|
||||||
[checkboxNewTabBlank setState:YES];
|
|
||||||
|
|
||||||
rv = mPrefService->GetIntPref("browser.history_expire_days", &intPref);
|
|
||||||
if (NS_FAILED(rv))
|
|
||||||
intPref = kDefaultExpireDays;
|
|
||||||
[textFieldHistoryDays setIntValue:intPref];
|
|
||||||
[sliderHistoryDays setIntValue:intPref];
|
|
||||||
|
|
||||||
rv = mPrefService->GetBoolPref("browser.tabs.opentabfor.middleclick", &boolPref);
|
|
||||||
if (NS_SUCCEEDED(rv) && boolPref == PR_TRUE)
|
|
||||||
[checkboxOpenTabs setState:YES];
|
|
||||||
|
|
||||||
BOOL useSystemHomePage = NO;
|
|
||||||
rv = mPrefService->GetBoolPref("chimera.use_system_home_page", &boolPref);
|
|
||||||
if (NS_SUCCEEDED(rv) && boolPref == PR_TRUE)
|
|
||||||
useSystemHomePage = YES;
|
|
||||||
|
|
||||||
|
if (([self getIntPref:"browser.startup.page" withSuccess:&gotPref] == 0) && gotPref)
|
||||||
|
[checkboxNewWindowBlank setState:YES];
|
||||||
|
|
||||||
|
if (([self getIntPref:"browser.tabs.startPage" withSuccess:&gotPref] == 0) && gotPref)
|
||||||
|
[checkboxNewTabBlank setState:YES];
|
||||||
|
|
||||||
|
|
||||||
|
int expireDays = [self getIntPref:"browser.history_expire_days" withSuccess:&gotPref];
|
||||||
|
if (!gotPref)
|
||||||
|
expireDays = kDefaultExpireDays;
|
||||||
|
|
||||||
|
[textFieldHistoryDays setIntValue:expireDays];
|
||||||
|
[sliderHistoryDays setIntValue:expireDays];
|
||||||
|
|
||||||
|
[checkboxOpenTabs setState:[self getBooleanPref:"browser.tabs.opentabfor.middleclick" withSuccess:&gotPref]];
|
||||||
|
[checkboxOpenTabsForAEs setState:[self getBooleanPref:"browser.always_reuse_window" withSuccess:&gotPref]];
|
||||||
|
[checkboxLoadTabsInBackground setState:[self getBooleanPref:"browser.tabs.loadInBackground" withSuccess:&gotPref]];
|
||||||
|
|
||||||
|
BOOL useSystemHomePage = [self getBooleanPref:"chimera.use_system_home_page" withSuccess:&gotPref] && gotPref;
|
||||||
if (useSystemHomePage)
|
if (useSystemHomePage)
|
||||||
[textFieldHomePage setEnabled:NO];
|
[textFieldHomePage setEnabled:NO];
|
||||||
|
|
||||||
|
@ -111,10 +105,18 @@ const int kDefaultExpireDays = 9;
|
||||||
|
|
||||||
- (IBAction)checkboxClicked:(id)sender
|
- (IBAction)checkboxClicked:(id)sender
|
||||||
{
|
{
|
||||||
if (!mPrefService || sender != checkboxOpenTabs)
|
if (!mPrefService)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
mPrefService->SetBoolPref("browser.tabs.opentabfor.middleclick", [sender state] ? PR_TRUE : PR_FALSE);
|
if (sender == checkboxOpenTabs) {
|
||||||
|
[self setPref:"browser.tabs.opentabfor.middleclick" toBoolean:[sender state]];
|
||||||
|
}
|
||||||
|
else if (sender == checkboxOpenTabsForAEs) {
|
||||||
|
[self setPref:"browser.always_reuse_window" toBoolean:[sender state]];
|
||||||
|
}
|
||||||
|
else if (sender == checkboxLoadTabsInBackground) {
|
||||||
|
[self setPref:"browser.tabs.loadInBackground" toBoolean:[sender state]];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)checkboxUseSystemHomePageClicked:(id)sender
|
- (IBAction)checkboxUseSystemHomePageClicked:(id)sender
|
||||||
|
@ -128,8 +130,7 @@ const int kDefaultExpireDays = 9;
|
||||||
if (useSystemHomePage)
|
if (useSystemHomePage)
|
||||||
[self setPref: "browser.startup.homepage" toString: [textFieldHomePage stringValue]];
|
[self setPref: "browser.startup.homepage" toString: [textFieldHomePage stringValue]];
|
||||||
|
|
||||||
mPrefService->SetBoolPref("chimera.use_system_home_page", useSystemHomePage ? PR_TRUE : PR_FALSE);
|
[self setPref:"chimera.use_system_home_page" toBoolean: useSystemHomePage];
|
||||||
|
|
||||||
[textFieldHomePage setStringValue: [self getCurrentHomePage]];
|
[textFieldHomePage setStringValue: [self getCurrentHomePage]];
|
||||||
[textFieldHomePage setEnabled:!useSystemHomePage];
|
[textFieldHomePage setEnabled:!useSystemHomePage];
|
||||||
}
|
}
|
||||||
|
@ -144,11 +145,9 @@ const int kDefaultExpireDays = 9;
|
||||||
prefName = "browser.tabs.page";
|
prefName = "browser.tabs.page";
|
||||||
else if (sender == checkboxNewWindowBlank)
|
else if (sender == checkboxNewWindowBlank)
|
||||||
prefName = "browser.startup.page";
|
prefName = "browser.startup.page";
|
||||||
else
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (prefName)
|
if (prefName)
|
||||||
mPrefService->SetIntPref(prefName, [sender state] ? 0 : 1);
|
[self setPref:prefName toInt: [sender state] ? 0 : 1];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)historyDaysModified:(id)sender
|
- (IBAction)historyDaysModified:(id)sender
|
||||||
|
@ -161,16 +160,19 @@ const int kDefaultExpireDays = 9;
|
||||||
else if (sender == textFieldHistoryDays) {
|
else if (sender == textFieldHistoryDays) {
|
||||||
// If any non-numeric characters were entered make some noise and spit it out.
|
// If any non-numeric characters were entered make some noise and spit it out.
|
||||||
if (([[textFieldHistoryDays stringValue] rangeOfCharacterFromSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]]).length) {
|
if (([[textFieldHistoryDays stringValue] rangeOfCharacterFromSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]]).length) {
|
||||||
PRInt32 intPref = kDefaultExpireDays;
|
BOOL gotPref;
|
||||||
mPrefService->GetIntPref("browser.history_expire_days", &intPref);
|
int prefValue = [self getIntPref:"browser.history_expire_days" withSuccess:&gotPref];
|
||||||
[textFieldHistoryDays setIntValue:intPref];
|
if (!gotPref)
|
||||||
|
prefValue = kDefaultExpireDays;
|
||||||
|
[textFieldHistoryDays setIntValue:prefValue];
|
||||||
|
[sliderHistoryDays setIntValue:prefValue];
|
||||||
NSBeep ();
|
NSBeep ();
|
||||||
return;
|
return;
|
||||||
} else
|
} else
|
||||||
[sliderHistoryDays setIntValue:[textFieldHistoryDays intValue]];
|
[sliderHistoryDays setIntValue:[textFieldHistoryDays intValue]];
|
||||||
}
|
}
|
||||||
|
|
||||||
mPrefService->SetIntPref("browser.history_expire_days", [sender intValue]);
|
[self setPref:"browser.history_expire_days" toInt:[sender intValue]];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -217,17 +219,16 @@ const int kDefaultExpireDays = 9;
|
||||||
|
|
||||||
- (NSString*) getCurrentHomePage
|
- (NSString*) getCurrentHomePage
|
||||||
{
|
{
|
||||||
BOOL useSystemHomePage = NO;
|
BOOL gotPref;
|
||||||
PRBool boolPref;
|
|
||||||
nsresult rv = mPrefService->GetBoolPref("chimera.use_system_home_page", &boolPref);
|
if ([self getBooleanPref:"chimera.use_system_home_page" withSuccess:&gotPref] && gotPref)
|
||||||
if (NS_SUCCEEDED(rv) && boolPref == PR_TRUE)
|
|
||||||
return [self getSystemHomePage];
|
return [self getSystemHomePage];
|
||||||
|
|
||||||
return [self getPrefString: "browser.startup.homepage"];
|
return [self getStringPref: "browser.startup.homepage" withSuccess:&gotPref];
|
||||||
}
|
}
|
||||||
|
|
||||||
// convenience routines for mozilla prefs
|
// convenience routines for mozilla prefs
|
||||||
- (NSString*)getPrefString: (const char*)prefName
|
- (NSString*)getStringPref: (const char*)prefName withSuccess:(BOOL*)outSuccess
|
||||||
{
|
{
|
||||||
NSMutableString *prefValue = [[[NSMutableString alloc] init] autorelease];
|
NSMutableString *prefValue = [[[NSMutableString alloc] init] autorelease];
|
||||||
|
|
||||||
|
@ -236,11 +237,34 @@ const int kDefaultExpireDays = 9;
|
||||||
if (NS_SUCCEEDED(rv) && buf) {
|
if (NS_SUCCEEDED(rv) && buf) {
|
||||||
[prefValue setString:[NSString stringWithCString:buf]];
|
[prefValue setString:[NSString stringWithCString:buf]];
|
||||||
free(buf);
|
free(buf);
|
||||||
|
if (outSuccess) *outSuccess = YES;
|
||||||
|
} else {
|
||||||
|
if (outSuccess) *outSuccess = NO;
|
||||||
}
|
}
|
||||||
|
|
||||||
return prefValue;
|
return prefValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// convenience routines for mozilla prefs
|
||||||
|
- (BOOL)getBooleanPref: (const char*)prefName withSuccess:(BOOL*)outSuccess
|
||||||
|
{
|
||||||
|
PRBool boolPref = PR_FALSE;
|
||||||
|
nsresult rv = mPrefService->GetBoolPref(prefName, &boolPref);
|
||||||
|
if (outSuccess)
|
||||||
|
*outSuccess = NS_SUCCEEDED(rv);
|
||||||
|
|
||||||
|
return boolPref ? YES : NO;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (int)getIntPref: (const char*)prefName withSuccess:(BOOL*)outSuccess
|
||||||
|
{
|
||||||
|
PRInt32 intPref = 0;
|
||||||
|
nsresult rv = mPrefService->GetBoolPref(prefName, &intPref);
|
||||||
|
if (outSuccess)
|
||||||
|
*outSuccess = NS_SUCCEEDED(rv);
|
||||||
|
return intPref;
|
||||||
|
}
|
||||||
|
|
||||||
- (void)setPref: (const char*)prefName toString:(NSString*)value
|
- (void)setPref: (const char*)prefName toString:(NSString*)value
|
||||||
{
|
{
|
||||||
if (mPrefService) {
|
if (mPrefService) {
|
||||||
|
@ -248,5 +272,19 @@ const int kDefaultExpireDays = 9;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)setPref: (const char*)prefName toBoolean:(BOOL)value
|
||||||
|
{
|
||||||
|
if (mPrefService) {
|
||||||
|
mPrefService->SetBoolPref(prefName, value ? PR_TRUE : PR_FALSE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setPref: (const char*)prefName toInt:(int)value
|
||||||
|
{
|
||||||
|
if (mPrefService) {
|
||||||
|
PRInt32 prefValue = value;
|
||||||
|
mPrefService->SetIntPref(prefName, prefValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
|
@ -24,9 +24,11 @@
|
||||||
CLASS = OrgMozillaChimeraPreferenceNavigation;
|
CLASS = OrgMozillaChimeraPreferenceNavigation;
|
||||||
LANGUAGE = ObjC;
|
LANGUAGE = ObjC;
|
||||||
OUTLETS = {
|
OUTLETS = {
|
||||||
|
checkboxLoadTabsInBackground = NSButton;
|
||||||
checkboxNewTabBlank = NSButton;
|
checkboxNewTabBlank = NSButton;
|
||||||
checkboxNewWindowBlank = NSButton;
|
checkboxNewWindowBlank = NSButton;
|
||||||
checkboxOpenTabs = NSButton;
|
checkboxOpenTabs = NSButton;
|
||||||
|
checkboxOpenTabsForAEs = NSButton;
|
||||||
checkboxUseSystemHomePage = NSButton;
|
checkboxUseSystemHomePage = NSButton;
|
||||||
sliderHistoryDays = NSSlider;
|
sliderHistoryDays = NSSlider;
|
||||||
textFieldHistoryDays = NSTextField;
|
textFieldHistoryDays = NSTextField;
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<plist version="0.9">
|
<plist version="0.9">
|
||||||
<dict>
|
<dict>
|
||||||
<key>IBDocumentLocation</key>
|
<key>IBDocumentLocation</key>
|
||||||
<string>36 50 356 240 0 0 1152 746 </string>
|
<string>34 65 407 279 0 0 1152 746 </string>
|
||||||
<key>IBFramework Version</key>
|
<key>IBFramework Version</key>
|
||||||
<string>248.0</string>
|
<string>248.0</string>
|
||||||
<key>IBGroupedObjects</key>
|
<key>IBGroupedObjects</key>
|
||||||
|
|
Двоичный файл не отображается.
|
@ -37,17 +37,22 @@
|
||||||
// get the pref that specifies if we want to re-use the existing window or
|
// get the pref that specifies if we want to re-use the existing window or
|
||||||
// open a new one. There's really no point caching this pref.
|
// open a new one. There's really no point caching this pref.
|
||||||
PRBool reuseWindow = PR_FALSE;
|
PRBool reuseWindow = PR_FALSE;
|
||||||
|
PRBool loadInBackground = PR_FALSE;
|
||||||
|
|
||||||
nsCOMPtr<nsIPref> prefService ( do_GetService(NS_PREF_CONTRACTID) );
|
nsCOMPtr<nsIPref> prefService ( do_GetService(NS_PREF_CONTRACTID) );
|
||||||
if ( prefService )
|
if ( prefService ) {
|
||||||
prefService->GetBoolPref("browser.always_reuse_window", &reuseWindow);
|
prefService->GetBoolPref("browser.always_reuse_window", &reuseWindow);
|
||||||
|
prefService->GetBoolPref("browser.tabs.loadInBackground", &loadInBackground);
|
||||||
|
}
|
||||||
|
|
||||||
// reuse the main window if there is one. The user may have closed all of
|
// reuse the main window if there is one. The user may have closed all of
|
||||||
// them or we may get this event at startup before we've had time to load
|
// them or we may get this event at startup before we've had time to load
|
||||||
// our window.
|
// our window.
|
||||||
BrowserWindowController* controller = nsnull;
|
|
||||||
|
BrowserWindowController* controller = NULL;
|
||||||
if ( reuseWindow && [NSApp mainWindow] ) {
|
if ( reuseWindow && [NSApp mainWindow] ) {
|
||||||
controller = [[NSApp mainWindow] windowController];
|
controller = [[NSApp mainWindow] windowController];
|
||||||
[controller loadURLString:[self directParameter]];
|
[controller openNewTabWithURL:[self directParameter] loadInBackground:loadInBackground];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
controller = [[NSApp delegate] openBrowserWindowWithURL: [self directParameter]];
|
controller = [[NSApp delegate] openBrowserWindowWithURL: [self directParameter]];
|
||||||
|
|
|
@ -37,17 +37,22 @@
|
||||||
// get the pref that specifies if we want to re-use the existing window or
|
// get the pref that specifies if we want to re-use the existing window or
|
||||||
// open a new one. There's really no point caching this pref.
|
// open a new one. There's really no point caching this pref.
|
||||||
PRBool reuseWindow = PR_FALSE;
|
PRBool reuseWindow = PR_FALSE;
|
||||||
|
PRBool loadInBackground = PR_FALSE;
|
||||||
|
|
||||||
nsCOMPtr<nsIPref> prefService ( do_GetService(NS_PREF_CONTRACTID) );
|
nsCOMPtr<nsIPref> prefService ( do_GetService(NS_PREF_CONTRACTID) );
|
||||||
if ( prefService )
|
if ( prefService ) {
|
||||||
prefService->GetBoolPref("browser.always_reuse_window", &reuseWindow);
|
prefService->GetBoolPref("browser.always_reuse_window", &reuseWindow);
|
||||||
|
prefService->GetBoolPref("browser.tabs.loadInBackground", &loadInBackground);
|
||||||
|
}
|
||||||
|
|
||||||
// reuse the main window if there is one. The user may have closed all of
|
// reuse the main window if there is one. The user may have closed all of
|
||||||
// them or we may get this event at startup before we've had time to load
|
// them or we may get this event at startup before we've had time to load
|
||||||
// our window.
|
// our window.
|
||||||
BrowserWindowController* controller = nsnull;
|
|
||||||
|
BrowserWindowController* controller = NULL;
|
||||||
if ( reuseWindow && [NSApp mainWindow] ) {
|
if ( reuseWindow && [NSApp mainWindow] ) {
|
||||||
controller = [[NSApp mainWindow] windowController];
|
controller = [[NSApp mainWindow] windowController];
|
||||||
[controller loadURLString:[self directParameter]];
|
[controller openNewTabWithURL:[self directParameter] loadInBackground:loadInBackground];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
controller = [[NSApp delegate] openBrowserWindowWithURL: [self directParameter]];
|
controller = [[NSApp delegate] openBrowserWindowWithURL: [self directParameter]];
|
||||||
|
|
|
@ -24,9 +24,11 @@
|
||||||
CLASS = OrgMozillaChimeraPreferenceNavigation;
|
CLASS = OrgMozillaChimeraPreferenceNavigation;
|
||||||
LANGUAGE = ObjC;
|
LANGUAGE = ObjC;
|
||||||
OUTLETS = {
|
OUTLETS = {
|
||||||
|
checkboxLoadTabsInBackground = NSButton;
|
||||||
checkboxNewTabBlank = NSButton;
|
checkboxNewTabBlank = NSButton;
|
||||||
checkboxNewWindowBlank = NSButton;
|
checkboxNewWindowBlank = NSButton;
|
||||||
checkboxOpenTabs = NSButton;
|
checkboxOpenTabs = NSButton;
|
||||||
|
checkboxOpenTabsForAEs = NSButton;
|
||||||
checkboxUseSystemHomePage = NSButton;
|
checkboxUseSystemHomePage = NSButton;
|
||||||
sliderHistoryDays = NSSlider;
|
sliderHistoryDays = NSSlider;
|
||||||
textFieldHistoryDays = NSTextField;
|
textFieldHistoryDays = NSTextField;
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<plist version="0.9">
|
<plist version="0.9">
|
||||||
<dict>
|
<dict>
|
||||||
<key>IBDocumentLocation</key>
|
<key>IBDocumentLocation</key>
|
||||||
<string>36 50 356 240 0 0 1152 746 </string>
|
<string>34 65 407 279 0 0 1152 746 </string>
|
||||||
<key>IBFramework Version</key>
|
<key>IBFramework Version</key>
|
||||||
<string>248.0</string>
|
<string>248.0</string>
|
||||||
<key>IBGroupedObjects</key>
|
<key>IBGroupedObjects</key>
|
||||||
|
|
Двоичные данные
chimera/PreferencePanes/Navigation/English.lproj/Navigation.nib/objects.nib
сгенерированный
Двоичные данные
chimera/PreferencePanes/Navigation/English.lproj/Navigation.nib/objects.nib
сгенерированный
Двоичный файл не отображается.
|
@ -30,10 +30,15 @@ class nsIPref;
|
||||||
{
|
{
|
||||||
// IBOutlet NSButton *buttonSystemPreferences;
|
// IBOutlet NSButton *buttonSystemPreferences;
|
||||||
IBOutlet NSTextField *textFieldHomePage;
|
IBOutlet NSTextField *textFieldHomePage;
|
||||||
|
|
||||||
IBOutlet NSButton *checkboxUseSystemHomePage;
|
IBOutlet NSButton *checkboxUseSystemHomePage;
|
||||||
IBOutlet NSButton *checkboxNewTabBlank;
|
IBOutlet NSButton *checkboxNewTabBlank;
|
||||||
IBOutlet NSButton *checkboxNewWindowBlank;
|
IBOutlet NSButton *checkboxNewWindowBlank;
|
||||||
|
|
||||||
IBOutlet NSButton *checkboxOpenTabs;
|
IBOutlet NSButton *checkboxOpenTabs;
|
||||||
|
IBOutlet NSButton *checkboxOpenTabsForAEs;
|
||||||
|
IBOutlet NSButton *checkboxLoadTabsInBackground;
|
||||||
|
|
||||||
IBOutlet NSSlider *sliderHistoryDays;
|
IBOutlet NSSlider *sliderHistoryDays;
|
||||||
IBOutlet NSTextField *textFieldHistoryDays;
|
IBOutlet NSTextField *textFieldHistoryDays;
|
||||||
|
|
||||||
|
@ -50,6 +55,12 @@ class nsIPref;
|
||||||
- (NSString*)getSystemHomePage;
|
- (NSString*)getSystemHomePage;
|
||||||
- (NSString*)getCurrentHomePage;
|
- (NSString*)getCurrentHomePage;
|
||||||
|
|
||||||
- (NSString*)getPrefString: (const char*)prefName;
|
- (NSString*)getStringPref: (const char*)prefName withSuccess:(BOOL*)outSuccess;
|
||||||
|
- (BOOL)getBooleanPref: (const char*)prefName withSuccess:(BOOL*)outSuccess;
|
||||||
|
- (int)getIntPref: (const char*)prefName withSuccess:(BOOL*)outSuccess;
|
||||||
|
|
||||||
- (void)setPref: (const char*)prefName toString:(NSString*)value;
|
- (void)setPref: (const char*)prefName toString:(NSString*)value;
|
||||||
|
- (void)setPref: (const char*)prefName toBoolean:(BOOL)value;
|
||||||
|
- (void)setPref: (const char*)prefName toInt:(int)value;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
|
@ -56,33 +56,27 @@ const int kDefaultExpireDays = 9;
|
||||||
if (!mPrefService)
|
if (!mPrefService)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
PRBool boolPref;
|
BOOL gotPref;
|
||||||
PRInt32 intPref;
|
|
||||||
nsresult rv = mPrefService->GetIntPref("browser.startup.page", &intPref);
|
|
||||||
// Check for NS_FAILED because we don't want to falsely interpret
|
|
||||||
// a failure as a preference set to 0.
|
|
||||||
if (NS_SUCCEEDED(rv) && intPref == 0)
|
|
||||||
[checkboxNewWindowBlank setState:YES];
|
|
||||||
|
|
||||||
rv = mPrefService->GetIntPref("browser.tabs.startPage", &intPref);
|
|
||||||
if (NS_SUCCEEDED(rv) && intPref == 0)
|
|
||||||
[checkboxNewTabBlank setState:YES];
|
|
||||||
|
|
||||||
rv = mPrefService->GetIntPref("browser.history_expire_days", &intPref);
|
|
||||||
if (NS_FAILED(rv))
|
|
||||||
intPref = kDefaultExpireDays;
|
|
||||||
[textFieldHistoryDays setIntValue:intPref];
|
|
||||||
[sliderHistoryDays setIntValue:intPref];
|
|
||||||
|
|
||||||
rv = mPrefService->GetBoolPref("browser.tabs.opentabfor.middleclick", &boolPref);
|
|
||||||
if (NS_SUCCEEDED(rv) && boolPref == PR_TRUE)
|
|
||||||
[checkboxOpenTabs setState:YES];
|
|
||||||
|
|
||||||
BOOL useSystemHomePage = NO;
|
|
||||||
rv = mPrefService->GetBoolPref("chimera.use_system_home_page", &boolPref);
|
|
||||||
if (NS_SUCCEEDED(rv) && boolPref == PR_TRUE)
|
|
||||||
useSystemHomePage = YES;
|
|
||||||
|
|
||||||
|
if (([self getIntPref:"browser.startup.page" withSuccess:&gotPref] == 0) && gotPref)
|
||||||
|
[checkboxNewWindowBlank setState:YES];
|
||||||
|
|
||||||
|
if (([self getIntPref:"browser.tabs.startPage" withSuccess:&gotPref] == 0) && gotPref)
|
||||||
|
[checkboxNewTabBlank setState:YES];
|
||||||
|
|
||||||
|
|
||||||
|
int expireDays = [self getIntPref:"browser.history_expire_days" withSuccess:&gotPref];
|
||||||
|
if (!gotPref)
|
||||||
|
expireDays = kDefaultExpireDays;
|
||||||
|
|
||||||
|
[textFieldHistoryDays setIntValue:expireDays];
|
||||||
|
[sliderHistoryDays setIntValue:expireDays];
|
||||||
|
|
||||||
|
[checkboxOpenTabs setState:[self getBooleanPref:"browser.tabs.opentabfor.middleclick" withSuccess:&gotPref]];
|
||||||
|
[checkboxOpenTabsForAEs setState:[self getBooleanPref:"browser.always_reuse_window" withSuccess:&gotPref]];
|
||||||
|
[checkboxLoadTabsInBackground setState:[self getBooleanPref:"browser.tabs.loadInBackground" withSuccess:&gotPref]];
|
||||||
|
|
||||||
|
BOOL useSystemHomePage = [self getBooleanPref:"chimera.use_system_home_page" withSuccess:&gotPref] && gotPref;
|
||||||
if (useSystemHomePage)
|
if (useSystemHomePage)
|
||||||
[textFieldHomePage setEnabled:NO];
|
[textFieldHomePage setEnabled:NO];
|
||||||
|
|
||||||
|
@ -111,10 +105,18 @@ const int kDefaultExpireDays = 9;
|
||||||
|
|
||||||
- (IBAction)checkboxClicked:(id)sender
|
- (IBAction)checkboxClicked:(id)sender
|
||||||
{
|
{
|
||||||
if (!mPrefService || sender != checkboxOpenTabs)
|
if (!mPrefService)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
mPrefService->SetBoolPref("browser.tabs.opentabfor.middleclick", [sender state] ? PR_TRUE : PR_FALSE);
|
if (sender == checkboxOpenTabs) {
|
||||||
|
[self setPref:"browser.tabs.opentabfor.middleclick" toBoolean:[sender state]];
|
||||||
|
}
|
||||||
|
else if (sender == checkboxOpenTabsForAEs) {
|
||||||
|
[self setPref:"browser.always_reuse_window" toBoolean:[sender state]];
|
||||||
|
}
|
||||||
|
else if (sender == checkboxLoadTabsInBackground) {
|
||||||
|
[self setPref:"browser.tabs.loadInBackground" toBoolean:[sender state]];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)checkboxUseSystemHomePageClicked:(id)sender
|
- (IBAction)checkboxUseSystemHomePageClicked:(id)sender
|
||||||
|
@ -128,8 +130,7 @@ const int kDefaultExpireDays = 9;
|
||||||
if (useSystemHomePage)
|
if (useSystemHomePage)
|
||||||
[self setPref: "browser.startup.homepage" toString: [textFieldHomePage stringValue]];
|
[self setPref: "browser.startup.homepage" toString: [textFieldHomePage stringValue]];
|
||||||
|
|
||||||
mPrefService->SetBoolPref("chimera.use_system_home_page", useSystemHomePage ? PR_TRUE : PR_FALSE);
|
[self setPref:"chimera.use_system_home_page" toBoolean: useSystemHomePage];
|
||||||
|
|
||||||
[textFieldHomePage setStringValue: [self getCurrentHomePage]];
|
[textFieldHomePage setStringValue: [self getCurrentHomePage]];
|
||||||
[textFieldHomePage setEnabled:!useSystemHomePage];
|
[textFieldHomePage setEnabled:!useSystemHomePage];
|
||||||
}
|
}
|
||||||
|
@ -144,11 +145,9 @@ const int kDefaultExpireDays = 9;
|
||||||
prefName = "browser.tabs.page";
|
prefName = "browser.tabs.page";
|
||||||
else if (sender == checkboxNewWindowBlank)
|
else if (sender == checkboxNewWindowBlank)
|
||||||
prefName = "browser.startup.page";
|
prefName = "browser.startup.page";
|
||||||
else
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (prefName)
|
if (prefName)
|
||||||
mPrefService->SetIntPref(prefName, [sender state] ? 0 : 1);
|
[self setPref:prefName toInt: [sender state] ? 0 : 1];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)historyDaysModified:(id)sender
|
- (IBAction)historyDaysModified:(id)sender
|
||||||
|
@ -161,16 +160,19 @@ const int kDefaultExpireDays = 9;
|
||||||
else if (sender == textFieldHistoryDays) {
|
else if (sender == textFieldHistoryDays) {
|
||||||
// If any non-numeric characters were entered make some noise and spit it out.
|
// If any non-numeric characters were entered make some noise and spit it out.
|
||||||
if (([[textFieldHistoryDays stringValue] rangeOfCharacterFromSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]]).length) {
|
if (([[textFieldHistoryDays stringValue] rangeOfCharacterFromSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]]).length) {
|
||||||
PRInt32 intPref = kDefaultExpireDays;
|
BOOL gotPref;
|
||||||
mPrefService->GetIntPref("browser.history_expire_days", &intPref);
|
int prefValue = [self getIntPref:"browser.history_expire_days" withSuccess:&gotPref];
|
||||||
[textFieldHistoryDays setIntValue:intPref];
|
if (!gotPref)
|
||||||
|
prefValue = kDefaultExpireDays;
|
||||||
|
[textFieldHistoryDays setIntValue:prefValue];
|
||||||
|
[sliderHistoryDays setIntValue:prefValue];
|
||||||
NSBeep ();
|
NSBeep ();
|
||||||
return;
|
return;
|
||||||
} else
|
} else
|
||||||
[sliderHistoryDays setIntValue:[textFieldHistoryDays intValue]];
|
[sliderHistoryDays setIntValue:[textFieldHistoryDays intValue]];
|
||||||
}
|
}
|
||||||
|
|
||||||
mPrefService->SetIntPref("browser.history_expire_days", [sender intValue]);
|
[self setPref:"browser.history_expire_days" toInt:[sender intValue]];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -217,17 +219,16 @@ const int kDefaultExpireDays = 9;
|
||||||
|
|
||||||
- (NSString*) getCurrentHomePage
|
- (NSString*) getCurrentHomePage
|
||||||
{
|
{
|
||||||
BOOL useSystemHomePage = NO;
|
BOOL gotPref;
|
||||||
PRBool boolPref;
|
|
||||||
nsresult rv = mPrefService->GetBoolPref("chimera.use_system_home_page", &boolPref);
|
if ([self getBooleanPref:"chimera.use_system_home_page" withSuccess:&gotPref] && gotPref)
|
||||||
if (NS_SUCCEEDED(rv) && boolPref == PR_TRUE)
|
|
||||||
return [self getSystemHomePage];
|
return [self getSystemHomePage];
|
||||||
|
|
||||||
return [self getPrefString: "browser.startup.homepage"];
|
return [self getStringPref: "browser.startup.homepage" withSuccess:&gotPref];
|
||||||
}
|
}
|
||||||
|
|
||||||
// convenience routines for mozilla prefs
|
// convenience routines for mozilla prefs
|
||||||
- (NSString*)getPrefString: (const char*)prefName
|
- (NSString*)getStringPref: (const char*)prefName withSuccess:(BOOL*)outSuccess
|
||||||
{
|
{
|
||||||
NSMutableString *prefValue = [[[NSMutableString alloc] init] autorelease];
|
NSMutableString *prefValue = [[[NSMutableString alloc] init] autorelease];
|
||||||
|
|
||||||
|
@ -236,11 +237,34 @@ const int kDefaultExpireDays = 9;
|
||||||
if (NS_SUCCEEDED(rv) && buf) {
|
if (NS_SUCCEEDED(rv) && buf) {
|
||||||
[prefValue setString:[NSString stringWithCString:buf]];
|
[prefValue setString:[NSString stringWithCString:buf]];
|
||||||
free(buf);
|
free(buf);
|
||||||
|
if (outSuccess) *outSuccess = YES;
|
||||||
|
} else {
|
||||||
|
if (outSuccess) *outSuccess = NO;
|
||||||
}
|
}
|
||||||
|
|
||||||
return prefValue;
|
return prefValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// convenience routines for mozilla prefs
|
||||||
|
- (BOOL)getBooleanPref: (const char*)prefName withSuccess:(BOOL*)outSuccess
|
||||||
|
{
|
||||||
|
PRBool boolPref = PR_FALSE;
|
||||||
|
nsresult rv = mPrefService->GetBoolPref(prefName, &boolPref);
|
||||||
|
if (outSuccess)
|
||||||
|
*outSuccess = NS_SUCCEEDED(rv);
|
||||||
|
|
||||||
|
return boolPref ? YES : NO;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (int)getIntPref: (const char*)prefName withSuccess:(BOOL*)outSuccess
|
||||||
|
{
|
||||||
|
PRInt32 intPref = 0;
|
||||||
|
nsresult rv = mPrefService->GetBoolPref(prefName, &intPref);
|
||||||
|
if (outSuccess)
|
||||||
|
*outSuccess = NS_SUCCEEDED(rv);
|
||||||
|
return intPref;
|
||||||
|
}
|
||||||
|
|
||||||
- (void)setPref: (const char*)prefName toString:(NSString*)value
|
- (void)setPref: (const char*)prefName toString:(NSString*)value
|
||||||
{
|
{
|
||||||
if (mPrefService) {
|
if (mPrefService) {
|
||||||
|
@ -248,5 +272,19 @@ const int kDefaultExpireDays = 9;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)setPref: (const char*)prefName toBoolean:(BOOL)value
|
||||||
|
{
|
||||||
|
if (mPrefService) {
|
||||||
|
mPrefService->SetBoolPref(prefName, value ? PR_TRUE : PR_FALSE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setPref: (const char*)prefName toInt:(int)value
|
||||||
|
{
|
||||||
|
if (mPrefService) {
|
||||||
|
PRInt32 prefValue = value;
|
||||||
|
mPrefService->SetIntPref(prefName, prefValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
|
@ -24,9 +24,11 @@
|
||||||
CLASS = OrgMozillaChimeraPreferenceNavigation;
|
CLASS = OrgMozillaChimeraPreferenceNavigation;
|
||||||
LANGUAGE = ObjC;
|
LANGUAGE = ObjC;
|
||||||
OUTLETS = {
|
OUTLETS = {
|
||||||
|
checkboxLoadTabsInBackground = NSButton;
|
||||||
checkboxNewTabBlank = NSButton;
|
checkboxNewTabBlank = NSButton;
|
||||||
checkboxNewWindowBlank = NSButton;
|
checkboxNewWindowBlank = NSButton;
|
||||||
checkboxOpenTabs = NSButton;
|
checkboxOpenTabs = NSButton;
|
||||||
|
checkboxOpenTabsForAEs = NSButton;
|
||||||
checkboxUseSystemHomePage = NSButton;
|
checkboxUseSystemHomePage = NSButton;
|
||||||
sliderHistoryDays = NSSlider;
|
sliderHistoryDays = NSSlider;
|
||||||
textFieldHistoryDays = NSTextField;
|
textFieldHistoryDays = NSTextField;
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<plist version="0.9">
|
<plist version="0.9">
|
||||||
<dict>
|
<dict>
|
||||||
<key>IBDocumentLocation</key>
|
<key>IBDocumentLocation</key>
|
||||||
<string>36 50 356 240 0 0 1152 746 </string>
|
<string>34 65 407 279 0 0 1152 746 </string>
|
||||||
<key>IBFramework Version</key>
|
<key>IBFramework Version</key>
|
||||||
<string>248.0</string>
|
<string>248.0</string>
|
||||||
<key>IBGroupedObjects</key>
|
<key>IBGroupedObjects</key>
|
||||||
|
|
Двоичный файл не отображается.
|
@ -37,17 +37,22 @@
|
||||||
// get the pref that specifies if we want to re-use the existing window or
|
// get the pref that specifies if we want to re-use the existing window or
|
||||||
// open a new one. There's really no point caching this pref.
|
// open a new one. There's really no point caching this pref.
|
||||||
PRBool reuseWindow = PR_FALSE;
|
PRBool reuseWindow = PR_FALSE;
|
||||||
|
PRBool loadInBackground = PR_FALSE;
|
||||||
|
|
||||||
nsCOMPtr<nsIPref> prefService ( do_GetService(NS_PREF_CONTRACTID) );
|
nsCOMPtr<nsIPref> prefService ( do_GetService(NS_PREF_CONTRACTID) );
|
||||||
if ( prefService )
|
if ( prefService ) {
|
||||||
prefService->GetBoolPref("browser.always_reuse_window", &reuseWindow);
|
prefService->GetBoolPref("browser.always_reuse_window", &reuseWindow);
|
||||||
|
prefService->GetBoolPref("browser.tabs.loadInBackground", &loadInBackground);
|
||||||
|
}
|
||||||
|
|
||||||
// reuse the main window if there is one. The user may have closed all of
|
// reuse the main window if there is one. The user may have closed all of
|
||||||
// them or we may get this event at startup before we've had time to load
|
// them or we may get this event at startup before we've had time to load
|
||||||
// our window.
|
// our window.
|
||||||
BrowserWindowController* controller = nsnull;
|
|
||||||
|
BrowserWindowController* controller = NULL;
|
||||||
if ( reuseWindow && [NSApp mainWindow] ) {
|
if ( reuseWindow && [NSApp mainWindow] ) {
|
||||||
controller = [[NSApp mainWindow] windowController];
|
controller = [[NSApp mainWindow] windowController];
|
||||||
[controller loadURLString:[self directParameter]];
|
[controller openNewTabWithURL:[self directParameter] loadInBackground:loadInBackground];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
controller = [[NSApp delegate] openBrowserWindowWithURL: [self directParameter]];
|
controller = [[NSApp delegate] openBrowserWindowWithURL: [self directParameter]];
|
||||||
|
|
Загрузка…
Ссылка в новой задаче