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() |