Ship the web code using server mode with appropriate paths by default and enable the runtime to override the mode, and force into desktop changing the appropriate paths to user-specific ones.
Note that this change will likely cause more advanced users to have to tweak configs.
RPMs will also need changes to create /var/lib/pgadmin and /var/log/pgadmin, owned by the webserver account.
We set "setNetworkAccessManager" in WebEnginePage which was only required for Webkit so removed that statement.
"triggerAction" on WebPage is only required for Qt > 5 with WebKit only. Not required for WebEngine so added that condition.
1) Fixed issue of opening Query Tool and Debugger in new Tab with QT 5.8 and annulen webkit
2) Moved unload event of window from javascript files to html.
3) Change alertify messages for debugger.
4) Closed all connections created by debugger. Previously only one connection has been closed.
Desktop runtime has a couple bugs using already freed memory supplied to embedded python leading to occasional crashes and failures to start maintenance processes (VACUUM, ANALYZE, REINDEX, CLUSTER).
This is caused by incorrect usage of QString::toUtf8() which returns newly created QByteArray which is automatically destroyed once closing context; e.g.
Py_SetPythonHome(pythonHome.toUtf8().data());
Windows 2008 R2 (32 bit), while running the pgAdmin 4 as runtime for
the PostgreSQL one click installers.
- Found a typo in runtime code, we were appending the path using ';' on
*nix systems too. We should have used ':', and that did not allow the
os.environ['PATH'] to identify the correct path of the python
interpreter under the 'venv' directory.
- On Windows 2008, it was not honouring the environment variables, set
under the Qt application (e.g. pgAdmin4.exe runtime), in the python
application. (e.g. pgAdmin4.py). We will need to assume that - the
python interpreter resides under the 'venv' directory outside the
'bin' directory.
- Also, on windows 2008, it was setting PYTHONHOME environment variable
to the full path of the pgAdmin4.exe, we need to reset it to 'venv'
directory, if we find the python interpreter under it.
Thanks Murtuza Zabuawala for tips, and help.