Bug 1391948 - Don't use checkboxes for the "View Bookmarks Toolbar" and "View Bookmarks Sidebar" items in the Bookmarks button menu. r=mak

MozReview-Commit-ID: 2P3yV6xHLxi

--HG--
extra : rebase_source : 9352eac0344844218622149a3dc34959e620d431
This commit is contained in:
Paolo Amadini 2018-04-11 12:42:18 +01:00
parent 44544c8c11
commit 3193903d17
4 changed files with 37 additions and 87 deletions

View File

@ -1289,17 +1289,6 @@ var BookmarkingUI = {
return gNavigatorBundle.getFormattedString(strId, args);
},
/**
* The popup contents must be updated when the user customizes the UI, or
* changes the personal toolbar collapsed status. In such a case, any needed
* change should be handled in the popupshowing helper, for performance
* reasons.
*/
_popupNeedsUpdate: true,
onToolbarVisibilityChange: function BUI_onToolbarVisibilityChange() {
this._popupNeedsUpdate = true;
},
onPopupShowing: function BUI_onPopupShowing(event) {
// Don't handle events for submenus.
if (event.target != event.currentTarget)
@ -1331,23 +1320,21 @@ var BookmarkingUI = {
this._initMobileBookmarks(document.getElementById("BMB_mobileBookmarks"));
if (!this._popupNeedsUpdate)
return;
this._popupNeedsUpdate = false;
this.selectLabel("BMB_viewBookmarksSidebar",
SidebarUI.currentID == "viewBookmarksSidebar");
this.selectLabel("BMB_viewBookmarksToolbar",
!document.getElementById("PersonalToolbar").collapsed);
},
let popup = event.target;
let getPlacesAnonymousElement =
aAnonId => document.getAnonymousElementByAttribute(popup.parentNode,
"placesanonid",
aAnonId);
selectLabel(elementId, visible) {
let element = document.getElementById(elementId);
element.setAttribute("label", element.getAttribute(visible ? "label-hide"
: "label-show"));
},
let viewToolbarMenuitem = getPlacesAnonymousElement("view-toolbar");
if (viewToolbarMenuitem) {
// Update View bookmarks toolbar checkbox menuitem.
viewToolbarMenuitem.classList.add("subviewbutton");
let personalToolbar = document.getElementById("PersonalToolbar");
viewToolbarMenuitem.setAttribute("checked", !personalToolbar.collapsed);
}
toggleBookmarksToolbar() {
CustomizableUI.setToolbarVisibility("PersonalToolbar",
document.getElementById("PersonalToolbar").collapsed);
},
attachPlacesView(event, node) {
@ -1440,7 +1427,6 @@ var BookmarkingUI = {
onCustomizeEnd: function BUI_customizeEnd(aWindow) {
if (aWindow == window) {
this._isCustomizing = false;
this.onToolbarVisibilityChange();
}
},
@ -1651,40 +1637,14 @@ var BookmarkingUI = {
},
showBookmarkingTools(triggerNode) {
const panelID = "PanelUI-bookmarkingTools";
let viewNode = document.getElementById(panelID);
for (let button of [...viewNode.getElementsByTagName("toolbarbutton")]) {
let update = true;
switch (button.id) {
case "panelMenu_toggleBookmarksMenu":
let placement = CustomizableUI.getPlacementOfWidget(this.BOOKMARK_BUTTON_ID);
button.setAttribute("checked", !!placement && placement.area == CustomizableUI.AREA_NAVBAR);
break;
case "panelMenu_viewBookmarksSidebar":
button.setAttribute("checked", SidebarUI.currentID == "viewBookmarksSidebar");
break;
case "panelMenu_viewBookmarksToolbar":
let toolbar = document.getElementById("PersonalToolbar");
// This is an actual toolbarbutton[type=checkbox], and its checked
// attribute will get added/removed by the binding when clicked.
// Setting the attribute to 'false' breaks showing the toolbar,
// because the binding removes the attribute instead of setting it
// to 'true' when clicked.
if (toolbar.getAttribute("collapsed") != "true") {
button.setAttribute("checked", "true");
} else {
button.removeAttribute("checked");
}
break;
default:
update = false;
break;
}
if (update) {
updateToggleControlLabel(button);
}
}
PanelUI.showSubView(panelID, triggerNode);
let placement = CustomizableUI.getPlacementOfWidget(this.BOOKMARK_BUTTON_ID);
this.selectLabel("panelMenu_toggleBookmarksMenu",
placement && placement.area == CustomizableUI.AREA_NAVBAR);
this.selectLabel("panelMenu_viewBookmarksSidebar",
SidebarUI.currentID == "viewBookmarksSidebar");
this.selectLabel("panelMenu_viewBookmarksToolbar",
!document.getElementById("PersonalToolbar").collapsed);
PanelUI.showSubView("PanelUI-bookmarkingTools", triggerNode);
},
toggleMenuButtonInToolbar(triggerNode) {

View File

@ -5605,8 +5605,6 @@ function setToolbarVisibility(toolbar, isVisible, persist = true) {
let event = new CustomEvent("toolbarvisibilitychange", eventParams);
toolbar.dispatchEvent(event);
BookmarkingUI.onToolbarVisibilityChange();
if (toolbar.getAttribute("type") == "menubar" && CustomizationHandler.isCustomizing()) {
gCustomizeMode._updateDragSpaceCheckbox();
}

View File

@ -1110,11 +1110,9 @@
tooltip="bhTooltip" popupsinherittooltip="true">
<menuitem id="BMB_viewBookmarksSidebar"
class="subviewbutton"
label="&viewBookmarksSidebar2.label;"
type="checkbox"
oncommand="SidebarUI.toggle('viewBookmarksSidebar');">
<observes element="viewBookmarksSidebar" attribute="checked"/>
</menuitem>
label-show="&viewBookmarksSidebar2.label;"
label-hide="&hideBookmarksSidebar.label;"
oncommand="SidebarUI.toggle('viewBookmarksSidebar');"/>
<!-- NB: temporary solution for bug 985024, this should go away soon. -->
<menuitem id="BMB_bookmarksShowAllTop"
class="menuitem-iconic subviewbutton"
@ -1133,11 +1131,10 @@
new PlacesMenu(event, 'place:folder=TOOLBAR',
PlacesUIUtils.getViewForNode(this.parentNode.parentNode).options);">
<menuitem id="BMB_viewBookmarksToolbar"
placesanonid="view-toolbar"
toolbarId="PersonalToolbar"
type="checkbox"
oncommand="onViewToolbarCommand(event)"
label="&viewBookmarksToolbar.label;"/>
class="subviewbutton"
label-show="&viewBookmarksToolbar.label;"
label-hide="&hideBookmarksToolbar.label;"
oncommand="BookmarkingUI.toggleBookmarksToolbar();"/>
<menuseparator/>
<!-- Bookmarks toolbar items -->
</menupopup>

View File

@ -660,26 +660,21 @@
<panelview id="PanelUI-bookmarkingTools" class="PanelUI-subView">
<vbox class="panel-subview-body">
<toolbarbutton id="panelMenu_toggleBookmarksMenu"
label="&addBookmarksMenu.label;"
label-checked="&removeBookmarksMenu.label;"
class="subviewbutton subviewbutton-iconic"
oncommand="BookmarkingUI.toggleMenuButtonInToolbar(this); PanelUI.hide();"/>
label-show="&addBookmarksMenu.label;"
label-hide="&removeBookmarksMenu.label;"
oncommand="BookmarkingUI.toggleMenuButtonInToolbar(this);"/>
<toolbarbutton id="panelMenu_viewBookmarksSidebar"
label="&viewBookmarksSidebar2.label;"
label-checked="&hideBookmarksSidebar.label;"
class="subviewbutton subviewbutton-iconic"
label-show="&viewBookmarksSidebar2.label;"
label-hide="&hideBookmarksSidebar.label;"
key="viewBookmarksSidebarKb"
oncommand="SidebarUI.toggle('viewBookmarksSidebar', this); PanelUI.hide();">
<observes element="viewBookmarksSidebar" attribute="checked"/>
</toolbarbutton>
oncommand="SidebarUI.toggle('viewBookmarksSidebar', this);"/>
<toolbarbutton id="panelMenu_viewBookmarksToolbar"
class="subviewbutton subviewbutton-iconic"
placesanonid="view-toolbar"
toolbarId="PersonalToolbar"
type="checkbox"
oncommand="onViewToolbarCommand(event)"
label="&viewBookmarksToolbar.label;"
label-checked="&hideBookmarksToolbar.label;"/>
label-show="&viewBookmarksToolbar.label;"
label-hide="&hideBookmarksToolbar.label;"
oncommand="BookmarkingUI.toggleBookmarksToolbar();"/>
</vbox>
</panelview>
</panelmultiview>