Commit Graph

360 Commits

Author SHA1 Message Date
Dave Page
374bf79911 Fix proxy support with Qt 5.9+ 2017-07-11 11:48:13 +01:00
Neel Patel
c93aa3810d Fix a compiler error with older compilers. 2017-07-11 09:14:53 +01:00
Dave Page
ea5dfe23a0 Bump version numbers prior to release. 2017-07-10 14:56:20 +01:00
Neel Patel
a21dad4c45 Fix runtime support under Qt4 2017-06-16 11:26:31 +01:00
Neel Patel
0056a94115 Add support for detachable tabs to the runtime.
This allows the Query Tool, Debugger and web browser tabs to be moved to different monitors as desired.

Fixes #1344
2017-06-16 09:57:19 +01:00
Khushboo Vashi
3a5fda44e4 Add a shortcut (Ctrl/Cmd + 0 (zero)) to the runtime to allow the zoom level to be reset. Fixes #2485 2017-06-13 10:21:51 +01:00
Dave Page
dea850b503 Tune startup retry loop - try 50 times, with a 100ms pause between each attempt. 2017-06-11 14:38:22 +01:00
Dave Page
ef4b8e8c1c Another minor perf tweak for the runtime. 2017-06-11 14:34:49 +01:00
Dave Page
f0d287588a Couple of minor performance tweaks. Tests on my Windows VM show a consistent 30% startup time reduction. 2017-06-11 13:56:49 +01:00
Neel Patel
6e24cb038a Ensure the runtime works correctly if a Windows user has a proxy server enabled. 2017-05-30 13:17:07 +01:00
Dave Page
f0e78309cb Bump version in preparation for release. 2017-05-15 12:25:28 +01:00
Neel Patel
07b06348ab While building runtime with QtWebEngine, we found 2 compilation errors which were introduced in a previous commit in runtime:
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.
2017-05-15 11:29:14 +01:00
Neel Patel
3ed00d3be7 1) Fixed compilation issue with QT4.
2) Make trigger action 'RequestClose' backword compatible with annulen webkit.
2017-05-10 13:34:39 +05:30
Neel Patel
d0e9c82fea Fixes #2328
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.
2017-05-09 13:03:44 +05:30
Dave Page
0c435154ac Adjust windows resources so they work consistently. 2017-04-10 15:15:15 +01:00
Dave Page
665ec46052 Fix application icon in mingw builds. 2017-04-10 14:29:53 +01:00
Dave Page
fdf292964b Bump version numbers for release. 2017-04-10 14:24:46 +01:00
Dave Page
ee17c77093 Ignore some MinGW related build files. 2017-04-03 20:59:42 +01:00
Dave Page
e7cee870a7 Mingw32 compatibility fixes 2017-04-03 12:58:08 +01:00
Maxim Zakharov
4e16345257 Add support for proxies in the runtime. Fixes #2301 2017-03-29 12:17:16 -04:00
Dave Page
87bbb5ef2c Revert to the old, arguably broken code for QT4 port selection, as QT4 doesn't support TCP socket binding as QT5 does. 2017-03-29 11:33:55 -04:00
Dave Page
44ce8985e0 Fix typo in variable name. 2017-03-28 08:55:38 -04:00
Dave Page
688c810300 Add header that seems to be needed with Python 3. 2017-03-28 08:41:38 -04:00
Maxim Zakharov
72548a99e1 Fix usage of QString::toUtf8(). Fixes #2299
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());
2017-03-28 08:26:16 -04:00
Dave Page
ea6d97c49d Add a couple of headers that Qt 5.8 seems to be more picky about, and fix the free port check to use TCP not UDP 2017-03-26 21:02:15 -04:00
Ashesh Vashi
7767c085c3 Resolved an issue finding the python interpreter on *nix systems, and
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.
2017-03-10 21:19:06 +05:30
Dave Page
063177155e Bump version prior to release. 2017-03-06 15:35:08 +00:00
Dave Page
6696b3c316 Authenticate the runtime to the server. Fixes #2228 2017-03-06 14:53:49 +00:00
Dave Page
5a7a82b4e9 Simplify runtime startup polling, and increase retries to 30.
Ensure the splash screen is hidden before showing errors.
2017-02-27 10:49:47 +00:00
Dave Page
2ebd256307 Fix startup complete tests to ensure we properly poll the server for completed startup. Fixes #2192 2017-02-26 11:52:42 +00:00
Dave Page
d9ddd64a8b Qt 5.8 seems to generate an additional header we should ignore. 2017-02-16 11:27:14 +00:00
Dave Page
40f2520fa6 Add comment to note command line qmake usage. 2017-02-13 12:08:36 +00:00
Dave Page
88aac7a4c9 Update the runtime build to allow users to force building with QtWebKit in Qt5, instead of QtWebEngine. 2017-02-13 11:44:53 +00:00
Dave Page
d3232b2449 Fix runtime version number. 2017-02-10 12:02:42 +00:00
Dave Page
e95dc5f895 Fix indentation 2017-02-08 11:40:43 +00:00
Jonas Thelemann
2db705ad80 Add runtime/pgAdmin4 to .gitignore, and re-order entries for ease of maintenance. 2017-01-16 14:46:44 +00:00
Dave Page
f221194bcc Update copyright notices for 2017. 2017-01-04 13:33:32 +00:00
Dave Page
f80f271e0c Only include the triggerWebViewWindowEvents declaration where appropriate. 2016-12-12 09:40:46 +00:00
Dave Page
c4c3d2b6b8 Change the org name and product name to ensure the the runtime config file is sensibly named.
This changes the default orgname to 'pgadmin' and product name to 'pgadmin4' in the runtime.
2016-12-02 11:24:32 +09:00
Dave Page
58910c4b62 Allow the ApplicationPath to be absolute. 2016-12-02 11:10:08 +09:00
Neel Patel
4bde18685b Pass copy/cut/paste events from the runtime to the webview on Mac under QtWebEngine. 2016-11-29 14:18:39 +09:00
Dave Page
d5351ad657 Add file resources to the windows runtime. Fixes #1874 2016-11-18 15:46:39 +00:00
Dave Page
297733634b Use a more reasonable dynamic default for the window size (90% x 90%). Fixes #1939 2016-11-08 11:37:57 +00:00
Neel Patel
6e5683064e Use QtWebEngine with Qt5.5+ instead of QtWebKit. Fixes #1375, fixes #1641,
fixes #1916, fixes #1815, fixes #1332
2016-11-08 10:57:42 +00:00
Dave Page
5be9d5f054 Fixes #1909 Handle startup errors more gracefully in the runtime 2016-11-02 13:42:08 +05:30
Dave Page
517a85866b Update version number for release. 2016-10-24 16:30:37 +01:00
Dave Page
821f70663e Fix default zoom setting. 2016-09-22 14:43:32 +01:00
Dave Page
8c913f5773 Allow zooming in the runtime with Ctrl/Cmd+Plus and Ctrl/Cmd+Minus. Fixes #1726 2016-09-22 12:37:38 +01:00
Dave Page
cd3b938179 Tweak splash screen image 2016-09-05 16:55:34 +01:00
Dave Page
1ce74fb8b1 Add a simple splash screen 2016-09-05 16:45:01 +01:00
Neel Patel
a3e8ba93ae Ensure that argc/argv are set for the runtime interpretor, and that
PYTHONHOME is properly configured.
2016-08-16 11:29:42 +01:00
Neel Patel
dcf5bfc495 Runtime fixes:
- Compilation error with Qt4 as "QUrlQuery" class was introduced since Qt5.
- Client side download code has been removed as now we support server side download.
- We should not delete sender object inside slot. If we do so it may crash the application. To avoid this, we used Qt's "deleteLater" which will delete the objects once the processing of all the events have been done.
2016-07-25 12:39:57 +01:00
Neel Patel
a6024fc49a Support server side download in runtime application. 2016-07-18 15:28:20 +01:00
Neel Patel
d22ea8bf61 Properly support file downloads in the desktop runtime. Fixes #1405. Fixes #1342 2016-07-13 12:26:24 +01:00
Dave Page
b8c9ccc939 Use Alt+Shift for runtime shortcuts to avoid collisions with app shortcuts. 2016-06-29 20:31:40 +01:00
Ashesh Vashi
fc34f85aa3 Set the sys path from the runtime as we were doing it earlier along with the
PYTHONPATH environment variable settings.
2016-06-21 18:24:07 +05:30
Ashesh Vashi
980ab4735e Revert "Adding proper virtual environment path on windows."
As per Dave, we are not using 'pgAdmin 4' from the community installer,
hence - we should not bother about it.

This reverts commit 3484998775.
2016-06-21 17:44:46 +05:30
Ashesh Vashi
3484998775 Adding proper virtual environment path on windows. 2016-06-21 16:54:34 +05:30
Ashesh Vashi
061a9d9322 Using the preprocessor macor Q_OS_WIN differently, it was failing to
compile the runtime on windows with C1017 error.
2016-06-21 15:45:26 +05:30
Ashesh Vashi
4a7607445f Setting the PYTHONPATH variable before initializing the python
environment using Py_Initialize() function.

Also, add virtual environment binary path to the PATH environment
variable.
2016-06-21 15:02:35 +05:30
Ashesh Vashi
8b8e6fe59b Passing the arguments to the function appending the path by reference. 2016-06-20 23:04:00 +05:30
Ashesh Vashi
691f01b623 [Runtime] Setting few of the environment variables (i.e. PATH and
PYTHONPATH) to run the runtime with the virtual environment properly.
And, also allow to use the python interpreter to be used with the
background process modules.

- Add binary directory of the virtual environment to PATH environment
  variable.
- Add lib, dynamic libraries (python specific), and site-package
  directories of the virtual environment in the PYTHONPATH environment
  variable.
2016-06-20 21:31:19 +05:30
Dave Page
c16df45f2c Allow QMAKE_[C|CXX|L]FLAGS to be set externally from PGADMIN_[C|CXX|LD]FLAGS environment variables respectively. 2016-06-20 12:54:49 +01:00
Dave Page
2c06ab4ac3 Allow the python-config executable to be specified in the environment. 2016-06-20 11:19:57 +01:00
Asser Schrøder Femø
fc955537a8 Fix runtime compatibility with newer Python versions
Initial patch by Asser. Change restricted to Python 3.3 and above by me as PyUnicode_DecodeFSDefault was added in 3.3.
2016-06-20 10:51:46 +01:00
Dave Page
7e27c6280f Replace runtime menu with shortcuts for a cleaner UI (and
because 99% of users don't need those options anyway).
2016-06-17 11:32:39 +01:00
Dave Page
e9dc1496e2 Favour Python 2 as it's more widely tested. 2016-06-17 11:32:39 +01:00
Dave Page
4dc563d71c Fix python detection on Linux/Mac. 2016-06-17 09:40:06 +01:00
Dave Page
73988bcece Do a more sensible venv search on Windows, and don't update the
registry upon installation.
2016-06-16 16:22:45 +01:00
Dave Page
cef0dc7c88 Hunt for the runtime on Windows in the same way we do on Mac. 2016-06-16 13:07:35 +01:00
Dave Page
fa917a0828 Prevent the runtime from compiling bytecode to avoid permissions issues. 2016-06-16 11:30:23 +01:00
Leonard Hecker
702609517f This quite trivial patch adds support for HiDPI (i.e. "retina") displays on OS X.
The reason for this issue is that you guys use a heavily trimmed down Info.plist
file, which among others doesn't contain the NSPrincipalClass key.
Without that key an OS X application is treated as a legacy one and thus won't
support many "new" features including HiDPI displays.
By adding the key back, you a) follow the recommended Info.plist style and
b) get HiDPI support for free!

Apart from that I _really_ recommend adding the following keys too (mostly
keys added by default by Xcode - I've guessed the values):

<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>pgAdmin 4</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleVersion</key>
<string>1.0.0</string>
<key>LSMinimumSystemVersion</key>
<string>10.9</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2016 The pgAdmin Development Team. All rights reserved.</string>
2016-06-11 18:14:47 +01:00
Neel Patel
d1a0a9bab2 Icon for the Windows runtime executable. Fixes #1310 2016-06-08 10:54:28 +01:00
Dave Page
4380c6714e Fix venv search path on Mac. 2016-06-07 12:12:39 +01:00
Sandeep Thakkar
3074af101b Add Mac Appbundle generation support. 2016-06-02 13:56:56 +01:00
Neel Patel
b64868079a QWebView does not render checkbox, and radio button propoerly on
MacOSX.

In order to fix it, we need to set 'style' to 'funsion' on MacOSX.

Reference:
https://bugreports.qt.io/browse/QTBUG-43366
2016-06-02 15:15:56 +05:30
Ashesh Vashi
fddc30c99f [Runtime] Adding python libs in the LIBS build environment. 2016-06-02 13:12:45 +05:30
Neel Patel
7b2e4fb467 Add Inspection support to the runtime when built in debug mode. 2016-05-19 09:33:00 -04:00
Dave Page
a5bb65c468 Search path for the runtime when running in a Mac dev env. 2016-05-10 16:39:02 +01:00
Sandeep Thakkar
c8406a5994 Fix the runtime search path when running in a Mac App Bundle 2016-05-06 15:53:00 +01:00
Vladimir Koković
2d5c69503e Ensure runtime settings are synced after they are updated. 2016-04-16 19:00:49 -04:00
Neel Patel
3b7886e61e Runtime fixes for QT4 support. 2016-02-23 09:10:49 +00:00
Ashesh Vashi
9274d87c55 Creating separate .gitignore for runtime, and added them in .gitignore
new temporary files created by qmake.
2016-02-18 17:12:53 +05:30
Neel Patel
8a06d5bd54 Remove a duplicate code line and add Windows environment setup info. 2016-02-03 09:58:58 +00:00
Neel Patel
efc8815ecb Update the runtime to properly support Windows. 2016-02-02 13:16:01 +00:00
Neel Patel
d6d8a2348e Fix tab auto-hiding to work with Qt < 5.4. 2016-01-26 10:03:15 +00:00
Dave Page
39e822e846 Further nice-ification of the runtime UI. 2016-01-25 17:21:00 +00:00
Dave Page
f1f09242ed Set the window title. 2016-01-22 14:24:06 +00:00
Dave Page
af742011a5 Further UI improvements for the runtime. 2016-01-22 14:24:06 +00:00
Dave Page
b39943e3ff Fix comment 2016-01-21 09:07:48 +00:00
Dave Page
7c9347873f Use a custom configuration dialogue and allow the user to specify
the application path as well as the Python path.
2016-01-19 10:26:36 +00:00
Neel Patel
8f146ebb4c Support tabs in the runtime browser.
Added functionality to open different website link and load the
website data to different tab. To achieve this, new customized
QTabWidget and QWebView are added to render the data to WebView
widget. All the widgets (New Tab, WebViewWinodw, and QToolButton)
are added dynamically. QToolButton is used to traverse back and
forward to web document opened in WebViewWindow.

Introduced the New class called WebViewWindow which is derived
from QWebView. Each tab of the QTabWidget contains the instance
of WebViewWindow class. WebViewWindow class is useful to display
the web document.

Introduced New class called TabWindow which is derived from
QTabWidget. This class is useful to achieve following functionality:
  - Customize the close button of tabbar so that it can only be
    visible other then main pgAdmin 4 window.
  - Enable/Disable the toolbutton added left side of tabbar
    depending on the web history traversed by the user in WebViewWindow.
  - Set the tooltip text of the tabbar depending on the title change
    event of WebViewWindow class.

Modified the Qt project file to support the both the version
of python 2 and python 3.

Qt5 is recommended to test pgAdmin4 in dektop mode.
2016-01-18 14:33:28 +00:00
Dave Page
07fac62bce Improve sizing of Python Path input box. 2016-01-14 15:53:29 +00:00
Dave Page
81405dbe0a Use the modern pgAdmin icon on Mac 2016-01-14 15:22:49 +00:00
Dave Page
2354c3e07d Allow multiple Python Path elements to be given in a semi-colon delimited list. 2016-01-12 13:50:49 +00:00
Prasad Somwanshi
6c62d9eecd sleep api used in pgAdmin4.cpp doesn't seem cross-platform(used from POSIX
specific C header). Either need to be replaced by C++11 equivalent or Qt
one. QThread::sleep seem appropriate to me.
2015-10-29 11:24:07 +01:00
Dave Page
fe834d1ed2 Re-organise node structure and loading to make things somewhat more
simple. This also adds the ability to display servers on the treeview.
2015-03-10 13:09:11 +00:00
Dave Page
5cffcabc70 Update the runtime to use URLs provided by the utils module. 2015-01-20 13:56:37 +00:00
Dave Page
cd9d005c49 Remove CherryPy from the source tree, and change references to Flask
instead. Add support to the runtime to allow the user to specify the
Python path. This needs to be more automated for release, but will be
useful for debugging and development.
2014-12-16 12:53:09 +00:00
Dave Page
1db7d968e2 Fix merge error. 2014-03-09 14:39:12 +00:00
Dave Page
b022e5d347 Have the runtime check in a loop to see if the app server is up before
opening the browser window.
2013-10-04 21:49:12 +01:00
Dave Page
457a842cec Find a random port number to use for the application server to avoid conflicts
with any other apps that may have already bound to the default port used by CP.
2013-10-04 21:48:01 +01:00
Dave Page
a1524f3726 Add a qmake cache. 2013-10-04 21:42:16 +01:00
Dave Page
467d7d571b Include pgAdmin4.h in the project file. 2013-10-04 21:42:16 +01:00
Dave Page
7a066ec4b2 Save/restore the window position. 2013-10-04 21:42:16 +01:00
Dave Page
2d8f6481dc Fix a display issue in the Linux error handling.
Linux won't refresh the qWebView unless we explicitly process
events after telling it to load the page again.
2013-06-22 00:59:34 +01:00
Dave Page
9080a782d5 Handle slow startup of the web server.
If the web server is slow to start, we may need to retry the initial
page load. Implement a retry system that will retry the initial load
4 times, after 1, 2, 3 and 4 seconds, before giving up and leaving
the user with an error message and a link to retry manually.
2013-06-22 00:49:40 +01:00
Dave Page
7fd90ac10f QT4 compatibility. 2013-06-21 23:32:32 +01:00
Dave Page
28f45ea9f9 Initial PoC of a CherryPy app integrate with the runtime.
Upon startup, the runtime will attempt to locate pgAdmin4.py in a
number of different relative locations. Once found, it will execute
it in a new thread. The main window is then created and the brower's
initial page is set to the root of the CherryPy server. At present,
that's http://127.0.0.1:8080.
2013-06-21 23:21:11 +01:00
Dave Page
38ff104cb9 Add a very experimental QT based runtime for pgAdmin 4.
This runtime implements a brower control with embedded Python
interpretor. The Python interpretor runs a simple script at
startup to generate some HTML that is displayed in the browser.
Arbitrary URLs can be opened from the "Open URL" option on the
File menu.
2013-06-16 14:17:46 +01:00