diff --git a/js/ui/autorunManager.js b/js/ui/autorunManager.js index 2cc13c510..c41589410 100644 --- a/js/ui/autorunManager.js +++ b/js/ui/autorunManager.js @@ -261,15 +261,12 @@ AutorunManager.prototype = { }, } -function AutorunResidentSource() { - this._init(); -} - -AutorunResidentSource.prototype = { - __proto__: MessageTray.Source.prototype, +const AutorunResidentSource = new Lang.Class({ + Name: 'AutorunResidentSource', + Extends: MessageTray.Source, _init: function() { - MessageTray.Source.prototype._init.call(this, _("Removable Devices")); + this.parent(_("Removable Devices")); this._mounts = []; @@ -324,19 +321,14 @@ AutorunResidentSource.prototype = { icon_type: St.IconType.FULLCOLOR, icon_size: this.ICON_SIZE }); } -} +}); -function AutorunResidentNotification(source) { - this._init(source); -} - -AutorunResidentNotification.prototype = { - __proto__: MessageTray.Notification.prototype, +const AutorunResidentNotification = new Lang.Class({ + Name: 'AutorunResidentNotification', + Extends: MessageTray.Notification, _init: function(source) { - MessageTray.Notification.prototype._init.call(this, source, - source.title, null, - { customContent: true }); + this.parent(source, source.title, null, { customContent: true }); // set the notification as resident this.setResident(true); @@ -410,7 +402,7 @@ AutorunResidentNotification.prototype = { return item; }, -} +}); function AutorunTransientDispatcher() { this._init(); @@ -509,15 +501,12 @@ AutorunTransientDispatcher.prototype = { } } -function AutorunTransientSource(mount, apps) { - this._init(mount, apps); -} - -AutorunTransientSource.prototype = { - __proto__: MessageTray.Source.prototype, +const AutorunTransientSource = new Lang.Class({ + Name: 'AutorunTransientSource', + Extends: MessageTray.Source, _init: function(mount, apps) { - MessageTray.Source.prototype._init.call(this, mount.get_name()); + this.parent(mount.get_name()); this.mount = mount; this.apps = apps; @@ -534,19 +523,14 @@ AutorunTransientSource.prototype = { return new St.Icon({ gicon: this.mount.get_icon(), icon_size: this.ICON_SIZE }); } -} +}); -function AutorunTransientNotification(source) { - this._init(source); -} - -AutorunTransientNotification.prototype = { - __proto__: MessageTray.Notification.prototype, +const AutorunTransientNotification = new Lang.Class({ + Name: 'AutorunTransientNotification', + Extends: MessageTray.Notification, _init: function(source) { - MessageTray.Notification.prototype._init.call(this, source, - source.title, null, - { customContent: true }); + this.parent(source, source.title, null, { customContent: true }); this._box = new St.BoxLayout({ style_class: 'hotplug-transient-box', vertical: true }); @@ -621,5 +605,5 @@ AutorunTransientNotification.prototype = { return button; } -} +}); diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js index a270c4b50..2bf7868c2 100644 --- a/js/ui/keyboard.js +++ b/js/ui/keyboard.js @@ -535,16 +535,13 @@ Keyboard.prototype = { }; DBus.conformExport(Keyboard.prototype, CaribouKeyboardIface); -function KeyboardSource() { - this._init.apply(this, arguments); -} - -KeyboardSource.prototype = { - __proto__: MessageTray.Source.prototype, +const KeyboardSource = new Lang.Class({ + Name: 'KeyboardSource', + Extends: MessageTray.Source, _init: function(keyboard) { + this.parent(_("Keyboard")); this._keyboard = keyboard; - MessageTray.Source.prototype._init.call(this, _("Keyboard")); this._setSummaryIcon(this.createNotificationIcon()); }, @@ -555,7 +552,7 @@ KeyboardSource.prototype = { icon_size: this.ICON_SIZE }); }, - handleSummaryClick: function() { + handleSummaryClick: function() { let event = Clutter.get_current_event(); if (event.type() != Clutter.EventType.BUTTON_RELEASE) return false; @@ -567,4 +564,4 @@ KeyboardSource.prototype = { open: function() { this._keyboard.show(); } -}; +}); diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js index ef5c19b0b..e995fc586 100644 --- a/js/ui/messageTray.js +++ b/js/ui/messageTray.js @@ -408,11 +408,9 @@ Signals.addSignalMethods(FocusGrabber.prototype); // the content and the action area of the notification will be cleared. // The content area is also always cleared if 'customContent' is false // because it might contain the @banner that didn't fit in the banner mode. -function Notification(source, title, banner, params) { - this._init(source, title, banner, params); -} +const Notification = new Lang.Class({ + Name: 'Notification', -Notification.prototype = { IMAGE_SIZE: 125, _init: function(source, title, banner, params) { @@ -953,14 +951,12 @@ Notification.prototype = { this.actor.destroy(); this.actor._delegate = null; } -}; +}); Signals.addSignalMethods(Notification.prototype); -function Source(title) { - this._init(title); -} +const Source = new Lang.Class({ + Name: 'MessageTraySource', -Source.prototype = { ICON_SIZE: 24, _init: function(title) { @@ -1142,7 +1138,7 @@ Source.prototype = { _lastNotificationRemoved: function() { this.destroy(); } -}; +}); Signals.addSignalMethods(Source.prototype); function SummaryItem(source) { @@ -2428,15 +2424,12 @@ MessageTray.prototype = { } }; -function SystemNotificationSource() { - this._init(); -} - -SystemNotificationSource.prototype = { - __proto__: Source.prototype, +const SystemNotificationSource = new Lang.Class({ + Name: 'SystemNotificationSource', + Extends: Source, _init: function() { - Source.prototype._init.call(this, _("System Information")); + this.parent(_("System Information")); this._setSummaryIcon(this.createNotificationIcon()); }, @@ -2450,4 +2443,4 @@ SystemNotificationSource.prototype = { open: function() { this.destroy(); } -}; +}); diff --git a/js/ui/notificationDaemon.js b/js/ui/notificationDaemon.js index 98b88758f..6a8ee4ad5 100644 --- a/js/ui/notificationDaemon.js +++ b/js/ui/notificationDaemon.js @@ -476,15 +476,12 @@ NotificationDaemon.prototype = { } }; -function Source(title, pid, sender) { - this._init(title, pid, sender); -} - -Source.prototype = { - __proto__: MessageTray.Source.prototype, +const Source = new Lang.Class({ + Name: 'NotificationDaemonSource', + Extends: MessageTray.Source, _init: function(title, pid, sender) { - MessageTray.Source.prototype._init.call(this, title); + this.parent(title); this._pid = pid; if (sender) @@ -606,6 +603,6 @@ Source.prototype = { this._nameWatcherId = 0; } - MessageTray.Source.prototype.destroy.call(this); + this.parent(); } -}; +}); diff --git a/js/ui/shellMountOperation.js b/js/ui/shellMountOperation.js index b6281f318..439be580b 100644 --- a/js/ui/shellMountOperation.js +++ b/js/ui/shellMountOperation.js @@ -239,16 +239,13 @@ ShellMountQuestionDialog.prototype = { } Signals.addSignalMethods(ShellMountQuestionDialog.prototype); -function ShellMountPasswordSource(message, icon, reaskPassword) { - this._init(message, icon, reaskPassword); -} - -ShellMountPasswordSource.prototype = { - __proto__: MessageTray.Source.prototype, +const ShellMountPasswordSource = new Lang.Class({ + Name: 'ShellMountPasswordSource', + Extends: MessageTray.Source, _init: function(message, icon, reaskPassword) { let strings = message.split('\n'); - MessageTray.Source.prototype._init.call(this, strings[0]); + this.parent(strings[0]); this._notification = new ShellMountPasswordNotification(this, strings, icon, reaskPassword); @@ -256,21 +253,15 @@ ShellMountPasswordSource.prototype = { Main.messageTray.add(this); this.notify(this._notification); }, -} +}); Signals.addSignalMethods(ShellMountPasswordSource.prototype); -function ShellMountPasswordNotification(source, strings, icon, reaskPassword) { - this._init(source, strings, icon, reaskPassword); -} - -ShellMountPasswordNotification.prototype = { - __proto__: MessageTray.Notification.prototype, +const ShellMountPasswordNotification = new Lang.Class({ + Name: 'ShellMountPasswordNotification', + Extends: MessageTray.Notification, _init: function(source, strings, icon, reaskPassword) { - MessageTray.Notification.prototype._init.call(this, source, - strings[0], null, - { customContent: true, - icon: icon }); + this.parent(source, strings[0], null, { customContent: true, icon: icon }); // set the notification to transient and urgent, so that it // expands out @@ -305,7 +296,7 @@ ShellMountPasswordNotification.prototype = { this.source.emit('password-ready', text); } -} +}); function ShellProcessesDialog(icon) { this._init(icon); diff --git a/js/ui/status/bluetooth.js b/js/ui/status/bluetooth.js index 13d1b4aa9..7efa2e227 100644 --- a/js/ui/status/bluetooth.js +++ b/js/ui/status/bluetooth.js @@ -334,15 +334,12 @@ const Indicator = new Lang.Class({ } }); -function Source() { - this._init.apply(this, arguments); -} - -Source.prototype = { - __proto__: MessageTray.Source.prototype, +const Source = new Lang.Class({ + Name: 'BluetoothSource', + Extends: MessageTray.Source, _init: function() { - MessageTray.Source.prototype._init.call(this, _("Bluetooth")); + this.parent(_("Bluetooth")); this._setSummaryIcon(this.createNotificationIcon()); }, @@ -364,21 +361,17 @@ Source.prototype = { icon_type: St.IconType.SYMBOLIC, icon_size: this.ICON_SIZE }); } -} +}); -function AuthNotification() { - this._init.apply(this, arguments); -} - -AuthNotification.prototype = { - __proto__: MessageTray.Notification.prototype, +const AuthNotification = new Lang.Class({ + Name: 'AuthNotification', + Extends: MessageTray.Notification, _init: function(source, applet, device_path, name, long_name, uuid) { - MessageTray.Notification.prototype._init.call(this, - source, - _("Bluetooth"), - _("Authorization request from %s").format(name), - { customContent: true }); + this.parent(source, + _("Bluetooth"), + _("Authorization request from %s").format(name), + { customContent: true }); this.setResident(true); this._applet = applet; @@ -404,21 +397,17 @@ AuthNotification.prototype = { this.destroy(); })); } -} +}); -function ConfirmNotification() { - this._init.apply(this, arguments); -} - -ConfirmNotification.prototype = { - __proto__: MessageTray.Notification.prototype, +const ConfirmNotification = new Lang.Class({ + Name: 'ConfirmNotification', + Extends: MessageTray.Notification, _init: function(source, applet, device_path, name, long_name, pin) { - MessageTray.Notification.prototype._init.call(this, - source, - _("Bluetooth"), - _("Pairing confirmation for %s").format(name), - { customContent: true }); + this.parent(source, + _("Bluetooth"), + _("Pairing confirmation for %s").format(name), + { customContent: true }); this.setResident(true); this._applet = applet; @@ -437,21 +426,17 @@ ConfirmNotification.prototype = { this.destroy(); })); } -} +}); -function PinNotification() { - this._init.apply(this, arguments); -} - -PinNotification.prototype = { - __proto__: MessageTray.Notification.prototype, +const PinNotification = new Lang.Class({ + Name: 'PinNotification', + Extends: MessageTray.Notification, _init: function(source, applet, device_path, name, long_name, numeric) { - MessageTray.Notification.prototype._init.call(this, - source, - _("Bluetooth"), - _("Pairing request for %s").format(name), - { customContent: true }); + this.parent(source, + _("Bluetooth"), + _("Pairing request for %s").format(name), + { customContent: true }); this.setResident(true); this._applet = applet; @@ -503,4 +488,4 @@ PinNotification.prototype = { MessageTray.Notification.prototype.grabFocus.call(this, lockTray); global.stage.set_key_focus(this._entry); } -} +}); diff --git a/js/ui/status/network.js b/js/ui/status/network.js index 9fd157d67..382fa0e0d 100644 --- a/js/ui/status/network.js +++ b/js/ui/status/network.js @@ -2121,15 +2121,12 @@ const NMApplet = new Lang.Class({ } }); -function NMMessageTraySource() { - this._init(); -} - -NMMessageTraySource.prototype = { - __proto__: MessageTray.Source.prototype, +const NMMessageTraySource = new Lang.Class({ + Name: 'NMMessageTraySource', + Extends: MessageTray.Source, _init: function() { - MessageTray.Source.prototype._init.call(this, _("Network Manager")); + this.parent(_("Network Manager")); let icon = new St.Icon({ icon_name: 'network-transmit-receive', icon_type: St.IconType.SYMBOLIC, @@ -2137,4 +2134,4 @@ NMMessageTraySource.prototype = { }); this._setSummaryIcon(icon); } -}; +}); diff --git a/js/ui/telepathyClient.js b/js/ui/telepathyClient.js index 8bc51d1a6..6d717fcfa 100644 --- a/js/ui/telepathyClient.js +++ b/js/ui/telepathyClient.js @@ -481,15 +481,12 @@ Client.prototype = { } }; -function ChatSource(account, conn, channel, contact, client) { - this._init(account, conn, channel, contact, client); -} - -ChatSource.prototype = { - __proto__: MessageTray.Source.prototype, +const ChatSource = new Lang.Class({ + Name: 'ChatSource', + Extends: MessageTray.Source, _init: function(account, conn, channel, contact, client) { - MessageTray.Source.prototype._init.call(this, contact.get_alias()); + this.parent(contact.get_alias()); this.isChat = true; @@ -798,17 +795,14 @@ ChatSource.prototype = { this._shouldAck = false; } -}; +}); -function ChatNotification(source) { - this._init(source); -} - -ChatNotification.prototype = { - __proto__: MessageTray.Notification.prototype, +const ChatNotification = new Lang.Class({ + Name: 'ChatNotification', + Extends: MessageTray.Notification, _init: function(source) { - MessageTray.Notification.prototype._init.call(this, source, source.title, null, { customContent: true }); + this.parent(source, source.title, null, { customContent: true }); this.setResident(true); this._responseEntry = new St.Entry({ style_class: 'chat-response', @@ -1091,17 +1085,14 @@ ChatNotification.prototype = { this.source.setChatState(Tp.ChannelChatState.ACTIVE); } } -}; +}); -function ApproverSource(dispatchOp, text, gicon) { - this._init(dispatchOp, text, gicon); -} - -ApproverSource.prototype = { - __proto__: MessageTray.Source.prototype, +const ApproverSource = new Lang.Class({ + Name: 'ApproverSource', + Extends: MessageTray.Source, _init: function(dispatchOp, text, gicon) { - MessageTray.Source.prototype._init.call(this, text); + this.parent(text); this._gicon = gicon; this._setSummaryIcon(this.createNotificationIcon()); @@ -1130,23 +1121,19 @@ ApproverSource.prototype = { icon_type: St.IconType.FULLCOLOR, icon_size: this.ICON_SIZE }); } -} +}); -function RoomInviteNotification(source, dispatchOp, channel, inviter) { - this._init(source, dispatchOp, channel, inviter); -} - -RoomInviteNotification.prototype = { - __proto__: MessageTray.Notification.prototype, +const RoomInviteNotification = new Lang.Class({ + Name: 'RoomInviteNotification', + Extends: MessageTray.Notification, _init: function(source, dispatchOp, channel, inviter) { - MessageTray.Notification.prototype._init.call(this, - source, - /* translators: argument is a room name like - * room@jabber.org for example. */ - _("Invitation to %s").format(channel.get_identifier()), - null, - { customContent: true }); + this.parent(source, + /* translators: argument is a room name like + * room@jabber.org for example. */ + _("Invitation to %s").format(channel.get_identifier()), + null, + { customContent: true }); this.setResident(true); /* translators: first argument is the name of a contact and the second @@ -1173,15 +1160,12 @@ RoomInviteNotification.prototype = { this.destroy(); })); } -}; +}); // Audio Video -function AudioVideoNotification(source, dispatchOp, channel, contact, isVideo) { - this._init(source, dispatchOp, channel, contact, isVideo); -} - -AudioVideoNotification.prototype = { - __proto__: MessageTray.Notification.prototype, +const AudioVideoNotification = new Lang.Class({ + Name: 'AudioVideoNotification', + Extends: MessageTray.Notification, _init: function(source, dispatchOp, channel, contact, isVideo) { let title = ''; @@ -1193,11 +1177,7 @@ AudioVideoNotification.prototype = { /* translators: argument is a contact name like Alice for example. */ title = _("Call from %s").format(contact.get_alias()); - MessageTray.Notification.prototype._init.call(this, - source, - title, - null, - { customContent: true }); + this.parent(this, source, title, null, { customContent: true }); this.setResident(true); this.addButton('reject', _("Reject")); @@ -1220,28 +1200,25 @@ AudioVideoNotification.prototype = { this.destroy(); })); } -}; +}); // File Transfer -function FileTransferNotification(source, dispatchOp, channel, contact) { - this._init(source, dispatchOp, channel, contact); -} - -FileTransferNotification.prototype = { - __proto__: MessageTray.Notification.prototype, +const FileTransferNotification = new Lang.Class({ + Name: 'FileTransferNotification', + Extends: MessageTray.Notification, _init: function(source, dispatchOp, channel, contact) { - MessageTray.Notification.prototype._init.call(this, - source, - /* To translators: The first parameter is - * the contact's alias and the second one is the - * file name. The string will be something - * like: "Alice is sending you test.ogg" - */ - _("%s is sending you %s").format(contact.get_alias(), - channel.get_filename()), - null, - { customContent: true }); + this.parent(this, + source, + /* To translators: The first parameter is + * the contact's alias and the second one is the + * file name. The string will be something + * like: "Alice is sending you test.ogg" + */ + _("%s is sending you %s").format(contact.get_alias(), + channel.get_filename()), + null, + { customContent: true }); this.setResident(true); this.addButton('decline', _("Decline")); @@ -1263,18 +1240,15 @@ FileTransferNotification.prototype = { this.destroy(); })); } -}; +}); // A notification source that can embed multiple notifications -function MultiNotificationSource(title, icon) { - this._init(title, icon); -} - -MultiNotificationSource.prototype = { - __proto__: MessageTray.Source.prototype, +const MultiNotificationSource = new Lang.Class({ + Name: 'MultiNotificationSource', + Extends: MessageTray.Source, _init: function(title, icon) { - MessageTray.Source.prototype._init.call(this, title); + this.parent(title); this._icon = icon; this._setSummaryIcon(this.createNotificationIcon()); @@ -1282,7 +1256,7 @@ MultiNotificationSource.prototype = { }, notify: function(notification) { - MessageTray.Source.prototype.notify.call(this, notification); + this.parent(notification); this._nbNotifications += 1; @@ -1300,21 +1274,18 @@ MultiNotificationSource.prototype = { icon_type: St.IconType.FULLCOLOR, icon_size: this.ICON_SIZE }); } -}; +}); // Subscription request -function SubscriptionRequestNotification(source, contact) { - this._init(source, contact); -} - -SubscriptionRequestNotification.prototype = { - __proto__: MessageTray.Notification.prototype, +const SubscriptionRequestNotification = new Lang.Class({ + Name: 'SubscriptionRequestNotification', + Extends: MessageTray.Notification, _init: function(source, contact) { - MessageTray.Notification.prototype._init.call(this, source, - /* To translators: The parameter is the contact's alias */ - _("%s would like permission to see when you are online").format(contact.get_alias()), - null, { customContent: true }); + this.parent(this, source, + /* To translators: The parameter is the contact's alias */ + _("%s would like permission to see when you are online").format(contact.get_alias()), + null, { customContent: true }); this._contact = contact; this._connection = contact.get_connection(); @@ -1388,7 +1359,7 @@ SubscriptionRequestNotification.prototype = { this._invalidatedId = 0; } - MessageTray.Notification.prototype.destroy.call(this); + this.parent(); }, _subscriptionStatesChangedCb: function(contact, subscribe, publish, msg) { @@ -1397,12 +1368,7 @@ SubscriptionRequestNotification.prototype = { if (publish != Tp.SubscriptionState.ASK) this.destroy(); } -}; - - -function AccountNotification(source, account, connectionError) { - this._init(source, account, connectionError); -} +}); // Messages from empathy/libempathy/empathy-utils.c // create_errors_to_message_hash() @@ -1457,15 +1423,16 @@ _connectionErrorMessages[Tp.error_get_dbus_name(Tp.Error.CERT_INSECURE)] _connectionErrorMessages[Tp.error_get_dbus_name(Tp.Error.CERT_LIMIT_EXCEEDED)] = _("The length of the server certificate, or the depth of the server certificate chain, exceed the limits imposed by the cryptography library"); -AccountNotification.prototype = { - __proto__: MessageTray.Notification.prototype, +const AccountNotification = new Lang.Class({ + Name: 'AccountNotification', + Extends: MessageTray.Notification, _init: function(source, account, connectionError) { - MessageTray.Notification.prototype._init.call(this, source, - /* translators: argument is the account name, like - * name@jabber.org for example. */ - _("Connection to %s failed").format(account.get_display_name()), - null, { customContent: true }); + this.parent(source, + /* translators: argument is the account name, like + * name@jabber.org for example. */ + _("Connection to %s failed").format(account.get_display_name()), + null, { customContent: true }); this._label = new St.Label(); this.addActor(this._label); @@ -1541,6 +1508,6 @@ AccountNotification.prototype = { this._connectionStatusId = 0; } - MessageTray.Notification.prototype.destroy.call(this); + this.parent(); } -}; +}); diff --git a/js/ui/windowAttentionHandler.js b/js/ui/windowAttentionHandler.js index b8dd2e39b..af31bdd1c 100644 --- a/js/ui/windowAttentionHandler.js +++ b/js/ui/windowAttentionHandler.js @@ -45,15 +45,12 @@ WindowAttentionHandler.prototype = { } }; -function Source(app, window) { - this._init(app, window); -} - -Source.prototype = { - __proto__ : MessageTray.Source.prototype, +const Source = new Lang.Class({ + Name: 'WindowAttentionSource', + Extends: MessageTray.Source, _init: function(app, window) { - MessageTray.Source.prototype._init.call(this, app.get_name()); + this.parent(app.get_name()); this._window = window; this._app = app; this._setSummaryIcon(this.createNotificationIcon()); @@ -81,4 +78,4 @@ Source.prototype = { Main.activateWindow(this._window); this.destroy(); } -}; +});