messageList: Add back media source to MessageView
Adds back the media/mpris message source to the MessageView, it was previously dropped because of the widget restructure needed for message grouping. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3012>
This commit is contained in:
parent
b2829ac066
commit
b4c74ee168
@ -10,6 +10,7 @@ import St from 'gi://St';
|
||||
|
||||
import * as Main from './main.js';
|
||||
import * as MessageTray from './messageTray.js';
|
||||
import * as Mpris from './mpris.js';
|
||||
|
||||
import * as Util from '../misc/util.js';
|
||||
import {formatTimeSpan} from '../misc/dateUtils.js';
|
||||
@ -813,6 +814,9 @@ export const MessageView = GObject.registerClass({
|
||||
'message-focused': {param_types: [Message]},
|
||||
},
|
||||
}, class MessageView extends St.BoxLayout {
|
||||
_playerToMessage = new Map();
|
||||
_mediaSource = new Mpris.MprisSource();
|
||||
|
||||
constructor() {
|
||||
super({
|
||||
style_class: 'message-view',
|
||||
@ -820,6 +824,8 @@ export const MessageView = GObject.registerClass({
|
||||
x_expand: true,
|
||||
y_expand: true,
|
||||
});
|
||||
|
||||
this._setupMpris();
|
||||
}
|
||||
|
||||
get empty() {
|
||||
@ -961,4 +967,27 @@ export const MessageView = GObject.registerClass({
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_setupMpris() {
|
||||
this._mediaSource.connectObject(
|
||||
'player-added', (_, player) => this._addPlayer(player),
|
||||
'player-removed', (_, player) => this._removePlayer(player),
|
||||
this);
|
||||
|
||||
this._mediaSource.players.forEach(player => {
|
||||
this._addPlayer(player);
|
||||
});
|
||||
}
|
||||
|
||||
_addPlayer(player) {
|
||||
const message = new MediaMessage(player);
|
||||
this._playerToMessage.set(player, message);
|
||||
this._addMessageAtIndex(message, 0);
|
||||
}
|
||||
|
||||
_removePlayer(player) {
|
||||
const message = this._playerToMessage.get(player);
|
||||
this._removeMessage(message);
|
||||
this._playerToMessage.delete(player);
|
||||
}
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user