eric7/WebBrowser/UrlBar/UrlBar.py

branch
eric7
changeset 8356
68ec9c3d4de5
parent 8350
74a3b2a6a944
child 8358
144a6b854f70
equal deleted inserted replaced
8355:8a7677a63c8d 8356:68ec9c3d4de5
14 try: 14 try:
15 from PyQt6.QtNetwork import QSslCertificate # __IGNORE_EXCEPTION__ 15 from PyQt6.QtNetwork import QSslCertificate # __IGNORE_EXCEPTION__
16 except ImportError: 16 except ImportError:
17 QSslCertificate = None # __IGNORE_WARNING__ 17 QSslCertificate = None # __IGNORE_WARNING__
18 18
19 from E5Gui.E5LineEdit import E5LineEdit, E5LineEditSide 19 from E5Gui.EricLineEdit import EricLineEdit, EricLineEditSide
20 from E5Gui.E5LineEditButton import E5LineEditButton 20 from E5Gui.EricLineEditButton import EricLineEditButton
21 21
22 from WebBrowser.WebBrowserWindow import WebBrowserWindow 22 from WebBrowser.WebBrowserWindow import WebBrowserWindow
23 23
24 from WebBrowser.SafeBrowsing.SafeBrowsingLabel import SafeBrowsingLabel 24 from WebBrowser.SafeBrowsing.SafeBrowsingLabel import SafeBrowsingLabel
25 25
29 import UI.PixmapCache 29 import UI.PixmapCache
30 import Preferences 30 import Preferences
31 import Utilities 31 import Utilities
32 32
33 33
34 class UrlBar(E5LineEdit): 34 class UrlBar(EricLineEdit):
35 """ 35 """
36 Class implementing a line edit for entering URLs. 36 Class implementing a line edit for entering URLs.
37 """ 37 """
38 def __init__(self, mainWindow, parent=None): 38 def __init__(self, mainWindow, parent=None):
39 """ 39 """
40 Constructor 40 Constructor
41 41
42 @param mainWindow reference to the main window (WebBrowserWindow) 42 @param mainWindow reference to the main window (WebBrowserWindow)
43 @param parent reference to the parent widget (WebBrowserView) 43 @param parent reference to the parent widget (WebBrowserView)
44 """ 44 """
45 E5LineEdit.__init__(self, parent) 45 EricLineEdit.__init__(self, parent)
46 self.setPlaceholderText(self.tr("Enter the URL here.")) 46 self.setPlaceholderText(self.tr("Enter the URL here."))
47 self.setWhatsThis(self.tr("Enter the URL here.")) 47 self.setWhatsThis(self.tr("Enter the URL here."))
48 48
49 self.__mw = mainWindow 49 self.__mw = mainWindow
50 self.__browser = None 50 self.__browser = None
53 self.__bmActiveIcon = UI.PixmapCache.getIcon("bookmark16") 53 self.__bmActiveIcon = UI.PixmapCache.getIcon("bookmark16")
54 self.__bmInactiveIcon = QIcon( 54 self.__bmInactiveIcon = QIcon(
55 self.__bmActiveIcon.pixmap(16, 16, QIcon.Mode.Disabled)) 55 self.__bmActiveIcon.pixmap(16, 16, QIcon.Mode.Disabled))
56 56
57 self.__safeBrowsingLabel = SafeBrowsingLabel(self) 57 self.__safeBrowsingLabel = SafeBrowsingLabel(self)
58 self.addWidget(self.__safeBrowsingLabel, E5LineEditSide.LEFT) 58 self.addWidget(self.__safeBrowsingLabel, EricLineEditSide.LEFT)
59 self.__safeBrowsingLabel.setVisible(False) 59 self.__safeBrowsingLabel.setVisible(False)
60 60
61 self.__favicon = FavIconLabel(self) 61 self.__favicon = FavIconLabel(self)
62 self.addWidget(self.__favicon, E5LineEditSide.LEFT) 62 self.addWidget(self.__favicon, EricLineEditSide.LEFT)
63 63
64 self.__sslLabel = SslLabel(self) 64 self.__sslLabel = SslLabel(self)
65 self.addWidget(self.__sslLabel, E5LineEditSide.LEFT) 65 self.addWidget(self.__sslLabel, EricLineEditSide.LEFT)
66 self.__sslLabel.setVisible(False) 66 self.__sslLabel.setVisible(False)
67 67
68 self.__rssButton = E5LineEditButton(self) 68 self.__rssButton = EricLineEditButton(self)
69 self.__rssButton.setIcon(UI.PixmapCache.getIcon("rss16")) 69 self.__rssButton.setIcon(UI.PixmapCache.getIcon("rss16"))
70 self.addWidget(self.__rssButton, E5LineEditSide.RIGHT) 70 self.addWidget(self.__rssButton, EricLineEditSide.RIGHT)
71 self.__rssButton.setVisible(False) 71 self.__rssButton.setVisible(False)
72 72
73 self.__bookmarkButton = E5LineEditButton(self) 73 self.__bookmarkButton = EricLineEditButton(self)
74 self.addWidget(self.__bookmarkButton, E5LineEditSide.RIGHT) 74 self.addWidget(self.__bookmarkButton, EricLineEditSide.RIGHT)
75 self.__bookmarkButton.setVisible(False) 75 self.__bookmarkButton.setVisible(False)
76 76
77 self.__clearButton = E5LineEditButton(self) 77 self.__clearButton = EricLineEditButton(self)
78 self.__clearButton.setIcon(UI.PixmapCache.getIcon("clearLeft")) 78 self.__clearButton.setIcon(UI.PixmapCache.getIcon("clearLeft"))
79 self.addWidget(self.__clearButton, E5LineEditSide.RIGHT) 79 self.addWidget(self.__clearButton, EricLineEditSide.RIGHT)
80 self.__clearButton.setVisible(False) 80 self.__clearButton.setVisible(False)
81 81
82 self.__safeBrowsingLabel.clicked.connect(self.__showThreatInfo) 82 self.__safeBrowsingLabel.clicked.connect(self.__showThreatInfo)
83 self.__bookmarkButton.clicked.connect(self.__showBookmarkInfo) 83 self.__bookmarkButton.clicked.connect(self.__showBookmarkInfo)
84 self.__rssButton.clicked.connect(self.__rssClicked) 84 self.__rssButton.clicked.connect(self.__rssClicked)
287 gradient.setColorAt(progress / 100.0, backgroundColor) 287 gradient.setColorAt(progress / 100.0, backgroundColor)
288 p.setBrush(QPalette.ColorRole.Base, gradient) 288 p.setBrush(QPalette.ColorRole.Base, gradient)
289 289
290 self.setPalette(p) 290 self.setPalette(p)
291 291
292 E5LineEdit.paintEvent(self, evt) 292 EricLineEdit.paintEvent(self, evt)
293 293
294 def focusOutEvent(self, evt): 294 def focusOutEvent(self, evt):
295 """ 295 """
296 Protected method to handle focus out event. 296 Protected method to handle focus out event.
297 297
298 @param evt reference to the focus event (QFocusEvent) 298 @param evt reference to the focus event (QFocusEvent)
299 """ 299 """
300 if self.text() == "" and self.__browser is not None: 300 if self.text() == "" and self.__browser is not None:
301 self.__browserUrlChanged(self.__browser.url()) 301 self.__browserUrlChanged(self.__browser.url())
302 E5LineEdit.focusOutEvent(self, evt) 302 EricLineEdit.focusOutEvent(self, evt)
303 303
304 def mousePressEvent(self, evt): 304 def mousePressEvent(self, evt):
305 """ 305 """
306 Protected method called by a mouse press event. 306 Protected method called by a mouse press event.
307 307
323 @param evt reference to the mouse event (QMouseEvent) 323 @param evt reference to the mouse event (QMouseEvent)
324 """ 324 """
325 if evt.button() == Qt.MouseButton.LeftButton: 325 if evt.button() == Qt.MouseButton.LeftButton:
326 self.selectAll() 326 self.selectAll()
327 else: 327 else:
328 E5LineEdit.mouseDoubleClickEvent(self, evt) 328 EricLineEdit.mouseDoubleClickEvent(self, evt)
329 329
330 def keyPressEvent(self, evt): 330 def keyPressEvent(self, evt):
331 """ 331 """
332 Protected method to handle key presses. 332 Protected method to handle key presses.
333 333
367 if not host.lower().endswith(append): 367 if not host.lower().endswith(append):
368 host += append 368 host += append
369 url.setHost(host) 369 url.setHost(host)
370 self.setText(url.toString()) 370 self.setText(url.toString())
371 371
372 E5LineEdit.keyPressEvent(self, evt) 372 EricLineEdit.keyPressEvent(self, evt)
373 373
374 def dragEnterEvent(self, evt): 374 def dragEnterEvent(self, evt):
375 """ 375 """
376 Protected method to handle drag enter events. 376 Protected method to handle drag enter events.
377 377
379 """ 379 """
380 mimeData = evt.mimeData() 380 mimeData = evt.mimeData()
381 if mimeData.hasUrls() or mimeData.hasText(): 381 if mimeData.hasUrls() or mimeData.hasText():
382 evt.acceptProposedAction() 382 evt.acceptProposedAction()
383 383
384 E5LineEdit.dragEnterEvent(self, evt) 384 EricLineEdit.dragEnterEvent(self, evt)
385 385
386 def dropEvent(self, evt): 386 def dropEvent(self, evt):
387 """ 387 """
388 Protected method to handle drop events. 388 Protected method to handle drop events.
389 389
397 elif mimeData.hasText(): 397 elif mimeData.hasText():
398 url = QUrl.fromEncoded(mimeData.text().encode("utf-8"), 398 url = QUrl.fromEncoded(mimeData.text().encode("utf-8"),
399 QUrl.ParsingMode.TolerantMode) 399 QUrl.ParsingMode.TolerantMode)
400 400
401 if url.isEmpty() or not url.isValid(): 401 if url.isEmpty() or not url.isValid():
402 E5LineEdit.dropEvent(self, evt) 402 EricLineEdit.dropEvent(self, evt)
403 return 403 return
404 404
405 self.setText(str(url.toEncoded(), encoding="utf-8")) 405 self.setText(str(url.toEncoded(), encoding="utf-8"))
406 self.selectAll() 406 self.selectAll()
407 407

eric ide

mercurial