src/eric7/WebBrowser/UrlBar/UrlBar.py

Sat, 26 Apr 2025 12:34:32 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 26 Apr 2025 12:34:32 +0200
branch
eric7
changeset 11240
c48c615c04a3
parent 11090
f5f5f5803935
permissions
-rw-r--r--

MicroPython
- Added a configuration option to disable the support for the no longer produced Pimoroni Pico Wireless Pack.

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
11090
f5f5f5803935 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11006
diff changeset
3 # Copyright (c) 2010 - 2025 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
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
10 from PyQt6.QtCore import QDateTime, QPoint, Qt, QTimer, QUrl, pyqtSlot
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
11 from PyQt6.QtGui import QColor, QIcon, QPalette
8553
10d31e5ce9e5 First batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
12 from PyQt6.QtWebEngineCore import QWebEnginePage
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
13 from PyQt6.QtWidgets import QApplication, QDialog, QLineEdit
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
14
7766
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
15 try:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
16 from PyQt6.QtNetwork import QSslCertificate # __IGNORE_EXCEPTION__
7766
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
17 except ImportError:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
18 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
19
10928
46651e194fbe Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10487
diff changeset
20 from eric7 import EricUtilities, Preferences
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
21 from eric7.EricGui import EricPixmapCache
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
22 from eric7.EricWidgets.EricLineEdit import EricClearableLineEdit, EricLineEditSide
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
23 from eric7.WebBrowser.SafeBrowsing.SafeBrowsingLabel import SafeBrowsingLabel
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
24 from eric7.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
25
4726
c26e2a2dc0cb Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4725
diff changeset
26 from .FavIconLabel import FavIconLabel
7766
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
27 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
28
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 826
diff changeset
29
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
30 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
31 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 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
33 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
34
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 826
diff changeset
35 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
36 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
38
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
39 @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
40 @type WebBrowserWindow
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
41 @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
42 @type WebBrowserView
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 """
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
44 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
45 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
46 self.setWhatsThis(self.tr("Enter the URL here."))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
47
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 self.__mw = mainWindow
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 self.__browser = None
4788
7076adec8ddd Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4787
diff changeset
50 self.__privateMode = WebBrowserWindow.isPrivate()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
51
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
52 self.__bmActiveIcon = EricPixmapCache.getIcon("bookmark16")
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
53 self.__bmInactiveIcon = QIcon(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
54 self.__bmActiveIcon.pixmap(16, 16, QIcon.Mode.Disabled)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
55 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
56
5829
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
57 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
58 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
59 self.__safeBrowsingLabel.setVisible(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
60
4726
c26e2a2dc0cb Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4725
diff changeset
61 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
62 self.addWidget(self.__favicon, EricLineEditSide.LEFT)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
63
7766
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
64 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
65 self.addWidget(self.__sslLabel, EricLineEditSide.LEFT)
7766
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
66 self.__sslLabel.setVisible(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
67
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
68 self.__rssAction = self.addAction(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
69 EricPixmapCache.getIcon("rss16"), QLineEdit.ActionPosition.TrailingPosition
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
70 )
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
71 self.__rssAction.setVisible(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
72
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
73 self.__bookmarkAction = self.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
74 self.__bmInactiveIcon, QLineEdit.ActionPosition.TrailingPosition
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
75 )
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
76 self.__bookmarkAction.setVisible(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
77
5829
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
78 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
79 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
80 self.__rssAction.triggered.connect(self.__rssTriggered)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
81
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
82 self.__mw.bookmarksManager().entryChanged.connect(self.__bookmarkChanged)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
83 self.__mw.bookmarksManager().entryAdded.connect(self.__bookmarkChanged)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
84 self.__mw.bookmarksManager().entryRemoved.connect(self.__bookmarkChanged)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
85 self.__mw.speedDial().pagesChanged.connect(self.__bookmarkChanged)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
86
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 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
88 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 Public method to set the browser connection.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
90
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
91 @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
92 @type WebBrowserView
653
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 self.__browser = browser
4726
c26e2a2dc0cb Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4725
diff changeset
95 self.__favicon.setBrowser(browser)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
96
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 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
98 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
99 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
100 self.__browser.loadStarted.connect(self.__loadStarted)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
101
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
102 self.__browser.safeBrowsingBad.connect(self.__safeBrowsingLabel.setThreatInfo)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
103
7766
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
104 self.__sslLabel.clicked.connect(self.__browser.page().showSslInfo)
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
105 self.__browser.page().sslConfigurationChanged.connect(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
106 self.__sslConfigurationChanged
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
107 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
108
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 def browser(self):
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 """
2954
bf0215fe12d1 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2585
diff changeset
111 Public method to get the associated browser.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
112
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
113 @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
114 @rtype WebBrowserView
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 return self.__browser
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
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 @pyqtSlot(QUrl)
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 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
120 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 Private slot to handle a URL change of the associated browser.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
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 @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
124 @type QUrl
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 """
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
126 strUrl = url.toString()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
127 if strUrl in ["eric:speeddial", "eric:home", "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
128 strUrl = ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
129
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
130 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
131 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
132 self.setCursorPosition(0)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
133
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
134 @pyqtSlot()
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
135 def __checkBookmark(self):
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
136 """
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
137 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
138 """
10482
72d9b5ea39b4 Changed some state/mode definitiuons to an enum.Enum class and corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
139 from eric7.WebBrowser.Bookmarks.BookmarkNode import BookmarkTimestampType
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
140
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
141 manager = self.__mw.bookmarksManager()
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
142 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
143 self.__bookmarkAction.setIcon(self.__bmActiveIcon)
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
144 bookmarks = manager.bookmarksForUrl(self.__browser.url())
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
145 for bookmark in bookmarks:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
146 manager.setTimestamp(
10482
72d9b5ea39b4 Changed some state/mode definitiuons to an enum.Enum class and corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
147 bookmark, BookmarkTimestampType.Visited, QDateTime.currentDateTime()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
148 )
7270
41d09cf20415 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
149 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
150 self.__bookmarkAction.setIcon(self.__bmActiveIcon)
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
151 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
152 self.__bookmarkAction.setIcon(self.__bmInactiveIcon)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
153
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
154 @pyqtSlot()
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
155 def __loadStarted(self):
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
156 """
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
157 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
158 """
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
159 self.__bookmarkAction.setVisible(False)
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
160 self.__rssAction.setVisible(False)
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
161 self.__sslLabel.setVisible(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
162
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
163 @pyqtSlot(int)
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
164 def __loadProgress(self, progress):
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
165 """
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
166 Private slot to track the load progress.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
167
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
168 @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
169 @type int
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
170 """
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
171 foregroundColor = QApplication.palette().color(QPalette.ColorRole.Text)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
172
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
173 backgroundColor = (
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
174 Preferences.getWebBrowser("PrivateModeUrlColor")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
175 if self.__privateMode
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
176 else QApplication.palette().color(QPalette.ColorRole.Base)
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
177 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
178
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
179 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
180 # malicious web site
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
181 backgroundColor = Preferences.getWebBrowser("MaliciousUrlColor")
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
182 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
183 if WebBrowserWindow.networkManager().isInsecureHost(
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
184 self.__browser.url().host()
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
185 ):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
186 backgroundColor = Preferences.getWebBrowser("InsecureUrlColor")
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
187 else:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
188 backgroundColor = Preferences.getWebBrowser("SecureUrlColor")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
189
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
190 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
191 styleSheet = (
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
192 f"color: {foregroundColor.name()}; "
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
193 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
194 )
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
195 else:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
196 highlight = QApplication.palette().color(QPalette.ColorRole.Highlight)
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
197 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
198 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
199 b = (highlight.blue() + 2 * backgroundColor.blue()) // 3
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
200
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
201 loadingColor = QColor(r, g, b)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
202 if abs(loadingColor.lightness() - backgroundColor.lightness()) < 20:
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
203 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
204 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
205 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
206 loadingColor = QColor(r, g, b)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
207
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
208 styleSheet = (
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
209 f"color: {foregroundColor.name()}; "
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
210 f"background-color: qlineargradient("
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
211 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
212 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
213 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
214 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
215 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
216 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
217
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
218 self.setStyleSheet(styleSheet)
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
219 self.repaint()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
220
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
221 @pyqtSlot(bool)
657
099d1ab9073e Added the SSL info label to the URL bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 653
diff changeset
222 def __loadFinished(self, ok):
099d1ab9073e Added the SSL info label to the URL bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 653
diff changeset
223 """
099d1ab9073e Added the SSL info label to the URL bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 653
diff changeset
224 Private slot to set some data after the page was loaded.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
225
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
226 @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
227 @type bool
657
099d1ab9073e Added the SSL info label to the URL bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 653
diff changeset
228 """
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
229 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
230 self.__bookmarkAction.setVisible(False)
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
231 else:
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
232 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
233 self.__bookmarkAction.setVisible(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
234
5829
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
235 self.__browserUrlChanged(self.__browser.url())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
236 self.__safeBrowsingLabel.setVisible(not self.__browser.getSafeBrowsingStatus())
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
237
4758
c973eef8fef1 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4753
diff changeset
238 if ok:
c973eef8fef1 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4753
diff changeset
239 QTimer.singleShot(0, self.__setRssButton)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
240
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
241 @pyqtSlot()
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
242 def preferencesChanged(self):
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
243 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
244 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
245 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
246 self.update()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
247
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
248 @pyqtSlot()
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
249 def __showBookmarkInfo(self):
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
250 """
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
251 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
252 """
10487
fb7b78071ee8 Changed some state/mode/type definitions to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10482
diff changeset
253 from .BookmarkActionSelectionDialog import (
fb7b78071ee8 Changed some state/mode/type definitions to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10482
diff changeset
254 BookmarkAction,
fb7b78071ee8 Changed some state/mode/type definitions to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10482
diff changeset
255 BookmarkActionSelectionDialog,
fb7b78071ee8 Changed some state/mode/type definitions to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10482
diff changeset
256 )
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
257 from .BookmarkInfoDialog import BookmarkInfoDialog
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
258
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
259 url = self.__browser.url()
11006
a671918232f3 Modified modal dialog usage to always include a valid parent (needed for Wayland).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10928
diff changeset
260 dlg = BookmarkActionSelectionDialog(url, parent=self.__browser)
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
261 if dlg.exec() == QDialog.DialogCode.Accepted:
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
262 action = dlg.getAction()
10487
fb7b78071ee8 Changed some state/mode/type definitions to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10482
diff changeset
263 if action == BookmarkAction.AddBookmark:
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
264 self.__browser.addBookmark()
10487
fb7b78071ee8 Changed some state/mode/type definitions to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10482
diff changeset
265 elif action == BookmarkAction.EditBookmark:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
266 bookmark = self.__mw.bookmarksManager().bookmarkForUrl(url)
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
267 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
268 dlg.exec()
10487
fb7b78071ee8 Changed some state/mode/type definitions to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10482
diff changeset
269 elif action == BookmarkAction.AddSpeeddial:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
270 self.__mw.speedDial().addPage(url, self.__browser.title())
10487
fb7b78071ee8 Changed some state/mode/type definitions to an enum.Enum class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10482
diff changeset
271 elif action == BookmarkAction.RemoveSpeeddial:
4868
985d275502c8 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4801
diff changeset
272 self.__mw.speedDial().removePage(url)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
273
4732
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
274 @pyqtSlot()
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
275 def __bookmarkChanged(self):
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
276 """
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
277 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
278 """
5ac4fc1dfc20 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4726
diff changeset
279 self.__checkBookmark()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
280
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
281 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
282 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
283 Protected method to handle focus out event.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
284
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
285 @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
286 @type QFocusEvent
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
287 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
288 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
289 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
290 super().focusOutEvent(evt)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
291
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
292 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
293 """
a3731e520b28 Improved the handling of mouse XButton1 and XButton2 handling in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1106
diff changeset
294 Protected method called by a mouse press event.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
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 mouse event
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
297 @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
298 """
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
299 if evt.button() == Qt.MouseButton.XButton1:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
300 self.__mw.currentBrowser().triggerPageAction(QWebEnginePage.WebAction.Back)
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
301 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
302 self.__mw.currentBrowser().triggerPageAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
303 QWebEnginePage.WebAction.Forward
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
304 )
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
305 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
306 super().mousePressEvent(evt)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
307
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
308 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
309 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
310 Protected method to handle mouse double click events.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
311
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
312 @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
313 @type QMouseEvent
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
314 """
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 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
316 self.selectAll()
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
317 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
318 super().mouseDoubleClickEvent(evt)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
319
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
320 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
321 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
322 Protected method to handle key presses.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
323
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
324 @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
325 @type QKeyEvent
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
326 """
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
327 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
328 if self.__browser is not None:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
329 self.setText(str(self.__browser.url().toEncoded(), encoding="utf-8"))
4709
8612533a223f Started porting the eric web browser to use QtWebEngine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
330 self.selectAll()
8612533a223f Started porting the eric web browser to use QtWebEngine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
331 completer = self.completer()
8612533a223f Started porting the eric web browser to use QtWebEngine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
332 if completer:
8612533a223f Started porting the eric web browser to use QtWebEngine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
333 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
334 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
335
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
336 currentText = self.text().strip()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
337 if evt.key() in [
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
338 Qt.Key.Key_Enter,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
339 Qt.Key.Key_Return,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
340 ] and not currentText.lower().startswith(("http://", "https://")):
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
341 append = ""
8319
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
342 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
343 append = ".com"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
344 elif evt.modifiers() == (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
345 Qt.KeyboardModifier.ControlModifier | Qt.KeyboardModifier.ShiftModifier
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
346 ):
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
347 append = ".org"
8319
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
348 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
349 append = ".net"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
350
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
351 if append != "":
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
352 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
353 host = url.host()
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
354 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
355 host += append
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
356 url.setHost(host)
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
357 self.setText(url.toString())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
358
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
359 super().keyPressEvent(evt)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
360
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
361 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
362 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
363 Protected method to handle drag enter events.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
364
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
365 @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
366 @type QDragEnterEvent
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
367 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
368 mimeData = evt.mimeData()
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
369 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
370 evt.acceptProposedAction()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
371
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
372 super().dragEnterEvent(evt)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
373
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
374 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
375 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
376 Protected method to handle drop events.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
377
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
378 @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
379 @type QDropEvent
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
380 """
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
381 mimeData = evt.mimeData()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
382
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
383 url = QUrl()
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():
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
385 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
386 elif mimeData.hasText():
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
387 url = QUrl.fromEncoded(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
388 mimeData.text().encode("utf-8"), QUrl.ParsingMode.TolerantMode
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
389 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
390
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
391 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
392 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
393 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
394
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 826
diff changeset
395 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
396 self.selectAll()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
397
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
398 evt.acceptProposedAction()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
399
8857
8191d15b8974 Added some style sheet and color related TODO markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8556
diff changeset
400 @pyqtSlot()
4758
c973eef8fef1 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4753
diff changeset
401 def __setRssButton(self):
c973eef8fef1 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4753
diff changeset
402 """
c973eef8fef1 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4753
diff changeset
403 Private slot to show the RSS button.
c973eef8fef1 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4753
diff changeset
404 """
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
405 self.__rssAction.setVisible(self.__browser.checkRSS())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
406
8556
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
407 @pyqtSlot()
766e1566cb74 Next batch of changes for QtWebEngine as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8553
diff changeset
408 def __rssTriggered(self):
4758
c973eef8fef1 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4753
diff changeset
409 """
c973eef8fef1 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4753
diff changeset
410 Private slot to handle clicking the RSS icon.
c973eef8fef1 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4753
diff changeset
411 """
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
412 from eric7.WebBrowser.Feeds.FeedsDialog import FeedsDialog
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
413
4758
c973eef8fef1 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4753
diff changeset
414 feeds = self.__browser.getRSS()
11006
a671918232f3 Modified modal dialog usage to always include a valid parent (needed for Wayland).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10928
diff changeset
415 dlg = FeedsDialog(feeds, self.__browser, parent=self.__browser)
7759
51aa6c6b66f7 Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7570
diff changeset
416 dlg.exec()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
417
5829
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
418 @pyqtSlot(QPoint)
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
419 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
420 """
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
421 Private slot to show the threat info widget.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
422
5829
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
423 @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
424 @type QPoint
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
425 """
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
426 from eric7.WebBrowser.SafeBrowsing.SafeBrowsingInfoWidget import (
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
427 SafeBrowsingInfoWidget,
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
428 )
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
429
5829
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
430 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
431 if threatInfo:
d3448873ced3 Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
432 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
433 widget.showAt(pos)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
434
7766
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
435 @pyqtSlot()
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
436 def __sslConfigurationChanged(self):
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
437 """
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
438 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
439 configuration.
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
440 """
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
441 sslConfiguration = self.__browser.page().getSslConfiguration()
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
442 if sslConfiguration is not None and QSslCertificate is not None:
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
443 sslCertificate = self.__browser.page().getSslCertificate()
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
444 if sslCertificate is not None:
10928
46651e194fbe Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10487
diff changeset
445 org = EricUtilities.decodeString(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
446 ", ".join(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
447 sslCertificate.subjectInfo(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
448 QSslCertificate.SubjectInfo.Organization
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
449 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
450 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
451 )
7766
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
452 if org == "":
10928
46651e194fbe Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10487
diff changeset
453 cn = EricUtilities.decodeString(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
454 ", ".join(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
455 sslCertificate.subjectInfo(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
456 QSslCertificate.SubjectInfo.CommonName
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
457 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
458 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
459 )
7766
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
460 if cn != "":
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
461 org = cn.split(".", 1)[1]
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
462 if org == "":
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
463 org = self.tr("Unknown")
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
464 self.__sslLabel.setText(" {0} ".format(org))
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
465 self.__sslLabel.setVisible(True)
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
466 valid = not sslCertificate.isBlacklisted()
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
467 if valid:
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
468 config = self.__browser.page().getSslConfiguration()
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
469 if config is None or config.sessionCipher().isNull():
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
470 valid = False
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
471 self.__sslLabel.setValidity(valid)
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
472 else:
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
473 self.__sslLabel.setVisible(False)
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
474 else:
0af772bc14c4 Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
475 self.__sslLabel.setVisible(False)

eric ide

mercurial