Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
Office
hamster-time-tracker
0114-replace-Lang.bind-with-function-.bind.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0114-replace-Lang.bind-with-function-.bind.patch of Package hamster-time-tracker
From 40d60553c99c7bafd36268039aa6a93c76c5cdc4 Mon Sep 17 00:00:00 2001 From: Martin Wilck <mwilck@suse.com> Date: Thu, 9 May 2019 22:35:44 +0200 Subject: [PATCH 114/130] replace Lang.bind() with $(function).bind() Code cleanup. Mostly gets rid of the Lang module. Don't use arrow functions just yet. --- extension/extension.js | 16 +++++++-------- extension/prefs.js | 7 +++---- extension/widgets/categoryTotalsWidget.js | 1 - extension/widgets/factsBox.js | 7 +++---- extension/widgets/ongoingFactEntry.js | 9 ++++---- extension/widgets/panelWidget.js | 25 +++++++++++------------ extension/widgets/todaysFactsWidget.js | 11 +++++----- 7 files changed, 35 insertions(+), 41 deletions(-) diff --git a/extension/extension.js b/extension/extension.js index 532f19b..3168827 100644 --- a/extension/extension.js +++ b/extension/extension.js @@ -120,16 +120,16 @@ function Controller(extensionMeta) { enable: function() { this.shouldEnable = true; new ApiProxy(Gio.DBus.session, 'org.gnome.Hamster', '/org/gnome/Hamster', - Lang.bind(this, function(proxy) { + function(proxy) { this.apiProxy = proxy; this.deferred_enable(); - })); + }.bind(this)); new WindowsProxy(Gio.DBus.session, "org.gnome.Hamster.WindowServer", "/org/gnome/Hamster/WindowServer", - Lang.bind(this, function(proxy) { + function(proxy) { this.windowsProxy = proxy; this.deferred_enable(); - })); + }.bind(this)); }, deferred_enable: function() { @@ -172,7 +172,7 @@ function Controller(extensionMeta) { Gio.BusNameWatcherFlags.NONE, windowsProxy_appeared_callback.bind(this), windowsProxy_vanished_callback.bind(this)); - this.apiProxy.connectSignal('ActivitiesChanged', Lang.bind(this, this.refreshActivities)); + this.apiProxy.connectSignal('ActivitiesChanged', this.refreshActivities.bind(this)); this.refreshActivities(); Main.panel.menuManager.addMenu(this.panelWidget.menu); @@ -181,7 +181,7 @@ function Controller(extensionMeta) { Meta.KeyBindingFlags.NONE, // Since Gnome 3.16, Shell.KeyBindingMode is replaced by Shell.ActionMode Shell.KeyBindingMode ? Shell.KeyBindingMode.ALL : Shell.ActionMode.ALL, - Lang.bind(this.panelWidget, this.panelWidget.toggle) + this.panelWidget.toggle.bind(this.panelWidget) ); }, @@ -212,11 +212,11 @@ function Controller(extensionMeta) { } this.runningActivitiesQuery = true; - controller.apiProxy.GetActivitiesRemote("", Lang.bind(this, function([response], err) { + controller.apiProxy.GetActivitiesRemote("", function([response], err) { controller.runningActivitiesQuery = false; controller.activities = response; global.log('ACTIVITIES HAMSTER: ', controller.activities); - })); + }.bind(this)); } getActivities(this); diff --git a/extension/prefs.js b/extension/prefs.js index 608034a..3555673 100644 --- a/extension/prefs.js +++ b/extension/prefs.js @@ -25,7 +25,6 @@ const Gdk = imports.gi.Gdk; const Gio = imports.gi.Gio; const Gtk = imports.gi.Gtk; const GObject = imports.gi.GObject; -const Lang = imports.lang; const ExtensionUtils = imports.misc.extensionUtils; @@ -64,7 +63,7 @@ class HamsterSettingsWidget extends Gtk.VBox { let placementComboRenderer = new Gtk.CellRendererText(); placementCombo.pack_start(placementComboRenderer, true); placementCombo.add_attribute(placementComboRenderer, 'text', 0); - placementCombo.connect('changed', Lang.bind(this, this._onPlacementChange)); + placementCombo.connect('changed', this._onPlacementChange.bind(this)); placementCombo.set_active(this._settings.get_int("panel-placement")); vbox.add(placementCombo); @@ -89,7 +88,7 @@ class HamsterSettingsWidget extends Gtk.VBox { let appearanceComboRenderer = new Gtk.CellRendererText(); appearanceCombo.pack_start(appearanceComboRenderer, true); appearanceCombo.add_attribute(appearanceComboRenderer, 'text', 0); - appearanceCombo.connect('changed', Lang.bind(this, this._onAppearanceChange)); + appearanceCombo.connect('changed', this._onAppearanceChange.bind(this)); appearanceCombo.set_active(this._settings.get_int("panel-appearance")); vbox.add(appearanceCombo); @@ -106,7 +105,7 @@ class HamsterSettingsWidget extends Gtk.VBox { margin_top: 5, text: this._settings.get_strv("show-hamster-dropdown")[0]}); vbox.add(entry); - entry.connect('changed', Lang.bind(this, this._onHotkeyChange)); + entry.connect('changed', this._onHotkeyChange.bind(this)); vbox.add(new Gtk.Label({label: "Reload gnome shell after updating prefs (alt+f2 > r)", margin_top: 70})); diff --git a/extension/widgets/categoryTotalsWidget.js b/extension/widgets/categoryTotalsWidget.js index 17af747..88f9b96 100644 --- a/extension/widgets/categoryTotalsWidget.js +++ b/extension/widgets/categoryTotalsWidget.js @@ -21,7 +21,6 @@ Copyright (c) 2016 - 2018 Eric Goller / projecthamster <elbenfreund@projecthamst */ -const Lang = imports.lang; const St = imports.gi.St; const Clutter = imports.gi.Clutter; const GLib = imports.gi.GLib; diff --git a/extension/widgets/factsBox.js b/extension/widgets/factsBox.js index aa5a336..5deb703 100644 --- a/extension/widgets/factsBox.js +++ b/extension/widgets/factsBox.js @@ -21,7 +21,6 @@ Copyright (c) 2016 - 2018 Eric Goller / projecthamster <elbenfreund@projecthamst */ -const Lang = imports.lang; const St = imports.gi.St; const PopupMenu = imports.ui.popupMenu; const Clutter = imports.gi.Clutter; @@ -62,7 +61,7 @@ class FactsBox extends PopupMenu.PopupBaseMenuItem { main_box.add(_ongoingFactLabel); this.ongoingFactEntry = new OngoingFactEntry(this._controller); - //this.ongoingFactEntry.clutter_text.connect('key-release-event', Lang.bind(this, this._onKeyReleaseEvent)); + //this.ongoingFactEntry.clutter_text.connect('key-release-event', this._onKeyReleaseEvent.bind(this)); main_box.add(this.ongoingFactEntry); let fact_list_label = new St.Label({style_class: 'hamster-box-label'}); @@ -95,10 +94,10 @@ class FactsBox extends PopupMenu.PopupBaseMenuItem { * Focus the fact entry and make sure todaysFactsWidget are scrolled to the bottom. */ focus() { - Mainloop.timeout_add(20, Lang.bind(this, function() { + Mainloop.timeout_add(20, function() { this._scrollAdjustment.value = this._scrollAdjustment.upper; global.stage.set_key_focus(this.ongoingFactEntry); - })); + }.bind(this)); } /** diff --git a/extension/widgets/ongoingFactEntry.js b/extension/widgets/ongoingFactEntry.js index b90238e..688aa6b 100644 --- a/extension/widgets/ongoingFactEntry.js +++ b/extension/widgets/ongoingFactEntry.js @@ -21,7 +21,6 @@ Copyright (c) 2016 - 2018 Eric Goller / projecthamster <elbenfreund@projecthamst */ -const Lang = imports.lang; const GObject = imports.gi.GObject; const St = imports.gi.St; const Clutter = imports.gi.Clutter; @@ -56,8 +55,8 @@ class OngoingFactEntry extends St.Entry { // Seems to be populate by GetActivities. this._autocompleteActivities = []; this._runningActivitiesQuery = null; - this.clutter_text.connect('activate', Lang.bind(this, this._onEntryActivated)); - this.clutter_text.connect('key-release-event', Lang.bind(this, this._onKeyReleaseEvent)); + this.clutter_text.connect('activate', this._onEntryActivated.bind(this)); + this.clutter_text.connect('key-release-event', this._onKeyReleaseEvent.bind(this)); } /** @@ -71,9 +70,9 @@ class OngoingFactEntry extends St.Entry { */ _onEntryActivated() { let text = this.get_text(); - this._controller.apiProxy.AddFactRemote(text, 0, 0, false, Lang.bind(this, function(response, error) { + this._controller.apiProxy.AddFactRemote(text, 0, 0, false, function(response, error) { // not interested in the new id - this shuts up the warning - })); + }.bind(this)); this.set_text(''); } diff --git a/extension/widgets/panelWidget.js b/extension/widgets/panelWidget.js index de77f4a..905623a 100644 --- a/extension/widgets/panelWidget.js +++ b/extension/widgets/panelWidget.js @@ -21,7 +21,6 @@ Copyright (c) 2016 - 2018 Eric Goller / projecthamster <elbenfreund@projecthamst */ -const Lang = imports.lang; const Gio = imports.gi.Gio; const GObject = imports.gi.GObject; const Clutter = imports.gi.Clutter; @@ -70,8 +69,8 @@ class PanelWidget extends PanelMenu.Button { this._settings = controller.settings; this._windowsProxy = controller.windowsProxy; - controller.apiProxy.connectSignal('FactsChanged', Lang.bind(this, this.refresh)); - controller.apiProxy.connectSignal('TagsChanged', Lang.bind(this, this.refresh)); + controller.apiProxy.connectSignal('FactsChanged', this.refresh.bind(this)); + controller.apiProxy.connectSignal('TagsChanged', this.refresh.bind(this)); // Setup the main layout container for the part of the extension @@ -103,41 +102,41 @@ class PanelWidget extends PanelMenu.Button { // overview let overviewMenuItem = new PopupMenu.PopupMenuItem(_("Show Overview")); - overviewMenuItem.connect('activate', Lang.bind(this, this._onOpenOverview)); + overviewMenuItem.connect('activate', this._onOpenOverview.bind(this)); this.menu.addMenuItem(overviewMenuItem); // [FIXME] // This should only be shown if we have an 'ongoing fact'. // stop tracking let stopTrackinMenuItem = new PopupMenu.PopupMenuItem(_("Stop Tracking")); - stopTrackinMenuItem.connect('activate', Lang.bind(this, this._onStopTracking)); + stopTrackinMenuItem.connect('activate', this._onStopTracking.bind(this)); this.menu.addMenuItem(stopTrackinMenuItem); // add new task let addNewFactMenuItem = new PopupMenu.PopupMenuItem(_("Add Earlier Activity")); - addNewFactMenuItem.connect('activate', Lang.bind(this, this._onOpenAddFact)); + addNewFactMenuItem.connect('activate', this._onOpenAddFact.bind(this)); this.menu.addMenuItem(addNewFactMenuItem); // settings this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem()); let SettingMenuItem = new PopupMenu.PopupMenuItem(_("Tracking Settings")); - SettingMenuItem.connect('activate', Lang.bind(this, this._onOpenSettings)); + SettingMenuItem.connect('activate', this._onOpenSettings.bind(this)); this.menu.addMenuItem(SettingMenuItem); // focus menu upon display - this.menu.connect('open-state-changed', Lang.bind(this, + this.menu.connect('open-state-changed', function(menu, open) { if (open) { this.factsBox.focus(); } else { this.factsBox.unfocus(); } - } - )); + }.bind(this) + ); // refresh the widget every 60 secs - this.timeout = GLib.timeout_add_seconds(0, 60, Lang.bind(this, this.refresh)); - this.connect('destroy', Lang.bind(this, this._disableRefreshTimer)); + this.timeout = GLib.timeout_add_seconds(0, 60, this.refresh.bind(this)); + this.connect('destroy', this._disableRefreshTimer.bind(this)); this.refresh(); } @@ -195,7 +194,7 @@ class PanelWidget extends PanelMenu.Button { // This should really be a synchronous call fetching the facts. // Once this is done, the actual code from the callback should follow // here. - this._controller.apiProxy.GetTodaysFactsRemote(Lang.bind(this, _refresh)); + this._controller.apiProxy.GetTodaysFactsRemote(_refresh.bind(this)); return GLib.SOURCE_CONTINUE; } diff --git a/extension/widgets/todaysFactsWidget.js b/extension/widgets/todaysFactsWidget.js index 1d8acf5..deafbdc 100644 --- a/extension/widgets/todaysFactsWidget.js +++ b/extension/widgets/todaysFactsWidget.js @@ -21,7 +21,6 @@ Copyright (c) 2016 - 2018 Eric Goller / projecthamster <elbenfreund@projecthamst */ -const Lang = imports.lang; const St = imports.gi.St; const Clutter = imports.gi.Clutter; const GLib = imports.gi.GLib; @@ -114,9 +113,9 @@ class TodaysFactsWidget extends St.ScrollView { } /* jshint validthis: true */ - controller.apiProxy.AddFactRemote(factStr, 0, 0, false, Lang.bind(this, function(response, err) { + controller.apiProxy.AddFactRemote(factStr, 0, 0, false, function(response, err) { // not interested in the new id - this shuts up the warning - })); + }.bind(this)); menu.close(); } @@ -148,7 +147,7 @@ class TodaysFactsWidget extends St.ScrollView { editButton.set_child(editIcon); // [FIXME] // Wouldn't it be cleaner to pass the fact as data payload to the callback binding? - editButton.connect('clicked', Lang.bind(this, onOpenEditDialog)); + editButton.connect('clicked', onOpenEditDialog.bind(this)); // Construct a 'start previous fact's activity as new' button. // This is only done if the *ongoing fact* activity is actually @@ -160,7 +159,7 @@ class TodaysFactsWidget extends St.ScrollView { continueButton = new St.Button({style_class: 'clickable cell-button'}); continueButton.set_child(continueIcon); continueButton.fact = fact; - continueButton.connect('clicked', Lang.bind(this, onContinueButton)); + continueButton.connect('clicked', onContinueButton.bind(this)); } //The order of the array will be the order in which they will be added to the row. @@ -176,7 +175,7 @@ class TodaysFactsWidget extends St.ScrollView { let rowCount = 0; let layout = this.facts_widget.layout_manager; for (let fact of facts) { - let rowComponents = Lang.bind(this, constructRow)(fact, ongoingFact, this._controller, this._panelWidget.menu); + let rowComponents = constructRow.bind(this)(fact, ongoingFact, this._controller, this._panelWidget.menu); for (let component of rowComponents) { layout.pack(component, rowComponents.indexOf(component), rowCount); } -- 2.26.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor