[gnome-shell] lookingGlass: Add an easier way to see extension errors



commit b07e45e214625cb2e14d98710afe449a70a21f09
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Fri Sep 30 03:58:44 2011 -0400

    lookingGlass: Add an easier way to see extension errors
    
    Use the extensions tab to show errors belonging to each extension.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=660546

 js/ui/lookingGlass.js |   35 +++++++++++++++++++++++++++++++++++
 1 files changed, 35 insertions(+), 0 deletions(-)
---
diff --git a/js/ui/lookingGlass.js b/js/ui/lookingGlass.js
index b0c0f06..6ac5247 100644
--- a/js/ui/lookingGlass.js
+++ b/js/ui/lookingGlass.js
@@ -686,6 +686,34 @@ Extensions.prototype = {
         Main.lookingGlass.close();
     },
 
+    _onViewErrors: function (actor) {
+        let meta = actor._extensionMeta;
+        let shouldShow = !actor._isShowing;
+
+        if (shouldShow) {
+            let errors = ExtensionSystem.errors[meta.uuid];
+            let errorDisplay = new St.BoxLayout({ vertical: true });
+            if (errors && errors.length) {
+                for (let i = 0; i < errors.length; i ++)
+                    errorDisplay.add(new St.Label({ text: errors[i] }));
+            } else {
+                /* Translators: argument is an extension UUID. */
+                let message = _("%s has not emitted any errors.").format(meta.uuid);
+                errorDisplay.add(new St.Label({ text: message }));
+            }
+
+            actor._errorDisplay = errorDisplay;
+            actor._parentBox.add(errorDisplay);
+            actor.label = _("Hide Errors");
+        } else {
+            actor._errorDisplay.destroy();
+            actor._errorDisplay = null;
+            actor.label = _("Show Errors");
+        }
+
+        actor._isShowing = shouldShow;
+    },
+
     _stateToString: function(extensionState) {
         switch (extensionState) {
             case ExtensionSystem.ExtensionState.ENABLED:
@@ -730,6 +758,13 @@ Extensions.prototype = {
             metaBox.add(webpage.actor);
         }
 
+        let viewerrors = new Link.Link({ label: _("Show Errors") });
+        viewerrors.actor._extensionMeta = meta;
+        viewerrors.actor._parentBox = box;
+        viewerrors.actor._isShowing = false;
+        viewerrors.actor.connect('clicked', Lang.bind(this, this._onViewErrors));
+        metaBox.add(viewerrors.actor);
+
         return box;
     }
 };



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]