eric7/WebBrowser/UrlBar/UrlBar.py

Sun, 26 Dec 2021 17:40:29 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 26 Dec 2021 17:40:29 +0100
branch
eric7
changeset 8857
8191d15b8974
parent 8556
766e1566cb74
child 8881
54e42bc2437a
permissions
-rw-r--r--

Added some style sheet and color related TODO markers.

653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
7923
91e843545d9a Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7781
diff changeset
3 # Copyright (c) 2010 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the URL bar widget.
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
10 from PyQt6.QtCore import pyqtSlot, Qt, QUrl, QDateTime, QTimer, QPoint
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
11 from PyQt6.QtGui import QColor, QPalette, QIcon
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
12 from PyQt6.QtWidgets import QDialog, QApplication, QLineEdit
8553
10d31e5ce9e5 First batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
13 from PyQt6.QtWebEngineCore import QWebEnginePage
7766
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
14 try:
8318
962bce857696 Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
15 from PyQt6.QtNetwork import QSslCertificate # __IGNORE_EXCEPTION__
7766
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
16 except ImportError:
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
17 QSslCertificate = None # __IGNORE_WARNING__
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
19 from EricWidgets.EricLineEdit import EricClearableLineEdit, EricLineEditSide
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
4788
7076adec8ddd Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4787
diff changeset
21 from WebBrowser.WebBrowserWindow import WebBrowserWindow
661
f9d49e0c2522 Added code to show some bookmark data from the URL bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 658
diff changeset
22
5829
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
23 from WebBrowser.SafeBrowsing.SafeBrowsingLabel import SafeBrowsingLabel
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
24
4726
c26e2a2dc0cb Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4725
diff changeset
25 from .FavIconLabel import FavIconLabel
7766
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
26 from .SslLabel import SslLabel
5829
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
27
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 import UI.PixmapCache
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 import Preferences
7766
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
30 import Utilities
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 826
diff changeset
32
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
33 class UrlBar(EricClearableLineEdit):
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 Class implementing a line edit for entering URLs.
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 826
diff changeset
37 def __init__(self, mainWindow, parent=None):
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 Constructor
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
41 @param mainWindow reference to the main window
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
42 @type WebBrowserWindow
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
43 @param parent reference to the parent widget
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
44 @type WebBrowserView
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 """
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
46 super().__init__(parent)
8350
74a3b2a6a944 Removed all references to E5ComboBox and most references to E5LineEdit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8319
diff changeset
47 self.setPlaceholderText(self.tr("Enter the URL here."))
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
48 self.setWhatsThis(self.tr("Enter the URL here."))
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 self.__mw = mainWindow
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 self.__browser = None
4788
7076adec8ddd Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4787
diff changeset
52 self.__privateMode = WebBrowserWindow.isPrivate()
661
f9d49e0c2522 Added code to show some bookmark data from the URL bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 658
diff changeset
53
7533
88261c96484b Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
54 self.__bmActiveIcon = UI.PixmapCache.getIcon("bookmark16")
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
55 self.__bmInactiveIcon = QIcon(
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
56 self.__bmActiveIcon.pixmap(16, 16, QIcon.Mode.Disabled))
657
099d1ab9073e Added the SSL info label to the URL bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 653
diff changeset
57
5829
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
58 self.__safeBrowsingLabel = SafeBrowsingLabel(self)
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8350
diff changeset
59 self.addWidget(self.__safeBrowsingLabel, EricLineEditSide.LEFT)
5829
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
60 self.__safeBrowsingLabel.setVisible(False)
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
61
4726
c26e2a2dc0cb Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4725
diff changeset
62 self.__favicon = FavIconLabel(self)
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8350
diff changeset
63 self.addWidget(self.__favicon, EricLineEditSide.LEFT)
4715
79009bc4acd5 Continued getting the basic web browser functions going.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4709
diff changeset
64
7766
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
65 self.__sslLabel = SslLabel(self)
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8350
diff changeset
66 self.addWidget(self.__sslLabel, EricLineEditSide.LEFT)
7766
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
67 self.__sslLabel.setVisible(False)
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
68
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
69 self.__rssAction = self.addAction(
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
70 UI.PixmapCache.getIcon("rss16"),
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
71 QLineEdit.ActionPosition.TrailingPosition)
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
72 self.__rssAction.setVisible(False)
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
74 self.__bookmarkAction = self.addAction(
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
75 self.__bmInactiveIcon,
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
76 QLineEdit.ActionPosition.TrailingPosition)
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
77 self.__bookmarkAction.setVisible(False)
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78
5829
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
79 self.__safeBrowsingLabel.clicked.connect(self.__showThreatInfo)
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
80 self.__bookmarkAction.triggered.connect(self.__showBookmarkInfo)
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
81 self.__rssAction.triggered.connect(self.__rssTriggered)
661
f9d49e0c2522 Added code to show some bookmark data from the URL bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 658
diff changeset
82
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
83 self.__mw.bookmarksManager().entryChanged.connect(
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
84 self.__bookmarkChanged)
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
85 self.__mw.bookmarksManager().entryAdded.connect(
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
86 self.__bookmarkChanged)
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
87 self.__mw.bookmarksManager().entryRemoved.connect(
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
88 self.__bookmarkChanged)
4868
985d275502c8 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4801
diff changeset
89 self.__mw.speedDial().pagesChanged.connect(
985d275502c8 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4801
diff changeset
90 self.__bookmarkChanged)
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 def setBrowser(self, browser):
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 Public method to set the browser connection.
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
96 @param browser reference to the browser widget
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
97 @type WebBrowserView
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 self.__browser = browser
4726
c26e2a2dc0cb Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4725
diff changeset
100 self.__favicon.setBrowser(browser)
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 self.__browser.urlChanged.connect(self.__browserUrlChanged)
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
103 self.__browser.loadProgress.connect(self.__loadProgress)
657
099d1ab9073e Added the SSL info label to the URL bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 653
diff changeset
104 self.__browser.loadFinished.connect(self.__loadFinished)
099d1ab9073e Added the SSL info label to the URL bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 653
diff changeset
105 self.__browser.loadStarted.connect(self.__loadStarted)
5829
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
106
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
107 self.__browser.safeBrowsingBad.connect(
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
108 self.__safeBrowsingLabel.setThreatInfo)
7766
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
109
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
110 self.__sslLabel.clicked.connect(self.__browser.page().showSslInfo)
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
111 self.__browser.page().sslConfigurationChanged.connect(
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
112 self.__sslConfigurationChanged)
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 def browser(self):
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 """
2954
bf0215fe12d1 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2585
diff changeset
116 Public method to get the associated browser.
bf0215fe12d1 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2585
diff changeset
117
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
118 @return reference to the associated browser
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
119 @rtype WebBrowserView
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 return self.__browser
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
123 @pyqtSlot(QUrl)
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 def __browserUrlChanged(self, url):
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 Private slot to handle a URL change of the associated browser.
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
128 @param url new URL of the browser
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
129 @type QUrl
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 """
1670
6fd889391d2c Added a Speed Dial to the web browser including the capability to select the first ten pages by pressing Meta+1 to Meta+0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1665
diff changeset
131 strUrl = url.toString()
4709
8612533a223f Started porting the eric web browser to use QtWebEngine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
132 if strUrl in ["eric:speeddial", "eric:home",
8612533a223f Started porting the eric web browser to use QtWebEngine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
133 "about:blank", "about:config"]:
1670
6fd889391d2c Added a Speed Dial to the web browser including the capability to select the first ten pages by pressing Meta+1 to Meta+0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1665
diff changeset
134 strUrl = ""
6fd889391d2c Added a Speed Dial to the web browser including the capability to select the first ten pages by pressing Meta+1 to Meta+0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1665
diff changeset
135
6fd889391d2c Added a Speed Dial to the web browser including the capability to select the first ten pages by pressing Meta+1 to Meta+0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1665
diff changeset
136 if self.text() != strUrl:
6fd889391d2c Added a Speed Dial to the web browser including the capability to select the first ten pages by pressing Meta+1 to Meta+0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1665
diff changeset
137 self.setText(strUrl)
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 self.setCursorPosition(0)
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
140 @pyqtSlot()
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
141 def __checkBookmark(self):
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
142 """
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
143 Private slot to check the current URL for the bookmarked state.
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
144 """
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
145 manager = self.__mw.bookmarksManager()
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
146 if manager.bookmarkForUrl(self.__browser.url()) is not None:
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
147 self.__bookmarkAction.setIcon(self.__bmActiveIcon)
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
148 bookmarks = manager.bookmarksForUrl(self.__browser.url())
4753
8d2ea02ed785 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4741
diff changeset
149 from WebBrowser.Bookmarks.BookmarkNode import BookmarkNode
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
150 for bookmark in bookmarks:
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
151 manager.setTimestamp(bookmark, BookmarkNode.TsVisited,
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
152 QDateTime.currentDateTime())
7270
41d09cf20415 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
153 elif self.__mw.speedDial().pageForUrl(self.__browser.url()).url != "":
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
154 self.__bookmarkAction.setIcon(self.__bmActiveIcon)
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
155 else:
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
156 self.__bookmarkAction.setIcon(self.__bmInactiveIcon)
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
157
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
158 @pyqtSlot()
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
159 def __loadStarted(self):
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
160 """
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
161 Private slot to perform actions before the page is loaded.
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
162 """
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
163 self.__bookmarkAction.setVisible(False)
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
164 self.__rssAction.setVisible(False)
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
165 self.__sslLabel.setVisible(False)
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
166
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
167 @pyqtSlot(int)
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
168 def __loadProgress(self, progress):
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
169 """
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
170 Private slot to track the load progress.
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
171
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
172 @param progress load progress in percent
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
173 @type int
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
174 """
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
175 foregroundColor = QApplication.palette().color(QPalette.ColorRole.Text)
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
176
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
177 backgroundColor = (
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
178 Preferences.getWebBrowser("PrivateModeUrlColor")
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
179 if self.__privateMode else
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
180 QApplication.palette().color(QPalette.ColorRole.Base)
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
181 )
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
182
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
183 if not self.__browser.getSafeBrowsingStatus():
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
184 # malicious web site
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
185 backgroundColor = Preferences.getWebBrowser(
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
186 "MaliciousUrlColor")
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
187 elif self.__browser.url().scheme() == "https":
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
188 if WebBrowserWindow.networkManager().isInsecureHost(
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
189 self.__browser.url().host()
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
190 ):
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
191 backgroundColor = Preferences.getWebBrowser(
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
192 "InsecureUrlColor")
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
193 else:
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
194 backgroundColor = Preferences.getWebBrowser(
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
195 "SecureUrlColor")
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
196
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
197 if progress in (0, 100):
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
198 styleSheet = (
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
199 f"color: {foregroundColor.name()}; "
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
200 f"background-color: {backgroundColor.name()};"
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
201 )
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
202 else:
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
203 highlight = QApplication.palette().color(
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
204 QPalette.ColorRole.Highlight)
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
205 r = (highlight.red() + 2 * backgroundColor.red()) // 3
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
206 g = (highlight.green() + 2 * backgroundColor.green()) // 3
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
207 b = (highlight.blue() + 2 * backgroundColor.blue()) // 3
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
208
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
209 loadingColor = QColor(r, g, b)
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
210 if abs(loadingColor.lightness() -
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
211 backgroundColor.lightness()) < 20:
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
212 r = (2 * highlight.red() + backgroundColor.red()) // 3
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
213 g = (2 * highlight.green() + backgroundColor.green()) // 3
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
214 b = (2 * highlight.blue() + backgroundColor.blue()) // 3
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
215 loadingColor = QColor(r, g, b)
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
216
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
217 styleSheet = (
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
218 f"color: {foregroundColor.name()}; "
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
219 f"background-color: qlineargradient("
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
220 f"spread: pad, x1: 0, y1: 0, x2: 1, y2: 0, "
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
221 f"stop: 0 {loadingColor.name()}, "
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
222 f"stop: {progress / 100.0 - 0.001} {loadingColor.name()}, "
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
223 f"stop: {progress / 100.0 + 0.001} {backgroundColor.name()}, "
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
224 f"stop: 1 {backgroundColor.name()});"
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
225 )
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
226
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
227 self.setStyleSheet(styleSheet)
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
228 self.repaint()
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
229
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
230 @pyqtSlot(bool)
657
099d1ab9073e Added the SSL info label to the URL bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 653
diff changeset
231 def __loadFinished(self, ok):
099d1ab9073e Added the SSL info label to the URL bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 653
diff changeset
232 """
099d1ab9073e Added the SSL info label to the URL bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 653
diff changeset
233 Private slot to set some data after the page was loaded.
099d1ab9073e Added the SSL info label to the URL bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 653
diff changeset
234
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
235 @param ok flag indicating a successful load
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
236 @type bool
657
099d1ab9073e Added the SSL info label to the URL bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 653
diff changeset
237 """
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
238 if self.__browser.url().scheme() in ["eric", "about"]:
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
239 self.__bookmarkAction.setVisible(False)
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
240 else:
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
241 self.__checkBookmark()
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
242 self.__bookmarkAction.setVisible(True)
4709
8612533a223f Started porting the eric web browser to use QtWebEngine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
243
5829
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
244 self.__browserUrlChanged(self.__browser.url())
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
245 self.__safeBrowsingLabel.setVisible(
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
246 not self.__browser.getSafeBrowsingStatus())
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
247
4758
c973eef8fef1 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4753
diff changeset
248 if ok:
c973eef8fef1 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4753
diff changeset
249 QTimer.singleShot(0, self.__setRssButton)
657
099d1ab9073e Added the SSL info label to the URL bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 653
diff changeset
250
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
251 @pyqtSlot()
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
252 def preferencesChanged(self):
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
253 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
254 Public slot to handle a change of preferences.
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
255 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
256 self.update()
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
257
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
258 @pyqtSlot()
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
259 def __showBookmarkInfo(self):
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
260 """
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
261 Private slot to show a dialog with some bookmark info.
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
262 """
7270
41d09cf20415 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
263 from .BookmarkActionSelectionDialog import (
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
264 BookmarkActionSelectionDialog
7270
41d09cf20415 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
265 )
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
266 url = self.__browser.url()
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
267 dlg = BookmarkActionSelectionDialog(url)
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
268 if dlg.exec() == QDialog.DialogCode.Accepted:
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
269 action = dlg.getAction()
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
270 if action == BookmarkActionSelectionDialog.AddBookmark:
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
271 self.__browser.addBookmark()
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
272 elif action == BookmarkActionSelectionDialog.EditBookmark:
7270
41d09cf20415 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
273 bookmark = (
41d09cf20415 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
274 self.__mw.bookmarksManager().bookmarkForUrl(url)
41d09cf20415 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
275 )
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
276 from .BookmarkInfoDialog import BookmarkInfoDialog
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
277 dlg = BookmarkInfoDialog(bookmark, self.__browser)
7759
51aa6c6b66f7 Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7570
diff changeset
278 dlg.exec()
4868
985d275502c8 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4801
diff changeset
279 elif action == BookmarkActionSelectionDialog.AddSpeeddial:
985d275502c8 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4801
diff changeset
280 self.__mw.speedDial().addPage(
985d275502c8 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4801
diff changeset
281 url, self.__browser.title())
985d275502c8 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4801
diff changeset
282 elif action == BookmarkActionSelectionDialog.RemoveSpeeddial:
985d275502c8 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4801
diff changeset
283 self.__mw.speedDial().removePage(url)
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
284
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
285 @pyqtSlot()
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
286 def __bookmarkChanged(self):
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
287 """
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
288 Private slot to handle bookmark or speed dial changes.
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
289 """
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
290 self.__checkBookmark()
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
291
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
292 def focusOutEvent(self, evt):
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
293 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
294 Protected method to handle focus out event.
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
295
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
296 @param evt reference to the focus event
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
297 @type QFocusEvent
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
298 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
299 if self.text() == "" and self.__browser is not None:
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
300 self.__browserUrlChanged(self.__browser.url())
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
301 super().focusOutEvent(evt)
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
302
1170
a3731e520b28 Improved the handling of mouse XButton1 and XButton2 handling in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1106
diff changeset
303 def mousePressEvent(self, evt):
a3731e520b28 Improved the handling of mouse XButton1 and XButton2 handling in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1106
diff changeset
304 """
a3731e520b28 Improved the handling of mouse XButton1 and XButton2 handling in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1106
diff changeset
305 Protected method called by a mouse press event.
a3731e520b28 Improved the handling of mouse XButton1 and XButton2 handling in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1106
diff changeset
306
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
307 @param evt reference to the mouse event
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
308 @type QMouseEvent
1170
a3731e520b28 Improved the handling of mouse XButton1 and XButton2 handling in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1106
diff changeset
309 """
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
310 if evt.button() == Qt.MouseButton.XButton1:
4709
8612533a223f Started porting the eric web browser to use QtWebEngine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
311 self.__mw.currentBrowser().triggerPageAction(
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
312 QWebEnginePage.WebAction.Back)
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
313 elif evt.button() == Qt.MouseButton.XButton2:
4709
8612533a223f Started porting the eric web browser to use QtWebEngine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
314 self.__mw.currentBrowser().triggerPageAction(
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
315 QWebEnginePage.WebAction.Forward)
1170
a3731e520b28 Improved the handling of mouse XButton1 and XButton2 handling in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1106
diff changeset
316 else:
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8205
diff changeset
317 super().mousePressEvent(evt)
1170
a3731e520b28 Improved the handling of mouse XButton1 and XButton2 handling in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1106
diff changeset
318
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
319 def mouseDoubleClickEvent(self, evt):
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
320 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
321 Protected method to handle mouse double click events.
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
322
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
323 @param evt reference to the mouse event
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
324 @type QMouseEvent
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
325 """
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
326 if evt.button() == Qt.MouseButton.LeftButton:
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
327 self.selectAll()
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
328 else:
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
329 super().mouseDoubleClickEvent(evt)
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
330
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
331 def keyPressEvent(self, evt):
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
332 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
333 Protected method to handle key presses.
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
334
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
335 @param evt reference to the key press event
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
336 @type QKeyEvent
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
337 """
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
338 if evt.key() == Qt.Key.Key_Escape:
4709
8612533a223f Started porting the eric web browser to use QtWebEngine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
339 if self.__browser is not None:
8612533a223f Started porting the eric web browser to use QtWebEngine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
340 self.setText(
8612533a223f Started porting the eric web browser to use QtWebEngine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
341 str(self.__browser.url().toEncoded(), encoding="utf-8"))
8612533a223f Started porting the eric web browser to use QtWebEngine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
342 self.selectAll()
8612533a223f Started porting the eric web browser to use QtWebEngine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
343 completer = self.completer()
8612533a223f Started porting the eric web browser to use QtWebEngine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
344 if completer:
8612533a223f Started porting the eric web browser to use QtWebEngine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
345 completer.popup().hide()
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
346 return
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
347
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
348 currentText = self.text().strip()
7270
41d09cf20415 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
349 if (
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
350 evt.key() in [Qt.Key.Key_Enter, Qt.Key.Key_Return] and
7270
41d09cf20415 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
351 not currentText.lower().startswith(("http://", "https://"))
41d09cf20415 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
352 ):
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
353 append = ""
8319
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
354 if evt.modifiers() == Qt.KeyboardModifier.ControlModifier:
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
355 append = ".com"
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
356 elif (
8319
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
357 evt.modifiers() == (
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
358 Qt.KeyboardModifier.ControlModifier |
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
359 Qt.KeyboardModifier.ShiftModifier
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
360 )
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
361 ):
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
362 append = ".org"
8319
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
363 elif evt.modifiers() == Qt.KeyboardModifier.ShiftModifier:
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
364 append = ".net"
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
365
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
366 if append != "":
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
367 url = QUrl("http://www." + currentText)
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
368 host = url.host()
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
369 if not host.lower().endswith(append):
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
370 host += append
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
371 url.setHost(host)
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
372 self.setText(url.toString())
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
373
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
374 super().keyPressEvent(evt)
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
375
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
376 def dragEnterEvent(self, evt):
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
377 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
378 Protected method to handle drag enter events.
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
379
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
380 @param evt reference to the drag enter event
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
381 @type QDragEnterEvent
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
382 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
383 mimeData = evt.mimeData()
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
384 if mimeData.hasUrls() or mimeData.hasText():
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
385 evt.acceptProposedAction()
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
386
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
387 super().dragEnterEvent(evt)
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
388
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
389 def dropEvent(self, evt):
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
390 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
391 Protected method to handle drop events.
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
392
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
393 @param evt reference to the drop event
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
394 @type QDropEvent
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
395 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
396 mimeData = evt.mimeData()
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
397
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
398 url = QUrl()
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
399 if mimeData.hasUrls():
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
400 url = mimeData.urls()[0]
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
401 elif mimeData.hasText():
4332
64034d85c709 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4331
diff changeset
402 url = QUrl.fromEncoded(mimeData.text().encode("utf-8"),
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
403 QUrl.ParsingMode.TolerantMode)
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
404
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
405 if url.isEmpty() or not url.isValid():
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
406 super().dropEvent(evt)
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
407 return
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
408
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 826
diff changeset
409 self.setText(str(url.toEncoded(), encoding="utf-8"))
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
410 self.selectAll()
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
411
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
412 evt.acceptProposedAction()
4758
c973eef8fef1 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4753
diff changeset
413
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
414 @pyqtSlot()
4758
c973eef8fef1 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4753
diff changeset
415 def __setRssButton(self):
c973eef8fef1 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4753
diff changeset
416 """
c973eef8fef1 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4753
diff changeset
417 Private slot to show the RSS button.
c973eef8fef1 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4753
diff changeset
418 """
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
419 self.__rssAction.setVisible(self.__browser.checkRSS())
4758
c973eef8fef1 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4753
diff changeset
420
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
421 @pyqtSlot()
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
422 def __rssTriggered(self):
4758
c973eef8fef1 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4753
diff changeset
423 """
c973eef8fef1 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4753
diff changeset
424 Private slot to handle clicking the RSS icon.
c973eef8fef1 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4753
diff changeset
425 """
c973eef8fef1 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4753
diff changeset
426 from WebBrowser.Feeds.FeedsDialog import FeedsDialog
c973eef8fef1 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4753
diff changeset
427 feeds = self.__browser.getRSS()
c973eef8fef1 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4753
diff changeset
428 dlg = FeedsDialog(feeds, self.__browser)
7759
51aa6c6b66f7 Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7570
diff changeset
429 dlg.exec()
5829
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
430
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
431 @pyqtSlot(QPoint)
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
432 def __showThreatInfo(self, pos):
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
433 """
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
434 Private slot to show the threat info widget.
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
435
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
436 @param pos position to show the info at
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
437 @type QPoint
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
438 """
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
439 threatInfo = self.__safeBrowsingLabel.getThreatInfo()
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
440 if threatInfo:
7270
41d09cf20415 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
441 from WebBrowser.SafeBrowsing.SafeBrowsingInfoWidget import (
5829
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
442 SafeBrowsingInfoWidget
7270
41d09cf20415 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
443 )
5829
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
444 widget = SafeBrowsingInfoWidget(threatInfo, self.__browser)
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
445 widget.showAt(pos)
7766
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
446
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
447 @pyqtSlot()
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
448 def __sslConfigurationChanged(self):
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
449 """
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
450 Private slot to handle a change of the associated web page SSL
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
451 configuration.
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
452 """
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
453 sslConfiguration = self.__browser.page().getSslConfiguration()
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
454 if sslConfiguration is not None and QSslCertificate is not None:
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
455 sslCertificate = self.__browser.page().getSslCertificate()
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
456 if sslCertificate is not None:
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
457 org = Utilities.decodeString(", ".join(
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
458 sslCertificate.subjectInfo(
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
459 QSslCertificate.SubjectInfo.Organization)))
7766
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
460 if org == "":
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
461 cn = Utilities.decodeString(", ".join(
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
462 sslCertificate.subjectInfo(
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
463 QSslCertificate.SubjectInfo.CommonName)))
7766
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
464 if cn != "":
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
465 org = cn.split(".", 1)[1]
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
466 if org == "":
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
467 org = self.tr("Unknown")
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
468 self.__sslLabel.setText(" {0} ".format(org))
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
469 self.__sslLabel.setVisible(True)
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
470 valid = not sslCertificate.isBlacklisted()
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
471 if valid:
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
472 config = self.__browser.page().getSslConfiguration()
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
473 if config is None or config.sessionCipher().isNull():
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
474 valid = False
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
475 self.__sslLabel.setValidity(valid)
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
476 else:
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
477 self.__sslLabel.setVisible(False)
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
478 else:
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
479 self.__sslLabel.setVisible(False)

eric ide

mercurial