Review of "Persian Calendar" version 127

Details Page Preview

🗓️ Displays Persian (Iranian/Jalali) calendar in the top panel It offers: 1. Displays the Persian/Iranian/Jalali calendar 2. Holiday indicator 3. Day change notifications 4. Converts dates between the Persian, Gregorian, and Hijri (lunar) calendars 5. Event listings: 5.1. Official solar events 5.2. Official lunar events 5.3. Official international events 5.4. Traditional Persian events 5.5. Notable Persian figures This extension writes to clipboard by user interaction. Please “rate” 💓 the project here and give it a 🌟 on GitHub. If you encounter any issues or have suggestions, feel free to open an issue there on GitHub! Keywords: فارسی / جلالی / تقویم / ایران / ایرانی / گاهشمار / گاه‌شمار / گاهشماری / گاه‌شماری / شمسی / خورشیدی / قمری / میلادی / هجری / Iran / Iranian / Jalali / Persian / Calendar

Extension Homepage
https://github.com/omid/Persian-Calendar-for-Gnome-Shell

No comments.

Diff Against

Files

Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.

Shexli (experimental) warning 4 manual_review 1

Shexli found 5 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

  • Calendar.js:436
    St.Clipboard.get_default()

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

  • utils/gettext.js:43
    localeJsonFile.load_contents(null)

EGO-P-006 warning

unnecessary build and translation artifacts should not be shipped

Compiled GSettings schemas should not be shipped for 45+ packages.

Don't include unnecessary files

  • schemas/gschemas.compiled
    schemas/gschemas.compiled

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._actionButtonsPart = new PopupMenu.PopupBaseMenuItem({
                    reactive: false,
                    can_focus: false,
                })
  • extension.js:367
    this.convertedDatesVbox = new St.BoxLayout({ vertical: true })
  • extension.js:345
                this.converterDay = new St.Entry({
                    name: 'day',
                    hint_text: this._gettext.__('day'),
                    can_focus: true,
                    x_expand: true,
                    style_class: 'pcalendar-converter-entry',
                })
  • extension.js:336
                this.converterMonth = new St.Entry({
                    name: 'month',
                    hint_text: this._gettext.__('month'),
                    can_focus: true,
                    x_expand: true,
                    style_class: 'pcalendar-converter-entry',
                })
  • extension.js:265
    this.converterVbox = new St.BoxLayout({ style_class: 'pcalendar-font', vertical: true, x_expand: true })
  • extension.js:327
                this.converterYear = new St.Entry({
                    name: 'year',
                    hint_text: this._gettext.__('year'),
                    can_focus: true,
                    x_expand: true,
                    style_class: 'pcalendar-converter-entry',
                })

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:120
                this._actionButtonsPart = new PopupMenu.PopupBaseMenuItem({
                    reactive: false,
                    can_focus: false,
                })
  • extension.js:367
    this.convertedDatesVbox = new St.BoxLayout({ vertical: true })
  • extension.js:345
                this.converterDay = new St.Entry({
                    name: 'day',
                    hint_text: this._gettext.__('day'),
                    can_focus: true,
                    x_expand: true,
                    style_class: 'pcalendar-converter-entry',
                })
  • extension.js:336
                this.converterMonth = new St.Entry({
                    name: 'month',
                    hint_text: this._gettext.__('month'),
                    can_focus: true,
                    x_expand: true,
                    style_class: 'pcalendar-converter-entry',
                })
  • extension.js:265
    this.converterVbox = new St.BoxLayout({ style_class: 'pcalendar-font', vertical: true, x_expand: true })
  • extension.js:327
                this.converterYear = new St.Entry({
                    name: 'year',
                    hint_text: this._gettext.__('year'),
                    can_focus: true,
                    x_expand: true,
                    style_class: 'pcalendar-converter-entry',
                })

All Versions

Previous Reviews on this Version

fmuellner active