src/Builder4/DialogPluginWebkit.bjs
authorAlan Knowles <alan@roojs.com>
Thu, 16 Apr 2015 09:27:14 +0000 (17:27 +0800)
committerAlan Knowles <alan@roojs.com>
Thu, 16 Apr 2015 09:27:14 +0000 (17:27 +0800)
src/Builder4/DialogPluginWebkit.vala

src/Builder4/DialogPluginWebkit.bjs
src/Builder4/DialogPluginWebkit.vala

index e37b29e..daf2742 100644 (file)
@@ -35,6 +35,9 @@
        "$ xns" : "Gtk",
        "items" : [
         {
+         "listeners" : {
+          "script_alert" : " (dialog) => {\n    if (this.el == null) {\n        return true;\n    }\n    \n     var msg = dialog.get_message();\n     if (msg.length < 4) {\n        return false;\n     }\n     if (msg.substring(0,4) != \"IPC:\") {\n         return false;\n     }\n     var ar = msg.split(\":\", 3);\n    if (ar.length < 3) {\n        return false;\n    }\n    switch(ar[1]) {\n        case \"SAVEHTML\":\n          print(\"%sw\",ar[2]);\n          //  _this.file.saveHTML(ar[2]);\n            return true;\n        default:\n            return false;\n    }\n    \n}"
+         },
          "id" : "webview",
          "* init" : " {\n    // this may not work!?\n    var settings =  this.el.get_settings();\n    \n     \n    var fs= new FakeServer(this.el);\n    fs.ref();\n    // this was an attempt to change the url perms.. did not work..\n    // settings.enable_file_access_from_file_uris = true;\n    // settings.enable_offline_web_application_cache - true;\n    // settings.enable_universal_access_from_file_uris = true;\n   \n     \n    \n    \n    \n\n     // FIXME - base url of script..\n     // we need it so some of the database features work.\n    this.el.load_html( \"Render not ready\" , \n            //fixme - should be a config option!\n            // or should we catch stuff and fix it up..\n            \"xhttp://localhost/app.Builder/\"\n    );\n        \n        \n    \n    \n}\n",
          "xtype" : "WebView",
index 124d9f2..c6123f9 100644 (file)
@@ -236,6 +236,34 @@ public class Xcls_DialogPluginWebkit : Object
                 
                 
             }
+
+            // listeners 
+            this.el.script_alert.connect( (dialog) => {
+                if (this.el == null) {
+                    return true;
+                }
+                
+                 var msg = dialog.get_message();
+                 if (msg.length < 4) {
+                    return false;
+                 }
+                 if (msg.substring(0,4) != "IPC:") {
+                     return false;
+                 }
+                 var ar = msg.split(":", 3);
+                if (ar.length < 3) {
+                    return false;
+                }
+                switch(ar[1]) {
+                    case "SAVEHTML":
+                      print("%sw",ar[2]);
+                      //  _this.file.saveHTML(ar[2]);
+                        return true;
+                    default:
+                        return false;
+                }
+                
+            });
         }
 
         // user defined functions