Review of "Hijri Date" version 18

Details Page Preview

Add Hijri date to top panel

Extension Homepage
https://github.com/abdallah-alkanani/hijridate

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 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:455
            this._calendarGrid = new St.Widget({
                layout_manager: this._calendarGridLayout,
                style_class: 'hijri-calendar-grid calendar',
                x_expand: true
            })
  • extension.js:448
            this._calendarGridLayout = new Clutter.GridLayout({
                column_homogeneous: true,
                row_homogeneous: true
            })
  • extension.js:341
            this._calendarHeader = new St.BoxLayout({
                style_class: 'hijri-calendar-header-row',
                x_expand: true
            })
  • extension.js:352
            this._calendarHeaderCenter = new St.Widget({
                layout_manager: new Clutter.BinLayout(),
                x_expand: true
            })
  • extension.js:356
            this._calendarHeaderCenterBox = new St.BoxLayout({
                x_align: Clutter.ActorAlign.CENTER,
                y_align: Clutter.ActorAlign.CENTER
            })
  • extension.js:347
            this._calendarHeaderSpacer = new St.Widget({
                style_class: 'hijri-calendar-header-spacer'
            })
  • extension.js:368
            this._calendarMonthButton = new St.Button({
                child: this._calendarMonthLabel,
                label_actor: this._calendarMonthLabel,
                style_class: 'hijri-calendar-header-button hijri-calendar-header-month',
                can_focus: true,
                reactive: true,
              
  • extension.js:363
            this._calendarMonthLabel = new St.Label({
                style_class: 'hijri-calendar-header',
                x_align: Clutter.ActorAlign.CENTER,
                y_align: Clutter.ActorAlign.CENTER
            })
  • extension.js:396
            this._calendarTodayButton = new St.Button({
                label: _('Today'),
                style_class: 'hijri-calendar-today-button',
                can_focus: true,
                reactive: true,
                track_hover: true,
                x_align: Clutter.ActorAlign.END,
                y_align: Clutter
  • extension.js:383
            this._calendarYearButton = new St.Button({
                child: this._calendarYearLabel,
                label_actor: this._calendarYearLabel,
                style_class: 'hijri-calendar-header-button',
                can_focus: true,
                reactive: true,
                track_hover: true
            })
  • extension.js:378
            this._calendarYearLabel = new St.Label({
                style_class: 'hijri-calendar-header',
                x_align: Clutter.ActorAlign.CENTER,
                y_align: Clutter.ActorAlign.CENTER
            })
  • extension.js:408
            this._monthPickerBox = new St.BoxLayout({
                vertical: true,
                style_class: 'hijri-calendar-picker',
                x_expand: true,
                visible: false
            })
  • extension.js:421
            this._monthPickerGrid = new St.Widget({
                layout_manager: this._monthPickerGridLayout,
                style_class: 'hijri-calendar-picker-grid',
                x_expand: true
            })
  • extension.js:414
            this._monthPickerGridLayout = new Clutter.GridLayout({
                column_homogeneous: true,
                row_homogeneous: true
            })
  • extension.js:429
            this._yearPickerBox = new St.BoxLayout({
                vertical: true,
                style_class: 'hijri-calendar-picker',
                x_expand: true,
                visible: false,
                reactive: true,
                can_focus: true,
                track_hover: true
            })
  • extension.js:440
            this._yearPickerList = new St.BoxLayout({
                vertical: true,
                style_class: 'hijri-calendar-year-list',
                x_expand: true
            })

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:455
            this._calendarGrid = new St.Widget({
                layout_manager: this._calendarGridLayout,
                style_class: 'hijri-calendar-grid calendar',
                x_expand: true
            })
  • extension.js:448
            this._calendarGridLayout = new Clutter.GridLayout({
                column_homogeneous: true,
                row_homogeneous: true
            })
  • extension.js:341
            this._calendarHeader = new St.BoxLayout({
                style_class: 'hijri-calendar-header-row',
                x_expand: true
            })
  • extension.js:352
            this._calendarHeaderCenter = new St.Widget({
                layout_manager: new Clutter.BinLayout(),
                x_expand: true
            })
  • extension.js:356
            this._calendarHeaderCenterBox = new St.BoxLayout({
                x_align: Clutter.ActorAlign.CENTER,
                y_align: Clutter.ActorAlign.CENTER
            })
  • extension.js:347
            this._calendarHeaderSpacer = new St.Widget({
                style_class: 'hijri-calendar-header-spacer'
            })
  • extension.js:368
            this._calendarMonthButton = new St.Button({
                child: this._calendarMonthLabel,
                label_actor: this._calendarMonthLabel,
                style_class: 'hijri-calendar-header-button hijri-calendar-header-month',
                can_focus: true,
                reactive: true,
              
  • extension.js:363
            this._calendarMonthLabel = new St.Label({
                style_class: 'hijri-calendar-header',
                x_align: Clutter.ActorAlign.CENTER,
                y_align: Clutter.ActorAlign.CENTER
            })
  • extension.js:396
            this._calendarTodayButton = new St.Button({
                label: _('Today'),
                style_class: 'hijri-calendar-today-button',
                can_focus: true,
                reactive: true,
                track_hover: true,
                x_align: Clutter.ActorAlign.END,
                y_align: Clutter
  • extension.js:383
            this._calendarYearButton = new St.Button({
                child: this._calendarYearLabel,
                label_actor: this._calendarYearLabel,
                style_class: 'hijri-calendar-header-button',
                can_focus: true,
                reactive: true,
                track_hover: true
            })
  • extension.js:378
            this._calendarYearLabel = new St.Label({
                style_class: 'hijri-calendar-header',
                x_align: Clutter.ActorAlign.CENTER,
                y_align: Clutter.ActorAlign.CENTER
            })
  • extension.js:408
            this._monthPickerBox = new St.BoxLayout({
                vertical: true,
                style_class: 'hijri-calendar-picker',
                x_expand: true,
                visible: false
            })
  • extension.js:421
            this._monthPickerGrid = new St.Widget({
                layout_manager: this._monthPickerGridLayout,
                style_class: 'hijri-calendar-picker-grid',
                x_expand: true
            })
  • extension.js:414
            this._monthPickerGridLayout = new Clutter.GridLayout({
                column_homogeneous: true,
                row_homogeneous: true
            })
  • extension.js:429
            this._yearPickerBox = new St.BoxLayout({
                vertical: true,
                style_class: 'hijri-calendar-picker',
                x_expand: true,
                visible: false,
                reactive: true,
                can_focus: true,
                track_hover: true
            })
  • extension.js:440
            this._yearPickerList = new St.BoxLayout({
                vertical: true,
                style_class: 'hijri-calendar-year-list',
                x_expand: true
            })

All Versions

Previous Reviews on this Version

JustPerfection active