From 53d5558fcf92b0decd8e1b6983719fb432a0effd Mon Sep 17 00:00:00 2001
From: Victor <vikkindhart@gmail.com>
Date: Mon, 19 Jun 2017 23:58:13 +0000
Subject: [PATCH] Add a setting "Switch to newly opened tab".
This patch adds a settings "Switch to newly opened tab" to the
settings menu.
Fixes #13569.
---
src/apps/webpositive/BrowserWindow.cpp | 5 ++++-
src/apps/webpositive/SettingsKeys.cpp | 4 +++-
src/apps/webpositive/SettingsKeys.h | 1 +
src/apps/webpositive/SettingsWindow.cpp | 15 +++++++++++++++
src/apps/webpositive/SettingsWindow.h | 1 +
5 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/src/apps/webpositive/BrowserWindow.cpp b/src/apps/webpositive/BrowserWindow.cpp
index 066d189..f6f6ee7 100644
a
|
b
|
BrowserWindow::NewPageCreated(BWebView* view, BRect windowFrame,
|
1458 | 1458 | view); |
1459 | 1459 | window->Show(); |
1460 | 1460 | } else |
1461 | | CreateNewTab(BString(), activate, view); |
| 1461 | CreateNewTab(BString(), |
| 1462 | fAppSettings->GetValue(kSettingsKeySwitchToNewlyOpenedTab, |
| 1463 | activate), |
| 1464 | view); |
1462 | 1465 | } |
1463 | 1466 | |
1464 | 1467 | |
diff --git a/src/apps/webpositive/SettingsKeys.cpp b/src/apps/webpositive/SettingsKeys.cpp
index 1cb2a37..987d506 100644
a
|
b
|
|
16 | 16 | const char* kSettingsKeyDownloadPath = "download path"; |
17 | 17 | const char* kSettingsKeyShowTabsIfSinglePageOpen |
18 | 18 | = "show tabs if single page open"; |
| 19 | const char* kSettingsKeySwitchToNewlyOpenedTab |
| 20 | = "switch to newly opened tab"; |
19 | 21 | const char* kSettingsKeyAutoHideInterfaceInFullscreenMode |
20 | 22 | = "auto hide interface in full screen mode"; |
21 | 23 | const char* kSettingsKeyAutoHidePointer = "auto hide pointer"; |
… |
… |
const char* kSettingsKeyUseProxyAuth = "use http proxy authentication";
|
39 | 41 | const char* kSettingsKeyProxyUsername = "http proxy username"; |
40 | 42 | const char* kSettingsKeyProxyPassword = "http proxy password"; |
41 | 43 | |
42 | | const char* kSettingsShowBookmarkBar = "show bookmarks bar"; |
43 | | No newline at end of file |
| 44 | const char* kSettingsShowBookmarkBar = "show bookmarks bar"; |
diff --git a/src/apps/webpositive/SettingsKeys.h b/src/apps/webpositive/SettingsKeys.h
index 21cbeb9..504d262 100644
a
|
b
|
|
17 | 17 | |
18 | 18 | extern const char* kSettingsKeyDownloadPath; |
19 | 19 | extern const char* kSettingsKeyShowTabsIfSinglePageOpen; |
| 20 | extern const char* kSettingsKeySwitchToNewlyOpenedTab; |
20 | 21 | extern const char* kSettingsKeyAutoHideInterfaceInFullscreenMode; |
21 | 22 | extern const char* kSettingsKeyAutoHidePointer; |
22 | 23 | extern const char* kSettingsKeyShowHomeButton; |
diff --git a/src/apps/webpositive/SettingsWindow.cpp b/src/apps/webpositive/SettingsWindow.cpp
index a6ab410..1f2758f 100644
a
|
b
|
enum {
|
52 | 52 | MSG_NEW_TABS_BEHAVIOR_CHANGED = 'ntbc', |
53 | 53 | MSG_HISTORY_MENU_DAYS_CHANGED = 'digm', |
54 | 54 | MSG_TAB_DISPLAY_BEHAVIOR_CHANGED = 'tdbc', |
| 55 | MSG_NEWLY_OPENED_TAB_BEHAVIOR_CHANGED = 'notc', |
55 | 56 | MSG_AUTO_HIDE_INTERFACE_BEHAVIOR_CHANGED = 'ahic', |
56 | 57 | MSG_AUTO_HIDE_POINTER_BEHAVIOR_CHANGED = 'ahpc', |
57 | 58 | MSG_SHOW_HOME_BUTTON_CHANGED = 'shbc', |
… |
… |
SettingsWindow::MessageReceived(BMessage* message)
|
184 | 185 | case MSG_DOWNLOAD_FOLDER_CHANGED: |
185 | 186 | case MSG_NEW_WINDOWS_BEHAVIOR_CHANGED: |
186 | 187 | case MSG_NEW_TABS_BEHAVIOR_CHANGED: |
| 188 | case MSG_NEWLY_OPENED_TAB_BEHAVIOR_CHANGED: |
187 | 189 | case MSG_HISTORY_MENU_DAYS_CHANGED: |
188 | 190 | case MSG_TAB_DISPLAY_BEHAVIOR_CHANGED: |
189 | 191 | case MSG_AUTO_HIDE_INTERFACE_BEHAVIOR_CHANGED: |
… |
… |
SettingsWindow::_CreateGeneralPage(float spacing)
|
317 | 319 | new BMessage(MSG_TAB_DISPLAY_BEHAVIOR_CHANGED)); |
318 | 320 | fShowTabsIfOnlyOnePage->SetValue(B_CONTROL_ON); |
319 | 321 | |
| 322 | fSwitchToNewlyOpenedTab = new BCheckBox("switch to newly opened tab", |
| 323 | B_TRANSLATE("Switch to newly opened tab"), |
| 324 | new BMessage(MSG_NEWLY_OPENED_TAB_BEHAVIOR_CHANGED)); |
| 325 | fSwitchToNewlyOpenedTab->SetValue(B_CONTROL_ON); |
| 326 | |
320 | 327 | fAutoHideInterfaceInFullscreenMode = new BCheckBox("auto-hide interface", |
321 | 328 | B_TRANSLATE("Auto-hide interface in full screen mode"), |
322 | 329 | new BMessage(MSG_AUTO_HIDE_INTERFACE_BEHAVIOR_CHANGED)); |
… |
… |
SettingsWindow::_CreateGeneralPage(float spacing)
|
353 | 360 | .Add(new BSeparatorView(B_HORIZONTAL, B_PLAIN_BORDER)) |
354 | 361 | .Add(BSpaceLayoutItem::CreateHorizontalStrut(spacing)) |
355 | 362 | .Add(fShowTabsIfOnlyOnePage) |
| 363 | .Add(fSwitchToNewlyOpenedTab) |
356 | 364 | .Add(fAutoHideInterfaceInFullscreenMode) |
357 | 365 | .Add(fAutoHidePointer) |
358 | 366 | .Add(fShowHomeButton) |
… |
… |
SettingsWindow::_CanApplySettings() const
|
568 | 576 | canApply = canApply || ((fShowTabsIfOnlyOnePage->Value() == B_CONTROL_ON) |
569 | 577 | != fSettings->GetValue(kSettingsKeyShowTabsIfSinglePageOpen, true)); |
570 | 578 | |
| 579 | canApply = canApply || ((fSwitchToNewlyOpenedTab->Value() == B_CONTROL_ON) |
| 580 | != fSettings->GetValue(kSettingsKeySwitchToNewlyOpenedTab, false)); |
| 581 | |
571 | 582 | canApply = canApply || ( |
572 | 583 | (fAutoHideInterfaceInFullscreenMode->Value() == B_CONTROL_ON) |
573 | 584 | != fSettings->GetValue(kSettingsKeyAutoHideInterfaceInFullscreenMode, |
… |
… |
SettingsWindow::_ApplySettings()
|
646 | 657 | fSettings->SetValue(kSettingsKeyDownloadPath, fDownloadFolderControl->Text()); |
647 | 658 | fSettings->SetValue(kSettingsKeyShowTabsIfSinglePageOpen, |
648 | 659 | fShowTabsIfOnlyOnePage->Value() == B_CONTROL_ON); |
| 660 | fSettings->SetValue(kSettingsKeySwitchToNewlyOpenedTab, |
| 661 | fSwitchToNewlyOpenedTab->Value() == B_CONTROL_ON); |
649 | 662 | fSettings->SetValue(kSettingsKeyAutoHideInterfaceInFullscreenMode, |
650 | 663 | fAutoHideInterfaceInFullscreenMode->Value() == B_CONTROL_ON); |
651 | 664 | fSettings->SetValue(kSettingsKeyAutoHidePointer, |
… |
… |
SettingsWindow::_RevertSettings()
|
725 | 738 | fSettings->GetValue(kSettingsKeyDownloadPath, kDefaultDownloadPath)); |
726 | 739 | fShowTabsIfOnlyOnePage->SetValue( |
727 | 740 | fSettings->GetValue(kSettingsKeyShowTabsIfSinglePageOpen, true)); |
| 741 | fSwitchToNewlyOpenedTab->SetValue( |
| 742 | fSettings->GetValue(kSettingsKeySwitchToNewlyOpenedTab, false)); |
728 | 743 | fAutoHideInterfaceInFullscreenMode->SetValue( |
729 | 744 | fSettings->GetValue(kSettingsKeyAutoHideInterfaceInFullscreenMode, |
730 | 745 | false)); |
diff --git a/src/apps/webpositive/SettingsWindow.h b/src/apps/webpositive/SettingsWindow.h
index 4511c5a..4a18ecb 100644
a
|
b
|
private:
|
75 | 75 | |
76 | 76 | BSpinner* fDaysInHistory; |
77 | 77 | BCheckBox* fShowTabsIfOnlyOnePage; |
| 78 | BCheckBox* fSwitchToNewlyOpenedTab; |
78 | 79 | BCheckBox* fAutoHideInterfaceInFullscreenMode; |
79 | 80 | BCheckBox* fAutoHidePointer; |
80 | 81 | BCheckBox* fShowHomeButton; |