[gnome-shell/wip/aggregate-menu: 36/59] power: Remove other devices
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/aggregate-menu: 36/59] power: Remove other devices
- Date: Mon, 24 Jun 2013 20:04:38 +0000 (UTC)
commit a08a20e4d23ef4514310218572b9c26d7dbb72e7
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Wed May 22 14:11:34 2013 -0400
power: Remove other devices
Simply have one section
js/ui/status/power.js | 124 ++++++++-----------------------------------------
1 files changed, 19 insertions(+), 105 deletions(-)
---
diff --git a/js/ui/status/power.js b/js/ui/status/power.js
index 515c716..7c78382 100644
--- a/js/ui/status/power.js
+++ b/js/ui/status/power.js
@@ -55,45 +55,36 @@ const Indicator = new Lang.Class({
this.parent('battery-missing-symbolic', _("Battery"));
this._proxy = new PowerManagerProxy(Gio.DBus.session, BUS_NAME, OBJECT_PATH,
- Lang.bind(this, function(proxy, error) {
- if (error) {
- log(error.message);
- return;
- }
- this._proxy.connect('g-properties-changed',
- Lang.bind(this, this._devicesChanged));
- this._devicesChanged();
- }));
-
- this._deviceItems = [ ];
- this._hasPrimary = false;
- this._primaryDeviceId = null;
-
- this._batteryItem = new PopupMenu.PopupMenuItem('', { reactive: false });
+ Lang.bind(this, function(proxy, error) {
+ if (error) {
+ log(error.message);
+ return;
+ }
+ this._proxy.connect('g-properties-changed',
+ Lang.bind(this, this._devicesChanged));
+ this._devicesChanged();
+ }));
+
+ this.item = new PopupMenu.PopupMenuItem('', { reactive: false });
this._primaryPercentage = new St.Label({ style_class: 'popup-battery-percentage' });
- this._batteryItem.addActor(this._primaryPercentage, { align: St.Align.END });
- this.menu.addMenuItem(this._batteryItem);
-
- this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
- this._otherDevicePosition = 2;
+ this.item.addActor(this._primaryPercentage, { align: St.Align.END });
+ this.menu.addMenuItem(this.item);
},
_readPrimaryDevice: function() {
this._proxy.GetPrimaryDeviceRemote(Lang.bind(this, function(result, error) {
if (error) {
- this._hasPrimary = false;
- this._primaryDeviceId = null;
- this._batteryItem.actor.hide();
+ this.item.actor.hide();
return;
}
+
let [[device_id, device_type, icon, percentage, state, seconds]] = result;
if (device_type == UPDeviceType.BATTERY) {
- this._hasPrimary = true;
let time = Math.round(seconds / 60);
if (time == 0) {
// 0 is reported when UPower does not have enough data
// to estimate battery life
- this._batteryItem.label.text = _("Estimating…");
+ this.item.label.text = _("Estimating…");
} else {
let minutes = time % 60;
let hours = Math.floor(time / 60);
@@ -109,39 +100,12 @@ const Indicator = new Lang.Class({
}
} else
timestring = ngettext("%d minute remaining", "%d minutes remaining",
minutes).format(minutes);
- this._batteryItem.label.text = timestring;
+ this.item.label.text = timestring;
}
this._primaryPercentage.text = C_("percent of battery remaining",
"%d%%").format(Math.round(percentage));
- this._batteryItem.actor.show();
+ this.item.actor.show();
} else {
- this._hasPrimary = false;
- this._batteryItem.actor.hide();
- }
-
- this._primaryDeviceId = device_id;
- }));
- },
-
- _readOtherDevices: function() {
- this._proxy.GetDevicesRemote(Lang.bind(this, function(result, error) {
- this._deviceItems.forEach(function(i) { i.destroy(); });
- this._deviceItems = [];
-
- if (error) {
- return;
- }
-
- let position = 0;
- let [devices] = result;
- for (let i = 0; i < devices.length; i++) {
- let [device_id, device_type] = devices[i];
- if (device_type == UPDeviceType.AC_POWER || device_id == this._primaryDeviceId)
- continue;
-
- let item = new DeviceItem (devices[i]);
- this._deviceItems.push(item);
- this.menu.addMenuItem(item, this._otherDevicePosition + position);
- position++;
+ this.item.actor.hide();
}
}));
},
@@ -162,55 +126,5 @@ const Indicator = new Lang.Class({
_devicesChanged: function() {
this._syncIcon();
this._readPrimaryDevice();
- this._readOtherDevices();
- }
-});
-
-const DeviceItem = new Lang.Class({
- Name: 'DeviceItem',
- Extends: PopupMenu.PopupBaseMenuItem,
-
- _init: function(device) {
- this.parent({ reactive: false });
-
- let [device_id, device_type, icon, percentage, state, time] = device;
-
- this._label = new St.Label({ text: this._deviceTypeToString(device_type) });
- this.addActor(this._label);
-
- let percentLabel = new St.Label({ text: C_("percent of battery remaining",
"%d%%").format(Math.round(percentage)),
- style_class: 'popup-status-menu-item popup-battery-percentage' });
- this.addActor(percentLabel, { align: St.Align.END });
- //FIXME: ideally we would like to expose this._label and percentLabel
- this.actor.label_actor = percentLabel;
- },
-
- _deviceTypeToString: function(type) {
- switch (type) {
- case UPDeviceType.AC_POWER:
- return _("AC Adapter");
- case UPDeviceType.BATTERY:
- return _("Laptop Battery");
- case UPDeviceType.UPS:
- return _("UPS");
- case UPDeviceType.MONITOR:
- return _("Monitor");
- case UPDeviceType.MOUSE:
- return _("Mouse");
- case UPDeviceType.KEYBOARD:
- return _("Keyboard");
- case UPDeviceType.PDA:
- return _("PDA");
- case UPDeviceType.PHONE:
- return _("Cell Phone");
- case UPDeviceType.MEDIA_PLAYER:
- return _("Media Player");
- case UPDeviceType.TABLET:
- return _("Tablet");
- case UPDeviceType.COMPUTER:
- return _("Computer");
- default:
- return C_("device", "Unknown");
- }
}
});
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]