Review of "Platter" version 0.1.0 (1)

Details Page Preview

Puts the album art and track info of whatever is playing on your desktop, in themes rescued from CoverGloobus. Platter is a floating desktop widget that follows any MPRIS2 player. It sits behind your windows the way CoverGloobus did, or floats above them. It ships 56 restored themes and can convert more from the original CoverGloobus and NowPlaying skins you still have.

Extension Homepage
https://github.com/sandbranch/platter-gnome-shell-extension

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 4

Shexli found 4 issues that may need reviewer attention.

EGO-X-004 warning

extensions should avoid synchronous file IO in shell code

Shell code should avoid synchronous file IO APIs like `GLib.file_get_contents()` and `Gio.File.load_contents()`.

File Operations

  • lib/theme.js:70
    file.load_contents(null)

EGO-P-007 warning

JavaScript files should be reachable from extension.js or prefs.js

Some JavaScript files are not reachable from `extension.js` or `prefs.js` imports.

Don't include unnecessary files

  • lib/cli.js

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:35
    this._watcher.connect('changed', () => this._update())
  • extension.js:105
    this._widget.connect('action', (widget, action) => this._act(action))
  • extension.js:194
            widget.connect('button-press-event', (actor, event) => {
                if (this._settings.get_boolean('locked'))
                    return Clutter.EVENT_PROPAGATE;
                // A press that landed on a control belongs to that control. St.Button
                // holds an implicit grab between pres
  • extension.js:222
            widget.connect('button-release-event', () => {
                if (!grab)
                    return Clutter.EVENT_PROPAGATE;
                grab.dismiss();
                grab = null;
                const monitor = this._monitor();
                if (!monitor)
                    return Clutter.EVENT_STOP;
    
          
  • extension.js:214
            widget.connect('motion-event', (actor, event) => {
                if (!grab)
                    return Clutter.EVENT_PROPAGATE;
                const [x, y] = event.get_coords();
                widget.set_position(originX + (x - startX), originY + (y - startY));
                return Clutter.EVENT_STOP;
       

EGO-L-006 warning

preferences classes should not retain window-scoped objects on instance fields without close-request cleanup

Preferences code stores window-scoped objects on the exported prefs class without `close-request` cleanup.

Destroy all objects

  • prefs.js:41
            this._preview = new Gtk.Picture({
                content_fit: Gtk.ContentFit.CONTAIN,
                height_request: 190,
                can_shrink: true,
                margin_top: 12,
                margin_bottom: 6,
            })
  • prefs.js:202
    this._themes = Theme.listThemes(paths)

All Versions

Version Status
0.1.1 (3) Unreviewed
0.1.0 (2) Rejected
0.1.0 (1) Rejected

Previous Reviews on this Version

sandbranch auto- rejected
Auto-rejected because of new version 0.1.0 (2) was uploaded