messageTray: Remove useActionIcons feature
This can be put in the legacy notification daemon with the new addButtonFull API, to create icon names for actions. https://bugzilla.gnome.org/show_bug.cgi?id=710137
This commit is contained in:
parent
5023542882
commit
5f081b8f8d
@ -503,7 +503,6 @@ const Notification = new Lang.Class({
|
|||||||
this.focused = false;
|
this.focused = false;
|
||||||
this.acknowledged = false;
|
this.acknowledged = false;
|
||||||
this._destroyed = false;
|
this._destroyed = false;
|
||||||
this._useActionIcons = false;
|
|
||||||
this._customContent = false;
|
this._customContent = false;
|
||||||
this.bannerBodyText = null;
|
this.bannerBodyText = null;
|
||||||
this.bannerBodyMarkup = false;
|
this.bannerBodyMarkup = false;
|
||||||
@ -866,17 +865,9 @@ const Notification = new Lang.Class({
|
|||||||
// If the button is clicked, the notification will emit the
|
// If the button is clicked, the notification will emit the
|
||||||
// %action-invoked signal with @id as a parameter
|
// %action-invoked signal with @id as a parameter
|
||||||
addAction: function(id, label) {
|
addAction: function(id, label) {
|
||||||
let button = new St.Button({ can_focus: true });
|
let button = new St.Button({ style_class: 'notification-button',
|
||||||
|
label: label,
|
||||||
let iconName = strHasSuffix(id, '-symbolic') ? id : id + '-symbolic';
|
can_focus: true });
|
||||||
if (this._useActionIcons && Gtk.IconTheme.get_default().has_icon(iconName)) {
|
|
||||||
button.add_style_class_name('notification-icon-button');
|
|
||||||
button.child = new St.Icon({ icon_name: iconName });
|
|
||||||
} else {
|
|
||||||
button.add_style_class_name('notification-button');
|
|
||||||
button.label = label;
|
|
||||||
}
|
|
||||||
|
|
||||||
return this.addButton(id, button);
|
return this.addButton(id, button);
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -896,10 +887,6 @@ const Notification = new Lang.Class({
|
|||||||
this.forFeedback = forFeedback;
|
this.forFeedback = forFeedback;
|
||||||
},
|
},
|
||||||
|
|
||||||
setUseActionIcons: function(useIcons) {
|
|
||||||
this._useActionIcons = useIcons;
|
|
||||||
},
|
|
||||||
|
|
||||||
_styleChanged: function() {
|
_styleChanged: function() {
|
||||||
this._spacing = this._table.get_theme_node().get_length('spacing-columns');
|
this._spacing = this._table.get_theme_node().get_length('spacing-columns');
|
||||||
},
|
},
|
||||||
|
@ -351,6 +351,19 @@ const NotificationDaemon = new Lang.Class({
|
|||||||
return invocation.return_value(GLib.Variant.new('(u)', [id]));
|
return invocation.return_value(GLib.Variant.new('(u)', [id]));
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_makeButton: function(id, label, useActionIcons) {
|
||||||
|
let button = new St.Button({ can_focus: true });
|
||||||
|
let iconName = strHasSuffix(id, '-symbolic') ? id : id + '-symbolic';
|
||||||
|
if (useActionIcons && Gtk.IconTheme.get_default().has_icon(iconName)) {
|
||||||
|
button.add_style_class_name('notification-icon-button');
|
||||||
|
button.child = new St.Icon({ icon_name: iconName });
|
||||||
|
} else {
|
||||||
|
button.add_style_class_name('notification-button');
|
||||||
|
button.label = label;
|
||||||
|
}
|
||||||
|
return button;
|
||||||
|
},
|
||||||
|
|
||||||
_notifyForSource: function(source, ndata) {
|
_notifyForSource: function(source, ndata) {
|
||||||
let [id, icon, summary, body, actions, hints, notification] =
|
let [id, icon, summary, body, actions, hints, notification] =
|
||||||
[ndata.id, ndata.icon, ndata.summary, ndata.body,
|
[ndata.id, ndata.icon, ndata.summary, ndata.body,
|
||||||
@ -414,15 +427,18 @@ const NotificationDaemon = new Lang.Class({
|
|||||||
notification.setImage(image);
|
notification.setImage(image);
|
||||||
|
|
||||||
if (actions.length) {
|
if (actions.length) {
|
||||||
notification.setUseActionIcons(hints['action-icons'] == true);
|
let useActionIcons = (hints['action-icons'] == true);
|
||||||
|
|
||||||
for (let i = 0; i < actions.length - 1; i += 2) {
|
for (let i = 0; i < actions.length - 1; i += 2) {
|
||||||
if (actions[i] == 'default')
|
let [actionId, label] = [actions[i], actions[i+1]];
|
||||||
|
if (actionId == 'default') {
|
||||||
notification.connect('clicked', Lang.bind(this,
|
notification.connect('clicked', Lang.bind(this,
|
||||||
function() {
|
function() {
|
||||||
this._emitActionInvoked(ndata.id, "default");
|
this._emitActionInvoked(ndata.id, "default");
|
||||||
}));
|
}));
|
||||||
else
|
} else {
|
||||||
notification.addAction(actions[i], actions[i + 1]);
|
notification.addButton(actionId, this._makeButton(id, label, useActionIcons));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
switch (hints.urgency) {
|
switch (hints.urgency) {
|
||||||
|
Loading…
Reference in New Issue
Block a user