diff --git a/js/extensionPrefs/gnome-shell-extension-prefs.in b/js/extensionPrefs/gnome-shell-extension-prefs.in new file mode 100644 index 000000000..dc6d62760 --- /dev/null +++ b/js/extensionPrefs/gnome-shell-extension-prefs.in @@ -0,0 +1,2 @@ +#!/bin/sh +@gjs@ @pkgdatadir@/@app_id@ "$@" diff --git a/js/extensionPrefs/main.js b/js/extensionPrefs/main.js index 02e68c76d..936598c05 100644 --- a/js/extensionPrefs/main.js +++ b/js/extensionPrefs/main.js @@ -2,13 +2,13 @@ imports.gi.versions.Gdk = '3.0'; imports.gi.versions.Gtk = '3.0'; +imports.package.initFormat(); + const Gettext = imports.gettext; const { Gdk, GLib, Gio, GObject, Gtk } = imports.gi; -const Format = imports.format; const _ = Gettext.gettext; -const Config = imports.misc.config; const ExtensionUtils = imports.misc.extensionUtils; const { loadInterfaceXML } = imports.misc.fileUtils; @@ -46,7 +46,7 @@ class Application extends Gtk.Application { super.vfunc_startup(); let provider = new Gtk.CssProvider(); - let uri = 'resource:///org/gnome/shell/css/application.css'; + let uri = 'resource:///org/gnome/Extensions/css/application.css'; try { provider.load_from_file(Gio.File.new_for_uri(uri)); } catch (e) { @@ -61,11 +61,9 @@ class Application extends Gtk.Application { } vfunc_command_line(commandLine) { - let args = commandLine.get_arguments(); - - if (args.length) { - let uuid = args[0]; + let [prgName_, uuid] = commandLine.get_arguments(); + if (uuid) { // Strip off "extension:///" prefix which fakes a URI, if it exists uuid = stripPrefix(uuid, 'extension:///'); @@ -79,7 +77,7 @@ class Application extends Gtk.Application { var ExtensionsWindow = GObject.registerClass({ GTypeName: 'ExtensionsWindow', - Template: 'resource:///org/gnome/shell/ui/extensions-window.ui', + Template: 'resource:///org/gnome/Extensions/ui/extensions-window.ui', InternalChildren: [ 'userList', 'systemList', @@ -219,7 +217,7 @@ var ExtensionsWindow = GObject.registerClass({ comments: _('Manage your GNOME Extensions'), license_type: Gtk.License.GPL_2_0, logo_icon_name: 'org.gnome.Extensions', - version: Config.PACKAGE_VERSION, + version: imports.package.version, transient_for: this, modal: true, @@ -571,7 +569,7 @@ var Expander = GObject.registerClass({ var ExtensionRow = GObject.registerClass({ GTypeName: 'ExtensionRow', - Template: 'resource:///org/gnome/shell/ui/extension-row.ui', + Template: 'resource:///org/gnome/Extensions/ui/extension-row.ui', InternalChildren: [ 'nameLabel', 'descriptionLabel', @@ -751,8 +749,6 @@ function initEnvironment() { userdatadir: GLib.build_filenamev([GLib.get_user_data_dir(), 'gnome-shell']), }; - - String.prototype.format = Format.format; } function main(argv) { diff --git a/js/extensionPrefs/meson.build b/js/extensionPrefs/meson.build new file mode 100644 index 000000000..97da99714 --- /dev/null +++ b/js/extensionPrefs/meson.build @@ -0,0 +1,46 @@ +app_id = 'org.gnome.Extensions' +prgname = 'gnome-shell-extension-prefs' + +launcherconf = configuration_data() +launcherconf.set('app_id', app_id) +launcherconf.set('PACKAGE_NAME', meson.project_name()) +launcherconf.set('PACKAGE_VERSION', meson.project_version()) +launcherconf.set('prefix', prefix) +launcherconf.set('libdir', libdir) +launcherconf.set('pkgdatadir', pkgdatadir) +launcherconf.set('gjs', gjs.path()) + +configure_file( + input: prgname + '.in', + output: prgname, + configuration: launcherconf, + install_dir: bindir, + install_mode: 'rwxr-xr-x', +) + +configure_file( + input: app_id + '.in', + output: app_id, + configuration: launcherconf, + install_dir: pkgdatadir, +) + +config_dir = '@0@/..'.format(meson.current_build_dir()) + +gnome.compile_resources( + app_id + '.src', + app_id + '.src.gresource.xml', + dependencies: [config_js], + source_dir: ['.', '..', config_dir], + gresource_bundle: true, + install: true, + install_dir: pkgdatadir +) + +gnome.compile_resources( + app_id + '.data', + app_id + '.data.gresource.xml', + gresource_bundle: true, + install: true, + install_dir: pkgdatadir +) diff --git a/js/extensionPrefs/org.gnome.Extensions.data.gresource.xml b/js/extensionPrefs/org.gnome.Extensions.data.gresource.xml new file mode 100644 index 000000000..f6fc66b72 --- /dev/null +++ b/js/extensionPrefs/org.gnome.Extensions.data.gresource.xml @@ -0,0 +1,9 @@ + + + + css/application.css + + ui/extension-row.ui + ui/extensions-window.ui + + diff --git a/js/extensionPrefs/org.gnome.Extensions.in b/js/extensionPrefs/org.gnome.Extensions.in new file mode 100644 index 000000000..da7ab2512 --- /dev/null +++ b/js/extensionPrefs/org.gnome.Extensions.in @@ -0,0 +1,6 @@ +imports.package.start({ + name: '@PACKAGE_NAME@', + version: '@PACKAGE_VERSION@', + prefix: '@prefix@', + libdir: '@libdir@', +}); diff --git a/js/extensionPrefs/org.gnome.Extensions.src.gresource.xml b/js/extensionPrefs/org.gnome.Extensions.src.gresource.xml new file mode 100644 index 000000000..9b0fa09ac --- /dev/null +++ b/js/extensionPrefs/org.gnome.Extensions.src.gresource.xml @@ -0,0 +1,10 @@ + + + + main.js + + misc/config.js + misc/extensionUtils.js + misc/fileUtils.js + + diff --git a/js/meson.build b/js/meson.build index 9a230d65d..8b131d8dd 100644 --- a/js/meson.build +++ b/js/meson.build @@ -1,5 +1,6 @@ subdir('misc') subdir('dbusServices') +subdir('extensionPrefs') js_resources = gnome.compile_resources( 'js-resources', 'js-resources.gresource.xml', @@ -14,10 +15,3 @@ portal_resources = gnome.compile_resources( c_name: 'portal_js_resources', dependencies: [config_js] ) - -prefs_resources = gnome.compile_resources( - 'prefs-resources', 'prefs-resources.gresource.xml', - source_dir: ['.', meson.current_build_dir()], - c_name: 'prefs_js_resources', - dependencies: [config_js] -) diff --git a/js/prefs-resources.gresource.xml b/js/prefs-resources.gresource.xml deleted file mode 100644 index 548a46a3e..000000000 --- a/js/prefs-resources.gresource.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - extensionPrefs/main.js - - misc/config.js - misc/extensionUtils.js - misc/fileUtils.js - - extensionPrefs/css/application.css - - extensionPrefs/ui/extension-row.ui - extensionPrefs/ui/extensions-window.ui - - diff --git a/src/gnome-shell-extension-prefs.c b/src/gnome-shell-extension-prefs.c deleted file mode 100644 index 7ff728e1e..000000000 --- a/src/gnome-shell-extension-prefs.c +++ /dev/null @@ -1,51 +0,0 @@ -/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ - -#include "config.h" - -#include -#include - -int -main (int argc, char *argv[]) -{ - const char *search_path[] = { "resource:///org/gnome/shell", NULL }; - GError *error = NULL; - GjsContext *context; - int status; - - bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); - bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); - textdomain (GETTEXT_PACKAGE); - - context = g_object_new (GJS_TYPE_CONTEXT, - "search-path", search_path, - NULL); - - if (!gjs_context_define_string_array(context, "ARGV", - argc - 1, (const char**)argv + 1, - &error)) - { - g_message("Failed to defined ARGV: %s", error->message); - g_error_free (error); - g_object_unref (context); - - return 1; - } - - if (!gjs_context_eval (context, - "const Main = imports.extensionPrefs.main; Main.main(ARGV);", - -1, - "
", - &status, - &error)) - { - g_message ("Execution of main.js threw exception: %s", error->message); - g_error_free (error); - g_object_unref (context); - - return status; - } - - g_object_unref (context); - return 0; -} diff --git a/src/meson.build b/src/meson.build index 8e18e3080..05bdb9bea 100644 --- a/src/meson.build +++ b/src/meson.build @@ -249,15 +249,6 @@ executable('gnome-shell', 'main.c', install: true ) -executable('gnome-shell-extension-prefs', - 'gnome-shell-extension-prefs.c', prefs_resources, - c_args: tools_cflags, - dependencies: tools_deps, - include_directories: [conf_inc], - install: true -) - - if have_networkmanager executable('gnome-shell-portal-helper', 'gnome-shell-portal-helper.c', portal_resources,