You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
2.3 KiB
69 lines
2.3 KiB
From b3132648a9a15b9c151bde6733cb0c252dac6a25 Mon Sep 17 00:00:00 2001 |
|
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> |
|
Date: Mon, 21 Sep 2015 20:18:12 +0200 |
|
Subject: [PATCH] extensionSystem: Notify about extension issues on update |
|
|
|
--- |
|
js/ui/extensionSystem.js | 32 ++++++++++++++++++++++++++++++++ |
|
1 file changed, 32 insertions(+) |
|
|
|
diff --git a/js/ui/extensionSystem.js b/js/ui/extensionSystem.js |
|
index c2a11b8a5..5e78618c4 100644 |
|
--- a/js/ui/extensionSystem.js |
|
+++ b/js/ui/extensionSystem.js |
|
@@ -7,6 +7,7 @@ const GLib = imports.gi.GLib; |
|
const Gio = imports.gi.Gio; |
|
const St = imports.gi.St; |
|
|
|
+const Config = imports.misc.config; |
|
const ExtensionUtils = imports.misc.extensionUtils; |
|
const Main = imports.ui.main; |
|
|
|
@@ -306,6 +307,36 @@ function _onVersionValidationChanged() { |
|
} |
|
} |
|
|
|
+function _doUpdateCheck() { |
|
+ let version = Config.PACKAGE_VERSION.split('.'); |
|
+ if (parseInt(version[1]) % 2 == 0) |
|
+ version.pop(); |
|
+ |
|
+ let pkgCacheDir = GLib.get_user_cache_dir() + '/gnome-shell/'; |
|
+ let updateStamp = Gio.file_new_for_path(pkgCacheDir + |
|
+ 'update-check-' + version.join('.')); |
|
+ if (updateStamp.query_exists(null)) |
|
+ return; |
|
+ |
|
+ GLib.mkdir_with_parents (pkgCacheDir, 0o755); |
|
+ updateStamp.create(0, null).close(null); |
|
+ |
|
+ let nOutdated = enabledExtensions.reduce(function(n, uuid) { |
|
+ let extension = ExtensionUtils.extensions[uuid]; |
|
+ if (extension && extension.state == ExtensionState.OUT_OF_DATE) |
|
+ n++; |
|
+ return n; |
|
+ }, 0); |
|
+ |
|
+ if (nOutdated == 0) |
|
+ return; |
|
+ |
|
+ Main.notify(ngettext("%d extension is out of date", |
|
+ "%d extensions are out of date", |
|
+ nOutdated).format(nOutdated), |
|
+ _("You can visit http://extensions.gnome.org for updates")); |
|
+} |
|
+ |
|
function _loadExtensions() { |
|
global.settings.connect('changed::' + ENABLED_EXTENSIONS_KEY, onEnabledExtensionsChanged); |
|
global.settings.connect('changed::' + DISABLE_USER_EXTENSIONS_KEY, onEnabledExtensionsChanged); |
|
@@ -320,6 +351,7 @@ function _loadExtensions() { |
|
extension.type = ExtensionUtils.ExtensionType.SESSION_MODE; |
|
}); |
|
finder.scanExtensions(); |
|
+ _doUpdateCheck(); |
|
} |
|
|
|
function enableAllExtensions() { |
|
-- |
|
2.14.2 |
|
|
|
|