WebBrowser/WebBrowserWindow.py

branch
QtWebEngine
changeset 4715
79009bc4acd5
parent 4713
8dca047daf4b
child 4717
5841f229baf7
diff -r 8dca047daf4b -r 79009bc4acd5 WebBrowser/WebBrowserWindow.py
--- a/WebBrowser/WebBrowserWindow.py	Wed Feb 03 20:05:29 2016 +0100
+++ b/WebBrowser/WebBrowserWindow.py	Thu Feb 04 19:39:54 2016 +0100
@@ -9,7 +9,7 @@
 
 from __future__ import unicode_literals
 try:
-    str = unicode
+    str = unicode           # __IGNORE_EXCEPTION__
 except NameError:
     pass
 
@@ -41,8 +41,8 @@
 from E5Gui import E5MessageBox, E5FileDialog, E5ErrorMessage
 from E5Gui.E5MainWindow import E5MainWindow
 from E5Gui.E5Application import e5App
-##from E5Gui.E5ZoomWidget import E5ZoomWidget
-##
+from E5Gui.E5ZoomWidget import E5ZoomWidget
+
 ##from E5Network.E5NetworkIcon import E5NetworkIcon
 
 import Preferences
@@ -126,14 +126,16 @@
         if self.__initShortcutsOnly:
             self.__initActions()
         else:
-            # TODO: implement this
             from .SearchWidget import SearchWidget
+            # TODO: QtHelp
 ##            from .HelpTocWidget import HelpTocWidget
 ##            from .HelpIndexWidget import HelpIndexWidget
 ##            from .HelpSearchWidget import HelpSearchWidget
-##            from .HelpBrowserWV import HelpBrowser
+            from .WebBrowserView import WebBrowserView
             from .WebBrowserTabWidget import WebBrowserTabWidget
+            # TODO: AdBlock
 ##            from .AdBlock.AdBlockIcon import AdBlockIcon
+            # TODO: VirusTotal
 ##            from .VirusTotal.VirusTotalApi import VirusTotalAPI
             
             # TODO: allow using Qt Help even if not called from eric6
@@ -159,22 +161,22 @@
 ##                self.__helpEngine = None
 ##            self.__helpInstaller = None
             
-##            self.__zoomWidget = E5ZoomWidget(
-##                UI.PixmapCache.getPixmap("zoomOut.png"),
-##                UI.PixmapCache.getPixmap("zoomIn.png"),
-##                UI.PixmapCache.getPixmap("zoomReset.png"), self)
-##            self.statusBar().addPermanentWidget(self.__zoomWidget)
-##            self.__zoomWidget.setMapping(
-##                HelpBrowser.ZoomLevels, HelpBrowser.ZoomLevelDefault)
-##            self.__zoomWidget.valueChanged.connect(self.__zoomValueChanged)
-##            
+            self.__zoomWidget = E5ZoomWidget(
+                UI.PixmapCache.getPixmap("zoomOut.png"),
+                UI.PixmapCache.getPixmap("zoomIn.png"),
+                UI.PixmapCache.getPixmap("zoomReset.png"), self)
+            self.statusBar().addPermanentWidget(self.__zoomWidget)
+            self.__zoomWidget.setMapping(
+                WebBrowserView.ZoomLevels, WebBrowserView.ZoomLevelDefault)
+            self.__zoomWidget.valueChanged.connect(self.__zoomValueChanged)
+            
             self.__tabWidget = WebBrowserTabWidget(self)
             self.__tabWidget.currentChanged[int].connect(self.__currentChanged)
             self.__tabWidget.titleChanged.connect(self.__titleChanged)
             self.__tabWidget.showMessage.connect(self.statusBar().showMessage)
             self.__tabWidget.browserClosed.connect(self.__browserClosed)
-##            self.__tabWidget.browserZoomValueChanged.connect(
-##                self.__zoomWidget.setValue)
+            self.__tabWidget.browserZoomValueChanged.connect(
+                self.__zoomWidget.setValue)
             
             self.__searchWidget = SearchWidget(self, self)
             centralWidget = QWidget()
@@ -188,7 +190,7 @@
             self.setCentralWidget(centralWidget)
             self.__searchWidget.hide()
             
-            # TODO: do these once Qt 5.6 is available
+            # TODO: QtHelp, do these once Qt 5.6 is available
 ##            if WebBrowserWindow.UseQtHelp:
 ##                # setup the TOC widget
 ##                self.__tocWindow = HelpTocWidget(self.__helpEngine, self)
@@ -265,7 +267,7 @@
             
             # setup connections
             self.__activating = False
-            # TODO: do these once Qt 5.6 is available
+            # TODO: QtHelp, do these once Qt 5.6 is available
 ##            if WebBrowserWindow.UseQtHelp:
 ##                # TOC window
 ##                self.__tocWindow.linkActivated.connect(self.__linkActivated)
@@ -301,7 +303,7 @@
             
 ##            self.flashCookieManager()
 ##            
-            # TODO: do these once Qt 5.6 is available
+            # TODO: QtHelp, do these once Qt 5.6 is available
 ##            if WebBrowserWindow.UseQtHelp:
 ##                QTimer.singleShot(0, self.__lookForNewDocumentation)
 ##                if self.__searchWord is not None:
@@ -323,6 +325,13 @@
         """
         pass
     
+    def fromEric(self):
+        """
+        Public method to check, if the web browser was called from within the
+        eric IDE.
+        """
+        return self.__fromEric
+    
 ##    def __setIconDatabasePath(self, enable=True):
 ##        """
 ##        Private method to set the favicons path.
@@ -574,7 +583,7 @@
 ##                self.__saveVisiblePageScreen)
 ##        self.__actions.append(self.saveVisiblePageScreenAct)
         
-        # TODO: re-enable when bookmarks are done
+        # TODO: Bookmarks
 ##        bookmarksManager = self.bookmarksManager()
 ##        self.importBookmarksAct = E5Action(
 ##            self.tr('Import Bookmarks'),
@@ -606,7 +615,7 @@
 ##                bookmarksManager.exportBookmarks)
 ##        self.__actions.append(self.exportBookmarksAct)
         
-        # TODO: re-enable when print stuff is done
+        # TODO: print stuff
 ##        self.printAct = E5Action(
 ##            self.tr('Print'),
 ##            UI.PixmapCache.getIcon("print.png"),
@@ -684,7 +693,7 @@
                 self.__tabWidget.closeAllBrowsers)
         self.__actions.append(self.closeAllAct)
         
-        # TODO: re-enable when Private Browsing is done
+        # TODO: Private Browsing
 ##        self.privateBrowsingAct = E5Action(
 ##            self.tr('Private Browsing'),
 ##            UI.PixmapCache.getIcon("privateBrowsing.png"),
@@ -871,7 +880,7 @@
                 self.__searchWidget.findPrevious)
         self.__actions.append(self.findPrevAct)
         
-        # TODO: re-enable when bookmarks are done
+        # TODO: Bookmarks
 ##        self.bookmarksManageAct = E5Action(
 ##            self.tr('Manage Bookmarks'),
 ##            self.tr('&Manage Bookmarks...'),
@@ -982,56 +991,57 @@
             self.aboutQtAct.triggered.connect(self.__aboutQt)
         self.__actions.append(self.aboutQtAct)
         
-        # TODO: re-enable once Zoom stuff is done
-##        self.zoomInAct = E5Action(
-##            self.tr('Zoom in'),
-##            UI.PixmapCache.getIcon("zoomIn.png"),
-##            self.tr('Zoom &in'),
-##            QKeySequence(self.tr("Ctrl++", "View|Zoom in")),
-##            QKeySequence(self.tr("Zoom In", "View|Zoom in")),
-##            self, 'webbrowser_view_zoom_in')
-##        self.zoomInAct.setStatusTip(self.tr('Zoom in on the text'))
-##        self.zoomInAct.setWhatsThis(self.tr(
-##            """<b>Zoom in</b>"""
-##            """<p>Zoom in on the text. This makes the text bigger.</p>"""
-##        ))
-##        if not self.__initShortcutsOnly:
-##            self.zoomInAct.triggered.connect(self.__zoomIn)
-##        self.__actions.append(self.zoomInAct)
-##        
-##        self.zoomOutAct = E5Action(
-##            self.tr('Zoom out'),
-##            UI.PixmapCache.getIcon("zoomOut.png"),
-##            self.tr('Zoom &out'),
-##            QKeySequence(self.tr("Ctrl+-", "View|Zoom out")),
-##            QKeySequence(self.tr("Zoom Out", "View|Zoom out")),
-##            self, 'webbrowser_view_zoom_out')
-##        self.zoomOutAct.setStatusTip(self.tr('Zoom out on the text'))
-##        self.zoomOutAct.setWhatsThis(self.tr(
-##            """<b>Zoom out</b>"""
-##            """<p>Zoom out on the text. This makes the text smaller.</p>"""
-##        ))
-##        if not self.__initShortcutsOnly:
-##            self.zoomOutAct.triggered.connect(self.__zoomOut)
-##        self.__actions.append(self.zoomOutAct)
-##        
-##        self.zoomResetAct = E5Action(
-##            self.tr('Zoom reset'),
-##            UI.PixmapCache.getIcon("zoomReset.png"),
-##            self.tr('Zoom &reset'),
-##            QKeySequence(self.tr("Ctrl+0", "View|Zoom reset")),
-##            0, self, 'webbrowser_view_zoom_reset')
-##        self.zoomResetAct.setStatusTip(self.tr(
-##            'Reset the zoom of the text'))
-##        self.zoomResetAct.setWhatsThis(self.tr(
-##            """<b>Zoom reset</b>"""
-##            """<p>Reset the zoom of the text. """
-##            """This sets the zoom factor to 100%.</p>"""
-##        ))
-##        if not self.__initShortcutsOnly:
-##            self.zoomResetAct.triggered.connect(self.__zoomReset)
-##        self.__actions.append(self.zoomResetAct)
-##        
+        self.zoomInAct = E5Action(
+            self.tr('Zoom in'),
+            UI.PixmapCache.getIcon("zoomIn.png"),
+            self.tr('Zoom &in'),
+            QKeySequence(self.tr("Ctrl++", "View|Zoom in")),
+            QKeySequence(self.tr("Zoom In", "View|Zoom in")),
+            self, 'webbrowser_view_zoom_in')
+        self.zoomInAct.setStatusTip(self.tr('Zoom in on the web page'))
+        self.zoomInAct.setWhatsThis(self.tr(
+            """<b>Zoom in</b>"""
+            """<p>Zoom in on the web page."""
+            """ This makes the web page bigger.</p>"""
+        ))
+        if not self.__initShortcutsOnly:
+            self.zoomInAct.triggered.connect(self.__zoomIn)
+        self.__actions.append(self.zoomInAct)
+        
+        self.zoomOutAct = E5Action(
+            self.tr('Zoom out'),
+            UI.PixmapCache.getIcon("zoomOut.png"),
+            self.tr('Zoom &out'),
+            QKeySequence(self.tr("Ctrl+-", "View|Zoom out")),
+            QKeySequence(self.tr("Zoom Out", "View|Zoom out")),
+            self, 'webbrowser_view_zoom_out')
+        self.zoomOutAct.setStatusTip(self.tr('Zoom out on the web page'))
+        self.zoomOutAct.setWhatsThis(self.tr(
+            """<b>Zoom out</b>"""
+            """<p>Zoom out on the web page."""
+            """ This makes the web page smaller.</p>"""
+        ))
+        if not self.__initShortcutsOnly:
+            self.zoomOutAct.triggered.connect(self.__zoomOut)
+        self.__actions.append(self.zoomOutAct)
+        
+        self.zoomResetAct = E5Action(
+            self.tr('Zoom reset'),
+            UI.PixmapCache.getIcon("zoomReset.png"),
+            self.tr('Zoom &reset'),
+            QKeySequence(self.tr("Ctrl+0", "View|Zoom reset")),
+            0, self, 'webbrowser_view_zoom_reset')
+        self.zoomResetAct.setStatusTip(self.tr(
+            'Reset the zoom of the web page'))
+        self.zoomResetAct.setWhatsThis(self.tr(
+            """<b>Zoom reset</b>"""
+            """<p>Reset the zoom of the web page. """
+            """This sets the zoom factor to 100%.</p>"""
+        ))
+        if not self.__initShortcutsOnly:
+            self.zoomResetAct.triggered.connect(self.__zoomReset)
+        self.__actions.append(self.zoomResetAct)
+        
 ##        if hasattr(QWebSettings, 'ZoomTextOnly'):
 ##            self.zoomTextOnlyAct = E5Action(
 ##                self.tr('Zoom text only'),
@@ -1139,6 +1149,7 @@
 ##                self.__showAcceptedLanguages)
 ##        self.__actions.append(self.acceptedLanguagesAct)
         
+        # TODO: Cookies
 ##        self.cookiesAct = E5Action(
 ##            self.tr('Cookies'),
 ##            UI.PixmapCache.getIcon("cookie.png"),
@@ -1154,7 +1165,7 @@
 ##                self.__showCookiesConfiguration)
 ##        self.__actions.append(self.cookiesAct)
         
-        # TODO: re-enable once Flash Cookies stuff is done
+        # TODO: Flash Cookies
 ##        self.flashCookiesAct = E5Action(
 ##            self.tr('Flash Cookies'),
 ##            UI.PixmapCache.getIcon("flashCookie.png"),
@@ -1240,7 +1251,7 @@
                 E5ErrorMessage.editMessageFilters)
         self.__actions.append(self.editMessageFilterAct)
         
-        # TODO: re-enable once feature permission stuff is done
+        # TODO: Feature Permission
 ##        self.featurePermissionAct = E5Action(
 ##            self.tr('Edit HTML5 Feature Permissions'),
 ##            UI.PixmapCache.getIcon("featurePermission.png"),
@@ -1398,7 +1409,7 @@
 ##            self.clearIconsAct.triggered.connect(self.__clearIconsDatabase)
 ##        self.__actions.append(self.clearIconsAct)
         
-        # TODO: re-enable once search engines have been done
+        # TODO: Open Search
 ##        self.searchEnginesAct = E5Action(
 ##            self.tr('Configure Search Engines'),
 ##            self.tr('Configure Search &Engines...'),
@@ -1416,6 +1427,7 @@
 ##                self.__showEnginesConfigurationDialog)
 ##        self.__actions.append(self.searchEnginesAct)
         
+        # TODO: Passwords
 ##        self.passwordsAct = E5Action(
 ##            self.tr('Manage Saved Passwords'),
 ##            UI.PixmapCache.getIcon("passwords.png"),
@@ -1432,6 +1444,7 @@
 ##            self.passwordsAct.triggered.connect(self.__showPasswordsDialog)
 ##        self.__actions.append(self.passwordsAct)
         
+        # TODO: AdBlock
 ##        self.adblockAct = E5Action(
 ##            self.tr('Ad Block'),
 ##            UI.PixmapCache.getIcon("adBlockPlus.png"),
@@ -1449,6 +1462,7 @@
 ##            self.adblockAct.triggered.connect(self.__showAdBlockDialog)
 ##        self.__actions.append(self.adblockAct)
         
+        # TODO: Click2Flash (?)
 ##        self.flashblockAct = E5Action(
 ##            self.tr('ClickToFlash'),
 ##            UI.PixmapCache.getIcon("flashBlock.png"),
@@ -1467,6 +1481,7 @@
 ##                self.__showClickToFlashDialog)
 ##        self.__actions.append(self.flashblockAct)
         
+        # TODO: Certificates
 ##        if SSL_AVAILABLE:
 ##            self.certificatesAct = E5Action(
 ##                self.tr('Manage SSL Certificates'),
@@ -1486,6 +1501,7 @@
 ##                    self.__showCertificatesDialog)
 ##            self.__actions.append(self.certificatesAct)
         
+        # TODO: Network Monitor (?)
 ##        self.toolsMonitorAct = E5Action(
 ##            self.tr('Network Monitor'),
 ##            self.tr('&Network Monitor...'),
@@ -1502,7 +1518,7 @@
 ##                self.__showNetworkMonitor)
 ##        self.__actions.append(self.toolsMonitorAct)
         
-        # TODO: re-enable once Download Manager has been done
+        # TODO: Download Manager
 ##        self.showDownloadManagerAct = E5Action(
 ##            self.tr('Downloads'),
 ##            self.tr('Downloads'),
@@ -1518,7 +1534,7 @@
 ##                self.__showDownloadsWindow)
 ##        self.__actions.append(self.showDownloadManagerAct)
         
-        # TODO: re-enable once RSS Feeds Manager has been done
+        # TODO: RSS Feeds Manager
 ##        self.feedsManagerAct = E5Action(
 ##            self.tr('RSS Feeds Dialog'),
 ##            UI.PixmapCache.getIcon("rss22.png"),
@@ -1537,6 +1553,7 @@
 ##            self.feedsManagerAct.triggered.connect(self.__showFeedsManager)
 ##        self.__actions.append(self.feedsManagerAct)
         
+        # TODO: Site Info
 ##        self.siteInfoAct = E5Action(
 ##            self.tr('Siteinfo Dialog'),
 ##            UI.PixmapCache.getIcon("helpAbout.png"),
@@ -1554,6 +1571,7 @@
 ##            self.siteInfoAct.triggered.connect(self.__showSiteinfoDialog)
 ##        self.__actions.append(self.siteInfoAct)
         
+        # TODO: User Agents
 ##        self.userAgentManagerAct = E5Action(
 ##            self.tr('Manage User Agent Settings'),
 ##            self.tr('Manage &User Agent Settings'),
@@ -1569,6 +1587,7 @@
 ##                self.__showUserAgentsDialog)
 ##        self.__actions.append(self.userAgentManagerAct)
         
+        # TODO: Synchronisation
 ##        self.synchronizationAct = E5Action(
 ##            self.tr('Synchronize data'),
 ##            UI.PixmapCache.getIcon("sync.png"),
@@ -1586,7 +1605,7 @@
 ##                self.__showSyncDialog)
 ##        self.__actions.append(self.synchronizationAct)
         
-        # TODO: re-enable once zoom stuff is done
+        # TODO: Zoom Manager
 ##        self.zoomValuesAct = E5Action(
 ##            self.tr('Manage Saved Zoom Values'),
 ##            UI.PixmapCache.getIcon("zoomReset.png"),
@@ -1677,11 +1696,12 @@
         menu.addSeparator()
         menu.addAction(self.stopAct)
         menu.addAction(self.reloadAct)
+        # TODO: QtHelp
 ##        if WebBrowserWindow.UseQtHelp:
 ##            menu.addSeparator()
 ##            menu.addAction(self.syncTocAct)
         
-        # TODO: re-enable once History stuff is done
+        # TODO: History
 ##        from .History.HistoryMenu import HistoryMenu
 ##        self.historyMenu = HistoryMenu(self, self.__tabWidget)
 ##        self.historyMenu.setTearOffEnabled(True)
@@ -1690,7 +1710,7 @@
 ##        self.historyMenu.newUrl.connect(self.openUrlNewTab)
 ##        mb.addMenu(self.historyMenu)
         
-        # TODO: re-enable once Bookmarks stuff is done
+        # TODO: Bookmarks
 ##        from .Bookmarks.BookmarksMenu import BookmarksMenuBarMenu
 ##        self.bookmarksMenu = BookmarksMenuBarMenu(self)
 ##        self.bookmarksMenu.setTearOffEnabled(True)
@@ -1889,7 +1909,7 @@
 ##        self.searchEdit.setSizePolicy(sizePolicy)
 ##        self.searchEdit.search.connect(self.__linkActivated)
 ##        self.__navigationSplitter.addWidget(self.searchEdit)
-##        gotb.addWidget(self.__navigationSplitter)
+        gotb.addWidget(self.__navigationSplitter)
         
         self.__navigationSplitter.setSizePolicy(
             QSizePolicy.Expanding, QSizePolicy.Maximum)
@@ -2373,35 +2393,35 @@
         """
         self.currentBrowser().stop()
     
-##    def __zoomValueChanged(self, value):
-##        """
-##        Private slot to handle value changes of the zoom widget.
-##        
-##        @param value zoom value (integer)
-##        """
-##        self.currentBrowser().setZoomValue(value)
-##    
-##    def __zoomIn(self):
-##        """
-##        Private slot called to handle the zoom in action.
-##        """
-##        self.currentBrowser().zoomIn()
-##        self.__zoomWidget.setValue(self.currentBrowser().zoomValue())
-##    
-##    def __zoomOut(self):
-##        """
-##        Private slot called to handle the zoom out action.
-##        """
-##        self.currentBrowser().zoomOut()
-##        self.__zoomWidget.setValue(self.currentBrowser().zoomValue())
-##    
-##    def __zoomReset(self):
-##        """
-##        Private slot called to handle the zoom reset action.
-##        """
-##        self.currentBrowser().zoomReset()
-##        self.__zoomWidget.setValue(self.currentBrowser().zoomValue())
-##    
+    def __zoomValueChanged(self, value):
+        """
+        Private slot to handle value changes of the zoom widget.
+        
+        @param value zoom value (integer)
+        """
+        self.currentBrowser().setZoomValue(value)
+    
+    def __zoomIn(self):
+        """
+        Private slot called to handle the zoom in action.
+        """
+        self.currentBrowser().zoomIn()
+        self.__zoomWidget.setValue(self.currentBrowser().zoomValue())
+    
+    def __zoomOut(self):
+        """
+        Private slot called to handle the zoom out action.
+        """
+        self.currentBrowser().zoomOut()
+        self.__zoomWidget.setValue(self.currentBrowser().zoomValue())
+    
+    def __zoomReset(self):
+        """
+        Private slot called to handle the zoom reset action.
+        """
+        self.currentBrowser().zoomReset()
+        self.__zoomWidget.setValue(self.currentBrowser().zoomValue())
+    
 ##    def __zoomTextOnly(self, textOnly):
 ##        """
 ##        Private slot called to handle the zoom text only action.
@@ -2521,9 +2541,9 @@
                 self.setForwardAvailable(cb.isForwardAvailable())
                 self.setBackwardAvailable(cb.isBackwardAvailable())
                 self.setLoadingActions(cb.isLoading())
-##                
-##                # set value of zoom widget
-##                self.__zoomWidget.setValue(cb.zoomValue())
+                
+                # set value of zoom widget
+                self.__zoomWidget.setValue(cb.zoomValue())
     
     def __showPreferences(self):
         """

eric ide

mercurial