appDisplay: Hide frequent view when app monitoring is disabled

Currently we stop monitoring application usage when disabling the
'enable-app-monitoring' setting, but we still expose previously
gathered data in the app picker's frequent view. This is not what
users should expect, so hide the view in that case.

https://bugzilla.gnome.org/show_bug.cgi?id=699714
This commit is contained in:
Florian Müllner 2013-03-02 00:46:34 +01:00
parent 248a0c1b6c
commit f88d9c06f5

View File

@ -343,6 +343,8 @@ const AppDisplay = new Lang.Class({
global.settings.connect('changed::app-folder-categories', Lang.bind(this, function() { global.settings.connect('changed::app-folder-categories', Lang.bind(this, function() {
Main.queueDeferredWork(this._allAppsWorkId); Main.queueDeferredWork(this._allAppsWorkId);
})); }));
global.settings.connect('changed::enable-app-monitoring',
Lang.bind(this, this._updateFrequentVisibility));
this._views = []; this._views = [];
@ -386,6 +388,7 @@ const AppDisplay = new Lang.Class({
})); }));
} }
this._showView(Views.FREQUENT); this._showView(Views.FREQUENT);
this._updateFrequentVisibility();
// We need a dummy actor to catch the keyboard focus if the // We need a dummy actor to catch the keyboard focus if the
// user Ctrl-Alt-Tabs here before the deferred work creates // user Ctrl-Alt-Tabs here before the deferred work creates
@ -415,6 +418,19 @@ const AppDisplay = new Lang.Class({
} }
}, },
_updateFrequentVisibility: function() {
let enabled = global.settings.get_boolean('enable-app-monitoring');
this._views[Views.FREQUENT].control.visible = enabled;
let visibleViews = this._views.filter(function(v) {
return v.control.visible;
});
this._controls.visible = visibleViews.length > 1;
if (!enabled && this._views[Views.FREQUENT].view.actor.visible)
this._showView(Views.ALL);
},
_redisplay: function() { _redisplay: function() {
this._redisplayFrequentApps(); this._redisplayFrequentApps();
this._redisplayAllApps(); this._redisplayAllApps();