[sushi] application: revert back to using GJS utilities for GDBus



commit 4ee6e40e179253ea8bf13e3ae45500bbc6ef89f1
Author: Cosimo Cecchi <cosimoc gnome org>
Date:   Fri Jun 21 09:49:23 2019 -0700

    application: revert back to using GJS utilities for GDBus
    
    At the end of the day this is actually a lot more convenient in JS
    than the gdbus-codegen counterpart. Revert back to using it.

 src/meson.build                                    | 29 ++++------------------
 src/org.gnome.NautilusPreviewer.data.gresource.xml |  6 +++++
 src/ui/application.js                              | 21 +++++++---------
 src/ui/main.js                                     |  1 -
 4 files changed, 20 insertions(+), 37 deletions(-)
---
diff --git a/src/meson.build b/src/meson.build
index 18faf73..5222ee8 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -11,31 +11,12 @@ sushi_src_resources = gnome.compile_resources(
     install_dir: pkgdatadir,
 )
 
-nautilus_previewer_dbus_sources = gnome.gdbus_codegen(
-    'nautilus-previewer-dbus',
-    sources: 'org.gnome.NautilusPreviewer.xml',
-    interface_prefix : 'org.gnome.',
-    annotations: ['org.gnome.NautilusPreviewer', 'org.gtk.GDBus.C.Name', 'NautilusPreviewerDBus']
-)
-
-nautilus_previewer_dbus_lib = shared_library(
-    'nautilus-previewer-dbus-1.0',
-    nautilus_previewer_dbus_sources,
-    version: meson.project_version(),
-    dependencies: [gio_unix_dep],
-    install: true,
-    install_dir: pkglibdir
-)
-
-gnome.generate_gir(
-    nautilus_previewer_dbus_lib,
-    sources: nautilus_previewer_dbus_sources,
-    namespace: 'NautilusPreviewerDBus',
-    nsversion: '1.0',
-    includes: ['Gio-2.0'],
+sushi_data_resources = gnome.compile_resources(
+    'org.gnome.NautilusPreviewer.data',
+    'org.gnome.NautilusPreviewer.data.gresource.xml',
+    gresource_bundle: true,
     install: true,
-    install_dir_gir: join_paths(pkgdatadir, 'gir-1.0'),
-    install_dir_typelib: join_paths(pkglibdir, 'girepository-1.0')
+    install_dir: pkgdatadir,
 )
 
 conf = configuration_data()
diff --git a/src/org.gnome.NautilusPreviewer.data.gresource.xml 
b/src/org.gnome.NautilusPreviewer.data.gresource.xml
new file mode 100644
index 0000000..e4ef400
--- /dev/null
+++ b/src/org.gnome.NautilusPreviewer.data.gresource.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+  <gresource prefix="/org/gnome/NautilusPreviewer">
+    <file>org.gnome.NautilusPreviewer.xml</file>
+  </gresource>
+</gresources>
diff --git a/src/ui/application.js b/src/ui/application.js
index 896d493..a867384 100644
--- a/src/ui/application.js
+++ b/src/ui/application.js
@@ -23,7 +23,9 @@
  *
  */
 
-const {Gdk, Gio, GObject, Gtk, NautilusPreviewerDBus} = imports.gi;
+const {Gdk, Gio, GObject, Gtk} = imports.gi;
+
+const ByteArray = imports.byteArray;
 
 const MainWindow = imports.ui.mainWindow;
 
@@ -35,9 +37,10 @@ var Application = GObject.registerClass(class Application extends Gtk.Applicatio
     }
 
     vfunc_dbus_register(connection, path) {
-        this._skeleton = new NautilusPreviewerDBus.Skeleton();
-        this._skeleton.connect('handle-close', this._close.bind(this));
-        this._skeleton.connect('handle-show-file', this._showFile.bind(this));
+        let bytes = Gio.resources_lookup_data(
+            '/org/gnome/NautilusPreviewer/org.gnome.NautilusPreviewer.xml', 0);
+        this._skeleton = Gio.DBusExportedObject.wrapJSObject(
+            ByteArray.toString(bytes.toArray()), this);
 
         try {
             this._skeleton.export(connection, path);
@@ -73,15 +76,12 @@ var Application = GObject.registerClass(class Application extends Gtk.Applicatio
         settings.gtk_application_prefer_dark_theme = true;
     }
 
-    _close(skel, invocation) {
+    Close() {
         if (this._mainWindow)
             this._mainWindow.destroy();
-
-        invocation.return_value(null);
-        return true;
     }
 
-    _showFile(skel, invocation, uri, xid, closeIfAlreadyShown) {
+    ShowFile(uri, xid, closeIfAlreadyShown) {
         this._ensureMainWindow();
 
         let file = Gio.file_new_for_uri(uri);
@@ -93,8 +93,5 @@ var Application = GObject.registerClass(class Application extends Gtk.Applicatio
             this._mainWindow.setParent(xid);
             this._mainWindow.setFile(file);
         }
-
-        invocation.return_value(null);
-        return true;
     }
 });
diff --git a/src/ui/main.js b/src/ui/main.js
index 91e8174..5fbd5bf 100644
--- a/src/ui/main.js
+++ b/src/ui/main.js
@@ -37,7 +37,6 @@ pkg.require({
     GstTag: '1.0',
     Gtk: '3.0',
     GtkSource: '4',
-    NautilusPreviewerDBus: '1.0',
     Pango: '1.0',
     Soup: '2.4',
     Sushi: '1.0',


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]