Review of "Chips Weather" version 1

Details Page Preview

Panel indicator showing current temperature and weather icon. Popup menu displays an 8-hour hourly forecast with temperature, UV index, precipitation probability, and color-coded temps. Daily view with high/low temperatures and dual weather icons for mixed conditions. Automatic location detection via IP. Supports Celsius/Fahrenheit.

Extension Homepage
https://github.com/ninjabucket/Chips-Weather

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:120
    this._box = new St.BoxLayout({style_class: 'panel-status-menu-box'})
  • extension.js:121
            this._icon = new St.Icon({
                icon_name: 'weather-clear-symbolic',
                style_class: 'system-status-icon',
            })
  • extension.js:125
            this._label = new St.Label({
                text: '--°',
                y_align: Clutter.ActorAlign.CENTER,
                style: 'padding: 0 4px;',
            })

EGO-L-004 warning

main loop sources should be removed in disable()

Main loop sources assigned in `enable()` are missing matching removals in `disable()` or its helper methods.

Remove main loop sources

  • extension.js:109
                    GLib.timeout_add(GLib.PRIORITY_DEFAULT, 15, () => {
                        step++;
                        if (this._bgContainer && step <= 8) {
                            this._bgContainer.opacity = Math.round((step / 8) * 255);
                            return GLib.SOURCE_CONTINUE;
               
  • extension.js:157
            GLib.timeout_add(GLib.PRIORITY_DEFAULT, intervalMs, () => {
                if (!this._icon)
                    return GLib.SOURCE_REMOVE;
                const pos = step % stepsPerCycle;
                step++;
                if (pos < halfCycle) {
                    const t = pos / halfCycle;
                    
  • extension.js:177
                GLib.timeout_add(GLib.PRIORITY_DEFAULT, 15, () => {
                    fadeStep++;
                    if (this._bgContainer) {
                        this._bgContainer.opacity = Math.round(255 * (1 - fadeStep / totalFade));
                    }
                    if (fadeStep >= totalFade) {
              
  • extension.js:376
                GLib.timeout_add(GLib.PRIORITY_DEFAULT, 10, () => {
                    let fi = 0;
                    const fiSteps = 6;
                    GLib.timeout_add(GLib.PRIORITY_DEFAULT, 15, () => {
                        fi++;
                        if (this._bgContainer) {
                            this._bgCo
  • extension.js:379
                    GLib.timeout_add(GLib.PRIORITY_DEFAULT, 15, () => {
                        fi++;
                        if (this._bgContainer) {
                            this._bgContainer.opacity = Math.round(255 * (fi / fiSteps));
                        }
                        return fi < fiSteps ? GLib.SOURCE

All Versions

Version Status
11 Unreviewed
10 Active
9 Active
8 Rejected
7 Rejected
6 Rejected
5 Rejected
4 Rejected
3 Rejected
2 Rejected
1 Active

Previous Reviews on this Version

fmuellner active