Sat, 04 Feb 2012 19:03:49 +0100
A fix for the web browser.
(transplanted from 470b03ae90e769ed61ea58f9f3403dc5dbf473c9)
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
1509
c0b5e693b0eb
Updated copyright for 2012.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1506
diff
changeset
|
3 | # Copyright (c) 2008 - 2012 Detlev Offenbach <detlev@die-offenbachs.de> |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | Module implementing the helpbrowser using QWebView. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | |
1112
8a7d1b9d18db
Improved code quality by getting rid of star imports. That way pyflakes can do its job. A few bugs fixed found by flakes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
992
diff
changeset
|
11 | from PyQt4.QtCore import pyqtSlot, pyqtSignal, QObject, QT_TRANSLATE_NOOP, QUrl, \ |
8a7d1b9d18db
Improved code quality by getting rid of star imports. That way pyflakes can do its job. A few bugs fixed found by flakes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
992
diff
changeset
|
12 | QBuffer, QIODevice, QByteArray, QFileInfo, Qt, QTimer, QEvent, QRect |
8a7d1b9d18db
Improved code quality by getting rid of star imports. That way pyflakes can do its job. A few bugs fixed found by flakes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
992
diff
changeset
|
13 | from PyQt4.QtGui import qApp, QDesktopServices, QStyle, QMenu, QApplication, \ |
8a7d1b9d18db
Improved code quality by getting rid of star imports. That way pyflakes can do its job. A few bugs fixed found by flakes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
992
diff
changeset
|
14 | QInputDialog, QLineEdit, QClipboard, QMouseEvent, QLabel, QToolTip, QColor, \ |
8a7d1b9d18db
Improved code quality by getting rid of star imports. That way pyflakes can do its job. A few bugs fixed found by flakes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
992
diff
changeset
|
15 | QPalette, QFrame |
381
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
16 | from PyQt4 import QtWebKit |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | from PyQt4.QtWebKit import QWebView, QWebPage, QWebSettings |
381
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
18 | try: |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
19 | from PyQt4.QtWebKit import QWebElement |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
20 | except ImportError: |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
21 | pass |
96
9624a110667d
Started to clean up the code supported by py3flakes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
38
diff
changeset
|
22 | from PyQt4.QtNetwork import QNetworkReply, QNetworkRequest |
260
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
23 | import sip |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
535
diff
changeset
|
25 | from E5Gui import E5MessageBox |
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
535
diff
changeset
|
26 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | import Preferences |
978
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
952
diff
changeset
|
28 | import UI.PixmapCache |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
30 | from .Bookmarks.AddBookmarkDialog import AddBookmarkDialog |
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
31 | from .JavaScriptResources import fetchLinks_js |
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
32 | from .HTMLResources import notFoundPage_html |
923
e224bdbf88ad
Fixed an issue related to the non-availability of SSL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
33 | try: |
e224bdbf88ad
Fixed an issue related to the non-availability of SSL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
34 | from .SslInfoDialog import SslInfoDialog |
e224bdbf88ad
Fixed an issue related to the non-availability of SSL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
35 | SSL_AVAILABLE = True |
e224bdbf88ad
Fixed an issue related to the non-availability of SSL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
36 | except ImportError: |
e224bdbf88ad
Fixed an issue related to the non-availability of SSL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
37 | SSL_AVAILABLE = False |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | import Helpviewer.HelpWindow |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
40 | from .Network.NetworkAccessManagerProxy import NetworkAccessManagerProxy |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
42 | from .OpenSearch.OpenSearchEngineAction import OpenSearchEngineAction |
381
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
43 | from .OpenSearch.OpenSearchEngine import OpenSearchEngine |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | ########################################################################################## |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
47 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | class JavaScriptExternalObject(QObject): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | Class implementing an external javascript object to add search providers. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
52 | def __init__(self, mw, parent=None): |
142
94ce651735db
Added code to (hopefully) fix the "Underlying C++ object deleted" issue in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
53 | """ |
94ce651735db
Added code to (hopefully) fix the "Underlying C++ object deleted" issue in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
54 | Constructor |
94ce651735db
Added code to (hopefully) fix the "Underlying C++ object deleted" issue in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
55 | |
94ce651735db
Added code to (hopefully) fix the "Underlying C++ object deleted" issue in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
56 | @param mw reference to the main window 8HelpWindow) |
94ce651735db
Added code to (hopefully) fix the "Underlying C++ object deleted" issue in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
57 | @param parent reference to the parent object (QObject) |
94ce651735db
Added code to (hopefully) fix the "Underlying C++ object deleted" issue in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
58 | """ |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
59 | super().__init__(parent) |
142
94ce651735db
Added code to (hopefully) fix the "Underlying C++ object deleted" issue in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
60 | |
94ce651735db
Added code to (hopefully) fix the "Underlying C++ object deleted" issue in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
61 | self.__mw = mw |
94ce651735db
Added code to (hopefully) fix the "Underlying C++ object deleted" issue in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
62 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | @pyqtSlot(str) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | def AddSearchProvider(self, url): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | Public slot to add a search provider. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | @param url url of the XML file defining the search provider (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | """ |
826
2e3e2055e715
Fixed a few PEP 8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
70 | self.__mw.openSearchManager().addEngine(QUrl(url)) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
72 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | class LinkedResource(object): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | Class defining a data structure for linked resources. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | def __init__(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | Constructor |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | self.rel = "" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | self.type_ = "" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | self.href = "" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | self.title = "" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | ########################################################################################## |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
88 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | class JavaScriptEricObject(QObject): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | Class implementing an external javascript object to search via the startpage. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | # these must be in line with the strings used by the javascript part of the start page |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | translations = [ |
1232
ed31e909cf2e
Harmonisation of some display strings related to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
95 | QT_TRANSLATE_NOOP("JavaScriptEricObject", "Welcome to eric5 Web Browser!"), |
ed31e909cf2e
Harmonisation of some display strings related to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
96 | QT_TRANSLATE_NOOP("JavaScriptEricObject", "eric5 Web Browser"), |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
97 | QT_TRANSLATE_NOOP("JavaScriptEricObject", "Search!"), |
1232
ed31e909cf2e
Harmonisation of some display strings related to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
98 | QT_TRANSLATE_NOOP("JavaScriptEricObject", "About eric5"), |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | ] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
101 | def __init__(self, mw, parent=None): |
142
94ce651735db
Added code to (hopefully) fix the "Underlying C++ object deleted" issue in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
102 | """ |
94ce651735db
Added code to (hopefully) fix the "Underlying C++ object deleted" issue in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
103 | Constructor |
94ce651735db
Added code to (hopefully) fix the "Underlying C++ object deleted" issue in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
104 | |
94ce651735db
Added code to (hopefully) fix the "Underlying C++ object deleted" issue in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
105 | @param mw reference to the main window 8HelpWindow) |
94ce651735db
Added code to (hopefully) fix the "Underlying C++ object deleted" issue in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
106 | @param parent reference to the parent object (QObject) |
94ce651735db
Added code to (hopefully) fix the "Underlying C++ object deleted" issue in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
107 | """ |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
108 | super().__init__(parent) |
142
94ce651735db
Added code to (hopefully) fix the "Underlying C++ object deleted" issue in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
109 | |
94ce651735db
Added code to (hopefully) fix the "Underlying C++ object deleted" issue in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
110 | self.__mw = mw |
94ce651735db
Added code to (hopefully) fix the "Underlying C++ object deleted" issue in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
111 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
112 | @pyqtSlot(str, result=str) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | def translate(self, trans): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115 | Public method to translate the given string. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | @param trans string to be translated (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | @return translation (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | if trans == "QT_LAYOUT_DIRECTION": |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | # special handling to detect layout direction |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | if qApp.isLeftToRight(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | return "LTR" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | return "RTL" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | return self.trUtf8(trans) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
129 | @pyqtSlot(result=str) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | def providerString(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | Public method to get a string for the search provider. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | @return string for the search provider (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | return self.trUtf8("Search results provided by {0}")\ |
142
94ce651735db
Added code to (hopefully) fix the "Underlying C++ object deleted" issue in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
137 | .format(self.__mw.openSearchManager().currentEngineName()) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
139 | @pyqtSlot(str, result=str) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | def searchUrl(self, searchStr): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | Public method to get the search URL for the given search term. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144 | @param searchStr search term (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145 | @return search URL (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | """ |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
147 | return bytes( |
142
94ce651735db
Added code to (hopefully) fix the "Underlying C++ object deleted" issue in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
148 | self.__mw.openSearchManager().currentEngine()\ |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
149 | .searchUrl(searchStr).toEncoded()).decode() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | ########################################################################################## |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
153 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | class HelpWebPage(QWebPage): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | Class implementing an enhanced web page. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
158 | def __init__(self, parent=None): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | Constructor |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162 | @param parent parent widget of this window (QWidget) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163 | """ |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
164 | super().__init__(parent) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166 | self.__lastRequest = None |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | self.__lastRequestType = QWebPage.NavigationTypeOther |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
168 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | self.__proxy = NetworkAccessManagerProxy(self) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | self.__proxy.setWebPage(self) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | self.__proxy.setPrimaryNetworkAccessManager( |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | Helpviewer.HelpWindow.HelpWindow.networkAccessManager()) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | self.setNetworkAccessManager(self.__proxy) |
656
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
174 | |
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
175 | self.__sslInfo = None |
747
48f13a14f754
Fixed a compatibility issue with latest PyQt4 snapshots.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
676
diff
changeset
|
176 | self.__proxy.finished.connect(self.__managerFinished) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
177 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
178 | def acceptNavigationRequest(self, frame, request, type_): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
179 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
180 | Protected method to determine, if a request may be accepted. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
181 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
182 | @param frame reference to the frame sending the request (QWebFrame) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
183 | @param request reference to the request object (QNetworkRequest) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
184 | @param type_ type of the navigation request (QWebPage.NavigationType) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
185 | @return flag indicating acceptance (boolean) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
186 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
187 | self.__lastRequest = request |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
188 | self.__lastRequestType = type_ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189 | |
757
d3daf1d8f058
Fixed the handling of 'javascript' schemes in the web browser and enhanced the download manager a bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
748
diff
changeset
|
190 | scheme = request.url().scheme() |
d3daf1d8f058
Fixed the handling of 'javascript' schemes in the web browser and enhanced the download manager a bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
748
diff
changeset
|
191 | if scheme == "mailto": |
d3daf1d8f058
Fixed the handling of 'javascript' schemes in the web browser and enhanced the download manager a bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
748
diff
changeset
|
192 | QDesktopServices.openUrl(request.url()) |
d3daf1d8f058
Fixed the handling of 'javascript' schemes in the web browser and enhanced the download manager a bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
748
diff
changeset
|
193 | return False |
d3daf1d8f058
Fixed the handling of 'javascript' schemes in the web browser and enhanced the download manager a bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
748
diff
changeset
|
194 | |
675
2f626dcab902
Added check for a form resubmission to the web page class of the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
195 | if type_ == QWebPage.NavigationTypeFormResubmitted: |
747
48f13a14f754
Fixed a compatibility issue with latest PyQt4 snapshots.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
676
diff
changeset
|
196 | res = E5MessageBox.yesNo(self.view(), |
48f13a14f754
Fixed a compatibility issue with latest PyQt4 snapshots.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
676
diff
changeset
|
197 | self.trUtf8("Resending POST request"), |
675
2f626dcab902
Added check for a form resubmission to the web page class of the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
198 | self.trUtf8("""In order to display the site, the request along with""" |
2f626dcab902
Added check for a form resubmission to the web page class of the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
199 | """ all the data must be sent once again, which may lead""" |
2f626dcab902
Added check for a form resubmission to the web page class of the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
200 | """ to some unexpected behaviour of the site e.g. the""" |
2f626dcab902
Added check for a form resubmission to the web page class of the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
201 | """ same action might be performed once again. Do you want""" |
747
48f13a14f754
Fixed a compatibility issue with latest PyQt4 snapshots.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
676
diff
changeset
|
202 | """ to continue anyway?"""), |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
203 | icon=E5MessageBox.Warning) |
675
2f626dcab902
Added check for a form resubmission to the web page class of the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
204 | if not res: |
2f626dcab902
Added check for a form resubmission to the web page class of the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
205 | return False |
2f626dcab902
Added check for a form resubmission to the web page class of the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
206 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
207 | return QWebPage.acceptNavigationRequest(self, frame, request, type_) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
208 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
209 | def populateNetworkRequest(self, request): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
210 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
211 | Public method to add data to a network request. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
212 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
213 | @param request reference to the network request object (QNetworkRequest) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
214 | """ |
1595
e95a7d864c6f
A fix for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1585
diff
changeset
|
215 | try: |
e95a7d864c6f
A fix for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1585
diff
changeset
|
216 | request.setAttribute(QNetworkRequest.User + 100, self) |
e95a7d864c6f
A fix for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1585
diff
changeset
|
217 | request.setAttribute(QNetworkRequest.User + 101, self.__lastRequestType) |
e95a7d864c6f
A fix for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1585
diff
changeset
|
218 | except TypeError: |
e95a7d864c6f
A fix for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1585
diff
changeset
|
219 | pass |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
220 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
221 | def pageAttributeId(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
222 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
223 | Public method to get the attribute id of the page attribute. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
224 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
225 | @return attribute id of the page attribute (integer) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
226 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
227 | return QNetworkRequest.User + 100 |
260
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
228 | |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
229 | def supportsExtension(self, extension): |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
230 | """ |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
231 | Public method to check the support for an extension. |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
232 | |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
233 | @param extension extension to test for (QWebPage.Extension) |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
234 | @return flag indicating the support of extension (boolean) |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
235 | """ |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
236 | try: |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
237 | if extension == QWebPage.ErrorPageExtension: |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
238 | return True |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
239 | except AttributeError: |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
240 | pass |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
241 | |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
242 | return QWebPage.supportsExtension(self, extension) |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
243 | |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
244 | def extension(self, extension, option, output): |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
245 | """ |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
246 | Public method to implement a specific extension. |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
247 | |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
248 | @param extension extension to be executed (QWebPage.Extension) |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
249 | @param option provides input to the extension (QWebPage.ExtensionOption) |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
250 | @param output stores the output results (QWebPage.ExtensionReturn) |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
251 | @return flag indicating a successful call of the extension (boolean) |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
252 | """ |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
253 | try: |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
254 | if extension == QWebPage.ErrorPageExtension: |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
255 | info = sip.cast(option, QWebPage.ErrorPageExtensionOption) |
653
0540f3c52b46
Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
641
diff
changeset
|
256 | if info.error == 102: |
0540f3c52b46
Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
641
diff
changeset
|
257 | # this is something of a hack; hopefully it will work in the future |
0540f3c52b46
Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
641
diff
changeset
|
258 | return False |
0540f3c52b46
Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
641
diff
changeset
|
259 | |
260
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
260 | errorPage = sip.cast(output, QWebPage.ErrorPageExtensionReturn) |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
261 | urlString = bytes(info.url.toEncoded()).decode() |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
262 | html = notFoundPage_html |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
263 | title = self.trUtf8("Error loading page: {0}").format(urlString) |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
264 | pixmap = qApp.style()\ |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
265 | .standardIcon(QStyle.SP_MessageBoxWarning, None, self.parent())\ |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
266 | .pixmap(32, 32) |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
267 | imageBuffer = QBuffer() |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
268 | imageBuffer.open(QIODevice.ReadWrite) |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
269 | if pixmap.save(imageBuffer, "PNG"): |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
270 | html = html.replace("IMAGE_BINARY_DATA_HERE", |
278
c93823b96faa
Added a handler for ftp: URLs to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
260
diff
changeset
|
271 | str(imageBuffer.buffer().toBase64(), encoding="ascii")) |
260
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
272 | errorPage.content = QByteArray(html.format( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
273 | title, |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
274 | info.errorString, |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
275 | self.trUtf8("When connecting to: {0}.").format(urlString), |
260
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
276 | self.trUtf8("Check the address for errors such as " |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
277 | "<b>ww</b>.example.org instead of " |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
278 | "<b>www</b>.example.org"), |
260
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
279 | self.trUtf8("If the address is correct, try checking the network " |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
280 | "connection."), |
260
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
281 | self.trUtf8("If your computer or network is protected by a firewall " |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
282 | "or proxy, make sure that the browser is permitted to " |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
283 | "access the network."), |
629
c88489b378fb
Added configuration options for the web browser cache policy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
284 | self.trUtf8("If your cache policy is set to offline browsing," |
c88489b378fb
Added configuration options for the web browser cache policy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
285 | "only pages in the local cache are available.") |
260
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
286 | ).encode("utf8")) |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
287 | return True |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
288 | except AttributeError: |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
289 | pass |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
290 | |
21f7999b7abe
Fixed an issue causing the web browser not to show an error page due to a changed Qt API (>= 4.6; needs a patch to PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
256
diff
changeset
|
291 | return QWebPage.extension(self, extension, option, output) |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
292 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
293 | def userAgent(self, resolveEmpty=False): |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
294 | """ |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
295 | Public method to get the current user agent setting. |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
296 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
297 | @param resolveEmpty flag indicating to resolve an empty |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
298 | user agent (boolean) |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
299 | @return user agent string (string) |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
300 | """ |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
301 | agent = Preferences.getHelp("UserAgent") |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
302 | if agent == "" and resolveEmpty: |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
303 | agent = self.userAgentForUrl(QUrl()) |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
304 | return agent |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
305 | |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
306 | def setUserAgent(self, agent): |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
307 | """ |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
308 | Public method to set the current user agent string. |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
309 | |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
310 | @param agent new current user agent string (string) |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
311 | """ |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
312 | Preferences.setHelp("UserAgent", agent) |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
313 | |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
314 | def userAgentForUrl(self, url): |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
315 | """ |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
316 | Protected method to determine the user agent for the given URL. |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
317 | |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
318 | @param url URL to determine user agent for (QUrl) |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
319 | @return user agent string (string) |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
320 | """ |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
321 | agent = Preferences.getHelp("UserAgent") |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
322 | if agent == "": |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
323 | agent = QWebPage.userAgentForUrl(self, url) |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
324 | return agent |
656
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
325 | |
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
326 | def __managerFinished(self, reply): |
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
327 | """ |
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
328 | Private slot to handle a finished reply. |
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
329 | |
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
330 | This slot is used to get SSL related information for a reply. |
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
331 | |
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
332 | @param reply reference to the finished reply (QNetworkReply) |
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
333 | """ |
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
334 | try: |
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
335 | frame = reply.request().originatingObject() |
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
336 | except AttributeError: |
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
337 | frame = None |
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
338 | |
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
339 | mainFrameRequest = frame == self.mainFrame() |
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
340 | |
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
341 | if mainFrameRequest and \ |
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
342 | self.__sslInfo is not None and \ |
657
099d1ab9073e
Added the SSL info label to the URL bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
656
diff
changeset
|
343 | reply.url() == self.mainFrame().url(): |
656
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
344 | self.__sslInfo = None |
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
345 | |
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
346 | if reply.error() == QNetworkReply.NoError and \ |
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
347 | mainFrameRequest and \ |
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
348 | self.__sslInfo is None and \ |
657
099d1ab9073e
Added the SSL info label to the URL bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
656
diff
changeset
|
349 | reply.url().scheme().lower() == "https" and \ |
099d1ab9073e
Added the SSL info label to the URL bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
656
diff
changeset
|
350 | reply.url() == self.mainFrame().url(): |
656
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
351 | self.__sslInfo = reply.sslConfiguration().peerCertificate() |
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
352 | self.__sslInfo.url = QUrl(reply.url()) |
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
353 | |
657
099d1ab9073e
Added the SSL info label to the URL bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
656
diff
changeset
|
354 | def getSslInfo(self): |
656
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
355 | """ |
657
099d1ab9073e
Added the SSL info label to the URL bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
656
diff
changeset
|
356 | Public method to get a reference to the SSL info object. |
656
2f4496b1956f
Started adding code to the web browser to extract SSL information from replies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
653
diff
changeset
|
357 | |
657
099d1ab9073e
Added the SSL info label to the URL bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
656
diff
changeset
|
358 | @return reference to the SSL info (QSslCertificate) |
099d1ab9073e
Added the SSL info label to the URL bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
656
diff
changeset
|
359 | """ |
099d1ab9073e
Added the SSL info label to the URL bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
656
diff
changeset
|
360 | return self.__sslInfo |
658
2856f7ea6780
Started implementing the SSL info display.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
657
diff
changeset
|
361 | |
2856f7ea6780
Started implementing the SSL info display.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
657
diff
changeset
|
362 | def showSslInfo(self): |
2856f7ea6780
Started implementing the SSL info display.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
657
diff
changeset
|
363 | """ |
2856f7ea6780
Started implementing the SSL info display.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
657
diff
changeset
|
364 | Public slot to show some SSL information for the loaded page. |
2856f7ea6780
Started implementing the SSL info display.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
657
diff
changeset
|
365 | """ |
923
e224bdbf88ad
Fixed an issue related to the non-availability of SSL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
366 | if SSL_AVAILABLE and self.__sslInfo is not None: |
659
b53e67ae2021
Added code to show certificate info for https URLs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
658
diff
changeset
|
367 | dlg = SslInfoDialog(self.__sslInfo, self.view()) |
b53e67ae2021
Added code to show certificate info for https URLs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
658
diff
changeset
|
368 | dlg.exec_() |
664
3061f8bd826e
Fixed a few issues on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
661
diff
changeset
|
369 | else: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
370 | E5MessageBox.warning(self.view(), |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
371 | self.trUtf8("SSL Certificate Info"), |
664
3061f8bd826e
Fixed a few issues on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
661
diff
changeset
|
372 | self.trUtf8("""There is no SSL Certificate Info available.""")) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
373 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
374 | ########################################################################################## |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
375 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
376 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
377 | class HelpBrowser(QWebView): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
378 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
379 | Class implementing the helpbrowser widget. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
380 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
381 | This is a subclass of the Qt QWebView to implement an |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
382 | interface compatible with the QTextBrowser based variant. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
383 | |
501
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
487
diff
changeset
|
384 | @signal sourceChanged(QUrl) emitted after the current URL has changed |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
385 | @signal forwardAvailable(bool) emitted after the current URL has changed |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
386 | @signal backwardAvailable(bool) emitted after the current URL has changed |
501
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
487
diff
changeset
|
387 | @signal highlighted(str) emitted, when the mouse hovers over a link |
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
487
diff
changeset
|
388 | @signal search(QUrl) emitted, when a search is requested |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
389 | """ |
487
4d41d03d3d00
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
383
diff
changeset
|
390 | sourceChanged = pyqtSignal(QUrl) |
4d41d03d3d00
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
383
diff
changeset
|
391 | forwardAvailable = pyqtSignal(bool) |
4d41d03d3d00
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
383
diff
changeset
|
392 | backwardAvailable = pyqtSignal(bool) |
4d41d03d3d00
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
383
diff
changeset
|
393 | highlighted = pyqtSignal(str) |
4d41d03d3d00
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
383
diff
changeset
|
394 | search = pyqtSignal(QUrl) |
4d41d03d3d00
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
383
diff
changeset
|
395 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
396 | def __init__(self, mainWindow, parent=None, name=""): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
397 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
398 | Constructor |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
399 | |
638
265c31231d9d
Did some refactoring of the web browser code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
634
diff
changeset
|
400 | @param mainWindow reference to the main window (HelpWindow) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
401 | @param parent parent widget of this window (QWidget) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
402 | @param name name of this window (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
403 | """ |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
404 | super().__init__(parent) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
405 | self.setObjectName(name) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
406 | self.setWhatsThis(self.trUtf8( |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
407 | """<b>Help Window</b>""" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
408 | """<p>This window displays the selected help information.</p>""" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
409 | )) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
410 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
411 | self.__page = HelpWebPage(self) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
412 | self.setPage(self.__page) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
413 | |
638
265c31231d9d
Did some refactoring of the web browser code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
634
diff
changeset
|
414 | self.mw = mainWindow |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
415 | self.ctrlPressed = False |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
416 | self.__isLoading = False |
634
7b84cbd2f752
Added tab previews to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
629
diff
changeset
|
417 | self.__progress = 0 |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
418 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
419 | self.__currentZoom = 100 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
420 | self.__zoomLevels = [ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
421 | 30, 50, 67, 80, 90, |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
422 | 100, |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
423 | 110, 120, 133, 150, 170, 200, 240, 300, |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
424 | ] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
425 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
426 | self.__javaScriptBinding = None |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
427 | self.__javaScriptEricObject = None |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
428 | |
487
4d41d03d3d00
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
383
diff
changeset
|
429 | self.mw.zoomTextOnlyChanged.connect(self.__applyZoom) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
430 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
431 | self.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks) |
487
4d41d03d3d00
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
383
diff
changeset
|
432 | self.linkClicked.connect(self.setSource) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
433 | |
487
4d41d03d3d00
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
383
diff
changeset
|
434 | self.urlChanged.connect(self.__urlChanged) |
4d41d03d3d00
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
383
diff
changeset
|
435 | self.statusBarMessage.connect(self.__statusBarMessage) |
4d41d03d3d00
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
383
diff
changeset
|
436 | self.page().linkHovered.connect(self.__linkHovered) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
437 | |
487
4d41d03d3d00
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
383
diff
changeset
|
438 | self.loadStarted.connect(self.__loadStarted) |
4d41d03d3d00
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
383
diff
changeset
|
439 | self.loadProgress.connect(self.__loadProgress) |
4d41d03d3d00
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
383
diff
changeset
|
440 | self.loadFinished.connect(self.__loadFinished) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
441 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
442 | self.page().setForwardUnsupportedContent(True) |
487
4d41d03d3d00
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
383
diff
changeset
|
443 | self.page().unsupportedContent.connect(self.__unsupportedContent) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
444 | |
487
4d41d03d3d00
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
383
diff
changeset
|
445 | self.page().downloadRequested.connect(self.__downloadRequested) |
4d41d03d3d00
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
383
diff
changeset
|
446 | self.page().frameCreated.connect(self.__addExternalBinding) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
447 | self.__addExternalBinding(self.page().mainFrame()) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
448 | |
487
4d41d03d3d00
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
383
diff
changeset
|
449 | self.page().databaseQuotaExceeded.connect(self.__databaseQuotaExceeded) |
350
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
450 | |
487
4d41d03d3d00
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
383
diff
changeset
|
451 | self.mw.openSearchManager().currentEngineChanged.connect( |
4d41d03d3d00
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
383
diff
changeset
|
452 | self.__currentEngineChanged) |
952
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
453 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
454 | self.setAcceptDrops(True) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
455 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
456 | if hasattr(QtWebKit, 'QWebElement'): |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
457 | self.__enableAccessKeys = Preferences.getHelp("AccessKeysEnabled") |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
458 | self.__accessKeysPressed = False |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
459 | self.__accessKeyLabels = [] |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
460 | self.__accessKeyNodes = {} |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
461 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
462 | self.page().loadStarted.connect(self.__hideAccessKeys) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
463 | self.page().scrollRequested.connect(self.__hideAccessKeys) |
1415
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
464 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
465 | self.__rss = [] |
1518
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
466 | |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
467 | self.grabGesture(Qt.PinchGesture) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
468 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
469 | def __addExternalBinding(self, frame=None): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
470 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
471 | Private slot to add javascript bindings for adding search providers. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
472 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
473 | @param frame reference to the web frame (QWebFrame) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
474 | """ |
381
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
475 | if not hasattr(QtWebKit, 'QWebElement'): |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
476 | # test this only for Qt < 4.6.0 |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
477 | if not QWebSettings.globalSettings()\ |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
478 | .testAttribute(QWebSettings.JavascriptEnabled): |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
479 | return |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
480 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
481 | self.page().settings().setAttribute(QWebSettings.JavascriptEnabled, True) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
482 | if self.__javaScriptBinding is None: |
142
94ce651735db
Added code to (hopefully) fix the "Underlying C++ object deleted" issue in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
483 | self.__javaScriptBinding = JavaScriptExternalObject(self.mw, self) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
484 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
485 | if frame is None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
486 | # called from QWebFrame.javaScriptWindowObjectCleared |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
487 | frame = self.sender() |
1585
98c4345f856a
A little fix for the help browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1518
diff
changeset
|
488 | if isinstance(frame, HelpWebPage): |
98c4345f856a
A little fix for the help browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1518
diff
changeset
|
489 | frame = frame.mainFrame() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
490 | if frame.url().scheme() == "pyrc" and frame.url().path() == "home": |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
491 | if self.__javaScriptEricObject is None: |
142
94ce651735db
Added code to (hopefully) fix the "Underlying C++ object deleted" issue in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
492 | self.__javaScriptEricObject = JavaScriptEricObject(self.mw, self) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
493 | frame.addToJavaScriptWindowObject("eric", self.__javaScriptEricObject) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
494 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
495 | # called from QWebPage.frameCreated |
487
4d41d03d3d00
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
383
diff
changeset
|
496 | frame.javaScriptWindowObjectCleared.connect(self.__addExternalBinding) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
497 | frame.addToJavaScriptWindowObject("external", self.__javaScriptBinding) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
498 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
499 | def linkedResources(self, relation=""): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
500 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
501 | Public method to extract linked resources. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
502 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
503 | @param relation relation to extract (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
504 | @return list of linked resources (list of LinkedResource) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
505 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
506 | resources = [] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
507 | |
381
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
508 | if hasattr(QtWebKit, 'QWebElement'): |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
509 | baseUrl = self.page().mainFrame().baseUrl() |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
510 | |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
511 | linkElements = self.page().mainFrame().findAllElements("html > head > link") |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
512 | |
381
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
513 | for linkElement in linkElements.toList(): |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
514 | rel = linkElement.attribute("rel") |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
515 | href = linkElement.attribute("href") |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
516 | type_ = linkElement.attribute("type") |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
517 | title = linkElement.attribute("title") |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
518 | |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
519 | if href == "" or type_ == "": |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
520 | continue |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
521 | if relation and rel != relation: |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
522 | continue |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
523 | |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
524 | resource = LinkedResource() |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
525 | resource.rel = rel |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
526 | resource.type_ = type_ |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
527 | resource.href = baseUrl.resolved(QUrl.fromEncoded(href)) |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
528 | resource.title = title |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
529 | |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
530 | resources.append(resource) |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
531 | else: |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
532 | baseUrlString = self.page().mainFrame().evaluateJavaScript("document.baseURI") |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
533 | baseUrl = QUrl.fromEncoded(baseUrlString) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
534 | |
381
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
535 | lst = self.page().mainFrame().evaluateJavaScript(fetchLinks_js) |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
536 | for m in lst: |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
537 | rel = m["rel"] |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
538 | type_ = m["type"] |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
539 | href = m["href"] |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
540 | title = m["title"] |
381
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
541 | |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
542 | if href == "" or type_ == "": |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
543 | continue |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
544 | if relation and rel != relation: |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
545 | continue |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
546 | |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
547 | resource = LinkedResource() |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
548 | resource.rel = rel |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
549 | resource.type_ = type_ |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
550 | resource.href = baseUrl.resolved(QUrl.fromEncoded(href)) |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
551 | resource.title = title |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
552 | |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
553 | resources.append(resource) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
554 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
555 | return resources |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
556 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
557 | def __currentEngineChanged(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
558 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
559 | Private slot to track a change of the current search engine. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
560 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
561 | if self.url().toString() == "pyrc:home": |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
562 | self.reload() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
563 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
564 | def setSource(self, name): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
565 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
566 | Public method used to set the source to be displayed. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
567 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
568 | @param name filename to be shown (QUrl) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
569 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
570 | if name is None or not name.isValid(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
571 | return |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
572 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
573 | if self.ctrlPressed: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
574 | # open in a new window |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
575 | self.mw.newTab(name) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
576 | self.ctrlPressed = False |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
577 | return |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
578 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
579 | if not name.scheme(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
580 | name.setUrl(Preferences.getHelp("DefaultScheme") + name.toString()) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
581 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
582 | if len(name.scheme()) == 1 or \ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
583 | name.scheme() == "file": |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
584 | # name is a local file |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
585 | if name.scheme() and len(name.scheme()) == 1: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
586 | # it is a local path on win os |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
587 | name = QUrl.fromLocalFile(name.toString()) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
588 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
589 | if not QFileInfo(name.toLocalFile()).exists(): |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
535
diff
changeset
|
590 | E5MessageBox.critical(self, |
1232
ed31e909cf2e
Harmonisation of some display strings related to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
591 | self.trUtf8("eric5 Web Browser"), |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
592 | self.trUtf8("""<p>The file <b>{0}</b> does not exist.</p>""")\ |
535
4b00d7336e19
Streamlined the use of QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
593 | .format(name.toLocalFile())) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
594 | return |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
595 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
596 | if name.toLocalFile().endswith(".pdf") or \ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
597 | name.toLocalFile().endswith(".PDF") or \ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
598 | name.toLocalFile().endswith(".chm") or \ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
599 | name.toLocalFile().endswith(".CHM"): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
600 | started = QDesktopServices.openUrl(name) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
601 | if not started: |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
535
diff
changeset
|
602 | E5MessageBox.critical(self, |
1232
ed31e909cf2e
Harmonisation of some display strings related to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
603 | self.trUtf8("eric5 Web Browser"), |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
604 | self.trUtf8("""<p>Could not start a viewer""" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
605 | """ for file <b>{0}</b>.</p>""").format(name.path())) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
606 | return |
278
c93823b96faa
Added a handler for ftp: URLs to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
260
diff
changeset
|
607 | elif name.scheme() in ["mailto"]: |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
608 | started = QDesktopServices.openUrl(name) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
609 | if not started: |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
535
diff
changeset
|
610 | E5MessageBox.critical(self, |
1232
ed31e909cf2e
Harmonisation of some display strings related to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
611 | self.trUtf8("eric5 Web Browser"), |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
612 | self.trUtf8("""<p>Could not start an application""" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
613 | """ for URL <b>{0}</b>.</p>""").format(name.toString())) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
614 | return |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
615 | elif name.scheme() == "javascript": |
757
d3daf1d8f058
Fixed the handling of 'javascript' schemes in the web browser and enhanced the download manager a bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
748
diff
changeset
|
616 | scriptSource = QUrl.fromPercentEncoding(name.toString( |
d3daf1d8f058
Fixed the handling of 'javascript' schemes in the web browser and enhanced the download manager a bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
748
diff
changeset
|
617 | QUrl.FormattingOptions(QUrl.TolerantMode | QUrl.RemoveScheme))) |
d3daf1d8f058
Fixed the handling of 'javascript' schemes in the web browser and enhanced the download manager a bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
748
diff
changeset
|
618 | self.page().mainFrame().evaluateJavaScript(scriptSource) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
619 | return |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
620 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
621 | if name.toString().endswith(".pdf") or \ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
622 | name.toString().endswith(".PDF") or \ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
623 | name.toString().endswith(".chm") or \ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
624 | name.toString().endswith(".CHM"): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
625 | started = QDesktopServices.openUrl(name) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
626 | if not started: |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
535
diff
changeset
|
627 | E5MessageBox.critical(self, |
1232
ed31e909cf2e
Harmonisation of some display strings related to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
628 | self.trUtf8("eric5 Web Browser"), |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
629 | self.trUtf8("""<p>Could not start a viewer""" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
630 | """ for file <b>{0}</b>.</p>""").format(name.path())) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
631 | return |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
632 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
633 | self.load(name) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
634 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
635 | def source(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
636 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
637 | Public method to return the URL of the loaded page. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
638 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
639 | @return URL loaded in the help browser (QUrl) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
640 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
641 | return self.url() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
642 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
643 | def documentTitle(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
644 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
645 | Public method to return the title of the loaded page. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
646 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
647 | @return title (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
648 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
649 | return self.title() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
650 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
651 | def backward(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
652 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
653 | Public slot to move backwards in history. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
654 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
655 | self.triggerPageAction(QWebPage.Back) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
656 | self.__urlChanged(self.history().currentItem().url()) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
657 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
658 | def forward(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
659 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
660 | Public slot to move forward in history. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
661 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
662 | self.triggerPageAction(QWebPage.Forward) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
663 | self.__urlChanged(self.history().currentItem().url()) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
664 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
665 | def home(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
666 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
667 | Public slot to move to the first page loaded. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
668 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
669 | homeUrl = QUrl(Preferences.getHelp("HomePage")) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
670 | self.setSource(homeUrl) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
671 | self.__urlChanged(self.history().currentItem().url()) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
672 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
673 | def reload(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
674 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
675 | Public slot to reload the current page. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
676 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
677 | self.triggerPageAction(QWebPage.Reload) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
678 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
679 | def copy(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
680 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
681 | Public slot to copy the selected text. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
682 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
683 | self.triggerPageAction(QWebPage.Copy) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
684 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
685 | def isForwardAvailable(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
686 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
687 | Public method to determine, if a forward move in history is possible. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
688 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
689 | @return flag indicating move forward is possible (boolean) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
690 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
691 | return self.history().canGoForward() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
692 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
693 | def isBackwardAvailable(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
694 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
695 | Public method to determine, if a backwards move in history is possible. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
696 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
697 | @return flag indicating move backwards is possible (boolean) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
698 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
699 | return self.history().canGoBack() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
700 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
701 | def __levelForZoom(self, zoom): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
702 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
703 | Private method determining the zoom level index given a zoom factor. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
704 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
705 | @param zoom zoom factor (integer) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
706 | @return index of zoom factor (integer) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
707 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
708 | try: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
709 | index = self.__zoomLevels.index(zoom) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
710 | except ValueError: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
711 | for index in range(len(self.__zoomLevels)): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
712 | if zoom <= self.__zoomLevels[index]: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
713 | break |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
714 | return index |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
715 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
716 | def __applyZoom(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
717 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
718 | Private slot to apply the current zoom factor. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
719 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
720 | try: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
721 | self.setZoomFactor(self.__currentZoom / 100.0) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
722 | except AttributeError: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
723 | self.setTextSizeMultiplier(self.__currentZoom / 100.0) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
724 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
725 | def zoomIn(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
726 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
727 | Public slot to zoom into the page. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
728 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
729 | index = self.__levelForZoom(self.__currentZoom) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
730 | if index < len(self.__zoomLevels) - 1: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
731 | self.__currentZoom = self.__zoomLevels[index + 1] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
732 | self.__applyZoom() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
733 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
734 | def zoomOut(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
735 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
736 | Public slot to zoom out of the page. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
737 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
738 | index = self.__levelForZoom(self.__currentZoom) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
739 | if index > 0: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
740 | self.__currentZoom = self.__zoomLevels[index - 1] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
741 | self.__applyZoom() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
742 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
743 | def zoomReset(self): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
744 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
745 | Public method to reset the zoom factor. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
746 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
747 | self.__currentZoom = 100 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
748 | self.__applyZoom() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
749 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
750 | def hasSelection(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
751 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
752 | Public method to determine, if there is some text selected. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
753 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
754 | @return flag indicating text has been selected (boolean) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
755 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
756 | return self.selectedText() != "" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
757 | |
376
0c4c359c4870
Added option to highlight all occurences to the web browser search widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
350
diff
changeset
|
758 | def findNextPrev(self, txt, case, backwards, wrap, highlightAll): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
759 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
760 | Public slot to find the next occurrence of a text. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
761 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
762 | @param txt text to search for (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
763 | @param case flag indicating a case sensitive search (boolean) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
764 | @param backwards flag indicating a backwards search (boolean) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
765 | @param wrap flag indicating to wrap around (boolean) |
376
0c4c359c4870
Added option to highlight all occurences to the web browser search widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
350
diff
changeset
|
766 | @param highlightAll flag indicating to highlight all occurrences (boolean) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
767 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
768 | findFlags = QWebPage.FindFlags() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
769 | if case: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
770 | findFlags |= QWebPage.FindCaseSensitively |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
771 | if backwards: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
772 | findFlags |= QWebPage.FindBackward |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
773 | if wrap: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
774 | findFlags |= QWebPage.FindWrapsAroundDocument |
376
0c4c359c4870
Added option to highlight all occurences to the web browser search widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
350
diff
changeset
|
775 | try: |
0c4c359c4870
Added option to highlight all occurences to the web browser search widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
350
diff
changeset
|
776 | if highlightAll: |
0c4c359c4870
Added option to highlight all occurences to the web browser search widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
350
diff
changeset
|
777 | findFlags |= QWebPage.HighlightAllOccurrences |
0c4c359c4870
Added option to highlight all occurences to the web browser search widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
350
diff
changeset
|
778 | except AttributeError: |
0c4c359c4870
Added option to highlight all occurences to the web browser search widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
350
diff
changeset
|
779 | pass |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
780 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
781 | return self.findText(txt, findFlags) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
782 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
783 | def contextMenuEvent(self, evt): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
784 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
785 | Protected method called to create a context menu. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
786 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
787 | This method is overridden from QWebView. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
788 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
789 | @param evt reference to the context menu event object (QContextMenuEvent) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
790 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
791 | menu = QMenu(self) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
792 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
793 | hit = self.page().mainFrame().hitTestContent(evt.pos()) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
794 | if not hit.linkUrl().isEmpty(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
795 | act = menu.addAction(self.trUtf8("Open Link in New Tab\tCtrl+LMB"), |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
796 | self.__openLinkInNewTab) |
7
c679fb30c8f3
Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
797 | act.setData(hit.linkUrl()) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
798 | menu.addSeparator() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
799 | menu.addAction(self.trUtf8("Save Lin&k"), self.__downloadLink) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
800 | act = menu.addAction(self.trUtf8("Bookmark this Link"), self.__bookmarkLink) |
7
c679fb30c8f3
Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
801 | act.setData(hit.linkUrl()) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
802 | menu.addSeparator() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
803 | menu.addAction(self.trUtf8("Copy Link to Clipboard"), self.__copyLink) |
978
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
952
diff
changeset
|
804 | if Preferences.getHelp("VirusTotalEnabled") and \ |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
952
diff
changeset
|
805 | Preferences.getHelp("VirusTotalServiceKey") != "": |
992
566e87428fc8
Fixed a few PEP-8 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
806 | act = menu.addAction(UI.PixmapCache.getIcon("virustotal.png"), |
978
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
952
diff
changeset
|
807 | self.trUtf8("Scan Link with VirusTotal"), self.__virusTotal) |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
952
diff
changeset
|
808 | act.setData(hit.linkUrl()) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
809 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
810 | if not hit.imageUrl().isEmpty(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
811 | if not menu.isEmpty(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
812 | menu.addSeparator() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
813 | act = menu.addAction(self.trUtf8("Open Image in New Tab"), |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
814 | self.__openLinkInNewTab) |
7
c679fb30c8f3
Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
815 | act.setData(hit.imageUrl()) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
816 | menu.addSeparator() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
817 | menu.addAction(self.trUtf8("Save Image"), self.__downloadImage) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
818 | menu.addAction(self.trUtf8("Copy Image to Clipboard"), self.__copyImage) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
819 | act = menu.addAction(self.trUtf8("Copy Image Location to Clipboard"), |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
820 | self.__copyImageLocation) |
7
c679fb30c8f3
Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
821 | act.setData(hit.imageUrl().toString()) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
822 | menu.addSeparator() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
823 | act = menu.addAction(self.trUtf8("Block Image"), self.__blockImage) |
7
c679fb30c8f3
Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
824 | act.setData(hit.imageUrl().toString()) |
978
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
952
diff
changeset
|
825 | if Preferences.getHelp("VirusTotalEnabled") and \ |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
952
diff
changeset
|
826 | Preferences.getHelp("VirusTotalServiceKey") != "": |
992
566e87428fc8
Fixed a few PEP-8 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
827 | act = menu.addAction(UI.PixmapCache.getIcon("virustotal.png"), |
978
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
952
diff
changeset
|
828 | self.trUtf8("Scan Image with VirusTotal"), self.__virusTotal) |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
952
diff
changeset
|
829 | act.setData(hit.imageUrl()) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
830 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
831 | if not menu.isEmpty(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
832 | menu.addSeparator() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
833 | menu.addAction(self.mw.newTabAct) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
834 | menu.addAction(self.mw.newAct) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
835 | menu.addSeparator() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
836 | menu.addAction(self.mw.saveAsAct) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
837 | menu.addSeparator() |
661
f9d49e0c2522
Added code to show some bookmark data from the URL bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
659
diff
changeset
|
838 | menu.addAction(self.trUtf8("Bookmark this Page"), self.addBookmark) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
839 | menu.addSeparator() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
840 | menu.addAction(self.mw.backAct) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
841 | menu.addAction(self.mw.forwardAct) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
842 | menu.addAction(self.mw.homeAct) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
843 | menu.addSeparator() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
844 | menu.addAction(self.mw.zoomInAct) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
845 | menu.addAction(self.mw.zoomOutAct) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
846 | menu.addSeparator() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
847 | if self.selectedText(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
848 | menu.addAction(self.mw.copyAct) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
849 | menu.addAction(self.mw.findAct) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
850 | menu.addSeparator() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
851 | if self.selectedText(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
852 | self.__searchMenu = menu.addMenu(self.trUtf8("Search with...")) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
853 | |
142
94ce651735db
Added code to (hopefully) fix the "Underlying C++ object deleted" issue in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
854 | engineNames = self.mw.openSearchManager().allEnginesNames() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
855 | for engineName in engineNames: |
142
94ce651735db
Added code to (hopefully) fix the "Underlying C++ object deleted" issue in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
856 | engine = self.mw.openSearchManager().engine(engineName) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
857 | act = OpenSearchEngineAction(engine, self.__searchMenu) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
858 | self.__searchMenu.addAction(act) |
7
c679fb30c8f3
Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
859 | act.setData(engineName) |
487
4d41d03d3d00
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
383
diff
changeset
|
860 | self.__searchMenu.triggered.connect(self.__searchRequested) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
861 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
862 | menu.addSeparator() |
381
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
863 | |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
864 | if hasattr(QtWebKit, 'QWebElement'): |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
865 | element = hit.element() |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
866 | if not element.isNull() and \ |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
867 | element.tagName().lower() == "input" and \ |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
868 | element.attribute("type", "text") == "text": |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
869 | act = menu.addAction(self.trUtf8("Add to web search toolbar"), |
381
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
870 | self.__addSearchEngine) |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
871 | act.setData(element) |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
872 | menu.addSeparator() |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
873 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
874 | menu.addAction(self.trUtf8("Web Inspector..."), self.__webInspector) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
875 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
876 | menu.exec_(evt.globalPos()) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
877 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
878 | def __openLinkInNewTab(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
879 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
880 | Private method called by the context menu to open a link in a new window. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
881 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
882 | act = self.sender() |
7
c679fb30c8f3
Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
883 | url = act.data() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
884 | if url.isEmpty(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
885 | return |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
886 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
887 | self.ctrlPressed = True |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
888 | self.setSource(url) |
675
2f626dcab902
Added check for a form resubmission to the web page class of the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
889 | self.ctrlPressed = False |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
890 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
891 | def __bookmarkLink(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
892 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
893 | Private slot to bookmark a link via the context menu. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
894 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
895 | act = self.sender() |
7
c679fb30c8f3
Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
896 | url = act.data() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
897 | if url.isEmpty(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
898 | return |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
899 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
900 | dlg = AddBookmarkDialog() |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
901 | dlg.setUrl(bytes(url.toEncoded()).decode()) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
902 | dlg.exec_() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
903 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
904 | def __downloadLink(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
905 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
906 | Private slot to download a link and save it to disk. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
907 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
908 | self.pageAction(QWebPage.DownloadLinkToDisk).trigger() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
909 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
910 | def __copyLink(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
911 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
912 | Private slot to copy a link to the clipboard. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
913 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
914 | self.pageAction(QWebPage.CopyLinkToClipboard).trigger() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
915 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
916 | def __downloadImage(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
917 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
918 | Private slot to download an image and save it to disk. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
919 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
920 | self.pageAction(QWebPage.DownloadImageToDisk).trigger() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
921 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
922 | def __copyImage(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
923 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
924 | Private slot to copy an image to the clipboard. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
925 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
926 | self.pageAction(QWebPage.CopyImageToClipboard).trigger() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
927 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
928 | def __copyImageLocation(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
929 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
930 | Private slot to copy an image location to the clipboard. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
931 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
932 | act = self.sender() |
7
c679fb30c8f3
Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
933 | url = act.data() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
934 | QApplication.clipboard().setText(url) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
935 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
936 | def __blockImage(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
937 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
938 | Private slot to add a block rule for an image URL. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
939 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
940 | act = self.sender() |
7
c679fb30c8f3
Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
941 | url = act.data() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
942 | dlg = Helpviewer.HelpWindow.HelpWindow.adblockManager().showDialog() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
943 | dlg.addCustomRule(url) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
944 | |
978
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
952
diff
changeset
|
945 | def __virusTotal(self): |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
952
diff
changeset
|
946 | """ |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
952
diff
changeset
|
947 | Private slot to scan the selected URL with VirusTotal. |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
952
diff
changeset
|
948 | """ |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
952
diff
changeset
|
949 | act = self.sender() |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
952
diff
changeset
|
950 | url = act.data() |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
952
diff
changeset
|
951 | self.mw.requestVirusTotalScan(url) |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
952
diff
changeset
|
952 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
953 | def __searchRequested(self, act): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
954 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
955 | Private slot to search for some text with a selected search engine. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
956 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
957 | @param act reference to the action that triggered this slot (QAction) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
958 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
959 | searchText = self.selectedText() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
960 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
961 | if not searchText: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
962 | return |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
963 | |
7
c679fb30c8f3
Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
964 | engineName = act.data() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
965 | if engineName: |
142
94ce651735db
Added code to (hopefully) fix the "Underlying C++ object deleted" issue in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
966 | engine = self.mw.openSearchManager().engine(engineName) |
487
4d41d03d3d00
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
383
diff
changeset
|
967 | self.search.connect(engine.searchUrl(searchText)) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
968 | |
381
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
969 | def __addSearchEngine(self): |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
970 | """ |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
971 | Private slot to add a new search engine. |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
972 | """ |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
973 | act = self.sender() |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
974 | if act is None: |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
975 | return |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
976 | |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
977 | element = act.data() |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
978 | elementName = element.attribute("name") |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
979 | formElement = QWebElement(element) |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
980 | while formElement.tagName().lower() != "form": |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
981 | formElement = formElement.parent() |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
982 | |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
983 | if formElement.isNull() or \ |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
984 | formElement.attribute("action") == "": |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
985 | return |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
986 | |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
987 | method = formElement.attribute("method", "get").lower() |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
988 | if method != "get": |
539
87f9bce38a44
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
538
diff
changeset
|
989 | E5MessageBox.warning(self, |
381
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
990 | self.trUtf8("Method not supported"), |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
991 | self.trUtf8("""{0} method is not supported.""").format(method.upper())) |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
992 | return |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
993 | |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
994 | searchUrl = QUrl(self.page().mainFrame().baseUrl().resolved( |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
995 | QUrl(formElement.attribute("action")))) |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
996 | if searchUrl.scheme() != "http": |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
997 | return |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
998 | |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
999 | searchEngines = {} |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1000 | inputFields = formElement.findAll("input") |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1001 | for inputField in inputFields.toList(): |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1002 | type_ = inputField.attribute("type", "text") |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1003 | name = inputField.attribute("name") |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1004 | value = inputField.evaluateJavaScript("this.value") |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1005 | |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1006 | if type_ == "submit": |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1007 | searchEngines[value] = name |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1008 | elif type_ == "text": |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1009 | if inputField == element: |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1010 | value = "{searchTerms}" |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1011 | searchUrl.addQueryItem(name, value) |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1012 | elif type_ == "checkbox" or type_ == "radio": |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1013 | if inputField.evaluateJavaScript("this.checked"): |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1014 | searchUrl.addQueryItem(name, value) |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1015 | elif type_ == "hidden": |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1016 | searchUrl.addQueryItem(name, value) |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1017 | |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1018 | selectFields = formElement.findAll("select") |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1019 | for selectField in selectFields.toList(): |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1020 | name = selectField.attribute("name") |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1021 | selectedIndex = selectField.evaluateJavaScript("this.selectedIndex") |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1022 | if selectedIndex == -1: |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1023 | continue |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1024 | |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1025 | options = selectField.findAll("option") |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1026 | value = options.at(selectedIndex).toPlainText() |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1027 | searchUrl.addQueryItem(name, value) |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1028 | |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1029 | ok = True |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1030 | if len(searchEngines) > 1: |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1031 | searchEngine, ok = QInputDialog.getItem( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
1032 | self, |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
1033 | self.trUtf8("Search engine"), |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
1034 | self.trUtf8("Choose the desired search engine"), |
381
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1035 | sorted(searchEngines.keys()), 0, False) |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1036 | |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1037 | if not ok: |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1038 | return |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1039 | |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1040 | if searchEngines[searchEngine] != "": |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1041 | searchUrl.addQueryItem(searchEngines[searchEngine], searchEngine) |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1042 | |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1043 | engineName = "" |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1044 | labels = formElement.findAll('label[for="{0}"]'.format(elementName)) |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1045 | if labels.count() > 0: |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1046 | engineName = labels.at(0).toPlainText() |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1047 | |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1048 | engineName, ok = QInputDialog.getText( |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1049 | self, |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1050 | self.trUtf8("Engine name"), |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1051 | self.trUtf8("Enter a name for the engine"), |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1052 | QLineEdit.Normal, |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1053 | engineName) |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1054 | if not ok: |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1055 | return |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1056 | |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1057 | engine = OpenSearchEngine() |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1058 | engine.setName(engineName) |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1059 | engine.setDescription(engineName) |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1060 | engine.setSearchUrlTemplate(searchUrl.toString()) |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1061 | engine.setImage(self.icon().pixmap(16, 16).toImage()) |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1062 | |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1063 | self.mw.openSearchManager().addEngine(engine) |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1064 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1065 | def __webInspector(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1066 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1067 | Private slot to show the web inspector window. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1068 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1069 | self.triggerPageAction(QWebPage.InspectElement) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1070 | |
661
f9d49e0c2522
Added code to show some bookmark data from the URL bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
659
diff
changeset
|
1071 | def addBookmark(self): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1072 | """ |
661
f9d49e0c2522
Added code to show some bookmark data from the URL bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
659
diff
changeset
|
1073 | Public slot to bookmark the current page. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1074 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1075 | dlg = AddBookmarkDialog() |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
1076 | dlg.setUrl(bytes(self.url().toEncoded()).decode()) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1077 | dlg.setTitle(self.title()) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1078 | dlg.exec_() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1079 | |
952
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1080 | def dragEnterEvent(self, evt): |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1081 | """ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1082 | Protected method called by a drag enter event. |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1083 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1084 | @param evt reference to the drag enter event (QDragEnterEvent) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1085 | """ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1086 | evt.acceptProposedAction() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1087 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1088 | def dragMoveEvent(self, evt): |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1089 | """ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1090 | Protected method called by a drag move event. |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1091 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1092 | @param evt reference to the drag move event (QDragMoveEvent) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1093 | """ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1094 | evt.ignore() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1095 | if evt.source() != self: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1096 | if len(evt.mimeData().urls()) > 0: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1097 | evt.acceptProposedAction() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1098 | else: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1099 | url = QUrl(evt.mimeData().text()) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1100 | if url.isValid(): |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1101 | evt.acceptProposedAction() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1102 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1103 | if not evt.isAccepted(): |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
1104 | super().dragMoveEvent(evt) |
952
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1105 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1106 | def dropEvent(self, evt): |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1107 | """ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1108 | Protected method called by a drop event. |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1109 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1110 | @param evt reference to the drop event (QDropEvent) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1111 | """ |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
1112 | super().dropEvent(evt) |
952
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1113 | if not evt.isAccepted() and \ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1114 | evt.source() != self and \ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1115 | evt.possibleActions() & Qt.CopyAction: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1116 | url = QUrl() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1117 | if len(evt.mimeData().urls()) > 0: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1118 | url = evt.mimeData().urls()[0] |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1119 | if not url.isValid(): |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1120 | url = QUrl(evt.mimeData().text()) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1121 | if url.isValid(): |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1122 | self.setSource(url) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1123 | evt.acceptProposedAction() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1124 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1125 | def mousePressEvent(self, evt): |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1126 | """ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1127 | Protected method called by a mouse press event. |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1128 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1129 | @param evt reference to the mouse event (QMouseEvent) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1130 | """ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1131 | self.mw.setEventMouseButtons(evt.buttons()) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1132 | self.mw.setEventKeyboardModifiers(evt.modifiers()) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1133 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1134 | if evt.button() == Qt.XButton1: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1135 | self.pageAction(QWebPage.Back).trigger() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1136 | elif evt.button() == Qt.XButton2: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1137 | self.pageAction(QWebPage.Forward).trigger() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1138 | else: |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
1139 | super().mousePressEvent(evt) |
952
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1140 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1141 | def mouseReleaseEvent(self, evt): |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1142 | """ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1143 | Protected method called by a mouse release event. |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1144 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1145 | @param evt reference to the mouse event (QMouseEvent) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1146 | """ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1147 | accepted = evt.isAccepted() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1148 | self.__page.event(evt) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1149 | if not evt.isAccepted() and \ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1150 | self.mw.eventMouseButtons() & Qt.MidButton: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1151 | url = QUrl(QApplication.clipboard().text(QClipboard.Selection)) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1152 | if not url.isEmpty() and \ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1153 | url.isValid() and \ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1154 | url.scheme() != "": |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1155 | self.mw.setEventMouseButtons(Qt.NoButton) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1156 | self.mw.setEventKeyboardModifiers(Qt.NoModifier) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1157 | self.setSource(url) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1158 | evt.setAccepted(accepted) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1159 | |
1518
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1160 | def wheelEvent(self, evt): |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1161 | """ |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1162 | Protected method to handle wheel events. |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1163 | |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1164 | @param evt reference to the wheel event (QWheelEvent) |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1165 | """ |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1166 | if evt.modifiers() & Qt.ControlModifier: |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1167 | degrees = evt.delta() // 8 |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1168 | steps = degrees // 15 |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1169 | self.__currentZoom += steps * 10 |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1170 | self.__applyZoom() |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1171 | evt.accept() |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1172 | return |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1173 | |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1174 | if evt.modifiers() & Qt.ShiftModifier: |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1175 | if evt.delta() < 0: |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1176 | self.backward() |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1177 | else: |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1178 | self.forward() |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1179 | evt.accept() |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1180 | return |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1181 | |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1182 | super().wheelEvent(evt) |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1183 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1184 | def keyPressEvent(self, evt): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1185 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1186 | Protected method called by a key press. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1187 | |
952
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1188 | @param evt reference to the key event (QKeyEvent) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1189 | """ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1190 | if hasattr(QtWebKit, 'QWebElement'): |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1191 | if self.__enableAccessKeys: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1192 | self.__accessKeysPressed = ( |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1193 | evt.modifiers() == Qt.ControlModifier and \ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1194 | evt.key() == Qt.Key_Control) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1195 | if not self.__accessKeysPressed: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1196 | if self.__checkForAccessKey(evt): |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1197 | self.__hideAccessKeys() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1198 | evt.accept() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1199 | return |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1200 | self.__hideAccessKeys() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1201 | else: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1202 | QTimer.singleShot(300, self.__accessKeyShortcut) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1203 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1204 | self.ctrlPressed = (evt.key() == Qt.Key_Control) |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
1205 | super().keyPressEvent(evt) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1206 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1207 | def keyReleaseEvent(self, evt): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1208 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1209 | Protected method called by a key release. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1210 | |
952
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1211 | @param evt reference to the key event (QKeyEvent) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1212 | """ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1213 | if hasattr(QtWebKit, 'QWebElement'): |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1214 | if self.__enableAccessKeys: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1215 | self.__accessKeysPressed = evt.key() == Qt.Key_Control |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1216 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1217 | self.ctrlPressed = False |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
1218 | super().keyReleaseEvent(evt) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1219 | |
952
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1220 | def focusOutEvent(self, evt): |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1221 | """ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1222 | Protected method called by a focus out event. |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1223 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1224 | @param evt reference to the focus event (QFocusEvent) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1225 | """ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1226 | if hasattr(QtWebKit, 'QWebElement'): |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1227 | if self.__accessKeysPressed: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1228 | self.__hideAccessKeys() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1229 | self.__accessKeysPressed = False |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1230 | |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
1231 | super().focusOutEvent(evt) |
952
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1232 | |
1518
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1233 | def event(self, evt): |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1234 | """ |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1235 | Protected method handling events. |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1236 | |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1237 | @param evt reference to the event (QEvent) |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1238 | @return flag indicating, if the event was handled (boolean) |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1239 | """ |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1240 | if evt.type() == QEvent.Gesture: |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1241 | self.gestureEvent(evt) |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1242 | return True |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1243 | |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1244 | return super().event(evt) |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1245 | |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1246 | def gestureEvent(self, evt): |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1247 | """ |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1248 | Protected method handling gesture events. |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1249 | |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1250 | @param evt reference to the gesture event (QGestureEvent |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1251 | """ |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1252 | pinch = evt.gesture(Qt.PinchGesture) |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1253 | if pinch: |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1254 | if pinch.state() == Qt.GestureStarted: |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1255 | pinch.setScaleFactor(self.__currentZoom / 100.0) |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1256 | else: |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1257 | scaleFactor = pinch.scaleFactor() |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1258 | self.__currentZoom = int(scaleFactor * 100) |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1259 | self.__applyZoom() |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1260 | evt.accept() |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
1261 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1262 | def clearHistory(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1263 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1264 | Public slot to clear the history. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1265 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1266 | self.history().clear() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1267 | self.__urlChanged(self.history().currentItem().url()) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1268 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1269 | ############################################################################ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1270 | ## Signal converters below |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1271 | ############################################################################ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1272 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1273 | def __urlChanged(self, url): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1274 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1275 | Private slot to handle the urlChanged signal. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1276 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1277 | @param url the new url (QUrl) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1278 | """ |
487
4d41d03d3d00
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
383
diff
changeset
|
1279 | self.sourceChanged.emit(url) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1280 | |
487
4d41d03d3d00
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
383
diff
changeset
|
1281 | self.forwardAvailable.emit(self.isForwardAvailable()) |
4d41d03d3d00
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
383
diff
changeset
|
1282 | self.backwardAvailable.emit(self.isBackwardAvailable()) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1283 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1284 | def __statusBarMessage(self, text): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1285 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1286 | Private slot to handle the statusBarMessage signal. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1287 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1288 | @param text text to be shown in the status bar (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1289 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1290 | self.mw.statusBar().showMessage(text) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1291 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1292 | def __linkHovered(self, link, title, textContent): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1293 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1294 | Private slot to handle the linkHovered signal. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1295 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1296 | @param link the URL of the link (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1297 | @param title the link title (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1298 | @param textContent text content of the link (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1299 | """ |
487
4d41d03d3d00
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
383
diff
changeset
|
1300 | self.highlighted.emit(link) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1301 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1302 | ############################################################################ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1303 | ## Signal handlers below |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1304 | ############################################################################ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1305 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1306 | def __loadStarted(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1307 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1308 | Private method to handle the loadStarted signal. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1309 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1310 | self.__isLoading = True |
634
7b84cbd2f752
Added tab previews to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
629
diff
changeset
|
1311 | self.__progress = 0 |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1312 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1313 | def __loadProgress(self, progress): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1314 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1315 | Private method to handle the loadProgress signal. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1316 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1317 | @param progress progress value (integer) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1318 | """ |
634
7b84cbd2f752
Added tab previews to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
629
diff
changeset
|
1319 | self.__progress = progress |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1320 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1321 | def __loadFinished(self, ok): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1322 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1323 | Private method to handle the loadFinished signal. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1324 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1325 | @param ok flag indicating the result (boolean) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1326 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1327 | self.__isLoading = False |
634
7b84cbd2f752
Added tab previews to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
629
diff
changeset
|
1328 | self.__progress = 0 |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1329 | |
256
04083f42042d
Some changes to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
168
diff
changeset
|
1330 | if ok: |
381
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
376
diff
changeset
|
1331 | self.mw.adblockManager().page().applyRulesToPage(self.page()) |
256
04083f42042d
Some changes to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
168
diff
changeset
|
1332 | self.mw.passwordManager().fill(self.page()) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1333 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1334 | def isLoading(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1335 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1336 | Public method to get the loading state. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1337 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1338 | @return flag indicating the loading state (boolean) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1339 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1340 | return self.__isLoading |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1341 | |
634
7b84cbd2f752
Added tab previews to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
629
diff
changeset
|
1342 | def progress(self): |
7b84cbd2f752
Added tab previews to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
629
diff
changeset
|
1343 | """ |
7b84cbd2f752
Added tab previews to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
629
diff
changeset
|
1344 | Public method to get the load progress. |
7b84cbd2f752
Added tab previews to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
629
diff
changeset
|
1345 | """ |
7b84cbd2f752
Added tab previews to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
629
diff
changeset
|
1346 | return self.__progress |
7b84cbd2f752
Added tab previews to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
629
diff
changeset
|
1347 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1348 | def saveAs(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1349 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1350 | Public method to save the current page to a file. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1351 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1352 | url = self.url() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1353 | if url.isEmpty(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1354 | return |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1355 | |
978
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
952
diff
changeset
|
1356 | self.mw.downloadManager().download(url, True, mainWindow=self.mw) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1357 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
1358 | def __unsupportedContent(self, reply, requestFilename=None, download=False): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1359 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1360 | Private slot to handle the unsupportedContent signal. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1361 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1362 | @param reply reference to the reply object (QNetworkReply) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
1363 | @keyparam requestFilename indicating to ask for a filename |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1364 | (boolean or None). If it is None, the behavior is determined |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1365 | by a configuration option. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1366 | @keyparam download flag indicating a download operation (boolean) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1367 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1368 | if reply is None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1369 | return |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1370 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1371 | replyUrl = reply.url() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1372 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1373 | if replyUrl.scheme() == "abp": |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1374 | return |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1375 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1376 | if reply.error() == QNetworkReply.NoError: |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
664
diff
changeset
|
1377 | if reply.header(QNetworkRequest.ContentTypeHeader): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
664
diff
changeset
|
1378 | self.mw.downloadManager().handleUnsupportedContent( |
978
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
952
diff
changeset
|
1379 | reply, webPage=self.page(), mainWindow=self.mw) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1380 | return |
676
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1381 | |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1382 | replyUrl = reply.url() |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1383 | if replyUrl.isEmpty(): |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1384 | return |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1385 | |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1386 | notFoundFrame = self.page().mainFrame() |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1387 | if notFoundFrame is None: |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1388 | return |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1389 | |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1390 | if reply.header(QNetworkRequest.ContentTypeHeader): |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1391 | data = reply.readAll() |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1392 | if contentSniff(data): |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
1393 | notFoundFrame.setHtml(str(data, encoding="utf-8"), replyUrl) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1394 | return |
676
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1395 | |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1396 | html = notFoundPage_html |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1397 | urlString = bytes(replyUrl.toEncoded()).decode() |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1398 | title = self.trUtf8("Error loading page: {0}").format(urlString) |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1399 | pixmap = qApp.style()\ |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1400 | .standardIcon(QStyle.SP_MessageBoxWarning, None, self)\ |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1401 | .pixmap(32, 32) |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1402 | imageBuffer = QBuffer() |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1403 | imageBuffer.open(QIODevice.ReadWrite) |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1404 | if pixmap.save(imageBuffer, "PNG"): |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
1405 | html = html.replace("IMAGE_BINARY_DATA_HERE", |
676
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1406 | str(imageBuffer.buffer().toBase64(), encoding="ascii")) |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1407 | html = html.format( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
1408 | title, |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
1409 | reply.errorString(), |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
1410 | self.trUtf8("When connecting to: {0}.").format(urlString), |
676
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1411 | self.trUtf8("Check the address for errors such as <b>ww</b>.example.org " |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
1412 | "instead of <b>www</b>.example.org"), |
676
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1413 | self.trUtf8("If the address is correct, try checking the network " |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
1414 | "connection."), |
676
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1415 | self.trUtf8("If your computer or network is protected by a firewall or " |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1416 | "proxy, make sure that the browser is permitted to access " |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
1417 | "the network."), |
676
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1418 | self.trUtf8("If your cache policy is set to offline browsing," |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1419 | "only pages in the local cache are available.") |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1420 | ) |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1421 | notFoundFrame.setHtml(html, replyUrl) |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1422 | self.mw.historyManager().removeHistoryEntry(replyUrl, self.title()) |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1423 | self.loadFinished.emit(False) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1424 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1425 | def __downloadRequested(self, request): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1426 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1427 | Private slot to handle a download request. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1428 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1429 | @param request reference to the request object (QNetworkRequest) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1430 | """ |
978
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
952
diff
changeset
|
1431 | self.mw.downloadManager().download(request, mainWindow=self.mw) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1432 | |
350
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1433 | def __databaseQuotaExceeded(self, frame, databaseName): |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1434 | """ |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1435 | Private slot to handle the case, where the database quota is exceeded. |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1436 | |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1437 | @param frame reference to the frame (QWebFrame) |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1438 | @param databaseName name of the web database (string) |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1439 | """ |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1440 | securityOrigin = frame.securityOrigin() |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1441 | if securityOrigin.databaseQuota() > 0 and \ |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1442 | securityOrigin.databaseUsage() == 0: |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1443 | # cope with a strange behavior of Qt 4.6, if a database is |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1444 | # accessed for the first time |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1445 | return |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1446 | |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
1447 | res = E5MessageBox.yesNo(self, |
350
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1448 | self.trUtf8("Web Database Quota"), |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1449 | self.trUtf8("""<p>The database quota of <strong>{0}</strong> has""" |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1450 | """ been exceeded while accessing database <strong>{1}""" |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1451 | """</strong>.</p><p>Shall it be changed?</p>""")\ |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1452 | .format(self.__dataString(securityOrigin.databaseQuota()), databaseName), |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
1453 | yesDefault=True) |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
1454 | if res: |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
541
diff
changeset
|
1455 | newQuota, ok = QInputDialog.getInteger( |
350
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1456 | self, |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1457 | self.trUtf8("New Web Database Quota"), |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1458 | self.trUtf8("Enter the new quota in MB (current = {0}, used = {1}; " |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1459 | "step size = 5 MB):"\ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
1460 | .format(self.__dataString(securityOrigin.databaseQuota()), |
350
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1461 | self.__dataString(securityOrigin.databaseUsage()))), |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1462 | securityOrigin.databaseQuota() // (1024 * 1024), 0, 2147483647, 5) |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1463 | if ok: |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1464 | securityOrigin.setDatabaseQuota(newQuota * 1024 * 1024) |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1465 | |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1466 | def __dataString(self, size): |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1467 | """ |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1468 | Private method to generate a formatted data string. |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1469 | |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1470 | @param size size to be formatted (integer) |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1471 | @return formatted data string (string) |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1472 | """ |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1473 | unit = "" |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1474 | if size < 1024: |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1475 | unit = self.trUtf8("bytes") |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1476 | elif size < 1024 * 1024: |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1477 | size /= 1024 |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1478 | unit = self.trUtf8("kB") |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1479 | else: |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1480 | size /= 1024 * 1024 |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1481 | unit = self.trUtf8("MB") |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1482 | return "{0:.1f} {1}".format(size, unit) |
db40effc5c65
Added support for Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
313
diff
changeset
|
1483 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1484 | ############################################################################ |
952
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1485 | ## Access key related methods below |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1486 | ############################################################################ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1487 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1488 | def __accessKeyShortcut(self): |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1489 | """ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1490 | Private slot to switch the display of access keys. |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1491 | """ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1492 | if not self.hasFocus() or \ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1493 | not self.__accessKeysPressed or \ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1494 | not self.__enableAccessKeys: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1495 | return |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1496 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1497 | if self.__accessKeyLabels: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1498 | self.__hideAccessKeys() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1499 | else: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1500 | self.__showAccessKeys() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1501 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1502 | self.__accessKeysPressed = False |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1503 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1504 | def __checkForAccessKey(self, evt): |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1505 | """ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1506 | Private method to check the existence of an access key and activate the |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1507 | corresponding link. |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1508 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1509 | @param evt reference to the key event (QKeyEvent) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1510 | @return flag indicating, if the event was handled (boolean) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1511 | """ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1512 | if not self.__accessKeyLabels: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1513 | return False |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1514 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1515 | text = evt.text() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1516 | if not text: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1517 | return False |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1518 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1519 | key = text[0].upper() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1520 | handled = False |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1521 | if key in self.__accessKeyNodes: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1522 | element = self.__accessKeyNodes[key] |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1523 | p = element.geometry().center() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1524 | frame = element.webFrame() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1525 | p -= frame.scrollPosition() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1526 | frame = frame.parentFrame() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1527 | while frame and frame != self.page().mainFrame(): |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1528 | p -= frame.scrollPosition() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1529 | frame = frame.parentFrame() |
992
566e87428fc8
Fixed a few PEP-8 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
1530 | pevent = QMouseEvent(QEvent.MouseButtonPress, p, Qt.LeftButton, |
952
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1531 | Qt.MouseButtons(Qt.NoButton), Qt.KeyboardModifiers(Qt.NoModifier)) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1532 | qApp.sendEvent(self, pevent) |
992
566e87428fc8
Fixed a few PEP-8 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
1533 | revent = QMouseEvent(QEvent.MouseButtonRelease, p, Qt.LeftButton, |
952
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1534 | Qt.MouseButtons(Qt.NoButton), Qt.KeyboardModifiers(Qt.NoModifier)) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1535 | qApp.sendEvent(self, revent) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1536 | handled = True |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1537 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1538 | return handled |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1539 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1540 | def __hideAccessKeys(self): |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1541 | """ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1542 | Private slot to hide the access key labels. |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1543 | """ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1544 | if self.__accessKeyLabels: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1545 | for label in self.__accessKeyLabels: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1546 | label.hide() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1547 | label.deleteLater() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1548 | self.__accessKeyLabels = [] |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1549 | self.__accessKeyNodes = {} |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1550 | self.update() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1551 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1552 | def __showAccessKeys(self): |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1553 | """ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1554 | Private method to show the access key labels. |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1555 | """ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1556 | supportedElements = [ |
992
566e87428fc8
Fixed a few PEP-8 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
1557 | "input", "a", "area", "button", "label", "legend", "textarea", |
952
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1558 | ] |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1559 | unusedKeys = "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" \ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1560 | " 0 1 2 3 4 5 6 7 8 9".split() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1561 | |
992
566e87428fc8
Fixed a few PEP-8 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
1562 | viewport = QRect(self.__page.mainFrame().scrollPosition(), |
952
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1563 | self.__page.viewportSize()) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1564 | # Priority first goes to elements with accesskey attributes |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1565 | alreadyLabeled = [] |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1566 | for elementType in supportedElements: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1567 | result = self.page().mainFrame().findAllElements(elementType).toList() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1568 | for element in result: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1569 | geometry = element.geometry() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1570 | if geometry.size().isEmpty() or \ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1571 | not viewport.contains(geometry.topLeft()): |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1572 | continue |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1573 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1574 | accessKeyAttribute = element.attribute("accesskey").upper() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1575 | if not accessKeyAttribute: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1576 | continue |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1577 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1578 | accessKey = "" |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1579 | i = 0 |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1580 | while i < len(accessKeyAttribute): |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1581 | if accessKeyAttribute[i] in unusedKeys: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1582 | accessKey = accessKeyAttribute[i] |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1583 | break |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1584 | i += 2 |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1585 | if accessKey == "": |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1586 | continue |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1587 | unusedKeys.remove(accessKey) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1588 | self.__makeAccessLabel(accessKey, element) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1589 | alreadyLabeled.append(element) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1590 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1591 | # Pick an access key first from the letters in the text and then from the |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1592 | # list of unused access keys |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1593 | for elementType in supportedElements: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1594 | result = self.page().mainFrame().findAllElements(elementType).toList() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1595 | for element in result: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1596 | geometry = element.geometry() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1597 | if not unusedKeys or \ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1598 | element in alreadyLabeled or \ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1599 | geometry.size().isEmpty() or \ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1600 | not viewport.contains(geometry.topLeft()): |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1601 | continue |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1602 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1603 | accessKey = "" |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1604 | text = element.toPlainText().upper() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1605 | for c in text: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1606 | if c in unusedKeys: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1607 | accessKey = c |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1608 | break |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1609 | if accessKey == "": |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1610 | accessKey = unusedKeys[0] |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1611 | unusedKeys.remove(accessKey) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1612 | self.__makeAccessLabel(accessKey, element) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1613 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1614 | def __makeAccessLabel(self, accessKey, element): |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1615 | """ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1616 | Private method to generate the access label for an element. |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1617 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1618 | @param accessKey access key to generate the label for (str) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1619 | @param element reference to the web element to create the label for |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1620 | (QWebElement) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1621 | """ |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1622 | label = QLabel(self) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1623 | label.setText("<qt><b>{0}</b></qt>".format(accessKey)) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1624 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1625 | p = QToolTip.palette() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1626 | color = QColor(Qt.yellow).lighter(150) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1627 | color.setAlpha(175) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1628 | p.setColor(QPalette.Window, color) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1629 | label.setPalette(p) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1630 | label.setAutoFillBackground(True) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1631 | label.setFrameStyle(QFrame.Box | QFrame.Plain) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1632 | point = element.geometry().center() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1633 | point -= self.__page.mainFrame().scrollPosition() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1634 | label.move(point) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1635 | label.show() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1636 | point.setX(point.x() - label.width() // 2) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1637 | label.move(point) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1638 | self.__accessKeyLabels.append(label) |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1639 | self.__accessKeyNodes[accessKey] = element |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1640 | |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1641 | ############################################################################ |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1642 | ## Miscellaneous methods below |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1643 | ############################################################################ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1644 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1645 | def createWindow(self, windowType): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1646 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1647 | Protected method called, when a new window should be created. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1648 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1649 | @param windowType type of the requested window (QWebPage.WebWindowType) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1650 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1651 | self.mw.newTab() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1652 | return self.mw.currentBrowser() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1653 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1654 | def preferencesChanged(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1655 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1656 | Public method to indicate a change of the settings. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1657 | """ |
952
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1658 | if hasattr(QtWebKit, 'QWebElement'): |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1659 | self.__enableAccessKeys = Preferences.getHelp("AccessKeysEnabled") |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1660 | if not self.__enableAccessKeys: |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1661 | self.__hideAccessKeys() |
cc3e2e5558e9
Added support for access keys and drag & drop to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
1662 | |
629
c88489b378fb
Added configuration options for the web browser cache policy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
1663 | self.reload() |
1415
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1664 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1665 | ############################################################################ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1666 | ## RSS related methods below |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1667 | ############################################################################ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1668 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1669 | def checkRSS(self): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1670 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1671 | Public method to check, if the loaded page contains feed links. |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1672 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1673 | @return flag indicating the existence of feed links (boolean) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1674 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1675 | self.__rss = [] |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1676 | |
1474
1eaec11a0078
Fixed a few PEP-8 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1415
diff
changeset
|
1677 | frame = self.page().mainFrame() |
1415
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1678 | linkElementsList = frame.findAllElements("link").toList() |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1679 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1680 | for linkElement in linkElementsList: |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1681 | # only atom+xml and rss+xml will be processed |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1682 | if linkElement.attribute("rel") != "alternate" or \ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1683 | (linkElement.attribute("type") != "application/rss+xml" and \ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1684 | linkElement.attribute("type") != "application/atom+xml"): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1685 | continue |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1686 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1687 | title = linkElement.attribute("title") |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1688 | href = linkElement.attribute("href") |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1689 | if href == "" or title == "": |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1690 | continue |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1691 | self.__rss.append((title, href)) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1692 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1693 | return len(self.__rss) > 0 |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1694 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1695 | def getRSS(self): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1696 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1697 | Public method to get the extracted RSS feeds. |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1698 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1699 | @return list of RSS feeds (list of tuples of two strings) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1700 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1701 | return self.__rss |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1702 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1703 | def hasRSS(self): |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1704 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1705 | Public method to check, if the loaded page has RSS links. |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1706 | |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1707 | @return flag indicating the presence of RSS links (boolean) |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1708 | """ |
28fa9633d57e
Added a dialog to show RSS feeds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1232
diff
changeset
|
1709 | return len(self.__rss) > 0 |
676
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1710 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
923
diff
changeset
|
1711 | |
676
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1712 | def contentSniff(data): |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1713 | """ |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1714 | Module function to do some content sniffing to check, if the data is HTML. |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1715 | |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1716 | @return flag indicating HTML content (boolean) |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1717 | """ |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1718 | if data.contains("<!doctype") or \ |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1719 | data.contains("<script") or \ |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1720 | data.contains("<html") or \ |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1721 | data.contains("<!--") or \ |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1722 | data.contains("<head") or \ |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1723 | data.contains("<iframe") or \ |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1724 | data.contains("<h1") or \ |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1725 | data.contains("<div") or \ |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1726 | data.contains("<font") or \ |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1727 | data.contains("<table") or \ |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1728 | data.contains("<a") or \ |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1729 | data.contains("<style") or \ |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1730 | data.contains("<title") or \ |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1731 | data.contains("<b") or \ |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1732 | data.contains("<body") or \ |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1733 | data.contains("<br") or \ |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1734 | data.contains("<p"): |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1735 | return True |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1736 | |
6771da84fb0c
Did some refinesments to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
675
diff
changeset
|
1737 | return False |