Review of "Midi Mixer Panel" version 1

Details Page Preview

Control panel for midi-mixer-linux. Shows X-Touch Mini channels in the status bar with per-app volume, mute, master fader, and layer switching.

Extension Homepage
https://github.com/regiakb/midi-mixer-panel-gnome

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 2

Shexli found 2 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:85
    this._assignBox = new St.BoxLayout({ vertical: true, style: 'min-width:640px; padding:4px 4px 6px;' })
  • extension.js:84
    this._assignItem = new PopupMenu.PopupBaseMenuItem({ reactive: false, can_focus: false })
  • extension.js:78
    this._channelBox = new St.BoxLayout({ vertical: false, style: 'spacing:8px; padding:6px 4px 4px;' })
  • extension.js:151
    this._ctxReconnectItem = new PopupMenu.PopupMenuItem('Reconnect')
  • extension.js:138
        this._ctxStatusDot = new St.Widget({
          style: 'width:8px; height:8px; border-radius:4px; background-color:#555577; margin-top:4px;',
        })
  • extension.js:141
        this._ctxStatusLabel = new St.Label({
          text: 'Status: Checking…',
          style: 'font-size:11px; color:rgba(255,255,255,0.45);',
          y_align: Clutter.ActorAlign.CENTER,
        })
  • extension.js:70
        this._layerBadge = new St.Label({
          text: 'Layer A',
          style: 'font-size:9px; color:rgba(255,255,255,0.3); letter-spacing:1px;',
          x_expand: true,
        })
  • extension.js:113
        this._masterLabel = new St.Label({
          text: '100%',
          style: 'font-size:10px; color:rgba(255,255,255,0.45); min-width:30px; text-align:right;',
          y_align: Clutter.ActorAlign.CENTER,
        })

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:156
        this._ctxMenu.connect('open-state-changed', (_menu, open) => {
          if (open) this._fetchStatusForCtx();
        })
  • extension.js:161
        this._indicator.connect('button-press-event', (_actor, event) => {
          if (event.get_button() === 3) {
            if (this._indicator.menu.isOpen) this._indicator.menu.close();
            this._ctxMenu.toggle();
            return Clutter.EVENT_STOP;
          }
          return Clutter.EVENT_PROPAGATE;
        })
  • extension.js:172
        this._indicator.menu.connect('open-state-changed', (_m, open) => {
          if (open) {
            this._assigningIdx = -1;
            this._assignItem.hide();
            this._fetchAndRender();
          }
        })

All Versions

Version Status
1 Unreviewed

Previous Reviews on this Version

regiakb posted a review