Helpviewer/UrlBar/UrlBar.py

changeset 1670
6fd889391d2c
parent 1665
b248526d3a1b
child 1730
5d7ce61b64aa
equal deleted inserted replaced
1667:02ad912c8645 1670:6fd889391d2c
6 """ 6 """
7 Module implementing the URL bar widget. 7 Module implementing the URL bar widget.
8 """ 8 """
9 9
10 from PyQt4.QtCore import pyqtSlot, Qt, QPointF, QUrl 10 from PyQt4.QtCore import pyqtSlot, Qt, QPointF, QUrl
11 from PyQt4.QtGui import QColor, QPalette, QApplication, QLinearGradient, QIcon 11 from PyQt4.QtGui import QColor, QPalette, QApplication, QLinearGradient, QIcon, QDialog
12 try: 12 try:
13 from PyQt4.QtNetwork import QSslCertificate # __IGNORE_EXCEPTION__ 13 from PyQt4.QtNetwork import QSslCertificate # __IGNORE_EXCEPTION__
14 except ImportError: 14 except ImportError:
15 QSslCertificate = None # __IGNORE_WARNING__ 15 QSslCertificate = None # __IGNORE_WARNING__
16 from PyQt4.QtWebKit import QWebSettings, QWebPage 16 from PyQt4.QtWebKit import QWebSettings, QWebPage
21 import Helpviewer.HelpWindow 21 import Helpviewer.HelpWindow
22 22
23 from .FavIconLabel import FavIconLabel 23 from .FavIconLabel import FavIconLabel
24 from .SslLabel import SslLabel 24 from .SslLabel import SslLabel
25 from .BookmarkInfoDialog import BookmarkInfoDialog 25 from .BookmarkInfoDialog import BookmarkInfoDialog
26 from .BookmarkActionSelectionDialog import BookmarkActionSelectionDialog
26 27
27 from Helpviewer.Feeds.FeedsDialog import FeedsDialog 28 from Helpviewer.Feeds.FeedsDialog import FeedsDialog
28 29
29 import UI.PixmapCache 30 import UI.PixmapCache
30 import Preferences 31 import Preferences
91 self.__bookmarkChanged) 92 self.__bookmarkChanged)
92 Helpviewer.HelpWindow.HelpWindow.bookmarksManager().entryAdded.connect( 93 Helpviewer.HelpWindow.HelpWindow.bookmarksManager().entryAdded.connect(
93 self.__bookmarkChanged) 94 self.__bookmarkChanged)
94 Helpviewer.HelpWindow.HelpWindow.bookmarksManager().entryRemoved.connect( 95 Helpviewer.HelpWindow.HelpWindow.bookmarksManager().entryRemoved.connect(
95 self.__bookmarkChanged) 96 self.__bookmarkChanged)
97 Helpviewer.HelpWindow.HelpWindow.speedDial().pagesChanged.connect(
98 self.__bookmarkChanged)
96 99
97 def setBrowser(self, browser): 100 def setBrowser(self, browser):
98 """ 101 """
99 Public method to set the browser connection. 102 Public method to set the browser connection.
100 103
120 """ 123 """
121 Private slot to handle a URL change of the associated browser. 124 Private slot to handle a URL change of the associated browser.
122 125
123 @param url new URL of the browser (QUrl) 126 @param url new URL of the browser (QUrl)
124 """ 127 """
125 self.setText(str(url.toEncoded(), encoding="utf-8")) 128 strUrl = url.toString()
129 if strUrl in ["eric:speeddial", "eric:home", "about:blank"]:
130 strUrl = ""
131
132 if self.text() != strUrl:
133 self.setText(strUrl)
126 self.setCursorPosition(0) 134 self.setCursorPosition(0)
127 135
128 def __loadStarted(self): 136 def __loadStarted(self):
129 """ 137 """
130 Private slot to perform actions before the page is loaded. 138 Private slot to perform actions before the page is loaded.
131 """ 139 """
132 self.__sslLabel.setVisible(False) 140 self.__sslLabel.setVisible(False)
133 self.__bookmarkButton.setVisible(False) 141 self.__bookmarkButton.setVisible(False)
142
143 def __checkBookmark(self):
144 """
145 Private slot to check the current URL for the bookmarked state.
146 """
147 if Helpviewer.HelpWindow.HelpWindow.bookmarksManager()\
148 .bookmarkForUrl(self.__browser.url()) is None and \
149 Helpviewer.HelpWindow.HelpWindow.speedDial()\
150 .pageForUrl(self.__browser.url()).url == "":
151 self.__bookmarkButton.setIcon(self.__bmInactiveIcon)
152 else:
153 self.__bookmarkButton.setIcon(self.__bmActiveIcon)
134 154
135 def __loadFinished(self, ok): 155 def __loadFinished(self, ok):
136 """ 156 """
137 Private slot to set some data after the page was loaded. 157 Private slot to set some data after the page was loaded.
138 158
140 """ 160 """
141 try: 161 try:
142 if self.__browser.url().scheme() in ["eric", "about"]: 162 if self.__browser.url().scheme() in ["eric", "about"]:
143 self.__bookmarkButton.setVisible(False) 163 self.__bookmarkButton.setVisible(False)
144 else: 164 else:
145 if Helpviewer.HelpWindow.HelpWindow.bookmarksManager()\ 165 self.__checkBookmark()
146 .bookmarkForUrl(self.__browser.url()) is None:
147 self.__bookmarkButton.setIcon(self.__bmInactiveIcon)
148 else:
149 self.__bookmarkButton.setIcon(self.__bmActiveIcon)
150 self.__bookmarkButton.setVisible(True) 166 self.__bookmarkButton.setVisible(True)
151 167
152 if ok: 168 if ok:
153 self.__rssButton.setVisible(self.__browser.checkRSS()) 169 self.__rssButton.setVisible(self.__browser.checkRSS())
154 170
206 222
207 def __showBookmarkInfo(self): 223 def __showBookmarkInfo(self):
208 """ 224 """
209 Private slot to show a dialog with some bookmark info. 225 Private slot to show a dialog with some bookmark info.
210 """ 226 """
211 bookmark = Helpviewer.HelpWindow.HelpWindow.bookmarksManager()\ 227 url = self.__browser.url()
212 .bookmarkForUrl(self.__browser.url()) 228 dlg = BookmarkActionSelectionDialog(url)
213 if bookmark is None: 229 if dlg.exec_() == QDialog.Accepted:
214 self.__browser.addBookmark() 230 action = dlg.getAction()
215 else: 231 if action == BookmarkActionSelectionDialog.AddBookmark:
216 dlg = BookmarkInfoDialog(bookmark, self.__browser) 232 self.__browser.addBookmark()
217 dlg.exec_() 233 elif action == BookmarkActionSelectionDialog.EditBookmark:
234 bookmark = Helpviewer.HelpWindow.HelpWindow.bookmarksManager()\
235 .bookmarkForUrl(url)
236 dlg = BookmarkInfoDialog(bookmark, self.__browser)
237 dlg.exec_()
238 elif action == BookmarkActionSelectionDialog.AddSpeeddial:
239 Helpviewer.HelpWindow.HelpWindow.speedDial().addPage(
240 url, self.__browser.title())
241 elif action == BookmarkActionSelectionDialog.RemoveSpeeddial:
242 Helpviewer.HelpWindow.HelpWindow.speedDial().removePage(url)
218 243
219 @pyqtSlot() 244 @pyqtSlot()
220 def __bookmarkChanged(self): 245 def __bookmarkChanged(self):
221 """ 246 """
222 Private slot to handle bookmark changes. 247 Private slot to handle bookmark or speed dial changes.
223 """ 248 """
224 if Helpviewer.HelpWindow.HelpWindow.bookmarksManager()\ 249 self.__checkBookmark()
225 .bookmarkForUrl(self.__browser.url()) is None:
226 self.__bookmarkButton.setIcon(self.__bmInactiveIcon)
227 else:
228 self.__bookmarkButton.setIcon(self.__bmActiveIcon)
229 250
230 def paintEvent(self, evt): 251 def paintEvent(self, evt):
231 """ 252 """
232 Protected method handling a paint event. 253 Protected method handling a paint event.
233 254

eric ide

mercurial