[gnome-maps/wip/mlundblad/es6-modules: 3/3] WIP: port to ES6 modules
- From: Marcus Lundblad <mlundblad src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-maps/wip/mlundblad/es6-modules: 3/3] WIP: port to ES6 modules
- Date: Mon, 2 May 2022 22:04:06 +0000 (UTC)
commit e008a2e1a490fbc2c8b0a40a9f9dfefbf844d347
Author: Marcus Lundblad <ml dfupdate se>
Date: Tue May 3 00:02:54 2022 +0200
WIP: port to ES6 modules
src/application.js | 47 +++++++++++++++++++++++++----------------------
src/contactPlace.js | 15 ++++++++-------
src/main.js | 44 ++++++++++++++++++++++++--------------------
src/org.gnome.Maps.in | 14 ++++++++++----
src/place.js | 2 +-
5 files changed, 68 insertions(+), 54 deletions(-)
---
diff --git a/src/application.js b/src/application.js
index 385061d5..9f0261a5 100644
--- a/src/application.js
+++ b/src/application.js
@@ -20,15 +20,15 @@
* Zeeshan Ali (Khattak) <zeeshanak gnome org>
*/
-const GLib = imports.gi.GLib;
-const GObject = imports.gi.GObject;
+import GLib from 'gi://GLib';
+import GObject from 'gi://GObject';
const Geocode = imports.gi.GeocodeGlib;
const Gio = imports.gi.Gio;
const Gtk = imports.gi.Gtk;
const GtkClutter = imports.gi.GtkClutter;
const Hdy = imports.gi.Handy;
-const ContactPlace = imports.contactPlace;
+import {ContactPlace} from './contactPlace.js';
const Format = imports.format;
const Geoclue = imports.geoclue;
const GeocodeFactory = imports.geocode;
@@ -56,32 +56,18 @@ var routeQuery = null;
const _ensuredTypes = [OSMTypeSearchEntry.OSMTypeSearchEntry];
-var Application = GObject.registerClass({
- Properties: {
- 'selected-place': GObject.ParamSpec.object('selected-place',
- 'Selected Place',
- 'The selected place',
- GObject.ParamFlags.READABLE |
- GObject.ParamFlags.WRITABLE,
- Geocode.Place),
- 'adaptive-mode': GObject.ParamSpec.boolean('adaptive-mode',
- 'Adaptive Move',
- 'Whether the main window is in adaptive (narrow) mode',
- GObject.ParamFlags.READABLE |
- GObject.ParamFlags.WRITABLE),
- },
-}, class Application extends Gtk.Application {
+export class Application extends Gtk.Application {
- _init() {
+ constructor() {
/* Translators: This is the program name. */
GLib.set_application_name(_("Maps"));
/* Needed to be able to use in UI files */
_ensuredTypes.forEach((type) => GObject.type_ensure(type));
- super._init({ application_id: pkg.name,
- flags: Gio.ApplicationFlags.HANDLES_OPEN |
- Gio.ApplicationFlags.HANDLES_COMMAND_LINE });
+ super({ application_id: pkg.name,
+ flags: Gio.ApplicationFlags.HANDLES_OPEN |
+ Gio.ApplicationFlags.HANDLES_COMMAND_LINE });
this.add_main_option('local',
0,
@@ -443,4 +429,21 @@ var Application = GObject.registerClass({
_onWindowDestroy(window) {
this._mainWindow = null;
}
+}
+
+GObject.registerClass({
+ Properties: {
+ 'selected-place': GObject.ParamSpec.object('selected-place',
+ 'Selected Place',
+ 'The selected place',
+ GObject.ParamFlags.READABLE |
+ GObject.ParamFlags.WRITABLE,
+ Geocode.Place),
+ 'adaptive-mode': GObject.ParamSpec.boolean('adaptive-mode',
+ 'Adaptive Move',
+ 'Whether the main window is in adaptive (narrow) mode',
+ GObject.ParamFlags.READABLE |
+ GObject.ParamFlags.WRITABLE),
+ },
+ Application
});
diff --git a/src/contactPlace.js b/src/contactPlace.js
index 6c036c22..52f8870e 100644
--- a/src/contactPlace.js
+++ b/src/contactPlace.js
@@ -19,18 +19,17 @@
* Author: Jonas Danielsson <jonas threetimestwo org>
*/
-const GObject = imports.gi.GObject;
+import GObject from 'gi://GObject';
-const Place = imports.place;
+import {Place} from './place.js';
-var ContactPlace = GObject.registerClass(
-class ContactPlace extends Place.Place {
- _init(params) {
+export class ContactPlace extends Place {
+ constructor(params) {
this._contact = params.contact;
delete params.contact;
params.store = false;
- super._init(params);
+ super(params);
}
get icon() {
@@ -42,4 +41,6 @@ class ContactPlace extends Place.Place {
this.osm_type,
this.osm_id].join('-');
}
-});
+}
+
+GObject.registerClass(ContactPlace);
diff --git a/src/main.js b/src/main.js
index 6e4fa113..d46faa94 100644
--- a/src/main.js
+++ b/src/main.js
@@ -20,27 +20,29 @@
* Zeeshan Ali (Khattak) <zeeshanak gnome org>
*/
+import 'gi://Champlain?version=0.12';
+import 'gi://Clutter?version=1.0';
+import 'gi://Cogl?version=1.0';
+import 'gi://GeocodeGlib?version=1.0';
+import 'gi://Gdk?version=3.0';
+import 'gi://GdkPixbuf?version=2.0';
+import 'gi://Gio?version=2.0';
+import 'gi://GLib?version=2.0';
+import 'gi://GObject?version=2.0';
+import 'gi://Gtk?version=3.0';
+import 'gi://GtkChamplain?version=0.12';
+import 'gi://GtkClutter?version=1.0';
+import 'gi://GWeather?version=4.0';
+import 'gi://Handy?version=1';
+import 'gi://Rest?version=0.7';
+import 'gi://Soup?version=2.4';
+
+import * as system from 'system';
+
+import {Application} from './application.js';
+
pkg.initGettext();
pkg.initFormat();
-pkg.require({ 'cairo': '1.0',
- 'Champlain': '0.12',
- 'Clutter': '1.0',
- 'Cogl': '1.0',
- 'GeocodeGlib': '1.0',
- 'Gdk': '3.0',
- 'GdkPixbuf': '2.0',
- 'Gio': '2.0',
- 'GLib': '2.0',
- 'GObject': '2.0',
- 'Gtk': '3.0',
- 'GtkChamplain': '0.12',
- 'GtkClutter': '1.0',
- 'GWeather': '4.0',
- 'Handy': '1',
- 'Rest': '0.7',
- 'Soup': '2.4' });
-
-const Application = imports.application;
function main(args) {
/* Add prototype to get last element of an array.
@@ -53,6 +55,8 @@ function main(args) {
}
}
- let application = new Application.Application();
+ let application = new Application();
return application.run(args);
}
+
+main([system.programInvocationName, ...system.programArgs]);
diff --git a/src/org.gnome.Maps.in b/src/org.gnome.Maps.in
index 1cd74738..133656e8 100755
--- a/src/org.gnome.Maps.in
+++ b/src/org.gnome.Maps.in
@@ -1,5 +1,11 @@
#!@GJS@
-imports.package.start({ name: "gnome-maps",
- version: "@PACKAGE_VERSION@",
- prefix: "@prefix@",
- libdir: "@libdir@" });
+imports.package.init({ name: "gnome-maps",
+ version: "@PACKAGE_VERSION@",
+ prefix: "@prefix@",
+ libdir: "@libdir@" });
+
+import(`resource:///org/gnome/Maps@suffix@/js/main.js`).catch(error => {
+ console.error(error);
+ imports.system.exit(1);
+});
+
diff --git a/src/place.js b/src/place.js
index b772a46c..cca36a3d 100644
--- a/src/place.js
+++ b/src/place.js
@@ -500,7 +500,7 @@ let overpass = null;
/* we can't import Application before the Place class has been defined
* since it's used via PlaceStore
*/
-const Application = imports.application;
+import {Application} from './application.js';
function parseHttpURL(text, callback) {
let [type, id] = URIS.parseAsObjectURL(text);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]