* Moved "Auto-hide" menu item into Settings window, as a check box along the

"show tabs if single page only" option.
* Fixed problems with showing tabs when opening new tabs while the interface
  was hidden. Introduced a new flag which tracks the hidden state to make
  this easier.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@486 94f232f2-1747-11df-bad5-a5bfde151594
This commit is contained in:
stippi 2010-05-04 22:36:04 +00:00 committed by Alexandre Deckner
parent c2227feb1e
commit ea40bbf2d1
6 changed files with 43 additions and 21 deletions

View File

@ -197,6 +197,7 @@ BrowserWindow::BrowserWindow(BRect frame, SettingsMessage* appSettings,
B_DOCUMENT_WINDOW_LOOK, B_NORMAL_WINDOW_FEEL,
B_AUTO_UPDATE_SIZE_LIMITS | B_ASYNCHRONOUS_CONTROLS),
fIsFullscreen(false),
fInterfaceVisible(false),
fPulseRunner(NULL),
fVisibleInterfaceElements(interfaceElements),
fAppSettings(appSettings),
@ -290,11 +291,6 @@ BrowserWindow::BrowserWindow(BRect frame, SettingsMessage* appSettings,
fFullscreenItem = new BMenuItem("Fullscreen",
new BMessage(TOGGLE_FULLSCREEN), B_RETURN);
menu->AddItem(fFullscreenItem);
fAutoHideInterfaceInFullscreenItem = new BMenuItem("Auto hide interface "
"in fullscreen mode",
new BMessage(TOGGLE_AUTO_HIDE_INTERFACE_IN_FULLSCREEN));
menu->AddItem(fAutoHideInterfaceInFullscreenItem);
mainMenu->AddItem(menu);
fHistoryMenu = new BMenu("History");
@ -433,7 +429,7 @@ BrowserWindow::BrowserWindow(BRect frame, SettingsMessage* appSettings,
CreateNewTab(url, true, webView);
_ShowInterface(true);
_SetAutoHideInterfaceInFullscreen(fAppSettings->GetValue(
kAutoHideInterfaceInFullscreenMode,
kSettingsKeyAutoHideInterfaceInFullscreenMode,
fAutoHideInterfaceInFullscreenMode));
AddShortcut('F', B_COMMAND_KEY | B_SHIFT_KEY, new BMessage(EDIT_HIDE_FIND_GROUP));
@ -786,7 +782,7 @@ BrowserWindow::MessageReceived(BMessage* message)
} else if (name == kSettingsKeyNewTabPolicy
&& message->FindUInt32("value", &value) == B_OK) {
fNewTabPolicy = value;
} else if (name == kAutoHideInterfaceInFullscreenMode
} else if (name == kSettingsKeyAutoHideInterfaceInFullscreenMode
&& message->FindBool("value", &flag) == B_OK) {
_SetAutoHideInterfaceInFullscreen(flag);
}
@ -956,6 +952,7 @@ BrowserWindow::CreateNewTab(const BString& _url, bool select, BWebView* webView)
fURLInputGroup->MakeFocus(true);
}
_ShowInterface(true);
_UpdateTabGroupVisibility();
}
@ -1302,8 +1299,10 @@ void
BrowserWindow::_UpdateTabGroupVisibility()
{
if (Lock()) {
fTabGroup->SetVisible(fShowTabsIfSinglePageOpen
|| fTabManager->CountTabs() > 1);
if (fInterfaceVisible) {
fTabGroup->SetVisible(fShowTabsIfSinglePageOpen
|| fTabManager->CountTabs() > 1);
}
fTabManager->SetCloseButtonsAvailable(fTabManager->CountTabs() > 1);
Unlock();
}
@ -1813,10 +1812,10 @@ BrowserWindow::_SetAutoHideInterfaceInFullscreen(bool doIt)
return;
fAutoHideInterfaceInFullscreenMode = doIt;
fAutoHideInterfaceInFullscreenItem->SetMarked(doIt);
if (fAppSettings->GetValue(kAutoHideInterfaceInFullscreenMode, doIt)
!= doIt) {
fAppSettings->SetValue(kAutoHideInterfaceInFullscreenMode, doIt);
if (fAppSettings->GetValue(kSettingsKeyAutoHideInterfaceInFullscreenMode,
doIt) != doIt) {
fAppSettings->SetValue(kSettingsKeyAutoHideInterfaceInFullscreenMode,
doIt);
}
if (fAutoHideInterfaceInFullscreenMode) {
@ -1858,13 +1857,19 @@ BrowserWindow::_CheckAutoHideInterface()
void
BrowserWindow::_ShowInterface(bool show)
{
if (fInterfaceVisible == show)
return;
fInterfaceVisible = show;
if (show) {
#if !INTEGRATE_MENU_INTO_TAB_BAR
fMenuGroup->SetVisible(
(fVisibleInterfaceElements & INTERFACE_ELEMENT_MENU) != 0);
#endif
fTabGroup->SetVisible(
(fVisibleInterfaceElements & INTERFACE_ELEMENT_TABS) != 0);
fTabGroup->SetVisible((fShowTabsIfSinglePageOpen
|| fTabManager->CountTabs() > 1)
&& (fVisibleInterfaceElements & INTERFACE_ELEMENT_TABS) != 0);
fNavigationGroup->SetVisible(
(fVisibleInterfaceElements & INTERFACE_ELEMENT_NAVIGATION) != 0);
fStatusGroup->SetVisible(

View File

@ -193,7 +193,6 @@ private:
BMenuItem* fFindNextMenuItem;
BMenuItem* fZoomTextOnlyMenuItem;
BMenuItem* fFullscreenItem;
BMenuItem* fAutoHideInterfaceInFullscreenItem;
BMenuItem* fBackMenuItem;
BMenuItem* fForwardMenuItem;
@ -216,6 +215,7 @@ private:
TabManager* fTabManager;
bool fIsFullscreen;
bool fInterfaceVisible;
BRect fNonFullscreenWindowFrame;
BMessageRunner* fPulseRunner;
uint32 fVisibleInterfaceElements;

View File

@ -30,6 +30,8 @@
const char* kSettingsKeyDownloadPath = "download path";
const char* kSettingsKeyShowTabsIfSinglePageOpen
= "show tabs if single page open";
const char* kSettingsKeyAutoHideInterfaceInFullscreenMode
= "auto hide interface in full screen mode";
const char* kSettingsKeyNewWindowPolicy = "new window policy";
const char* kSettingsKeyNewTabPolicy = "new tab policy";
@ -45,6 +47,3 @@ const char* kDefaultSearchPageURL = "http://www.google.com";
const char* kSettingsKeyUseProxy = "use http proxy";
const char* kSettingsKeyProxyAddress = "http proxy address";
const char* kSettingsKeyProxyPort = "http proxy port";
const char* kAutoHideInterfaceInFullscreenMode
= "auto hide interface in full screen mode";

View File

@ -32,6 +32,7 @@
extern const char* kSettingsKeyDownloadPath;
extern const char* kSettingsKeyShowTabsIfSinglePageOpen;
extern const char* kSettingsKeyAutoHideInterfaceInFullscreenMode;
extern const char* kSettingsKeyNewWindowPolicy;
extern const char* kSettingsKeyNewTabPolicy;
@ -46,6 +47,4 @@ extern const char* kSettingsKeyUseProxy;
extern const char* kSettingsKeyProxyAddress;
extern const char* kSettingsKeyProxyPort;
extern const char* kAutoHideInterfaceInFullscreenMode;
#endif // SETTINGS_KEYS_H

View File

@ -70,6 +70,7 @@ enum {
MSG_NEW_TABS_BEHAVIOR_CHANGED = 'ntbc',
MSG_HISTORY_MENU_DAYS_CHANGED = 'digm',
MSG_TAB_DISPLAY_BEHAVIOR_CHANGED = 'tdbc',
MSG_AUTO_HIDE_BEHAVIOR_CHANGED = 'ahbc',
MSG_STANDARD_FONT_CHANGED = 'stfc',
MSG_SERIF_FONT_CHANGED = 'sefc',
@ -195,6 +196,7 @@ SettingsWindow::MessageReceived(BMessage* message)
case MSG_NEW_TABS_BEHAVIOR_CHANGED:
case MSG_HISTORY_MENU_DAYS_CHANGED:
case MSG_TAB_DISPLAY_BEHAVIOR_CHANGED:
case MSG_AUTO_HIDE_BEHAVIOR_CHANGED:
case MSG_STANDARD_FONT_CHANGED:
case MSG_SERIF_FONT_CHANGED:
case MSG_SANS_SERIF_FONT_CHANGED:
@ -311,6 +313,11 @@ SettingsWindow::_CreateGeneralPage(float spacing)
new BMessage(MSG_TAB_DISPLAY_BEHAVIOR_CHANGED));
fShowTabsIfOnlyOnePage->SetValue(B_CONTROL_ON);
fAutoHideInterfaceInFullscreenMode = new BCheckBox("auto-hide interface",
TR("Auto-hide interface in fullscreen mode."),
new BMessage(MSG_AUTO_HIDE_BEHAVIOR_CHANGED));
fAutoHideInterfaceInFullscreenMode->SetValue(B_CONTROL_OFF);
BView* view = BGroupLayoutBuilder(B_VERTICAL, spacing / 2)
.Add(BGridLayoutBuilder(spacing / 2, spacing / 2)
.Add(fStartPageControl->CreateLabelLayoutItem(), 0, 0)
@ -332,6 +339,7 @@ SettingsWindow::_CreateGeneralPage(float spacing)
.Add(new BSeparatorView(B_HORIZONTAL, B_PLAIN_BORDER))
.Add(BSpaceLayoutItem::CreateHorizontalStrut(spacing))
.Add(fShowTabsIfOnlyOnePage)
.Add(fAutoHideInterfaceInFullscreenMode)
.Add(fDaysInHistoryMenuControl)
.Add(BSpaceLayoutItem::CreateHorizontalStrut(spacing))
@ -499,6 +507,11 @@ SettingsWindow::_CanApplySettings() const
canApply = canApply || ((fShowTabsIfOnlyOnePage->Value() == B_CONTROL_ON)
!= fSettings->GetValue(kSettingsKeyShowTabsIfSinglePageOpen, true));
canApply = canApply || (
(fAutoHideInterfaceInFullscreenMode->Value() == B_CONTROL_ON)
!= fSettings->GetValue(kSettingsKeyAutoHideInterfaceInFullscreenMode,
false));
canApply = canApply || (_MaxHistoryAge()
!= BrowsingHistory::DefaultInstance()->MaxHistoryItemAge());
@ -560,6 +573,8 @@ SettingsWindow::_ApplySettings()
fSettings->SetValue(kSettingsKeyDownloadPath, fDownloadFolderControl->Text());
fSettings->SetValue(kSettingsKeyShowTabsIfSinglePageOpen,
fShowTabsIfOnlyOnePage->Value() == B_CONTROL_ON);
fSettings->SetValue(kSettingsKeyAutoHideInterfaceInFullscreenMode,
fAutoHideInterfaceInFullscreenMode->Value() == B_CONTROL_ON);
// New page policies
fSettings->SetValue(kSettingsKeyNewWindowPolicy, _NewWindowPolicy());
@ -622,6 +637,9 @@ SettingsWindow::_RevertSettings()
fSettings->GetValue(kSettingsKeyDownloadPath, kDefaultDownloadPath));
fShowTabsIfOnlyOnePage->SetValue(
fSettings->GetValue(kSettingsKeyShowTabsIfSinglePageOpen, true));
fAutoHideInterfaceInFullscreenMode->SetValue(
fSettings->GetValue(kSettingsKeyAutoHideInterfaceInFullscreenMode,
false));
BString text;
text << BrowsingHistory::DefaultInstance()->MaxHistoryItemAge();

View File

@ -96,6 +96,7 @@ private:
BTextControl* fDaysInHistoryMenuControl;
BCheckBox* fShowTabsIfOnlyOnePage;
BCheckBox* fAutoHideInterfaceInFullscreenMode;
FontSelectionView* fStandardFontView;
FontSelectionView* fSerifFontView;