Bug 587951 - Don't show empty categories

When loading menus, skip ones which entirely consist of NoDisplay=true
items.
This commit is contained in:
Colin Walters 2009-08-13 14:16:58 -04:00
parent 4f5c3b4b74
commit 3e0f5aec0c

View File

@ -335,12 +335,18 @@ AppDisplay.prototype = {
this._allItems = {}; this._allItems = {};
this._appCategories = {}; this._appCategories = {};
this._menus = this._appSystem.get_menus();
// Loop over the toplevel menu items, load the set of desktop file ids // Loop over the toplevel menu items, load the set of desktop file ids
// associated with each one // associated with each one, skipping empty menus
for (let i = 0; i < this._menus.length; i++) { let allMenus = this._appSystem.get_menus();
let menu = this._menus[i]; this._menus = [];
for (let i = 0; i < allMenus.length; i++) {
let menu = allMenus[i];
let menuApps = this._appSystem.get_applications_for_menu(menu.id); let menuApps = this._appSystem.get_applications_for_menu(menu.id);
let hasVisibleApps = menuApps.some(function (app) { return !app.get_is_nodisplay(); });
if (!hasVisibleApps) {
continue;
}
this._menus.push(menu);
for (let j = 0; j < menuApps.length; j++) { for (let j = 0; j < menuApps.length; j++) {
let app = menuApps[j]; let app = menuApps[j];
this._addApp(app); this._addApp(app);