Review of "Gradia Capture" version 1

Details Page Preview

Enhances the built-in screenshot tool with annotation features. Clipboard data may be overwritten with the annotated screenshot.

Extension Homepage
https://github.com/AlexanderVanhee/gradia-companion

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

Shexli found 3 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:99
    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:180
            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:52
            this._contentLayer = new St.Widget({
                reactive: true,
                clip_to_allocation: true,
                style: 'border-radius: 8px;',
            })
  • screenshotToast.js:127
                this._copiedLabel = new St.BoxLayout({
                    style_class: 'gradia-copied-label',
                })
  • screenshotToast.js:91
                this._editButton = new St.Button({
                    style_class: 'gradia-pill-button gradia-selection-trash',
                    label: 'Edit',
                    reactive: true,
                })
  • screenshotToast.js:109
                this._openFolderButton = new St.Button({
                    style_class: 'gradia-pill-button gradia-selection-trash',
                    label: 'Open Folder',
                    reactive: true,
                })
  • screenshotToast.js:42
            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:180
            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:52
            this._contentLayer = new St.Widget({
                reactive: true,
                clip_to_allocation: true,
                style: 'border-radius: 8px;',
            })
  • screenshotToast.js:127
                this._copiedLabel = new St.BoxLayout({
                    style_class: 'gradia-copied-label',
                })
  • screenshotToast.js:91
                this._editButton = new St.Button({
                    style_class: 'gradia-pill-button gradia-selection-trash',
                    label: 'Edit',
                    reactive: true,
                })
  • screenshotToast.js:109
                this._openFolderButton = new St.Button({
                    style_class: 'gradia-pill-button gradia-selection-trash',
                    label: 'Open Folder',
                    reactive: true,
                })
  • screenshotToast.js:42
            this._shadowLayer = new St.Widget({
                style: `
                    background-color: #222226;
                    box-shadow: 0 0 8px rgba(0,0,0,0.35);
                `,
            })

All Versions

Version Status
1 Unreviewed