eric6/WebBrowser/WebBrowserTabWidget.py

changeset 7271
2cac5b7abcce
parent 7229
53054eb5b15a
child 7356
d975331c5daa
equal deleted inserted replaced
7270:41d09cf20415 7271:2cac5b7abcce
10 10
11 import os 11 import os
12 12
13 from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt, QUrl, QFile, QFileDevice 13 from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt, QUrl, QFile, QFileDevice
14 from PyQt5.QtGui import QIcon, QPixmap, QPainter 14 from PyQt5.QtGui import QIcon, QPixmap, QPainter
15 from PyQt5.QtWidgets import QWidget, QHBoxLayout, QMenu, QToolButton, \ 15 from PyQt5.QtWidgets import (
16 QDialog, QApplication 16 QWidget, QHBoxLayout, QMenu, QToolButton, QDialog, QApplication
17 )
17 from PyQt5.QtPrintSupport import QPrinter, QPrintDialog, QAbstractPrintDialog 18 from PyQt5.QtPrintSupport import QPrinter, QPrintDialog, QAbstractPrintDialog
18 19
19 from E5Gui.E5TabWidget import E5TabWidget 20 from E5Gui.E5TabWidget import E5TabWidget
20 from E5Gui import E5MessageBox 21 from E5Gui import E5MessageBox
21 from E5Gui.E5Application import e5App 22 from E5Gui.E5Application import e5App
242 self.rightMenuAct.setEnabled(index < self.count() - 1) 243 self.rightMenuAct.setEnabled(index < self.count() - 1)
243 244
244 self.tabContextCloseOthersAct.setEnabled(self.count() > 1) 245 self.tabContextCloseOthersAct.setEnabled(self.count() > 1)
245 246
246 if self.__audioAct is not None: 247 if self.__audioAct is not None:
247 if self.widget(self.__tabContextMenuIndex).page()\ 248 if (
248 .isAudioMuted(): 249 self.widget(self.__tabContextMenuIndex).page()
250 .isAudioMuted()
251 ):
249 self.__audioAct.setText(self.tr("Unmute Tab")) 252 self.__audioAct.setText(self.tr("Unmute Tab"))
250 self.__audioAct.setIcon( 253 self.__audioAct.setIcon(
251 UI.PixmapCache.getIcon("audioVolumeHigh.png")) 254 UI.PixmapCache.getIcon("audioVolumeHigh.png"))
252 else: 255 else:
253 self.__audioAct.setText(self.tr("Mute Tab")) 256 self.__audioAct.setText(self.tr("Mute Tab"))
292 def __tabContextMenuCloseOthers(self): 295 def __tabContextMenuCloseOthers(self):
293 """ 296 """
294 Private slot to close all other tabs. 297 Private slot to close all other tabs.
295 """ 298 """
296 index = self.__tabContextMenuIndex 299 index = self.__tabContextMenuIndex
297 for i in list(range(self.count() - 1, index, -1)) + \ 300 for i in (
298 list(range(index - 1, -1, -1)): 301 list(range(self.count() - 1, index, -1)) +
302 list(range(index - 1, -1, -1))
303 ):
299 self.closeBrowserAt(i) 304 self.closeBrowserAt(i)
300 305
301 def __tabContextMenuPrint(self): 306 def __tabContextMenuPrint(self):
302 """ 307 """
303 Private method to print the selected tab. 308 Private method to print the selected tab.
394 399
395 from .UrlBar.UrlBar import UrlBar 400 from .UrlBar.UrlBar import UrlBar
396 urlbar = UrlBar(self.__mainWindow, self) 401 urlbar = UrlBar(self.__mainWindow, self)
397 if self.__historyCompleter is None: 402 if self.__historyCompleter is None:
398 import WebBrowser.WebBrowserWindow 403 import WebBrowser.WebBrowserWindow
399 from .History.HistoryCompleter import HistoryCompletionModel, \ 404 from .History.HistoryCompleter import (
400 HistoryCompleter 405 HistoryCompletionModel, HistoryCompleter
406 )
401 self.__historyCompletionModel = HistoryCompletionModel(self) 407 self.__historyCompletionModel = HistoryCompletionModel(self)
402 self.__historyCompletionModel.setSourceModel( 408 self.__historyCompletionModel.setSourceModel(
403 WebBrowser.WebBrowserWindow.WebBrowserWindow.historyManager() 409 WebBrowser.WebBrowserWindow.WebBrowserWindow.historyManager()
404 .historyFilterModel()) 410 .historyFilterModel())
405 self.__historyCompleter = HistoryCompleter( 411 self.__historyCompleter = HistoryCompleter(
933 @return dictionary with tab id as key and host/namespace as value 939 @return dictionary with tab id as key and host/namespace as value
934 """ 940 """
935 sourceList = {} 941 sourceList = {}
936 for i in range(self.count()): 942 for i in range(self.count()):
937 browser = self.widget(i) 943 browser = self.widget(i)
938 if browser is not None and \ 944 if (
939 browser.source().isValid(): 945 browser is not None and
946 browser.source().isValid()
947 ):
940 sourceList[i] = browser.source().host() 948 sourceList[i] = browser.source().host()
941 949
942 return sourceList 950 return sourceList
943 951
944 def shallShutDown(self): 952 def shallShutDown(self):
1044 try: 1052 try:
1045 url = QUrl.fromUserInput(path) 1053 url = QUrl.fromUserInput(path)
1046 except AttributeError: 1054 except AttributeError:
1047 url = QUrl(path) 1055 url = QUrl(path)
1048 1056
1049 if url.scheme() == "about" and \ 1057 if (
1050 url.path() == "home": 1058 url.scheme() == "about" and
1059 url.path() == "home"
1060 ):
1051 url = QUrl("eric:home") 1061 url = QUrl("eric:home")
1052 1062
1053 if url.scheme() in ["s", "search"]: 1063 if url.scheme() in ["s", "search"]:
1054 url = manager.currentEngine().searchUrl(url.path().strip()) 1064 url = manager.currentEngine().searchUrl(url.path().strip())
1055 1065
1056 if url.scheme() != "" and \ 1066 if (
1057 (url.host() != "" or url.path() != ""): 1067 url.scheme() != "" and
1068 (url.host() != "" or url.path() != "")
1069 ):
1058 return url 1070 return url
1059 1071
1060 urlString = Preferences.getWebBrowser("DefaultScheme") + path.strip() 1072 urlString = Preferences.getWebBrowser("DefaultScheme") + path.strip()
1061 url = QUrl.fromEncoded(urlString.encode("utf-8"), QUrl.TolerantMode) 1073 url = QUrl.fromEncoded(urlString.encode("utf-8"), QUrl.TolerantMode)
1062 1074
1190 """ 1202 """
1191 tabCount = self.count() 1203 tabCount = self.count()
1192 1204
1193 # 1. load tab data 1205 # 1. load tab data
1194 if "Tabs" in sessionData: 1206 if "Tabs" in sessionData:
1195 loadTabOnActivate = \ 1207 loadTabOnActivate = Preferences.getWebBrowser(
1196 Preferences.getWebBrowser("LoadTabOnActivation") 1208 "LoadTabOnActivation")
1197 for data in sessionData["Tabs"]: 1209 for data in sessionData["Tabs"]:
1198 browser = self.newBrowser(restoreSession=True) 1210 browser = self.newBrowser(restoreSession=True)
1199 if loadTabOnActivate: 1211 if loadTabOnActivate:
1200 browser.storeSessionData(data) 1212 browser.storeSessionData(data)
1201 title, urlStr, icon = browser.extractSessionMetaData(data) 1213 title, urlStr, icon = browser.extractSessionMetaData(data)
1204 self.setTabIcon(index, icon) 1216 self.setTabIcon(index, icon)
1205 else: 1217 else:
1206 browser.loadFromSessionData(data) 1218 browser.loadFromSessionData(data)
1207 1219
1208 # 2. set tab index 1220 # 2. set tab index
1209 if "CurrentTabIndex" in sessionData and \ 1221 if (
1210 sessionData["CurrentTabIndex"] >= 0: 1222 "CurrentTabIndex" in sessionData and
1223 sessionData["CurrentTabIndex"] >= 0
1224 ):
1211 index = tabCount + sessionData["CurrentTabIndex"] 1225 index = tabCount + sessionData["CurrentTabIndex"]
1212 self.setCurrentIndex(index) 1226 self.setCurrentIndex(index)
1213 self.browserAt(index).activateSession() 1227 self.browserAt(index).activateSession()

eric ide

mercurial