Review of "Gradia Capture Plus" version 1

Details Page Preview

Enhances GNOME's built-in screenshot and screen recording tools with annotations, high-FPS screencasting, and customizable workflows.

Extension Homepage
https://github.com/shantanub08/gradia-capture-plus

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 manual_review 1

Shexli found 4 issues that may need reviewer attention.

EGO-A-005 manual_review

extensions should not access the clipboard directly

Direct clipboard access via `St.Clipboard.get_default()` requires reviewer scrutiny.

Review Guidelines

  • screenshotStore.js:121
    St.Clipboard.get_default()

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

  • screenshotToast.js:182
            this._closeButton = new St.Button({
                style_class: 'gradia-circle-button gradia-selection-trash',
                child: new St.Icon({
                    icon_name: 'window-close-symbolic',
                    style: 'icon-size: 16px;',
                }),
                reactive: true,
            })
  • screenshotToast.js:60
    this._contentLayer = new St.Widget()
  • screenshotToast.js:139
                this._copiedLabel = new St.BoxLayout({
                    style_class: 'gradia-copied-label',
                })
  • screenshotToast.js:93
                this._editButton = new St.Button({
                    style_class: 'gradia-circle-button gradia-selection-trash',
                    child: new St.Icon({
                        icon_name: 'document-edit-symbolic',
                        style: 'icon-size: 16px;',
                    }),
                    
  • screenshotToast.js:51
            this._mainButton = new St.Button({
                reactive: true,
                clip_to_allocation: true,
                style: 'background: transparent;',
            })
  • screenshotToast.js:116
                this._openFolderButton = new St.Button({
                    style_class: 'gradia-circle-button gradia-selection-trash',
                    child: new St.Icon({
                        icon_name: 'folder-open-symbolic',
                        style: 'icon-size: 16px;',
                    }),
                
  • screenshotToast.js:41
            this._shadowLayer = new St.Widget({
                style: `
                    background-color: #222226;
                    box-shadow: 0 0 8px rgba(0,0,0,0.35);
                `,
            })

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

  • screenshotToast.js:182
            this._closeButton = new St.Button({
                style_class: 'gradia-circle-button gradia-selection-trash',
                child: new St.Icon({
                    icon_name: 'window-close-symbolic',
                    style: 'icon-size: 16px;',
                }),
                reactive: true,
            })
  • screenshotToast.js:60
    this._contentLayer = new St.Widget()
  • screenshotToast.js:139
                this._copiedLabel = new St.BoxLayout({
                    style_class: 'gradia-copied-label',
                })
  • screenshotToast.js:93
                this._editButton = new St.Button({
                    style_class: 'gradia-circle-button gradia-selection-trash',
                    child: new St.Icon({
                        icon_name: 'document-edit-symbolic',
                        style: 'icon-size: 16px;',
                    }),
                    
  • screenshotToast.js:51
            this._mainButton = new St.Button({
                reactive: true,
                clip_to_allocation: true,
                style: 'background: transparent;',
            })
  • screenshotToast.js:116
                this._openFolderButton = new St.Button({
                    style_class: 'gradia-circle-button gradia-selection-trash',
                    child: new St.Icon({
                        icon_name: 'folder-open-symbolic',
                        style: 'icon-size: 16px;',
                    }),
                
  • screenshotToast.js:41
            this._shadowLayer = new St.Widget({
                style: `
                    background-color: #222226;
                    box-shadow: 0 0 8px rgba(0,0,0,0.35);
                `,
            })

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:729
                proxy.connect('notify::g-name-owner', () => {
                    if (proxy.g_name_owner || !ui._screencastInProgress || ui._screencastStarting)
                        return;
    
                    ui._screencastFailed?.('RECORDING',
                        new GLib.Error(Gio.DBusError, Gio.DBusError.FA

All Versions

Version Status
1 Unreviewed