[gnome-shell/wip/fmuellner/notification-redux+sass: 89/141] autorunManager: Use a regular urgent notification
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/fmuellner/notification-redux+sass: 89/141] autorunManager: Use a regular urgent notification
- Date: Thu, 19 Feb 2015 21:02:20 +0000 (UTC)
commit c6e5fb06f6bd419c63dde46e95f3939ffa54858b
Author: Florian Müllner <fmuellner gnome org>
Date: Thu Feb 12 15:38:17 2015 +0100
autorunManager: Use a regular urgent notification
According to the design, hotplug notifications should no longer offer
an eject action and use regular notification buttons (but using icon
and text), the default action when clicking the notification itself
is to launch the file browser.
Also as the corresponding resident notification is gone, it no
longer makes sense to make the notification transient.
https://bugzilla.gnome.org/show_bug.cgi?id=744815
js/ui/components/autorunManager.js | 64 ++++++++++--------------------------
1 files changed, 18 insertions(+), 46 deletions(-)
---
diff --git a/js/ui/components/autorunManager.js b/js/ui/components/autorunManager.js
index 57f7416..6410e10 100644
--- a/js/ui/components/autorunManager.js
+++ b/js/ui/components/autorunManager.js
@@ -167,7 +167,7 @@ const AutorunManager = new Lang.Class({
this._session = new GnomeSession.SessionManager();
this._volumeMonitor = Gio.VolumeMonitor.get();
- this._transDispatcher = new AutorunTransientDispatcher(this);
+ this._dispatcher = new AutorunDispatcher(this);
},
enable: function() {
@@ -187,13 +187,13 @@ const AutorunManager = new Lang.Class({
return;
let discoverer = new ContentTypeDiscoverer(Lang.bind(this, function(mount, apps, contentTypes) {
- this._transDispatcher.addMount(mount, apps, contentTypes);
+ this._dispatcher.addMount(mount, apps, contentTypes);
}));
discoverer.guessContentTypes(mount);
},
_onMountRemoved: function(monitor, mount) {
- this._transDispatcher.removeMount(mount);
+ this._dispatcher.removeMount(mount);
},
ejectMount: function(mount) {
@@ -256,8 +256,8 @@ const AutorunManager = new Lang.Class({
},
});
-const AutorunTransientDispatcher = new Lang.Class({
- Name: 'AutorunTransientDispatcher',
+const AutorunDispatcher = new Lang.Class({
+ Name: 'AutorunDispatcher',
_init: function(manager) {
this._manager = manager;
@@ -303,7 +303,7 @@ const AutorunTransientDispatcher = new Lang.Class({
return;
// add a new source
- this._sources.push(new AutorunTransientSource(this._manager, mount, apps));
+ this._sources.push(new AutorunSource(this._manager, mount, apps));
},
addMount: function(mount, apps, contentTypes) {
@@ -352,8 +352,8 @@ const AutorunTransientDispatcher = new Lang.Class({
}
});
-const AutorunTransientSource = new Lang.Class({
- Name: 'AutorunTransientSource',
+const AutorunSource = new Lang.Class({
+ Name: 'AutorunSource',
Extends: MessageTray.Source,
_init: function(manager, mount, apps) {
@@ -363,7 +363,7 @@ const AutorunTransientSource = new Lang.Class({
this.parent(mount.get_name());
- this._notification = new AutorunTransientNotification(this._manager, this);
+ this._notification = new AutorunNotification(this._manager, this);
// add ourselves as a source, and popup the notification
Main.messageTray.add(this);
@@ -375,34 +375,24 @@ const AutorunTransientSource = new Lang.Class({
}
});
-const AutorunTransientNotification = new Lang.Class({
- Name: 'AutorunTransientNotification',
+const AutorunNotification = new Lang.Class({
+ Name: 'AutorunNotification',
Extends: MessageTray.Notification,
_init: function(manager, source) {
- this.parent(source, source.title, null, { customContent: true });
+ this.parent(source, source.title);
this._manager = manager;
- this._box = new St.BoxLayout({ style_class: 'hotplug-transient-box',
- vertical: true });
- this.addActor(this._box);
-
this._mount = source.mount;
source.apps.forEach(Lang.bind(this, function (app) {
let actor = this._buttonForApp(app);
if (actor)
- this._box.add(actor, { x_fill: true,
- x_align: St.Align.START });
+ this.addButton(actor);
}));
- this._box.add(this._buttonForEject(), { x_fill: true,
- x_align: St.Align.START });
-
- // set the notification to transient and urgent, so that it
- // expands out
- this.setTransient(true);
+ // set the notification to urgent, so that it expands out
this.setUrgency(MessageTray.Urgency.CRITICAL);
},
@@ -432,29 +422,11 @@ const AutorunTransientNotification = new Lang.Class({
return button;
},
- _buttonForEject: function() {
- let box = new St.BoxLayout();
- let icon = new St.Icon({ icon_name: 'media-eject-symbolic',
- style_class: 'hotplug-notification-item-icon' });
- box.add(icon);
-
- let label = new St.Bin({ y_align: St.Align.MIDDLE,
- child: new St.Label
- ({ text: _("Eject") })
- });
- box.add(label);
-
- let button = new St.Button({ child: box,
- x_fill: true,
- x_align: St.Align.START,
- button_mask: St.ButtonMask.ONE,
- style_class: 'hotplug-notification-item button' });
-
- button.connect('clicked', Lang.bind(this, function() {
- this._manager.ejectMount(this._mount);
- }));
+ _onClicked: function() {
+ this.parent();
- return button;
+ let app = Gio.app_info_get_default_for_type('inode/directory', false);
+ startAppForMount(app, this._mount);
}
});
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]