Review of "Notification Center Timer" version 1

Details Page Preview

Adds a self-contained timer with preset durations to the GNOME date menu and shows an active countdown in the top clock area.

Extension Homepage
https://github.com/vquand/gnome-extension-clocks-timer-noticenter

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:551
            this._topIcon = new St.Icon({
                icon_name: 'alarm-symbolic',
                style_class: 'system-status-icon clocks-timer-top-icon',
                y_align: Clutter.ActorAlign.CENTER,
            })
  • extension.js:556
            this._topLabel = new St.Label({
                style_class: 'clocks-timer-top-label',
                y_align: Clutter.ActorAlign.CENTER,
            })
  • extension.js:546
            this._topSeparator = new St.Label({
                text: ' | ',
                style_class: 'clocks-timer-top-separator',
                y_align: Clutter.ActorAlign.CENTER,
            })
  • extension.js:206
            this._customPanel = new St.BoxLayout({
                vertical: true,
                style_class: 'clocks-timer-settings-custom-panel',
                x_expand: true,
            })
  • extension.js:87
            this._modeRow = new St.BoxLayout({
                style_class: 'clocks-timer-settings-mode-row',
                x_expand: true,
            })
  • extension.js:172
            this._presetButton = new St.Button({
                label: this._pomodoro.name,
                style_class: 'clocks-timer-settings-preset-button',
                x_expand: true,
            })
  • extension.js:182
            this._presetList = new St.BoxLayout({
                vertical: true,
                style_class: 'clocks-timer-settings-preset-list',
                x_expand: true,
            })
  • extension.js:200
            this._presetSummary = new St.Label({
                style_class: 'clocks-timer-settings-summary',
                x_expand: true,
            })
  • extension.js:400
            this._durationRow = new St.BoxLayout({
                style_class: 'clocks-timer-duration-row',
                x_expand: true,
            })
  • extension.js:404
            this._presetButtonBox = new St.BoxLayout({
                style_class: 'clocks-timer-preset-button-box',
                x_expand: true,
            })
  • extension.js:410
            this._settingsButton = new St.Button({
                child: new St.Icon({icon_name: 'preferences-system-symbolic'}),
                style_class: 'clocks-timer-settings-button',
                can_focus: true,
                accessible_name: 'Timer settings',
            })

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:206
            this._customPanel = new St.BoxLayout({
                vertical: true,
                style_class: 'clocks-timer-settings-custom-panel',
                x_expand: true,
            })
  • extension.js:87
            this._modeRow = new St.BoxLayout({
                style_class: 'clocks-timer-settings-mode-row',
                x_expand: true,
            })
  • extension.js:172
            this._presetButton = new St.Button({
                label: this._pomodoro.name,
                style_class: 'clocks-timer-settings-preset-button',
                x_expand: true,
            })
  • extension.js:182
            this._presetList = new St.BoxLayout({
                vertical: true,
                style_class: 'clocks-timer-settings-preset-list',
                x_expand: true,
            })
  • extension.js:200
            this._presetSummary = new St.Label({
                style_class: 'clocks-timer-settings-summary',
                x_expand: true,
            })
  • extension.js:400
            this._durationRow = new St.BoxLayout({
                style_class: 'clocks-timer-duration-row',
                x_expand: true,
            })
  • extension.js:404
            this._presetButtonBox = new St.BoxLayout({
                style_class: 'clocks-timer-preset-button-box',
                x_expand: true,
            })
  • extension.js:410
            this._settingsButton = new St.Button({
                child: new St.Icon({icon_name: 'preferences-system-symbolic'}),
                style_class: 'clocks-timer-settings-button',
                can_focus: true,
                accessible_name: 'Timer settings',
            })

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:831
            this._timerMessage.connect('destroy', () => {
                this._timerMessage = null;
            })
  • extension.js:177
            this._presetButton.connect('clicked', () => {
                this._presetList.visible = !this._presetList.visible;
            })
  • extension.js:416
    this._settingsButton.connect('clicked', () => this._handlers?.settings())

All Versions

Version Status
2 Unreviewed
1 Rejected

Previous Reviews on this Version

willdo auto- rejected
Auto-rejected because of new version 2 was uploaded