From 17c46c24523d2a21a43a29e1c3bc1deada08ef60 Mon Sep 17 00:00:00 2001 From: Giovanni Campagna Date: Sun, 20 Nov 2011 18:56:27 +0100 Subject: [PATCH] Port everything to class framework The last patch in the sequence. Every place that was previously setting prototype has been ported to Lang.Class, to make code more concise and allow for better toString(). https://bugzilla.gnome.org/show_bug.cgi?id=664436 --- js/gdm/loginDialog.js | 42 +++++----------- js/misc/docInfo.js | 16 +++--- js/misc/history.js | 8 ++- js/misc/modemManager.js | 16 +++--- js/ui/altTab.js | 16 +++--- js/ui/appDisplay.js | 32 +++++------- js/ui/appFavorites.js | 8 ++- js/ui/automountManager.js | 8 ++- js/ui/autorunManager.js | 24 ++++----- js/ui/boxpointer.js | 8 ++- js/ui/calendar.js | 43 ++++++---------- js/ui/contactDisplay.js | 8 ++- js/ui/ctrlAltTab.js | 16 +++--- js/ui/dash.js | 8 ++- js/ui/dnd.js | 8 ++- js/ui/endSessionDialog.js | 8 ++- js/ui/iconGrid.js | 8 ++- js/ui/keyboard.js | 17 +++---- js/ui/layout.js | 24 ++++----- js/ui/lightbox.js | 8 ++- js/ui/lookingGlass.js | 80 +++++++++++------------------- js/ui/magnifier.js | 24 ++++----- js/ui/magnifierDBus.js | 17 +++---- js/ui/messageTray.js | 32 +++++------- js/ui/networkAgent.js | 8 ++- js/ui/notificationDaemon.js | 8 ++- js/ui/overview.js | 16 +++--- js/ui/panel.js | 35 +++++-------- js/ui/placeDisplay.js | 8 ++- js/ui/polkitAuthenticationAgent.js | 8 ++- js/ui/popupMenu.js | 2 +- js/ui/runDialog.js | 8 ++- js/ui/search.js | 16 +++--- js/ui/searchDisplay.js | 16 +++--- js/ui/shellDBus.js | 8 ++- js/ui/shellMountOperation.js | 16 +++--- js/ui/status/bluetooth.js | 4 +- js/ui/statusIconDispatcher.js | 8 ++- js/ui/telepathyClient.js | 12 ++--- js/ui/tweener.js | 8 ++- js/ui/viewSelector.js | 8 ++- js/ui/windowAttentionHandler.js | 8 ++- js/ui/windowManager.js | 16 +++--- js/ui/workspace.js | 36 ++++++-------- js/ui/workspaceSwitcherPopup.js | 8 ++- js/ui/workspaceThumbnail.js | 24 ++++----- js/ui/workspacesView.js | 16 +++--- js/ui/xdndHandler.js | 8 ++- 48 files changed, 295 insertions(+), 489 deletions(-) diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js index 0113dc8c9..3700f0c44 100644 --- a/js/gdm/loginDialog.js +++ b/js/gdm/loginDialog.js @@ -140,11 +140,9 @@ function _smoothlyResizeActor(actor, width, height) { return hold; } -function UserListItem(user, reason) { - this._init(user, reason); -} +const UserListItem = new Lang.Class({ + Name: 'UserListItem', -UserListItem.prototype = { _init: function(user) { this.user = user; this._userChangedId = this.user.connect('changed', @@ -273,15 +271,12 @@ UserListItem.prototype = { }); return hold; } - -}; +}); Signals.addSignalMethods(UserListItem.prototype); -function UserList() { - this._init.apply(this, arguments); -} +const UserList = new Lang.Class({ + Name: 'UserList', -UserList.prototype = { _init: function() { this.actor = new St.ScrollView({ style_class: 'login-dialog-user-list-view'}); this.actor.set_policy(Gtk.PolicyType.NEVER, @@ -537,14 +532,12 @@ UserList.prototype = { item.actor.destroy(); delete this._items[userName]; } -}; +}); Signals.addSignalMethods(UserList.prototype); -function SessionListItem(id, name) { - this._init(id, name); -} +const SessionListItem = new Lang.Class({ + Name: 'SessionListItem', -SessionListItem.prototype = { _init: function(id, name) { this.id = id; @@ -599,14 +592,12 @@ SessionListItem.prototype = { _onClicked: function() { this.emit('activate'); } -}; +}); Signals.addSignalMethods(SessionListItem.prototype); -function SessionList() { - this._init(); -} +const SessionList = new Lang.Class({ + Name: 'SessionList', -SessionList.prototype = { _init: function() { this.actor = new St.Bin(); @@ -737,18 +728,9 @@ SessionList.prototype = { })); } } -}; +}); Signals.addSignalMethods(SessionList.prototype); -function LoginDialog() { - if (_loginDialog == null) { - this._init(); - _loginDialog = this; - } - - return _loginDialog; -} - const LoginDialog = new Lang.Class({ Name: 'LoginDialog', Extends: ModalDialog.ModalDialog, diff --git a/js/misc/docInfo.js b/js/misc/docInfo.js index d4499a0a4..1c7db19fe 100644 --- a/js/misc/docInfo.js +++ b/js/misc/docInfo.js @@ -8,11 +8,9 @@ const Search = imports.ui.search; const THUMBNAIL_ICON_MARGIN = 2; -function DocInfo(recentInfo) { - this._init(recentInfo); -} +const DocInfo = new Lang.Class({ + Name: 'DocInfo', -DocInfo.prototype = { _init : function(recentInfo) { this.recentInfo = recentInfo; // We actually used get_modified() instead of get_visited() @@ -49,7 +47,7 @@ DocInfo.prototype = { } return mtype; } -}; +}); var docManagerInstance = null; @@ -62,11 +60,9 @@ function getDocManager() { /** * DocManager wraps the DocSystem, primarily to expose DocInfo objects. */ -function DocManager() { - this._init(); -} +const DocManager = new Lang.Class({ + Name: 'DocManager', -DocManager.prototype = { _init: function() { this._docSystem = Shell.DocSystem.get_default(); this._infosByTimestamp = []; @@ -135,6 +131,6 @@ DocManager.prototype = { return this._infosByUri[url]; })), terms); } -}; +}); Signals.addSignalMethods(DocManager.prototype); diff --git a/js/misc/history.js b/js/misc/history.js index 2c127c3a7..5cb82823a 100644 --- a/js/misc/history.js +++ b/js/misc/history.js @@ -7,11 +7,9 @@ const Params = imports.misc.params; const DEFAULT_LIMIT = 512; -function HistoryManager(params) { - this._init(params); -} +const HistoryManager = new Lang.Class({ + Name: 'HistoryManager', -HistoryManager.prototype = { _init: function(params) { params = Params.parse(params, { gsettingsKey: null, limit: DEFAULT_LIMIT, @@ -111,5 +109,5 @@ HistoryManager.prototype = { if (this._key) global.settings.set_strv(this._key, this._history); } -}; +}); Signals.addSignalMethods(HistoryManager.prototype); diff --git a/js/misc/modemManager.js b/js/misc/modemManager.js index d04a3ab65..e5f07c714 100644 --- a/js/misc/modemManager.js +++ b/js/misc/modemManager.js @@ -54,11 +54,9 @@ function _getProvidersTable() { return _providersTable = providers; } -function ModemGsm() { - this._init.apply(this, arguments); -} +const ModemGsm = new Lang.Class({ + Name: 'ModemGsm', -ModemGsm.prototype = { _init: function(path) { this._proxy = new ModemGsmNetworkProxy(Gio.DBus.system, 'org.freedesktop.ModemManager', path); @@ -156,14 +154,12 @@ ModemGsm.prototype = { return name3 || name2 || null; } -} +}); Signals.addSignalMethods(ModemGsm.prototype); -function ModemCdma() { - this._init.apply(this, arguments); -} +const ModemCdma = new Lang.Class({ + Name: 'ModemCdma', -ModemCdma.prototype = { _init: function(path) { this._proxy = new ModemCdmaProxy(Gio.DBus.system, 'org.freedesktop.ModemManager', path); @@ -231,5 +227,5 @@ ModemCdma.prototype = { return null; } -}; +}); Signals.addSignalMethods(ModemCdma.prototype); diff --git a/js/ui/altTab.js b/js/ui/altTab.js index 166ca365b..85d47924f 100644 --- a/js/ui/altTab.js +++ b/js/ui/altTab.js @@ -43,11 +43,9 @@ function primaryModifier(mask) { return primary; } -function AltTabPopup() { - this._init(); -} +const AltTabPopup = new Lang.Class({ + Name: 'AltTabPopup', -AltTabPopup.prototype = { _init : function() { this.actor = new Shell.GenericContainer({ name: 'altTabPopup', reactive: true, @@ -540,7 +538,7 @@ AltTabPopup.prototype = { onComplete: Lang.bind(this, function () { this.thumbnailsVisible = true; }) }); } -}; +}); const SwitcherList = new Lang.Class({ Name: 'SwitcherList', @@ -853,11 +851,9 @@ const SwitcherList = new Lang.Class({ Signals.addSignalMethods(SwitcherList.prototype); -function AppIcon(app) { - this._init(app); -} +const AppIcon = new Lang.Class({ + Name: 'AppIcon', -AppIcon.prototype = { _init: function(app) { this.app = app; this.actor = new St.BoxLayout({ style_class: 'alt-tab-app', @@ -875,7 +871,7 @@ AppIcon.prototype = { this._iconBin.set_size(size, size); this._iconBin.child = this.icon; } -}; +}); const AppSwitcher = new Lang.Class({ Name: 'AppSwitcher', diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index 4db20c411..6931780d1 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -26,11 +26,9 @@ const MAX_APPLICATION_WORK_MILLIS = 75; const MENU_POPUP_TIMEOUT = 600; const SCROLL_TIME = 0.1; -function AlphabeticalView() { - this._init(); -} +const AlphabeticalView = new Lang.Class({ + Name: 'AlphabeticalView', -AlphabeticalView.prototype = { _init: function() { this._grid = new IconGrid.IconGrid({ xAlign: St.Align.START }); this._appSystem = Shell.AppSystem.get_default(); @@ -130,13 +128,11 @@ AlphabeticalView.prototype = { this._addApp(app); } } -}; +}); -function ViewByCategories() { - this._init(); -} +const ViewByCategories = new Lang.Class({ + Name: 'ViewByCategories', -ViewByCategories.prototype = { _init: function() { this._appSystem = Shell.AppSystem.get_default(); this.actor = new St.BoxLayout({ style_class: 'all-app' }); @@ -281,16 +277,14 @@ ViewByCategories.prototype = { this.actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false); } } -}; +}); /* This class represents a display containing a collection of application items. * The applications are sorted based on their name. */ -function AllAppDisplay() { - this._init(); -} +const AllAppDisplay = new Lang.Class({ + Name: 'AllAppDisplay', -AllAppDisplay.prototype = { _init: function() { this._appSystem = Shell.AppSystem.get_default(); this._appSystem.connect('installed-changed', Lang.bind(this, function() { @@ -306,7 +300,7 @@ AllAppDisplay.prototype = { _redisplay: function() { this._appView.refresh(); } -}; +}); const AppSearchProvider = new Lang.Class({ Name: 'AppSearchProvider', @@ -427,11 +421,9 @@ const AppIcon = new Lang.Class({ } }); -function AppWellIcon(app, iconParams, onActivateOverride) { - this._init(app, iconParams, onActivateOverride); -} +const AppWellIcon = new Lang.Class({ + Name: 'AppWellIcon', -AppWellIcon.prototype = { _init : function(app, iconParams, onActivateOverride) { this.app = app; this.actor = new St.Button({ style_class: 'app-well-app', @@ -611,7 +603,7 @@ AppWellIcon.prototype = { getDragActorSource: function() { return this.icon.icon; } -}; +}); Signals.addSignalMethods(AppWellIcon.prototype); const AppIconMenu = new Lang.Class({ diff --git a/js/ui/appFavorites.js b/js/ui/appFavorites.js index 5faca5595..21257bc2a 100644 --- a/js/ui/appFavorites.js +++ b/js/ui/appFavorites.js @@ -6,11 +6,9 @@ const Signals = imports.signals; const Main = imports.ui.main; -function AppFavorites() { - this._init(); -} +const AppFavorites = new Lang.Class({ + Name: 'AppFavorites', -AppFavorites.prototype = { FAVORITE_APPS_KEY: 'favorite-apps', _init: function() { @@ -122,7 +120,7 @@ AppFavorites.prototype = { this._addFavorite(appId, pos); })); } -}; +}); Signals.addSignalMethods(AppFavorites.prototype); var appFavoritesInstance = null; diff --git a/js/ui/automountManager.js b/js/ui/automountManager.js index 456e04269..ee3e857c9 100644 --- a/js/ui/automountManager.js +++ b/js/ui/automountManager.js @@ -64,11 +64,9 @@ function ConsoleKitManager() { return self; } -function AutomountManager() { - this._init(); -} +const AutomountManager = new Lang.Class({ + Name: 'AutomountManager', -AutomountManager.prototype = { _init: function() { this._settings = new Gio.Settings({ schema: SETTINGS_SCHEMA }); this._volumeQueue = []; @@ -268,4 +266,4 @@ AutomountManager.prototype = { return false; }); } -} +}); diff --git a/js/ui/autorunManager.js b/js/ui/autorunManager.js index c41589410..2649b5337 100644 --- a/js/ui/autorunManager.js +++ b/js/ui/autorunManager.js @@ -75,11 +75,9 @@ function HotplugSniffer() { '/org/gnome/Shell/HotplugSniffer'); } -function ContentTypeDiscoverer(callback) { - this._init(callback); -} +const ContentTypeDiscoverer = new Lang.Class({ + Name: 'ContentTypeDiscoverer', -ContentTypeDiscoverer.prototype = { _init: function(callback) { this._callback = callback; }, @@ -136,13 +134,11 @@ ContentTypeDiscoverer.prototype = { this._callback(mount, apps, contentTypes); } -} +}); -function AutorunManager() { - this._init(); -} +const AutorunManager = new Lang.Class({ + Name: 'AutorunManager', -AutorunManager.prototype = { _init: function() { this._volumeMonitor = Gio.VolumeMonitor.get(); @@ -259,7 +255,7 @@ AutorunManager.prototype = { + ': ' + e.toString()); } }, -} +}); const AutorunResidentSource = new Lang.Class({ Name: 'AutorunResidentSource', @@ -404,11 +400,9 @@ const AutorunResidentNotification = new Lang.Class({ }, }); -function AutorunTransientDispatcher() { - this._init(); -} +const AutorunTransientDispatcher = new Lang.Class({ + Name: 'AutorunTransientDispatcher', -AutorunTransientDispatcher.prototype = { _init: function() { this._sources = []; this._settings = new Gio.Settings({ schema: SETTINGS_SCHEMA }); @@ -499,7 +493,7 @@ AutorunTransientDispatcher.prototype = { // destroy the notification source source.destroy(); } -} +}); const AutorunTransientSource = new Lang.Class({ Name: 'AutorunTransientSource', diff --git a/js/ui/boxpointer.js b/js/ui/boxpointer.js index 00da8a238..8f93b0d8a 100644 --- a/js/ui/boxpointer.js +++ b/js/ui/boxpointer.js @@ -21,11 +21,9 @@ const POPUP_ANIMATION_TIME = 0.15; * placed. The arrow position may be controlled via setArrowOrigin(). * */ -function BoxPointer(side, binProperties) { - this._init(side, binProperties); -} +const BoxPointer = new Lang.Class({ + Name: 'BoxPointer', -BoxPointer.prototype = { _init: function(arrowSide, binProperties) { this._arrowSide = arrowSide; this._arrowOrigin = 0; @@ -452,4 +450,4 @@ BoxPointer.prototype = { get opacity() { return this.actor.opacity; } -}; +}); diff --git a/js/ui/calendar.js b/js/ui/calendar.js index 98ae634e6..0c33ed0a7 100644 --- a/js/ui/calendar.js +++ b/js/ui/calendar.js @@ -155,28 +155,24 @@ function _getEventDayAbbreviation(dayNumber) { // Abstraction for an appointment/event in a calendar -function CalendarEvent(date, end, summary, allDay) { - this._init(date, end, summary, allDay); -} +const CalendarEvent = new Lang.Class({ + Name: 'CalendarEvent', -CalendarEvent.prototype = { _init: function(date, end, summary, allDay) { this.date = date; this.end = end; this.summary = summary; this.allDay = allDay; } -}; +}); // Interface for appointments/events - e.g. the contents of a calendar // // First, an implementation with no events -function EmptyEventSource() { - this._init(); -} +const EmptyEventSource = new Lang.Class({ + Name: 'EmptyEventSource', -EmptyEventSource.prototype = { _init: function() { }, @@ -191,7 +187,7 @@ EmptyEventSource.prototype = { hasEvents: function(day) { return false; } -}; +}); Signals.addSignalMethods(EmptyEventSource.prototype); const CalendarServerIface = @@ -219,11 +215,6 @@ function CalendarServer() { return self; } -// an implementation that reads data from a session bus service -function DBusEventSource() { - this._init(); -} - function _datesEqual(a, b) { if (a < b) return false; @@ -242,8 +233,10 @@ function _dateIntervalsOverlap(a0, a1, b0, b1) return true; } +// an implementation that reads data from a session bus service +const DBusEventSource = new Lang.Class({ + Name: 'DBusEventSource', -DBusEventSource.prototype = { _init: function() { this._resetCache(); @@ -344,17 +337,15 @@ DBusEventSource.prototype = { return true; } -}; +}); Signals.addSignalMethods(DBusEventSource.prototype); // Calendar: // @eventSource: is an object implementing the EventSource API, e.g. the // requestRange(), getEvents(), hasEvents() methods and the ::changed signal. -function Calendar(eventSource) { - this._init(eventSource); -} +const Calendar = new Lang.Class({ + Name: 'Calendar', -Calendar.prototype = { _init: function(eventSource) { if (eventSource) { this._eventSource = eventSource; @@ -620,15 +611,13 @@ Calendar.prototype = { if (this._eventSource) this._eventSource.requestRange(beginDate, iter, forceReload); } -}; +}); Signals.addSignalMethods(Calendar.prototype); -function EventsList(eventSource) { - this._init(eventSource); -} +const EventsList = new Lang.Class({ + Name: 'EventsList', -EventsList.prototype = { _init: function(eventSource) { this.actor = new St.BoxLayout({ vertical: true, style_class: 'events-header-vbox'}); this._date = new Date(); @@ -759,4 +748,4 @@ EventsList.prototype = { this._showOtherDay(this._date); } } -}; +}); diff --git a/js/ui/contactDisplay.js b/js/ui/contactDisplay.js index fe34a5475..dae9002a3 100644 --- a/js/ui/contactDisplay.js +++ b/js/ui/contactDisplay.js @@ -20,11 +20,9 @@ function launchContact(id) { /* This class represents a shown contact search result in the overview */ -function Contact(id) { - this._init(id); -} +const Contact = new Lang.Class({ + Name: 'Contact', -Contact.prototype = { _init: function(id) { this._contactSys = Shell.ContactSystem.get_default(); this.individual = this._contactSys.get_individual(id); @@ -131,7 +129,7 @@ Contact.prototype = { return tc.load_icon_name(null, 'avatar-default', St.IconType.FULLCOLOR, size); } }, -}; +}); /* Searches for and returns contacts */ diff --git a/js/ui/ctrlAltTab.js b/js/ui/ctrlAltTab.js index 9340846fd..67d08817e 100644 --- a/js/ui/ctrlAltTab.js +++ b/js/ui/ctrlAltTab.js @@ -22,11 +22,9 @@ const SortGroup = { BOTTOM: 2 }; -function CtrlAltTabManager() { - this._init(); -} +const CtrlAltTabManager = new Lang.Class({ + Name: 'CtrlAltTabManager', -CtrlAltTabManager.prototype = { _init: function() { this._items = []; this._focusManager = St.FocusManager.get_for_stage(global.stage); @@ -134,17 +132,15 @@ CtrlAltTabManager.prototype = { })); } } -}; +}); function mod(a, b) { return (a + b) % b; } -function CtrlAltTabPopup() { - this._init(); -} +const CtrlAltTabPopup = new Lang.Class({ + Name: 'CtrlAltTabPopup', -CtrlAltTabPopup.prototype = { _init : function() { this.actor = new Shell.GenericContainer({ name: 'ctrlAltTabPopup', reactive: true }); @@ -303,7 +299,7 @@ CtrlAltTabPopup.prototype = { this._selection = num; this._switcher.highlight(num); } -}; +}); const CtrlAltTabSwitcher = new Lang.Class({ Name: 'CtrlAltTabSwitcher', diff --git a/js/ui/dash.js b/js/ui/dash.js index 0ddec795b..97fa33acb 100644 --- a/js/ui/dash.js +++ b/js/ui/dash.js @@ -226,11 +226,9 @@ const DragPlaceholderItem = new Lang.Class({ } }); -function Dash() { - this._init(); -} +const Dash = new Lang.Class({ + Name: 'Dash', -Dash.prototype = { _init : function() { this._maxHeight = -1; this.iconSize = 64; @@ -752,6 +750,6 @@ Dash.prototype = { return true; } -}; +}); Signals.addSignalMethods(Dash.prototype); diff --git a/js/ui/dnd.js b/js/ui/dnd.js index 3c762f284..cb8b91394 100644 --- a/js/ui/dnd.js +++ b/js/ui/dnd.js @@ -69,11 +69,9 @@ function removeDragMonitor(monitor) { } } -function _Draggable(actor, params) { - this._init(actor, params); -} +const _Draggable = new Lang.Class({ + Name: 'Draggable', -_Draggable.prototype = { _init : function(actor, params) { params = Params.parse(params, { manualMode: false, restoreOnSuccess: false, @@ -596,7 +594,7 @@ _Draggable.prototype = { this._dragActor = undefined; currentDraggable = null; } -}; +}); Signals.addSignalMethods(_Draggable.prototype); diff --git a/js/ui/endSessionDialog.js b/js/ui/endSessionDialog.js index 947524a76..d21d155cb 100644 --- a/js/ui/endSessionDialog.js +++ b/js/ui/endSessionDialog.js @@ -142,11 +142,9 @@ function findAppFromInhibitor(inhibitor) { return app; } -function ListItem(app, reason) { - this._init(app, reason); -} +const ListItem = new Lang.Class({ + Name: 'ListItem', -ListItem.prototype = { _init: function(app, reason) { this._app = app; this._reason = reason; @@ -192,7 +190,7 @@ ListItem.prototype = { this.emit('activate'); this._app.activate(); } -}; +}); Signals.addSignalMethods(ListItem.prototype); // The logout timer only shows updates every 10 seconds diff --git a/js/ui/iconGrid.js b/js/ui/iconGrid.js index f266577c6..1b9c90512 100644 --- a/js/ui/iconGrid.js +++ b/js/ui/iconGrid.js @@ -149,11 +149,9 @@ const BaseIcon = new Lang.Class({ } }); -function IconGrid(params) { - this._init(params); -} +const IconGrid = new Lang.Class({ + Name: 'IconGrid', -IconGrid.prototype = { _init: function(params) { params = Params.parse(params, { rowLimit: null, columnLimit: null, @@ -322,4 +320,4 @@ IconGrid.prototype = { visibleItemsCount: function() { return this._grid.get_children().length - this._grid.get_n_skip_paint(); } -}; +}); diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js index a427f17ba..c7f2b0ea1 100644 --- a/js/ui/keyboard.js +++ b/js/ui/keyboard.js @@ -61,11 +61,9 @@ const CaribouKeyboardIface = ; -function Key() { - this._init.apply(this, arguments); -} +const Key = new Lang.Class({ + Name: 'Key', -Key.prototype = { _init : function(key) { this._key = key; @@ -191,13 +189,12 @@ Key.prototype = { this._boxPointer.hide(true); } } -}; +}); -function Keyboard() { - this._init.apply(this, arguments); -} +const Keyboard = new Lang.Class({ + // HACK: we can't set Name, because it collides with Name dbus property + // Name: 'Keyboard', -Keyboard.prototype = { _init: function () { this._impl = Gio.DBusExportedObject.wrapJSObject(CaribouKeyboardIface, this); this._impl.export(Gio.DBus.session, '/org/gnome/Caribou/Keyboard'); @@ -532,7 +529,7 @@ Keyboard.prototype = { get Name() { return 'gnome-shell'; } -}; +}); const KeyboardSource = new Lang.Class({ Name: 'KeyboardSource', diff --git a/js/ui/layout.js b/js/ui/layout.js index e4fcb6247..c99c94177 100644 --- a/js/ui/layout.js +++ b/js/ui/layout.js @@ -17,11 +17,9 @@ const HOT_CORNER_ACTIVATION_TIMEOUT = 0.5; const STARTUP_ANIMATION_TIME = 0.2; const KEYBOARD_ANIMATION_TIME = 0.5; -function LayoutManager() { - this._init.apply(this, arguments); -} +const LayoutManager = new Lang.Class({ + Name: 'LayoutManager', -LayoutManager.prototype = { _init: function () { this._rtl = (St.Widget.get_default_direction() == St.TextDirection.RTL); this.monitors = []; @@ -374,7 +372,7 @@ LayoutManager.prototype = { findMonitorForActor: function(actor) { return this._chrome.findMonitorForActor(actor); } -}; +}); Signals.addSignalMethods(LayoutManager.prototype); @@ -382,11 +380,9 @@ Signals.addSignalMethods(LayoutManager.prototype); // // This class manages a "hot corner" that can toggle switching to // overview. -function HotCorner() { - this._init(); -} +const HotCorner = new Lang.Class({ + Name: 'HotCorner', -HotCorner.prototype = { _init : function() { // We use this flag to mark the case where the user has entered the // hot corner and has not left both the hot corner and a surrounding @@ -548,7 +544,7 @@ HotCorner.prototype = { return true; return false; } -}; +}); // This manages the shell "chrome"; the UI that's visible in the @@ -561,11 +557,9 @@ const defaultParams = { affectsInputRegion: true }; -function Chrome() { - this._init.apply(this, arguments); -} +const Chrome = new Lang.Class({ + Name: 'Chrome', -Chrome.prototype = { _init: function(layoutManager) { this._layoutManager = layoutManager; @@ -981,4 +975,4 @@ Chrome.prototype = { return false; } -}; +}); diff --git a/js/ui/lightbox.js b/js/ui/lightbox.js index 58bce89d4..f8c84627f 100644 --- a/js/ui/lightbox.js +++ b/js/ui/lightbox.js @@ -30,11 +30,9 @@ const Tweener = imports.ui.tweener; * @container and will track any changes in its size. You can override * this by passing an explicit width and height in @params. */ -function Lightbox(container, params) { - this._init(container, params); -} +const Lightbox = new Lang.Class({ + Name: 'Lightbox', -Lightbox.prototype = { _init : function(container, params) { params = Params.parse(params, { inhibitEvents: false, width: null, @@ -196,4 +194,4 @@ Lightbox.prototype = { this.highlight(null); } -}; +}); diff --git a/js/ui/lookingGlass.js b/js/ui/lookingGlass.js index 109174d5c..c7fb4c344 100644 --- a/js/ui/lookingGlass.js +++ b/js/ui/lookingGlass.js @@ -55,11 +55,9 @@ function _getAutoCompleteGlobalKeywords() { return keywords.concat(windowProperties).concat(headerProperties); } -function AutoComplete(entry) { - this._init(entry); -} +const AutoComplete = new Lang.Class({ + Name: 'AutoComplete', -AutoComplete.prototype = { _init: function(entry) { this._entry = entry; this._entry.connect('key-press-event', Lang.bind(this, this._entryKeyPressEvent)); @@ -118,15 +116,13 @@ AutoComplete.prototype = { this._entry.clutter_text.insert_text(additionalCompletionText, cursorPos); } -}; +}); Signals.addSignalMethods(AutoComplete.prototype); -function Notebook() { - this._init(); -} +const Notebook = new Lang.Class({ + Name: 'Notebook', -Notebook.prototype = { _init: function() { this.actor = new St.BoxLayout({ vertical: true }); @@ -250,7 +246,7 @@ Notebook.prototype = { this.selectIndex(prevIndex); } -}; +}); Signals.addSignalMethods(Notebook.prototype); function objectToString(o) { @@ -285,11 +281,9 @@ const ObjLink = new Lang.Class({ } }); -function Result(command, o, index) { - this._init(command, o, index); -} +const Result = new Lang.Class({ + Name: 'Result', -Result.prototype = { _init : function(command, o, index) { this.index = index; this.o = o; @@ -311,13 +305,11 @@ Result.prototype = { padBin.add_actor(line); this.actor.add(padBin); } -}; +}); -function WindowList() { - this._init(); -} +const WindowList = new Lang.Class({ + Name: 'WindowList', -WindowList.prototype = { _init : function () { this.actor = new St.BoxLayout({ name: 'Windows', vertical: true, style: 'spacing: 8px' }); let tracker = Shell.WindowTracker.get_default(); @@ -358,14 +350,12 @@ WindowList.prototype = { } } } -}; +}); Signals.addSignalMethods(WindowList.prototype); -function ObjInspector() { - this._init(); -} +const ObjInspector = new Lang.Class({ + Name: 'ObjInspector', -ObjInspector.prototype = { _init : function () { this._obj = null; this._previousObj = null; @@ -465,7 +455,7 @@ ObjInspector.prototype = { _onBack: function() { this.selectObject(this._previousObj, true); } -}; +}); function addBorderPaintHook(actor) { let signalId = actor.connect_after('paint', @@ -491,11 +481,9 @@ function addBorderPaintHook(actor) { return signalId; } -function Inspector() { - this._init(); -} +const Inspector = new Lang.Class({ + Name: 'Inspector', -Inspector.prototype = { _init: function() { let container = new Shell.GenericContainer({ width: 0, height: 0 }); @@ -634,15 +622,13 @@ Inspector.prototype = { this._borderPaintId = addBorderPaintHook(this._target); } } -}; +}); Signals.addSignalMethods(Inspector.prototype); -function ErrorLog() { - this._init(); -} +const ErrorLog = new Lang.Class({ + Name: 'ErrorLog', -ErrorLog.prototype = { _init: function() { this.actor = new St.BoxLayout(); this.text = new St.Label(); @@ -677,13 +663,11 @@ ErrorLog.prototype = { } this.text.text = text; } -}; +}); -function Memory() { - this._init(); -} +const Memory = new Lang.Class({ + Name: 'Memory', -Memory.prototype = { _init: function() { this.actor = new St.BoxLayout({ vertical: true }); this._glibc_uordblks = new St.Label(); @@ -728,13 +712,11 @@ Memory.prototype = { this._gjs_closure.text = 'gjs_closure: ' + memInfo.gjs_closure; this._last_gc_seconds_ago.text = 'last_gc_seconds_ago: ' + memInfo.last_gc_seconds_ago; } -}; +}); -function Extensions() { - this._init(); -} +const Extensions = new Lang.Class({ + Name: 'Extensions', -Extensions.prototype = { _init: function() { this.actor = new St.BoxLayout({ vertical: true, name: 'lookingGlassExtensions' }); @@ -864,13 +846,11 @@ Extensions.prototype = { return box; } -}; +}); -function LookingGlass() { - this._init(); -} +const LookingGlass = new Lang.Class({ + Name: 'LookingGlass', -LookingGlass.prototype = { _init : function() { this._borderPaintTarget = null; this._borderPaintId = 0; @@ -1227,5 +1207,5 @@ LookingGlass.prototype = { }) }); } -}; +}); Signals.addSignalMethods(LookingGlass.prototype); diff --git a/js/ui/magnifier.js b/js/ui/magnifier.js index c42c1462a..daa02a70f 100644 --- a/js/ui/magnifier.js +++ b/js/ui/magnifier.js @@ -36,11 +36,9 @@ const CROSS_HAIRS_CLIP_KEY = 'cross-hairs-clip'; let magDBusService = null; -function Magnifier() { - this._init(); -} +const Magnifier = new Lang.Class({ + Name: 'Magnifier', -Magnifier.prototype = { _init: function() { // Magnifier is a manager of ZoomRegions. this._zoomRegions = []; @@ -543,14 +541,12 @@ Magnifier.prototype = { ); } } -}; +}); Signals.addSignalMethods(Magnifier.prototype); -function ZoomRegion(magnifier, mouseSourceActor) { - this._init(magnifier, mouseSourceActor); -} +const ZoomRegion = new Lang.Class({ + Name: 'ZoomRegion', -ZoomRegion.prototype = { _init: function(magnifier, mouseSourceActor) { this._magnifier = magnifier; @@ -1150,13 +1146,11 @@ ZoomRegion.prototype = { yMagMouse - groupHeight / 2); } } -}; +}); -function Crosshairs() { - this._init(); -} +const Crosshairs = new Lang.Class({ + Name: 'Crosshairs', -Crosshairs.prototype = { _init: function() { // Set the group containing the crosshairs to three times the desktop @@ -1412,4 +1406,4 @@ Crosshairs.prototype = { this._vertTopHair.set_position((groupWidth - thickness) / 2, top); this._vertBottomHair.set_position((groupWidth - thickness) / 2, bottom); } -}; +}); diff --git a/js/ui/magnifierDBus.js b/js/ui/magnifierDBus.js index 0fdf04b45..8204e72e3 100644 --- a/js/ui/magnifierDBus.js +++ b/js/ui/magnifierDBus.js @@ -1,6 +1,7 @@ // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- const Gio = imports.gi.Gio; +const Lang = imports.lang; const Main = imports.ui.main; const MAG_SERVICE_NAME = 'org.gnome.Magnifier'; @@ -95,11 +96,9 @@ const ZoomRegionIface = // '/org/gnome/Magnifier/ZoomRegion/zoomer1', etc. let _zoomRegionInstanceCount = 0; -function ShellMagnifier() { - this._init(); -} +const ShellMagnifier = new Lang.Class({ + Name: 'ShellMagnifier', -ShellMagnifier.prototype = { _init: function() { this._zoomers = {}; @@ -325,7 +324,7 @@ ShellMagnifier.prototype = { // Drop the leading '#'. return parseInt(colorString.slice(1), 16); } -}; +}); /** * ShellMagnifierZoomRegion: @@ -333,11 +332,9 @@ ShellMagnifier.prototype = { * @zoomerObjectPath: String that is the path to a DBus ZoomRegion. * @zoomRegion: The actual zoom region associated with the object path. */ -function ShellMagnifierZoomRegion(zoomerObjectPath, zoomRegion) { - this._init(zoomerObjectPath, zoomRegion); -} +const ShellMagnifierZoomRegion = new Lang.Class({ + Name: 'ShellMagnifierZoomRegion', -ShellMagnifierZoomRegion.prototype = { _init: function(zoomerObjectPath, zoomRegion) { this._zoomRegion = zoomRegion; @@ -422,4 +419,4 @@ ShellMagnifierZoomRegion.prototype = { destroy: function() { this._dbusImpl.unexport(); } -}; +}); diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js index e995fc586..79dbe3d98 100644 --- a/js/ui/messageTray.js +++ b/js/ui/messageTray.js @@ -83,11 +83,9 @@ function _fixMarkup(text, allowMarkup) { return GLib.markup_escape_text(text, -1); } -function URLHighlighter(text, lineWrap, allowMarkup) { - this._init(text, lineWrap, allowMarkup); -} +const URLHighlighter = new Lang.Class({ + Name: 'URLHighlighter', -URLHighlighter.prototype = { _init: function(text, lineWrap, allowMarkup) { if (!text) text = ''; @@ -211,13 +209,11 @@ URLHighlighter.prototype = { } return -1; } -}; +}); -function FocusGrabber() { - this._init(); -} +const FocusGrabber = new Lang.Class({ + Name: 'FocusGrabber', -FocusGrabber.prototype = { _init: function() { this.actor = null; @@ -351,7 +347,7 @@ FocusGrabber.prototype = { this._togglingFocusGrabMode = false; } } -} +}); Signals.addSignalMethods(FocusGrabber.prototype); // Notification: @@ -1141,11 +1137,9 @@ const Source = new Lang.Class({ }); Signals.addSignalMethods(Source.prototype); -function SummaryItem(source) { - this._init(source); -} +const SummaryItem = new Lang.Class({ + Name: 'SummaryItem', -SummaryItem.prototype = { _init: function(source) { this.source = source; this.source.connect('notification-added', Lang.bind(this, this._notificationAddedToSource)); @@ -1336,14 +1330,12 @@ SummaryItem.prototype = { if (this.notificationStack.get_children().length > 0) this.notificationStack.get_children()[0]._delegate.setIconVisible(true); } -}; +}); Signals.addSignalMethods(SummaryItem.prototype); -function MessageTray() { - this._init(); -} +const MessageTray = new Lang.Class({ + Name: 'MessageTray', -MessageTray.prototype = { _init: function() { this._presence = new GnomeSession.Presence(Lang.bind(this, function(proxy, error) { this._onStatusChanged(proxy.status); @@ -2422,7 +2414,7 @@ MessageTray.prototype = { if (this._clickedSummaryItem) this._updateState(); } -}; +}); const SystemNotificationSource = new Lang.Class({ Name: 'SystemNotificationSource', diff --git a/js/ui/networkAgent.js b/js/ui/networkAgent.js index 276f1403c..48337dd5e 100644 --- a/js/ui/networkAgent.js +++ b/js/ui/networkAgent.js @@ -357,11 +357,9 @@ const NetworkSecretDialog = new Lang.Class({ } }); -function NetworkAgent() { - this._init.apply(this, arguments); -} +const NetworkAgent = new Lang.Class({ + Name: 'NetworkAgent', -NetworkAgent.prototype = { _init: function() { this._native = new Shell.NetworkAgent({ auto_register: true, identifier: 'org.gnome.Shell.NetworkAgent' }); @@ -384,4 +382,4 @@ NetworkAgent.prototype = { this._dialogs[requestId].close(global.get_current_time()); this._dialogs[requestId].destroy(); } -}; +}); diff --git a/js/ui/notificationDaemon.js b/js/ui/notificationDaemon.js index 6a8ee4ad5..52169ce0b 100644 --- a/js/ui/notificationDaemon.js +++ b/js/ui/notificationDaemon.js @@ -87,11 +87,9 @@ const rewriteRules = { ] }; -function NotificationDaemon() { - this._init(); -} +const NotificationDaemon = new Lang.Class({ + Name: 'NotificationDaemon', -NotificationDaemon.prototype = { _init: function() { this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(NotificationDaemonIface, this); this._dbusImpl.export(Gio.DBus.session, '/org/freedesktop/Notifications'); @@ -474,7 +472,7 @@ NotificationDaemon.prototype = { if (source) source.destroy(); } -}; +}); const Source = new Lang.Class({ Name: 'NotificationDaemonSource', diff --git a/js/ui/overview.js b/js/ui/overview.js index 567775cfb..1f66d7531 100644 --- a/js/ui/overview.js +++ b/js/ui/overview.js @@ -46,11 +46,9 @@ const SwipeScrollResult = { CLICK: 2 }; -function ShellInfo() { - this._init(); -} +const ShellInfo = new Lang.Class({ + Name: 'ShellInfo', -ShellInfo.prototype = { _init: function() { this._source = null; this._undoCallback = null; @@ -95,13 +93,11 @@ ShellInfo.prototype = { this._source.notify(notification); } -}; +}); -function Overview() { - this._init.apply(this, arguments); -} +const Overview = new Lang.Class({ + Name: 'Overview', -Overview.prototype = { _init : function(params) { params = Params.parse(params, { isDummy: false }); @@ -811,5 +807,5 @@ Overview.prototype = { this._needsFakePointerEvent = false; } } -}; +}); Signals.addSignalMethods(Overview.prototype); diff --git a/js/ui/panel.js b/js/ui/panel.js index db5377611..a9344bc76 100644 --- a/js/ui/panel.js +++ b/js/ui/panel.js @@ -98,11 +98,9 @@ function _unpremultiply(color) { }; -function AnimatedIcon(name, size) { - this._init(name, size); -} +const AnimatedIcon = new Lang.Class({ + Name: 'AnimatedIcon', -AnimatedIcon.prototype = { _init: function(name, size) { this.actor = new St.Bin({ visible: false }); this.actor.connect('destroy', Lang.bind(this, this._onDestroy)); @@ -139,13 +137,11 @@ AnimatedIcon.prototype = { if (this._timeoutId) Mainloop.source_remove(this._timeoutId); } -}; +}); -function TextShadower() { - this._init(); -} +const TextShadower = new Lang.Class({ + Name: 'TextShadower', -TextShadower.prototype = { _init: function() { this.actor = new Shell.GenericContainer(); this.actor.connect('get-preferred-width', Lang.bind(this, this._getPreferredWidth)); @@ -225,7 +221,7 @@ TextShadower.prototype = { child.allocate(childBox, flags); } } -}; +}); /** * AppMenuButton: @@ -692,13 +688,11 @@ const ActivitiesButton = new Lang.Class({ Mainloop.source_remove(this._xdndTimeOut); this._xdndTimeOut = 0; } -}) +}); -function PanelCorner(panel, side) { - this._init(panel, side); -} +const PanelCorner = new Lang.Class({ + Name: 'PanelCorner', -PanelCorner.prototype = { _init: function(box, side) { this._side = side; @@ -874,14 +868,12 @@ PanelCorner.prototype = { this.actor.set_size(cornerRadius, innerBorderWidth + cornerRadius); this.actor.set_anchor_point(0, innerBorderWidth); } -}; +}); -function Panel() { - this._init(); -} +const Panel = new Lang.Class({ + Name: 'Panel', -Panel.prototype = { _init : function() { this.actor = new Shell.GenericContainer({ name: 'panel', reactive: true }); @@ -1108,5 +1100,4 @@ Panel.prototype = { if (box && box._delegate instanceof PanelMenu.ButtonBox) box.destroy(); }, - -}; +}); diff --git a/js/ui/placeDisplay.js b/js/ui/placeDisplay.js index e8cec7164..9241ebf56 100644 --- a/js/ui/placeDisplay.js +++ b/js/ui/placeDisplay.js @@ -120,11 +120,9 @@ const PlaceDeviceInfo = new Lang.Class({ } }); -function PlacesManager() { - this._init(); -} +const PlacesManager = new Lang.Class({ + Name: 'PlacesManager', -PlacesManager.prototype = { _init: function() { this._defaultPlaces = []; this._mounts = []; @@ -355,7 +353,7 @@ PlacesManager.prototype = { _removeById: function(sourceArray, id) { sourceArray.splice(this._lookupIndexById(sourceArray, id), 1); } -}; +}); Signals.addSignalMethods(PlacesManager.prototype); const PlaceSearchProvider = new Lang.Class({ diff --git a/js/ui/polkitAuthenticationAgent.js b/js/ui/polkitAuthenticationAgent.js index 7fe03105b..ff2d35c08 100644 --- a/js/ui/polkitAuthenticationAgent.js +++ b/js/ui/polkitAuthenticationAgent.js @@ -335,11 +335,9 @@ const AuthenticationDialog = new Lang.Class({ }); Signals.addSignalMethods(AuthenticationDialog.prototype); -function AuthenticationAgent() { - this._init(); -} +const AuthenticationAgent = new Lang.Class({ + Name: 'AuthenticationAgent', -AuthenticationAgent.prototype = { _init: function() { this._native = new Shell.PolkitAuthenticationAgent(); this._native.connect('initiate', Lang.bind(this, this._onInitiate)); @@ -400,7 +398,7 @@ AuthenticationAgent.prototype = { this._reallyCompleteRequest(wasDismissed); } } -} +}); function init() { let agent = new AuthenticationAgent(); diff --git a/js/ui/popupMenu.js b/js/ui/popupMenu.js index a8d3384f6..5652fc4ac 100644 --- a/js/ui/popupMenu.js +++ b/js/ui/popupMenu.js @@ -771,7 +771,7 @@ const PopupSwitchMenuItem = new Lang.Class({ this.toggle(); } - PopupBaseMenuItem.prototype.activate.call(this, event); + this.parent(event); }, toggle: function() { diff --git a/js/ui/runDialog.js b/js/ui/runDialog.js index eed476684..69a0c26c8 100644 --- a/js/ui/runDialog.js +++ b/js/ui/runDialog.js @@ -30,11 +30,9 @@ const EXEC_ARG_KEY = 'exec-arg'; const DIALOG_GROW_TIME = 0.1; -function CommandCompleter() { - this._init(); -} +const CommandCompleter = new Lang.Class({ + Name: 'CommandCompleter', -CommandCompleter.prototype = { _init : function() { this._changedCount = 0; this._paths = GLib.getenv('PATH').split(':'); @@ -162,7 +160,7 @@ CommandCompleter.prototype = { return common.substr(text.length); return common; } -}; +}); const RunDialog = new Lang.Class({ Name: 'RunDialog', diff --git a/js/ui/search.js b/js/ui/search.js index 12a12e59d..52cd7a86a 100644 --- a/js/ui/search.js +++ b/js/ui/search.js @@ -242,11 +242,9 @@ const SearchProvider = new Lang.Class({ }); Signals.addSignalMethods(SearchProvider.prototype); -function OpenSearchSystem() { - this._init(); -} +const OpenSearchSystem = new Lang.Class({ + Name: 'OpenSearchSystem', -OpenSearchSystem.prototype = { _init: function() { this._providers = []; global.settings.connect('changed::' + DISABLED_OPEN_SEARCH_PROVIDERS_KEY, Lang.bind(this, this._refresh)); @@ -334,14 +332,12 @@ OpenSearchSystem.prototype = { } })); } -} +}); Signals.addSignalMethods(OpenSearchSystem.prototype); -function SearchSystem() { - this._init(); -} +const SearchSystem = new Lang.Class({ + Name: 'SearchSystem', -SearchSystem.prototype = { _init: function() { this._providers = []; this.reset(); @@ -429,5 +425,5 @@ SearchSystem.prototype = { this._previousResults = results; this.emit('search-completed', results); }, -}; +}); Signals.addSignalMethods(SearchSystem.prototype); diff --git a/js/ui/searchDisplay.js b/js/ui/searchDisplay.js index bd551e150..57478b76f 100644 --- a/js/ui/searchDisplay.js +++ b/js/ui/searchDisplay.js @@ -15,11 +15,9 @@ const Search = imports.ui.search; const MAX_SEARCH_RESULTS_ROWS = 1; -function SearchResult(provider, metaInfo, terms) { - this._init(provider, metaInfo, terms); -} +const SearchResult = new Lang.Class({ + Name: 'SearchResult', -SearchResult.prototype = { _init: function(provider, metaInfo, terms) { this.provider = provider; this.metaInfo = metaInfo; @@ -97,7 +95,7 @@ SearchResult.prototype = { else this.provider.activateResult(this.metaInfo.id, params); } -}; +}); const GridSearchResults = new Lang.Class({ @@ -179,11 +177,9 @@ const GridSearchResults = new Lang.Class({ } }); -function SearchResults(searchSystem, openSearchSystem) { - this._init(searchSystem, openSearchSystem); -} +const SearchResults = new Lang.Class({ + Name: 'SearchResults', -SearchResults.prototype = { _init: function(searchSystem, openSearchSystem) { this._searchSystem = searchSystem; this._searchSystem.connect('search-updated', Lang.bind(this, this._updateCurrentResults)); @@ -483,4 +479,4 @@ SearchResults.prototype = { resultDisplay.activateSelected(); Main.overview.hide(); } -}; +}); diff --git a/js/ui/shellDBus.js b/js/ui/shellDBus.js index 6a0a82731..9dd8bccef 100644 --- a/js/ui/shellDBus.js +++ b/js/ui/shellDBus.js @@ -66,11 +66,9 @@ const GnomeShellIface = ; -function GnomeShell() { - this._init(); -} +const GnomeShell = new Lang.Class({ + Name: 'GnomeShellDBus', -GnomeShell.prototype = { _init: function() { this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(GnomeShellIface, this); this._dbusImpl.export(Gio.DBus.session, '/org/gnome/Shell'); @@ -230,4 +228,4 @@ GnomeShell.prototype = { this._dbusImpl.emit_signal('ExtensionStatusChanged', GLib.Variant.new('(sis)', [newState.uuid, newState.state, newState.error])); } -}; +}); diff --git a/js/ui/shellMountOperation.js b/js/ui/shellMountOperation.js index ba5f45e41..0fd149e3c 100644 --- a/js/ui/shellMountOperation.js +++ b/js/ui/shellMountOperation.js @@ -50,11 +50,9 @@ function _setLabelsForMessage(dialog, message) { /* -------------------------------------------------------- */ -function ListItem(app) { - this._init(app); -} +const ListItem = new Lang.Class({ + Name: 'ListItem', -ListItem.prototype = { _init: function(app) { this._app = app; @@ -86,14 +84,12 @@ ListItem.prototype = { this.emit('activate'); this._app.activate(); } -}; +}); Signals.addSignalMethods(ListItem.prototype); -function ShellMountOperation(source, params) { - this._init(source, params); -} +const ShellMountOperation = new Lang.Class({ + Name: 'ShellMountOperation', -ShellMountOperation.prototype = { _init: function(source, params) { params = Params.parse(params, { reaskPassword: false }); @@ -190,7 +186,7 @@ ShellMountOperation.prototype = { this._processesDialog.update(message, processes, choices); }, -} +}); const ShellMountQuestionDialog = new Lang.Class({ Name: 'ShellMountQuestionDialog', diff --git a/js/ui/status/bluetooth.js b/js/ui/status/bluetooth.js index 7efa2e227..b95c8e3a3 100644 --- a/js/ui/status/bluetooth.js +++ b/js/ui/status/bluetooth.js @@ -353,7 +353,7 @@ const Source = new Lang.Class({ } })); - MessageTray.Source.prototype.notify.call(this, notification); + this.parent(notification); }, createNotificationIcon: function() { @@ -485,7 +485,7 @@ const PinNotification = new Lang.Class({ }, grabFocus: function(lockTray) { - MessageTray.Notification.prototype.grabFocus.call(this, lockTray); + this.parent(lockTray); global.stage.set_key_focus(this._entry); } }); diff --git a/js/ui/statusIconDispatcher.js b/js/ui/statusIconDispatcher.js index 33bd47bb7..d168d6d81 100644 --- a/js/ui/statusIconDispatcher.js +++ b/js/ui/statusIconDispatcher.js @@ -23,11 +23,9 @@ const STANDARD_TRAY_ICON_IMPLEMENTATIONS = { 'ibus-ui-gtk': 'input-method' }; -function StatusIconDispatcher() { - this._init(); -} +const StatusIconDispatcher = new Lang.Class({ + Name: 'StatusIconDispatcher', -StatusIconDispatcher.prototype = { _init: function() { this._traymanager = new Shell.TrayManager(); this._traymanager.connect('tray-icon-added', Lang.bind(this, this._onTrayIconAdded)); @@ -61,5 +59,5 @@ StatusIconDispatcher.prototype = { else this.emit('message-icon-removed', icon); } -}; +}); Signals.addSignalMethods(StatusIconDispatcher.prototype); diff --git a/js/ui/telepathyClient.js b/js/ui/telepathyClient.js index 6d717fcfa..08d6c8c44 100644 --- a/js/ui/telepathyClient.js +++ b/js/ui/telepathyClient.js @@ -72,11 +72,9 @@ function makeMessageFromTplEvent(event) { }; } -function Client() { - this._init(); -}; +const Client = new Lang.Class({ + Name: 'Client', -Client.prototype = { _init : function() { // channel path -> ChatSource this._chatSources = {}; @@ -479,7 +477,7 @@ Client.prototype = { return this._accountSource; } -}; +}); const ChatSource = new Lang.Class({ Name: 'ChatSource', @@ -694,7 +692,7 @@ const ChatSource = new Lang.Class({ }, notify: function() { - MessageTray.Source.prototype.notify.call(this, this._notification); + this.parent(this._notification); }, respond: function(text) { @@ -1113,7 +1111,7 @@ const ApproverSource = new Lang.Class({ this._invalidId = 0; } - MessageTray.Source.prototype.destroy.call(this); + this.parent(); }, createNotificationIcon: function() { diff --git a/js/ui/tweener.js b/js/ui/tweener.js index d68d66607..7d98a65b3 100644 --- a/js/ui/tweener.js +++ b/js/ui/tweener.js @@ -202,11 +202,9 @@ function registerSpecialPropertySplitter(name, splitFunction, parameters) { // time updates; even better is to pay attention to the vertical // vblank and sync to that when possible.) // -function ClutterFrameTicker() { - this._init(); -} +const ClutterFrameTicker = new Lang.Class({ + Name: 'ClutterFrameTicker', -ClutterFrameTicker.prototype = { FRAME_RATE : 60, _init : function() { @@ -261,6 +259,6 @@ ClutterFrameTicker.prototype = { this._startTime = -1; global.end_work(); } -}; +}); Signals.addSignalMethods(ClutterFrameTicker.prototype); diff --git a/js/ui/viewSelector.js b/js/ui/viewSelector.js index dd70ca308..f7bf491c2 100644 --- a/js/ui/viewSelector.js +++ b/js/ui/viewSelector.js @@ -301,11 +301,9 @@ const SearchTab = new Lang.Class({ }); -function ViewSelector() { - this._init(); -} +const ViewSelector = new Lang.Class({ + Name: 'ViewSelector', -ViewSelector.prototype = { _init : function() { this.actor = new St.BoxLayout({ name: 'viewSelector', vertical: true }); @@ -565,5 +563,5 @@ ViewSelector.prototype = { removeSearchProvider: function(provider) { this._searchTab.removeSearchProvider(provider); } -}; +}); Signals.addSignalMethods(ViewSelector.prototype); diff --git a/js/ui/windowAttentionHandler.js b/js/ui/windowAttentionHandler.js index af31bdd1c..3c946ad2b 100644 --- a/js/ui/windowAttentionHandler.js +++ b/js/ui/windowAttentionHandler.js @@ -6,11 +6,9 @@ const Shell = imports.gi.Shell; const Main = imports.ui.main; const MessageTray = imports.ui.messageTray; -function WindowAttentionHandler() { - this._init(); -} +const WindowAttentionHandler = new Lang.Class({ + Name: 'WindowAttentionHandler', -WindowAttentionHandler.prototype = { _init : function() { this._tracker = Shell.WindowTracker.get_default(); global.display.connect('window-demands-attention', Lang.bind(this, this._onWindowDemandsAttention)); @@ -43,7 +41,7 @@ WindowAttentionHandler.prototype = { notification.update(title, banner); }))); } -}; +}); const Source = new Lang.Class({ Name: 'WindowAttentionSource', diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js index 4343a2012..637d842ea 100644 --- a/js/ui/windowManager.js +++ b/js/ui/windowManager.js @@ -31,11 +31,9 @@ function getTopInvisibleBorder(metaWindow) { return outerRect.y - inputRect.y; } -function WindowDimmer(actor) { - this._init(actor); -} +const WindowDimmer = new Lang.Class({ + Name: 'WindowDimmer', -WindowDimmer.prototype = { _init: function(actor) { if (Clutter.feature_available(Clutter.FeatureFlags.SHADERS_GLSL)) { this._effect = new Clutter.ShaderEffect({ shader_type: Clutter.ShaderType.FRAGMENT_SHADER }); @@ -75,7 +73,7 @@ WindowDimmer.prototype = { }, _dimFraction: 0.0 -}; +}); function getWindowDimmer(actor) { if (!actor._windowDimmer) @@ -84,11 +82,9 @@ function getWindowDimmer(actor) { return actor._windowDimmer; } -function WindowManager() { - this._init(); -} +const WindowManager = new Lang.Class({ + Name: 'WindowManager', -WindowManager.prototype = { _init : function() { this._shellwm = global.window_manager; @@ -627,4 +623,4 @@ WindowManager.prototype = { if (!Main.overview.visible) this._workspaceSwitcherPopup.display(WorkspaceSwitcherPopup.DOWN, indexToActivate); } -}; +}); diff --git a/js/ui/workspace.js b/js/ui/workspace.js index 97b0893a7..d7b61dfec 100644 --- a/js/ui/workspace.js +++ b/js/ui/workspace.js @@ -56,11 +56,13 @@ function _clamp(value, min, max) { } -function ScaledPoint(x, y, scaleX, scaleY) { - [this.x, this.y, this.scaleX, this.scaleY] = arguments; -} +const ScaledPoint = new Lang.Class({ + Name: 'ScaledPoint', + + _init: function(x, y, scaleX, scaleY) { + [this.x, this.y, this.scaleX, this.scaleY] = arguments; + }, -ScaledPoint.prototype = { getPosition : function() { return [this.x, this.y]; }, @@ -86,14 +88,12 @@ ScaledPoint.prototype = { return [_interpolate(this.scaleX, other.scaleX, step), _interpolate(this.scaleY, other.scaleY, step)]; } -}; +}); -function WindowClone(realWindow) { - this._init(realWindow); -} +const WindowClone = new Lang.Class({ + Name: 'WindowClone', -WindowClone.prototype = { _init : function(realWindow) { this.realWindow = realWindow; this.metaWindow = realWindow.meta_window; @@ -418,7 +418,7 @@ WindowClone.prototype = { this.emit('drag-end'); } -}; +}); Signals.addSignalMethods(WindowClone.prototype); @@ -427,11 +427,9 @@ Signals.addSignalMethods(WindowClone.prototype); * @parentActor: The actor which will be the parent of all overlay items * such as app icon and window caption */ -function WindowOverlay(windowClone, parentActor) { - this._init(windowClone, parentActor); -} +const WindowOverlay = new Lang.Class({ + Name: 'WindowOverlay', -WindowOverlay.prototype = { _init : function(windowClone, parentActor) { let metaWindow = windowClone.metaWindow; @@ -642,7 +640,7 @@ WindowOverlay.prototype = { this._parentActor.queue_relayout(); } -}; +}); Signals.addSignalMethods(WindowOverlay.prototype); const WindowPositionFlags = { @@ -653,11 +651,9 @@ const WindowPositionFlags = { /** * @metaWorkspace: a #Meta.Workspace, or null */ -function Workspace(metaWorkspace, monitorIndex) { - this._init(metaWorkspace, monitorIndex); -} +const Workspace = new Lang.Class({ + Name: 'Workspace', -Workspace.prototype = { _init : function(metaWorkspace, monitorIndex) { // When dragging a window, we use this slot for reserve space. this._reservedSlot = null; @@ -1518,6 +1514,6 @@ Workspace.prototype = { return false; } -}; +}); Signals.addSignalMethods(Workspace.prototype); diff --git a/js/ui/workspaceSwitcherPopup.js b/js/ui/workspaceSwitcherPopup.js index a4883d459..58dd657a8 100644 --- a/js/ui/workspaceSwitcherPopup.js +++ b/js/ui/workspaceSwitcherPopup.js @@ -15,11 +15,9 @@ const DISPLAY_TIMEOUT = 600; const UP = -1; const DOWN = 1; -function WorkspaceSwitcherPopup() { - this._init(); -} +const WorkspaceSwitcherPopup = new Lang.Class({ + Name: 'WorkspaceSwitcherPopup', -WorkspaceSwitcherPopup.prototype = { _init : function() { this.actor = new St.Group({ reactive: true, x: 0, @@ -158,4 +156,4 @@ WorkspaceSwitcherPopup.prototype = { onCompleteScope: this }); } -}; +}); diff --git a/js/ui/workspaceThumbnail.js b/js/ui/workspaceThumbnail.js index 504d32bc3..33059900a 100644 --- a/js/ui/workspaceThumbnail.js +++ b/js/ui/workspaceThumbnail.js @@ -25,11 +25,9 @@ const SLIDE_ANIMATION_TIME = 0.2; // placeholder exactly. const WORKSPACE_CUT_SIZE = 10; -function WindowClone(realWindow) { - this._init(realWindow); -} +const WindowClone = new Lang.Class({ + Name: 'WindowClone', -WindowClone.prototype = { _init : function(realWindow) { this.actor = new Clutter.Clone({ source: realWindow.get_texture(), reactive: true }); @@ -126,7 +124,7 @@ WindowClone.prototype = { this.emit('drag-end'); } -}; +}); Signals.addSignalMethods(WindowClone.prototype); @@ -144,11 +142,9 @@ const ThumbnailState = { /** * @metaWorkspace: a #Meta.Workspace */ -function WorkspaceThumbnail(metaWorkspace) { - this._init(metaWorkspace); -} +const WorkspaceThumbnail = new Lang.Class({ + Name: 'WorkspaceThumbnail', -WorkspaceThumbnail.prototype = { _init : function(metaWorkspace) { this.metaWorkspace = metaWorkspace; this.monitorIndex = Main.layoutManager.primaryIndex; @@ -469,16 +465,14 @@ WorkspaceThumbnail.prototype = { return false; } -}; +}); Signals.addSignalMethods(WorkspaceThumbnail.prototype); -function ThumbnailsBox() { - this._init(); -} +const ThumbnailsBox = new Lang.Class({ + Name: 'ThumbnailsBox', -ThumbnailsBox.prototype = { _init: function() { this.actor = new Shell.GenericContainer({ style_class: 'workspace-thumbnails', request_mode: Clutter.RequestMode.WIDTH_FOR_HEIGHT }); @@ -1028,4 +1022,4 @@ ThumbnailsBox.prototype = { onCompleteScope: this }); } -}; +}); diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js index d99488539..fb45e217a 100644 --- a/js/ui/workspacesView.js +++ b/js/ui/workspacesView.js @@ -23,11 +23,9 @@ const MAX_WORKSPACES = 16; const CONTROLS_POP_IN_TIME = 0.1; -function WorkspacesView(workspaces) { - this._init(workspaces); -} +const WorkspacesView = new Lang.Class({ + Name: 'WorkspacesView', -WorkspacesView.prototype = { _init: function(workspaces) { this.actor = new St.Group({ style_class: 'workspaces-view' }); @@ -452,15 +450,13 @@ WorkspacesView.prototype = { _getWorkspaceIndexToRemove: function() { return global.screen.get_active_workspace_index(); } -}; +}); Signals.addSignalMethods(WorkspacesView.prototype); -function WorkspacesDisplay() { - this._init(); -} +const WorkspacesDisplay = new Lang.Class({ + Name: 'WorkspacesDisplay', -WorkspacesDisplay.prototype = { _init: function() { this.actor = new Shell.GenericContainer(); this.actor.connect('get-preferred-width', Lang.bind(this, this._getPreferredWidth)); @@ -852,5 +848,5 @@ WorkspacesDisplay.prototype = { break; } } -}; +}); Signals.addSignalMethods(WorkspacesDisplay.prototype); diff --git a/js/ui/xdndHandler.js b/js/ui/xdndHandler.js index 08f0b47f8..26f54322c 100644 --- a/js/ui/xdndHandler.js +++ b/js/ui/xdndHandler.js @@ -6,11 +6,9 @@ const Shell = imports.gi.Shell; const Signals = imports.signals; const DND = imports.ui.dnd; -function XdndHandler() { - this._init(); -} +const XdndHandler = new Lang.Class({ + Name: 'XdndHandler', -XdndHandler.prototype = { _init: function() { // Used to display a clone of the cursor window when the // window group is hidden (like it happens in the overview) @@ -125,6 +123,6 @@ XdndHandler.prototype = { pickedActor = pickedActor.get_parent(); } } -} +}); Signals.addSignalMethods(XdndHandler.prototype);