Review of "MPC Control" version 1

Details Page Preview

Control MPD (Music Player Daemon) via mpc: playback, volume, track progress and queue — right from the GNOME Shell panel.

Extension Homepage
https://github.com/alexsobolenko/mpc-control

No comments.

FAQ

Files

Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.

Shexli (experimental) warning 3

Shexli found 3 issues that may need reviewer attention.

EGO-L-002 warning

objects created by extension should be destroyed in disable()

Objects assigned in `enable()` are missing matching `.destroy()` calls in `disable()` or its helper methods.

Destroy all objects

  • extension.js:241
                this._playlistCountLabel = new PopupMenu.PopupMenuItem('', {
                    reactive: false,
                    can_focus: false,
                    style_class: 'mpc-control-subtitle',
                })
  • extension.js:262
                this._playlistResultsBox = new St.BoxLayout({
                    vertical: true,
                    style_class: 'mpc-control-playlist-box',
                })
  • extension.js:233
    this._playlistSubMenu = new PopupMenu.PopupSubMenuMenuItem(_('Playback Queue'))
  • extension.js:191
                this._progressLabel = new PopupMenu.PopupMenuItem('0:00 / 0:00', {
                    reactive: false,
                    can_focus: false,
                    style_class: 'mpc-control-subtitle',
                })
  • extension.js:198
    this._progressSlider = new PopupMenu.PopupSliderMenuItem(0)
  • extension.js:248
                this._searchEntry = new St.Entry({
                    style_class: 'mpc-control-search',
                    hint_text: _('Search the queue…'),
                    can_focus: true,
                    x_expand: true,
                })
  • extension.js:169
                this._trackItem = new PopupMenu.PopupMenuItem(_('Nothing is playing'), {
                    reactive: false,
                    can_focus: false,
                })
  • extension.js:209
                this._volumeLabel = new PopupMenu.PopupMenuItem(this._formatVolume(null), {
                    reactive: false,
                    can_focus: false,
                    style_class: 'mpc-control-subtitle',
                })
  • extension.js:216
    this._volumeSlider = new PopupMenu.PopupSliderMenuItem(0)

EGO-L-005 warning

owned object references should be released in disable()

Owned references that are cleaned up in `disable()` should also be released with `null` or `undefined`.

Destroy all objects

  • extension.js:241
                this._playlistCountLabel = new PopupMenu.PopupMenuItem('', {
                    reactive: false,
                    can_focus: false,
                    style_class: 'mpc-control-subtitle',
                })
  • extension.js:262
                this._playlistResultsBox = new St.BoxLayout({
                    vertical: true,
                    style_class: 'mpc-control-playlist-box',
                })
  • extension.js:233
    this._playlistSubMenu = new PopupMenu.PopupSubMenuMenuItem(_('Playback Queue'))
  • extension.js:191
                this._progressLabel = new PopupMenu.PopupMenuItem('0:00 / 0:00', {
                    reactive: false,
                    can_focus: false,
                    style_class: 'mpc-control-subtitle',
                })
  • extension.js:198
    this._progressSlider = new PopupMenu.PopupSliderMenuItem(0)
  • extension.js:248
                this._searchEntry = new St.Entry({
                    style_class: 'mpc-control-search',
                    hint_text: _('Search the queue…'),
                    can_focus: true,
                    x_expand: true,
                })
  • extension.js:169
                this._trackItem = new PopupMenu.PopupMenuItem(_('Nothing is playing'), {
                    reactive: false,
                    can_focus: false,
                })
  • extension.js:209
                this._volumeLabel = new PopupMenu.PopupMenuItem(this._formatVolume(null), {
                    reactive: false,
                    can_focus: false,
                    style_class: 'mpc-control-subtitle',
                })
  • extension.js:216
    this._volumeSlider = new PopupMenu.PopupSliderMenuItem(0)

EGO-L-003 warning

signals connected by extension should be disconnected in disable()

Signals assigned in `enable()` are missing matching disconnect calls in `disable()` or its helper methods.

Disconnect all signals

  • extension.js:155
                this.menu.connect('open-state-changed', (menu, open) => {
                    if (open)
                        this._refresh();
                })

All Versions

Version Status
1 Unreviewed