[gnome-shell/gbsneto/custom-icon-positions: 14/18] appDisplay: Factor out folder loading code
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/gbsneto/custom-icon-positions: 14/18] appDisplay: Factor out folder loading code
- Date: Thu, 9 Jul 2020 20:58:26 +0000 (UTC)
commit 9ee6aef4f0d61f993c71dfd8643dbbe68e72a4b9
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Wed Jun 24 15:11:51 2020 -0300
appDisplay: Factor out folder loading code
We'll reuse this code to implement custom positioning in
folders.
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284
js/ui/appDisplay.js | 66 ++++++++++++++++++++++++++++++++---------------------
1 file changed, 40 insertions(+), 26 deletions(-)
---
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
index 49d4ffe1d0..55446a7ba7 100644
--- a/js/ui/appDisplay.js
+++ b/js/ui/appDisplay.js
@@ -1582,6 +1582,43 @@ class FolderView extends BaseAppView {
return new FolderGrid();
}
+ _getFolderApps() {
+ const appIds = [];
+ const excludedApps = this._folder.get_strv('excluded-apps');
+ const appSys = Shell.AppSystem.get_default();
+ const addAppId = appId => {
+ if (excludedApps.includes(appId))
+ return;
+
+ const app = appSys.lookup_app(appId);
+ if (!app)
+ return;
+
+ if (!this._parentalControlsManager.shouldShowApp(app.get_app_info()))
+ return;
+
+ if (appIds.indexOf(appId) !== -1)
+ return;
+
+ appIds.push(appId);
+ };
+
+ const folderApps = this._folder.get_strv('apps');
+ folderApps.forEach(addAppId);
+
+ const folderCategories = this._folder.get_strv('categories');
+ const appInfos = this._parentView.getAppInfos();
+ appInfos.forEach(appInfo => {
+ let appCategories = _getCategories(appInfo);
+ if (!_listsIntersect(folderCategories, appCategories))
+ return;
+
+ addAppId(appInfo.get_id());
+ });
+
+ return appIds;
+ }
+
// Overridden from BaseAppView
animate(animationDirection) {
this._grid.animatePulse(animationDirection);
@@ -1626,40 +1663,17 @@ class FolderView extends BaseAppView {
_loadApps() {
let apps = [];
- let excludedApps = this._folder.get_strv('excluded-apps');
let appSys = Shell.AppSystem.get_default();
- let addAppId = appId => {
- if (excludedApps.includes(appId))
- return;
-
- let app = appSys.lookup_app(appId);
- if (!app)
- return;
-
- if (!this._parentalControlsManager.shouldShowApp(app.get_app_info()))
- return;
+ const appIds = this._getFolderApps();
- if (apps.some(appIcon => appIcon.id == appId))
- return;
+ appIds.forEach(appId => {
+ const app = appSys.lookup_app(appId);
let icon = this._items.get(appId);
if (!icon)
icon = new AppIcon(app);
apps.push(icon);
- };
-
- let folderApps = this._folder.get_strv('apps');
- folderApps.forEach(addAppId);
-
- let folderCategories = this._folder.get_strv('categories');
- let appInfos = this._parentView.getAppInfos();
- appInfos.forEach(appInfo => {
- let appCategories = _getCategories(appInfo);
- if (!_listsIntersect(folderCategories, appCategories))
- return;
-
- addAppId(appInfo.get_id());
});
return apps;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]