eric7/WebBrowser/QtHelp/HelpIndexWidget.py

branch
eric7
changeset 8685
b0669ce1066d
parent 8565
207b47c2eed9
child 8693
d51660d6f1b9
--- a/eric7/WebBrowser/QtHelp/HelpIndexWidget.py	Wed Oct 13 18:15:30 2021 +0200
+++ b/eric7/WebBrowser/QtHelp/HelpIndexWidget.py	Thu Oct 14 20:15:58 2021 +0200
@@ -10,7 +10,8 @@
 from PyQt6.QtCore import pyqtSignal, pyqtSlot, Qt, QUrl, QEvent
 from PyQt6.QtHelp import QHelpLink
 from PyQt6.QtWidgets import (
-    QWidget, QVBoxLayout, QLabel, QLineEdit, QMenu, QDialog, QApplication
+    QWidget, QVBoxLayout, QHBoxLayout, QLabel, QLineEdit, QMenu, QDialog,
+    QApplication
 )
 
 
@@ -31,31 +32,41 @@
     newBackgroundTab = pyqtSignal(QUrl)
     newWindow = pyqtSignal(QUrl)
     
-    def __init__(self, engine, parent=None):
+    def __init__(self, engine, internal=False, parent=None):
         """
         Constructor
         
         @param engine reference to the help engine
         @type QHelpEngine
+        @param internal flag indicating the internal help viewer
+        @type bool
         @param parent reference to the parent widget
         @type QWidget
         """
         super().__init__(parent)
         
         self.__engine = engine
+        self.__internal = internal
         
         self.__searchEdit = None
         self.__index = None
         
         self.__layout = QVBoxLayout(self)
+        if internal:
+            # no margins for the internal variant
+            self.__layout.setContentsMargins(0, 0, 0, 0)
+        
+        self.__searchEditLayout = QHBoxLayout()
         label = QLabel(self.tr("&Look for:"))
-        self.__layout.addWidget(label)
+        self.__searchEditLayout.addWidget(label)
         
         self.__searchEdit = QLineEdit()
+        self.__searchEdit.setClearButtonEnabled(True)
         label.setBuddy(self.__searchEdit)
         self.__searchEdit.textChanged.connect(self.__filterIndices)
         self.__searchEdit.installEventFilter(self)
-        self.__layout.addWidget(self.__searchEdit)
+        self.__searchEditLayout.addWidget(self.__searchEdit)
+        self.__layout.addLayout(self.__searchEditLayout)
         
         self.__index = self.__engine.indexWidget()
         self.__index.setContextMenuPolicy(
@@ -96,7 +107,10 @@
                 self.newBackgroundTab.emit(document.url)
             elif modifiers & Qt.KeyboardModifier.ControlModifier:
                 self.newTab.emit(document.url)
-            elif modifiers & Qt.KeyboardModifier.ShiftModifier:
+            elif (
+                modifiers & Qt.KeyboardModifier.ShiftModifier and
+                not self.__internal
+            ):
                 self.newWindow.emit(document.url)
             else:
                 self.openUrl.emit(document.url)
@@ -132,10 +146,12 @@
         @rtype QHelpLink
         """
         document = QHelpLink()
+        
         from .HelpTopicDialog import HelpTopicDialog
         dlg = HelpTopicDialog(self, helpKeyword, documents)
         if dlg.exec() == QDialog.DialogCode.Accepted:
             document = dlg.document()
+        
         return document
     
     def __filterIndices(self, indexFilter):
@@ -216,10 +232,15 @@
         if idx.isValid():
             menu = QMenu()
             curTab = menu.addAction(self.tr("Open Link"))
-            newTab = menu.addAction(self.tr("Open Link in New Tab"))
-            newBackgroundTab = menu.addAction(
-                self.tr("Open Link in Background Tab"))
-            newWindow = menu.addAction(self.tr("Open Link in New Window"))
+            if self.__internal:
+                newTab = menu.addAction(self.tr("Open Link in New Page"))
+                newBackgroundTab = menu.addAction(
+                    self.tr("Open Link in Background Page"))
+            else:
+                newTab = menu.addAction(self.tr("Open Link in New Tab"))
+                newBackgroundTab = menu.addAction(
+                    self.tr("Open Link in Background Tab"))
+                newWindow = menu.addAction(self.tr("Open Link in New Window"))
             menu.move(self.__index.mapToGlobal(pos))
             
             act = menu.exec()
@@ -230,7 +251,7 @@
                 if len(helpLinks) == 1:
                     link = helpLinks[0].url
                 else:
-                    link = self.__selectDocument(helpLinks, helpKeyword)
+                    link = self.__selectDocument(helpLinks, helpKeyword).url
                 
                 if not link.isEmpty() and link.isValid():
                     if act == curTab:
@@ -239,5 +260,5 @@
                         self.newTab.emit(link)
                     elif act == newBackgroundTab:
                         self.newBackgroundTab.emit(link)
-                    elif act == newWindow:
+                    elif not self.__internal and act == newWindow:
                         self.newWindow.emit(link)

eric ide

mercurial