WebBrowser/WebBrowserTabWidget.py

branch
QtWebEngine
changeset 4735
84e78ee0f361
parent 4732
5ac4fc1dfc20
child 4741
f9e1adc69076
equal deleted inserted replaced
4734:ce0b1f024da9 4735:84e78ee0f361
67 67
68 self.setUsesScrollButtons(True) 68 self.setUsesScrollButtons(True)
69 self.setDocumentMode(True) 69 self.setDocumentMode(True)
70 self.setElideMode(Qt.ElideNone) 70 self.setElideMode(Qt.ElideNone)
71 71
72 # TODO: Closed Tabs Manager 72 from .ClosedTabsManager import ClosedTabsManager
73 ## from .ClosedTabsManager import ClosedTabsManager 73 self.__closedTabsManager = ClosedTabsManager(self)
74 ## self.__closedTabsManager = ClosedTabsManager(self) 74 self.__closedTabsManager.closedTabAvailable.connect(
75 ## self.__closedTabsManager.closedTabAvailable.connect( 75 self.__closedTabAvailable)
76 ## self.__closedTabAvailable)
77 76
78 from .UrlBar.StackedUrlBar import StackedUrlBar 77 from .UrlBar.StackedUrlBar import StackedUrlBar
79 self.__stackedUrlBar = StackedUrlBar(self) 78 self.__stackedUrlBar = StackedUrlBar(self)
80 self.__tabBar.tabMoved.connect(self.__stackedUrlBar.moveBar) 79 self.__tabBar.tabMoved.connect(self.__stackedUrlBar.moveBar)
81 80
101 self.__navigationButton.setPopupMode(QToolButton.InstantPopup) 100 self.__navigationButton.setPopupMode(QToolButton.InstantPopup)
102 self.__navigationButton.setMenu(self.__navigationMenu) 101 self.__navigationButton.setMenu(self.__navigationMenu)
103 self.__navigationButton.setEnabled(False) 102 self.__navigationButton.setEnabled(False)
104 self.__rightCornerWidgetLayout.addWidget(self.__navigationButton) 103 self.__rightCornerWidgetLayout.addWidget(self.__navigationButton)
105 104
106 # TODO: Closed Tabs Manager 105 self.__closedTabsMenu = QMenu(self)
107 ## self.__closedTabsMenu = QMenu(self) 106 self.__closedTabsMenu.aboutToShow.connect(
108 ## self.__closedTabsMenu.aboutToShow.connect( 107 self.__aboutToShowClosedTabsMenu)
109 ## self.__aboutToShowClosedTabsMenu) 108
110 ## 109 self.__closedTabsButton = QToolButton(self)
111 ## self.__closedTabsButton = QToolButton(self) 110 self.__closedTabsButton.setIcon(UI.PixmapCache.getIcon("trash.png"))
112 ## self.__closedTabsButton.setIcon(UI.PixmapCache.getIcon("trash.png")) 111 self.__closedTabsButton.setToolTip(
113 ## self.__closedTabsButton.setToolTip( 112 self.tr("Show a navigation menu for closed tabs"))
114 ## self.tr("Show a navigation menu for closed tabs")) 113 self.__closedTabsButton.setPopupMode(QToolButton.InstantPopup)
115 ## self.__closedTabsButton.setPopupMode(QToolButton.InstantPopup) 114 self.__closedTabsButton.setMenu(self.__closedTabsMenu)
116 ## self.__closedTabsButton.setMenu(self.__closedTabsMenu) 115 self.__closedTabsButton.setEnabled(False)
117 ## self.__closedTabsButton.setEnabled(False) 116 self.__rightCornerWidgetLayout.addWidget(self.__closedTabsButton)
118 ## self.__rightCornerWidgetLayout.addWidget(self.__closedTabsButton) 117
119 ##
120 self.__closeButton = QToolButton(self) 118 self.__closeButton = QToolButton(self)
121 self.__closeButton.setIcon(UI.PixmapCache.getIcon("close.png")) 119 self.__closeButton.setIcon(UI.PixmapCache.getIcon("close.png"))
122 self.__closeButton.setToolTip( 120 self.__closeButton.setToolTip(
123 self.tr("Close the current web browser")) 121 self.tr("Close the current web browser"))
124 self.__closeButton.setEnabled(False) 122 self.__closeButton.setEnabled(False)
184 ## self.tr('Print as PDF'), self.__tabContextMenuPrintPdf) 182 ## self.tr('Print as PDF'), self.__tabContextMenuPrintPdf)
185 self.__tabContextMenu.addSeparator() 183 self.__tabContextMenu.addSeparator()
186 self.__tabContextMenu.addAction( 184 self.__tabContextMenu.addAction(
187 UI.PixmapCache.getIcon("reload.png"), 185 UI.PixmapCache.getIcon("reload.png"),
188 self.tr('Reload All'), self.reloadAllBrowsers) 186 self.tr('Reload All'), self.reloadAllBrowsers)
189 ## self.__tabContextMenu.addSeparator() 187 self.__tabContextMenu.addSeparator()
190 ## self.__tabContextMenu.addAction( 188 self.__tabContextMenu.addAction(
191 ## UI.PixmapCache.getIcon("addBookmark.png"), 189 UI.PixmapCache.getIcon("addBookmark.png"),
192 ## self.tr('Bookmark All Tabs'), self.__mainWindow.bookmarkAll) 190 self.tr('Bookmark All Tabs'), self.__mainWindow.bookmarkAll)
193 191
194 self.__tabBackContextMenu = QMenu(self) 192 self.__tabBackContextMenu = QMenu(self)
195 self.__tabBackContextMenu.addAction( 193 self.__tabBackContextMenu.addAction(
196 self.tr('Close All'), self.closeAllBrowsers) 194 self.tr('Close All'), self.closeAllBrowsers)
197 self.__tabBackContextMenu.addAction( 195 self.__tabBackContextMenu.addAction(
198 UI.PixmapCache.getIcon("reload.png"), 196 UI.PixmapCache.getIcon("reload.png"),
199 self.tr('Reload All'), self.reloadAllBrowsers) 197 self.tr('Reload All'), self.reloadAllBrowsers)
200 ## self.__tabBackContextMenu.addAction( 198 self.__tabBackContextMenu.addAction(
201 ## UI.PixmapCache.getIcon("addBookmark.png"), 199 UI.PixmapCache.getIcon("addBookmark.png"),
202 ## self.tr('Bookmark All Tabs'), self.__mainWindow.bookmarkAll) 200 self.tr('Bookmark All Tabs'), self.__mainWindow.bookmarkAll)
203 ## self.__tabBackContextMenu.addSeparator() 201 self.__tabBackContextMenu.addSeparator()
204 ## self.__restoreClosedTabAct = self.__tabBackContextMenu.addAction( 202 self.__restoreClosedTabAct = self.__tabBackContextMenu.addAction(
205 ## UI.PixmapCache.getIcon("trash.png"), 203 UI.PixmapCache.getIcon("trash.png"),
206 ## self.tr('Restore Closed Tab'), self.restoreClosedTab) 204 self.tr('Restore Closed Tab'), self.restoreClosedTab)
207 ## self.__restoreClosedTabAct.setEnabled(False) 205 self.__restoreClosedTabAct.setEnabled(False)
208 ## self.__restoreClosedTabAct.setData(0) 206 self.__restoreClosedTabAct.setData(0)
209 207
210 def __showContextMenu(self, coord, index): 208 def __showContextMenu(self, coord, index):
211 """ 209 """
212 Private slot to show the tab context menu. 210 Private slot to show the tab context menu.
213 211
482 urlbar = self.__stackedUrlBar.widget(index) 480 urlbar = self.__stackedUrlBar.widget(index)
483 self.__stackedUrlBar.removeWidget(urlbar) 481 self.__stackedUrlBar.removeWidget(urlbar)
484 urlbar.deleteLater() 482 urlbar.deleteLater()
485 del urlbar 483 del urlbar
486 484
487 ## self.__closedTabsManager.recordBrowser(browser, index) 485 self.__closedTabsManager.recordBrowser(browser, index)
488 ## 486
487 # TODO: WebInspector
489 ## browser.closeWebInspector() 488 ## browser.closeWebInspector()
490 browser.home() 489 browser.home()
491 self.removeTab(index) 490 self.removeTab(index)
492 self.browserClosed.emit(browser) 491 self.browserClosed.emit(browser)
493 browser.deleteLater() 492 browser.deleteLater()
953 if browser.url() == "" and browser.hasFocus(): 952 if browser.url() == "" and browser.hasFocus():
954 self.__stackedUrlBar.currentWidget.setFocus() 953 self.__stackedUrlBar.currentWidget.setFocus()
955 elif browser.url() != "": 954 elif browser.url() != "":
956 browser.setFocus() 955 browser.setFocus()
957 956
958 # TODO: Closed Tabs Manager 957 def restoreClosedTab(self):
959 ## def restoreClosedTab(self): 958 """
960 ## """ 959 Public slot to restore the most recently closed tab.
961 ## Public slot to restore the most recently closed tab. 960 """
962 ## """ 961 if not self.canRestoreClosedTab():
963 ## if not self.canRestoreClosedTab(): 962 return
964 ## return 963
965 ## 964 act = self.sender()
966 ## act = self.sender() 965 tab = self.__closedTabsManager.getClosedTabAt(act.data())
967 ## tab = self.__closedTabsManager.getClosedTabAt(act.data()) 966
968 ## 967 self.newBrowser(tab.url.toString(), position=tab.position)
969 ## self.newBrowser(tab.url.toString(), position=tab.position) 968
970 ## 969 def canRestoreClosedTab(self):
971 ## def canRestoreClosedTab(self): 970 """
972 ## """ 971 Public method to check, if closed tabs can be restored.
973 ## Public method to check, if closed tabs can be restored. 972
974 ## 973 @return flag indicating that closed tabs can be restored (boolean)
975 ## @return flag indicating that closed tabs can be restored (boolean) 974 """
976 ## """ 975 return self.__closedTabsManager.isClosedTabAvailable()
977 ## return self.__closedTabsManager.isClosedTabAvailable() 976
978 ## 977 def restoreAllClosedTabs(self):
979 ## def restoreAllClosedTabs(self): 978 """
980 ## """ 979 Public slot to restore all closed tabs.
981 ## Public slot to restore all closed tabs. 980 """
982 ## """ 981 if not self.canRestoreClosedTab():
983 ## if not self.canRestoreClosedTab(): 982 return
984 ## return 983
985 ## 984 for tab in self.__closedTabsManager.allClosedTabs():
986 ## for tab in self.__closedTabsManager.allClosedTabs(): 985 self.newBrowser(tab.url.toString(), position=tab.position)
987 ## self.newBrowser(tab.url.toString(), position=tab.position) 986 self.__closedTabsManager.clearList()
988 ## self.__closedTabsManager.clearList() 987
989 ## 988 def clearClosedTabsList(self):
990 ## def clearClosedTabsList(self): 989 """
991 ## """ 990 Public slot to clear the list of closed tabs.
992 ## Public slot to clear the list of closed tabs. 991 """
993 ## """ 992 self.__closedTabsManager.clearList()
994 ## self.__closedTabsManager.clearList() 993
995 ## 994 def __aboutToShowClosedTabsMenu(self):
996 ## def __aboutToShowClosedTabsMenu(self): 995 """
997 ## """ 996 Private slot to populate the closed tabs menu.
998 ## Private slot to populate the closed tabs menu. 997 """
999 ## """ 998 fm = self.__closedTabsMenu.fontMetrics()
1000 ## fm = self.__closedTabsMenu.fontMetrics() 999 maxWidth = fm.width('m') * 40
1001 ## maxWidth = fm.width('m') * 40 1000
1002 ## 1001 self.__closedTabsMenu.clear()
1003 ## self.__closedTabsMenu.clear() 1002 index = 0
1004 ## index = 0 1003 for tab in self.__closedTabsManager.allClosedTabs():
1005 ## for tab in self.__closedTabsManager.allClosedTabs(): 1004 title = fm.elidedText(tab.title, Qt.ElideRight, maxWidth)
1006 ## title = fm.elidedText(tab.title, Qt.ElideRight, maxWidth) 1005 self.__closedTabsMenu.addAction(
1007 ## self.__closedTabsMenu.addAction( 1006 self.__mainWindow.icon(tab.url), title,
1008 ## self.__mainWindow.icon(tab.url), title, 1007 self.restoreClosedTab).setData(index)
1009 ## self.restoreClosedTab).setData(index) 1008 index += 1
1010 ## index += 1 1009 self.__closedTabsMenu.addSeparator()
1011 ## self.__closedTabsMenu.addSeparator() 1010 self.__closedTabsMenu.addAction(
1012 ## self.__closedTabsMenu.addAction( 1011 self.tr("Restore All Closed Tabs"), self.restoreAllClosedTabs)
1013 ## self.tr("Restore All Closed Tabs"), self.restoreAllClosedTabs) 1012 self.__closedTabsMenu.addAction(
1014 ## self.__closedTabsMenu.addAction( 1013 self.tr("Clear List"), self.clearClosedTabsList)
1015 ## self.tr("Clear List"), self.clearClosedTabsList) 1014
1016 ## 1015 def closedTabsManager(self):
1017 ## def closedTabsManager(self): 1016 """
1018 ## """ 1017 Public slot to get a reference to the closed tabs manager.
1019 ## Public slot to get a reference to the closed tabs manager. 1018
1020 ## 1019 @return reference to the closed tabs manager (ClosedTabsManager)
1021 ## @return reference to the closed tabs manager (ClosedTabsManager) 1020 """
1022 ## """ 1021 return self.__closedTabsManager
1023 ## return self.__closedTabsManager 1022
1024 ## 1023 def __closedTabAvailable(self, avail):
1025 ## def __closedTabAvailable(self, avail): 1024 """
1026 ## """ 1025 Private slot to handle changes of the availability of closed tabs.
1027 ## Private slot to handle changes of the availability of closed tabs. 1026
1028 ## 1027 @param avail flag indicating the availability of closed tabs (boolean)
1029 ## @param avail flag indicating the availability of closed tabs (boolean) 1028 """
1030 ## """ 1029 self.__closedTabsButton.setEnabled(avail)
1031 ## self.__closedTabsButton.setEnabled(avail) 1030 self.__restoreClosedTabAct.setEnabled(avail)
1032 ## self.__restoreClosedTabAct.setEnabled(avail)

eric ide

mercurial