Skip to content

Commit f09f21b

Browse files
committed
peb.browser_version and peb.qt_version object properties
1 parent 2b12e77 commit f09f21b

File tree

5 files changed

+63
-46
lines changed

5 files changed

+63
-46
lines changed

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ Perl Executing Browser (PEB) is an HTML5 user interface for [Perl 5](https://www
2121
* [Runtime Requirements](./doc/REQUIREMENTS.md#runtime-requirements)
2222
* [CONSTANTS](./doc/CONSTANTS.md)
2323
* [Files and Folders](./doc/CONSTANTS.md#files-and-folders)
24-
* [About URL](./doc/CONSTANTS.md#about-url)
2524
* [SETTINGS](./doc/SETTINGS.md)
2625
* [Application Filename](./doc/SETTINGS.md#application-filename)
2726
* [Global Settings API](./doc/SETTINGS.md#global-settings-api)
@@ -107,9 +106,10 @@ in the documentation of this project are to be interpreted as described in [RFC
107106

108107
## Limitations
109108

110-
* Only single-page applications are supported with no pop-up windows and no Perl scripting inside frames.
111-
* No files can be downloaded.
112-
* Printing is not supported.
109+
* No pop-up windows
110+
* No Perl scripting inside frames
111+
* No file download
112+
* No printing
113113

114114
## History
115115

resources/app/index-windows.html

Lines changed: 35 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -24,38 +24,6 @@
2424
pebSettings.onExitScripts = ['messenger_one', 'messenger_two'];
2525

2626
// PEB settings objects for auto-started Perl interactive scripts:
27-
var messenger_one = {};
28-
messenger_one.scriptRelativePath = 'perl-scripts/messenger.pl';
29-
messenger_one.message = {};
30-
31-
messenger_one.inputData = function() {
32-
messenger_one.message.user_input =
33-
document.getElementById("interactive-one-input").value;
34-
$('#form-one').trigger('reset');
35-
return JSON.stringify(messenger_one.message);
36-
}
37-
38-
messenger_one.exitData = function() {
39-
messenger_one.message.user_input = "peb-exit";
40-
return JSON.stringify(messenger_one.message);
41-
}
42-
43-
var messenger_two = {};
44-
messenger_two.scriptRelativePath = 'perl-scripts/messenger.pl';
45-
messenger_two.message = {};
46-
47-
messenger_two.inputData = function() {
48-
messenger_two.message.user_input =
49-
document.getElementById("interactive-two-input").value;
50-
$('#form-two').trigger('reset');
51-
return JSON.stringify(messenger_two.message);
52-
}
53-
54-
messenger_two.exitData = function() {
55-
messenger_two.message.user_input = "peb-exit";
56-
return JSON.stringify(messenger_two.message);
57-
}
58-
5927
var interactive_one = {};
6028
interactive_one.scriptRelativePath = 'perl-scripts/interactive-windows.pl';
6129

@@ -67,6 +35,7 @@
6735

6836
interactive_one.stdoutFunction = function (stdout) {
6937
var target = document.getElementById('instance-one-output');
38+
stdout = stdout.replace(/\\/g, "\\\\");
7039
var output = JSON.parse(stdout);
7140
var html;
7241
messenger_one.message.tempfile = output.tempfile;
@@ -91,6 +60,7 @@
9160

9261
interactive_two.stdoutFunction = function (stdout) {
9362
var target = document.getElementById('instance-two-output');
63+
stdout = stdout.replace(/\\/g, "\\\\");
9464
var output = JSON.parse(stdout);
9565
var html;
9666
messenger_two.message.tempfile = output.tempfile;
@@ -103,6 +73,39 @@
10373
target.innerHTML = html;
10474
};
10575
}
76+
77+
// PEB settings objects for Perl helper scripts:
78+
var messenger_one = {};
79+
messenger_one.scriptRelativePath = 'perl-scripts/messenger.pl';
80+
messenger_one.message = {};
81+
82+
messenger_one.inputData = function() {
83+
messenger_one.message.user_input =
84+
document.getElementById("interactive-one-input").value;
85+
$('#form-one').trigger('reset');
86+
return JSON.stringify(messenger_one.message);
87+
}
88+
89+
messenger_one.exitData = function() {
90+
messenger_one.message.user_input = "peb-exit";
91+
return JSON.stringify(messenger_one.message);
92+
}
93+
94+
var messenger_two = {};
95+
messenger_two.scriptRelativePath = 'perl-scripts/messenger.pl';
96+
messenger_two.message = {};
97+
98+
messenger_two.inputData = function() {
99+
messenger_two.message.user_input =
100+
document.getElementById("interactive-two-input").value;
101+
$('#form-two').trigger('reset');
102+
return JSON.stringify(messenger_two.message);
103+
}
104+
105+
messenger_two.exitData = function() {
106+
messenger_two.message.user_input = "peb-exit";
107+
return JSON.stringify(messenger_two.message);
108+
}
106109
</script>
107110

108111
<script src="jquery/jquery-1.12.4.min.js"></script>

resources/app/peb-demo.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@ function displayTestResult(id, stdout) {
100100
// About dialog:
101101
function about() {
102102
alert(
103-
"Browser version 1.0.0\n"+
104-
"Qt version 5.5.1\n\n"+
103+
"Browser version: " + peb.browser_version + "\n"+
104+
"Qt version: " + peb.qt_version + "\n\n"+
105105

106106
"This program is free software;\n"+
107107
"you can redistribute it and/or modify it under\n"+

src/webengine-page.h

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,21 @@ public slots:
6868
emit pageLoadedSignal();
6969

7070
// Log basic program information on the JavaScript console:
71+
QString applicationVersion =
72+
"peb.browser_version = '" +
73+
qApp->applicationVersion().toLatin1() + "';";
74+
QPage::runJavaScript(applicationVersion);
75+
76+
QString qtVersion =
77+
"peb.qt_version = '" + QString(QT_VERSION_STR) + "';";
78+
QPage::runJavaScript(qtVersion);
79+
7180
QString applicationVersionMessage =
72-
"console.log('Application version: " +
73-
qApp->applicationVersion().toLatin1() + "');";
81+
"console.log('Browser version: ' + peb.browser_version);";
7482
QPage::runJavaScript(applicationVersionMessage);
7583

7684
QString qtVersionMessage =
77-
"console.log('Qt version: " +
78-
QString(QT_VERSION_STR) + "');";
85+
"console.log('Qt version: ' + peb.qt_version);";
7986
QPage::runJavaScript(qtVersionMessage);
8087

8188
QString perlInterpreterMessage =

src/webkit-page.h

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,14 +75,21 @@ public slots:
7575
emit pageLoadedSignal();
7676

7777
// Log basic program information on the JavaScript console:
78+
QString applicationVersion =
79+
"peb.browser_version = '" +
80+
qApp->applicationVersion().toLatin1() + "';";
81+
mainFrame()->evaluateJavaScript(applicationVersion);
82+
83+
QString qtVersion =
84+
"peb.qt_version = '" + QString(QT_VERSION_STR) + "';";
85+
mainFrame()->evaluateJavaScript(qtVersion);
86+
7887
QString applicationVersionMessage =
79-
"console.log('Application version: " +
80-
qApp->applicationVersion().toLatin1() + "');";
88+
"console.log('Browser version: ' + peb.browser_version);";
8189
mainFrame()->evaluateJavaScript(applicationVersionMessage);
8290

8391
QString qtVersionMessage =
84-
"console.log('Qt version: " +
85-
QString(QT_VERSION_STR) + "');";
92+
"console.log('Qt version: ' + peb.qt_version);";
8693
mainFrame()->evaluateJavaScript(qtVersionMessage);
8794

8895
QString perlInterpreterMessage =

0 commit comments

Comments
 (0)