Helpviewer/HelpWindow.py

changeset 653
0540f3c52b46
parent 638
265c31231d9d
child 668
b0061a6f7484
--- a/Helpviewer/HelpWindow.py	Sun Oct 03 11:29:27 2010 +0200
+++ b/Helpviewer/HelpWindow.py	Sun Oct 03 18:39:11 2010 +0200
@@ -35,7 +35,6 @@
 from .Bookmarks.BookmarksDialog import BookmarksDialog
 from .History.HistoryManager import HistoryManager
 from .History.HistoryMenu import HistoryMenu
-from .History.HistoryCompleter import HistoryCompletionModel, HistoryCompleter
 from .Passwords.PasswordManager import PasswordManager
 from .Network.NetworkAccessManager import NetworkAccessManager
 from .AdBlock.AdBlockManager import AdBlockManager
@@ -67,6 +66,7 @@
     """
     zoomTextOnlyChanged = pyqtSignal(bool)
     helpClosed = pyqtSignal()
+    privacyChanged = pyqtSignal(bool)
     
     helpwindows = []
 
@@ -104,7 +104,6 @@
         self.setWindowIcon(UI.PixmapCache.getIcon("eric.png"))
 
         self.mHistory = []
-        self.pathCombo = None
         
         if self.initShortcutsOnly:
             self.__initActions()
@@ -115,12 +114,8 @@
             self.__helpEngine.warning.connect(self.__warning)
             self.__helpInstaller = None
             
-            # Attributes for WebKit based browser
-            self.__progressBar = None
-            
             self.tabWidget = HelpTabWidget(self)
             self.tabWidget.currentChanged[int].connect(self.__currentChanged)
-            self.tabWidget.sourceChanged.connect(self.__sourceChanged)
             self.tabWidget.titleChanged.connect(self.__titleChanged)
             self.tabWidget.showMessage.connect(self.statusBar().showMessage)
             
@@ -1299,47 +1294,21 @@
         gotb.addAction(self.homeAct)
         gotb.addSeparator()
         
-        self.iconLabel = QLabel()
-        gotb.addWidget(self.iconLabel)
+        self.__navigationSplitter = QSplitter(gotb)
+        self.__navigationSplitter.addWidget(self.tabWidget.stackedUrlBar())
         
-        self.pathCombo = QComboBox()
-        self.pathCombo.setDuplicatesEnabled(False)
-        self.pathCombo.setInsertPolicy(QComboBox.InsertAtTop)
-        self.pathCombo.setEditable(1)
-        self.pathCombo.setAutoCompletion(True)
-        self.pathCombo.activated[str].connect(self.__pathSelected)
-        self.pathCombo.setWhatsThis(self.trUtf8(
-                """<p>Enter the help file to be displayed directly into this"""
-                """ edit field. Select a previously shown help file from the"""
-                """ drop down list.</p>"""
-        ))
-        sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred)
-        sizePolicy.setHorizontalStretch(6)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.pathCombo.sizePolicy().hasHeightForWidth())
-        self.pathCombo.setSizePolicy(sizePolicy)
-        gotb.addWidget(self.pathCombo)
-        self.pathComboDefaultColor = \
-            self.pathCombo.lineEdit().palette().color(QPalette.Base)
-        self.__historyCompletionModel = HistoryCompletionModel(self)
-        self.__historyCompletionModel.setSourceModel(
-            self.historyManager().historyFilterModel())
-        self.__historyCompleter = HistoryCompleter(self.__historyCompletionModel, self)
-        self.__historyCompleter.activated[str].connect(self.__pathSelected)
-        self.pathCombo.setCompleter(self.__historyCompleter)
-        
-        self.privacyLabel = QLabel()
-        gotb.addWidget(self.privacyLabel)
-        
-        gotb.addSeparator()
         self.searchEdit = HelpWebSearchWidget(self)
         sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred)
         sizePolicy.setHorizontalStretch(2)
         sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.searchEdit.sizePolicy().hasHeightForWidth())
         self.searchEdit.setSizePolicy(sizePolicy)
         self.searchEdit.search.connect(self.__linkActivated)
-        gotb.addWidget(self.searchEdit)
+        self.__navigationSplitter.addWidget(self.searchEdit)
+        gotb.addWidget(self.__navigationSplitter)
+        
+        self.__navigationSplitter.setSizePolicy(
+            QSizePolicy.Expanding, QSizePolicy.Maximum)
+        self.__navigationSplitter.setCollapsible(0, False)
         
         self.backMenu = QMenu(self)
         self.backMenu.aboutToShow.connect(self.__showBackMenu)
@@ -1416,69 +1385,6 @@
             idx += 1
             act.setIcon(HelpWindow.__getWebIcon(QUrl(hist)))
         
-    def __pathSelected(self, path):
-        """
-        Private slot called when a file is selected in the combobox.
-        
-        @param path path to be shown (string)
-        """
-        url = self.__guessUrlFromPath(path)
-        self.currentBrowser().setSource(url)
-        self.__setPathComboBackground()
-    
-    def __guessUrlFromPath(self, path):
-        """
-        Private method to guess an URL given a path string.
-        
-        @param path path string to guess an URL for (string)
-        @return guessed URL (QUrl)
-        """
-        manager = self.searchEdit.openSearchManager()
-        path = Utilities.fromNativeSeparators(path)
-        url = manager.convertKeywordSearchToUrl(path)
-        if url.isValid():
-            return url
-        
-        try:
-            return QUrl.fromUserInput(path)
-        except AttributeError:
-            return QUrl(path)
-    
-    def __setPathComboBackground(self):
-        """
-        Private slot to change the path combo background to indicate save URLs.
-        """
-        url = QUrl(self.pathCombo.currentText())
-        le = self.pathCombo.lineEdit()
-        p = le.palette()
-        if url.isEmpty() or url.scheme() != "https":
-            p.setBrush(QPalette.Base, self.pathComboDefaultColor)
-        else:
-            p.setBrush(QPalette.Base, QBrush(Preferences.getHelp("SaveUrlColor")))
-        le.setPalette(p)
-        le.update()
-    
-    def __sourceChanged(self, url):
-        """
-        Private slot called when the displayed text of the combobox is changed.
-        
-        @param url URL of the new site (QUrl)
-        """
-        selectedURL = url.toString()
-        if selectedURL != "" and self.pathCombo is not None:
-            i = self.pathCombo.findText(selectedURL)
-            if i == -1:
-                if not QWebSettings.globalSettings()\
-                       .testAttribute(QWebSettings.PrivateBrowsingEnabled):
-                    self.pathCombo.insertItem(0, selectedURL)
-                    self.pathCombo.setCurrentIndex(0)
-            else:
-                self.pathCombo.setCurrentIndex(i)
-            
-            self.__setPathComboBackground()
-        
-        self.iconChanged(self.currentBrowser().icon())
-    
     def __titleChanged(self, title):
         """
         Private slot called to handle a change of the current browsers title.
@@ -1823,16 +1729,24 @@
                               """ web pages you have opened.</p>""")
             res = E5MessageBox.yesNo(self, "", txt)
             if res:
-                settings.setAttribute(QWebSettings.PrivateBrowsingEnabled, True)
-                self.pathCombo.setInsertPolicy(QComboBox.NoInsert)
-                self.privacyLabel.setPixmap(
-                    UI.PixmapCache.getPixmap("privateBrowsing.png"))
-                self.__setIconDatabasePath(False)
+                self.setPrivateMode(True)
         else:
-            settings.setAttribute(QWebSettings.PrivateBrowsingEnabled, False)
-            self.pathCombo.setInsertPolicy(QComboBox.InsertAtTop)
-            self.privacyLabel.setPixmap(QPixmap())
+            self.setPrivateMode(False)
+    
+    def setPrivateMode(self, on):
+        """
+        Public method to set the privacy mode.
+        
+        @param on flag indicating the privacy state (boolean)
+        """
+        QWebSettings.globalSettings().setAttribute(
+            QWebSettings.PrivateBrowsingEnabled, on)
+        if on:
+            self.__setIconDatabasePath(False)
+        else:
             self.__setIconDatabasePath(True)
+        self.privateBrowsingAct.setChecked(on)
+        self.privacyChanged.emit(on)
     
     def currentBrowser(self):
         """
@@ -1871,17 +1785,6 @@
                 self.setForwardAvailable(cb.isForwardAvailable())
                 self.setBackwardAvailable(cb.isBackwardAvailable())
                 self.setLoadingActions(cb.isLoading())
-                
-                url = cb.source().toString()
-                index2 = self.pathCombo.findText(url)
-                if index2 > -1:
-                    self.pathCombo.setCurrentIndex(index2)
-                else:
-                    self.pathCombo.clearEditText()
-                
-                self.__setPathComboBackground()
-                
-                self.iconChanged(cb.icon())
     
     def __showPreferences(self):
         """
@@ -1904,8 +1807,6 @@
         """
         Public slot to handle a change of preferences.
         """
-        self.__setPathComboBackground()
-        
         self.__initWebSettings()
         
         self.networkAccessManager().preferencesChanged()
@@ -1940,26 +1841,6 @@
             dlg.storeData()
             self.__initWebSettings()
     
-    ############################################################################
-    ## Methods to support Webkit based browser below.
-    ############################################################################
-    
-    def progressBar(self):
-        """
-        Public method to get a reference to the load progress bar.
-        
-        @return reference to the load progress bar (QProgressBar)
-        """
-        if self.__progressBar is None:
-            self.__progressBar = QProgressBar()
-            self.statusBar().addPermanentWidget(self.__progressBar)
-            self.__progressBar.setMaximumWidth(100)
-            self.__progressBar.setFixedHeight(16)
-            self.__progressBar.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed)
-            self.__progressBar.hide()
-        
-        return self.__progressBar
-        
     @classmethod
     def helpEngine(cls):
         """
@@ -1997,14 +1878,6 @@
         """
         return cls.networkAccessManager().cookieJar()
         
-    def iconChanged(self, icon):
-        """
-        Public slot to change the icon shown to the left of the URL entry.
-        
-        @param icon icon to be shown (QIcon)
-        """
-        self.iconLabel.setPixmap(icon.pixmap(16, 16))
-        
     def __clearIconsDatabase(self):
         """
         Private slot to clear the icons databse.

eric ide

mercurial