34 |
34 |
35 WEBENGINE_AVAILABLE = True |
35 WEBENGINE_AVAILABLE = True |
36 except ImportError: |
36 except ImportError: |
37 WEBENGINE_AVAILABLE = False |
37 WEBENGINE_AVAILABLE = False |
38 |
38 |
39 from EricWidgets import EricFileDialog, EricMessageBox |
39 from eric7.EricWidgets import EricFileDialog, EricMessageBox |
40 from EricWidgets.EricApplication import ericApp |
40 from eric7.EricWidgets.EricApplication import ericApp |
41 from EricWidgets.EricTextEditSearchWidget import ( |
41 from eric7.EricWidgets.EricTextEditSearchWidget import ( |
42 EricTextEditSearchWidget, |
42 EricTextEditSearchWidget, |
43 EricTextEditType, |
43 EricTextEditType, |
44 ) |
44 ) |
45 |
45 |
46 import UI.PixmapCache |
46 from eric7.EricGui import EricPixmapCache |
47 import Utilities |
47 from eric7 import Preferences, Utilities |
48 import Preferences |
|
49 |
48 |
50 from .OpenPagesWidget import OpenPagesWidget |
49 from .OpenPagesWidget import OpenPagesWidget |
51 from .HelpBookmarksWidget import HelpBookmarksWidget |
50 from .HelpBookmarksWidget import HelpBookmarksWidget |
52 |
51 |
53 from WebBrowser.QtHelp.HelpTocWidget import HelpTocWidget |
52 from eric7.WebBrowser.QtHelp.HelpTocWidget import HelpTocWidget |
54 from WebBrowser.QtHelp.HelpIndexWidget import HelpIndexWidget |
53 from eric7.WebBrowser.QtHelp.HelpIndexWidget import HelpIndexWidget |
55 from WebBrowser.QtHelp.HelpSearchWidget import HelpSearchWidget |
54 from eric7.WebBrowser.QtHelp.HelpSearchWidget import HelpSearchWidget |
56 |
55 |
57 |
56 |
58 class HelpViewerWidget(QWidget): |
57 class HelpViewerWidget(QWidget): |
59 """ |
58 """ |
60 Class implementing an embedded viewer for QtHelp and local HTML files. |
59 Class implementing an embedded viewer for QtHelp and local HTML files. |
126 self.__selectorLayout.addWidget(self.__helpSelector) |
125 self.__selectorLayout.addWidget(self.__helpSelector) |
127 self.__populateHelpSelector() |
126 self.__populateHelpSelector() |
128 self.__helpSelector.activated.connect(self.__helpTopicSelected) |
127 self.__helpSelector.activated.connect(self.__helpTopicSelected) |
129 |
128 |
130 self.__openButton = QToolButton(self) |
129 self.__openButton = QToolButton(self) |
131 self.__openButton.setIcon(UI.PixmapCache.getIcon("open")) |
130 self.__openButton.setIcon(EricPixmapCache.getIcon("open")) |
132 self.__openButton.setToolTip(self.tr("Open a local file")) |
131 self.__openButton.setToolTip(self.tr("Open a local file")) |
133 self.__openButton.clicked.connect(self.__openFile) |
132 self.__openButton.clicked.connect(self.__openFile) |
134 self.__selectorLayout.addWidget(self.__openButton) |
133 self.__selectorLayout.addWidget(self.__openButton) |
135 |
134 |
136 self.__actionsButton = QToolButton(self) |
135 self.__actionsButton = QToolButton(self) |
137 self.__actionsButton.setIcon(UI.PixmapCache.getIcon("actionsToolButton")) |
136 self.__actionsButton.setIcon(EricPixmapCache.getIcon("actionsToolButton")) |
138 self.__actionsButton.setToolTip(self.tr("Select action from menu")) |
137 self.__actionsButton.setToolTip(self.tr("Select action from menu")) |
139 self.__actionsButton.setPopupMode(QToolButton.ToolButtonPopupMode.InstantPopup) |
138 self.__actionsButton.setPopupMode(QToolButton.ToolButtonPopupMode.InstantPopup) |
140 self.__selectorLayout.addWidget(self.__actionsButton) |
139 self.__selectorLayout.addWidget(self.__actionsButton) |
141 |
140 |
142 self.__layout.addLayout(self.__selectorLayout) |
141 self.__layout.addLayout(self.__selectorLayout) |
148 self.__navButtonsLayout = QHBoxLayout() |
147 self.__navButtonsLayout = QHBoxLayout() |
149 |
148 |
150 self.__navButtonsLayout.addStretch() |
149 self.__navButtonsLayout.addStretch() |
151 |
150 |
152 self.__backwardButton = QToolButton(self) |
151 self.__backwardButton = QToolButton(self) |
153 self.__backwardButton.setIcon(UI.PixmapCache.getIcon("back")) |
152 self.__backwardButton.setIcon(EricPixmapCache.getIcon("back")) |
154 self.__backwardButton.setToolTip(self.tr("Move one page backward")) |
153 self.__backwardButton.setToolTip(self.tr("Move one page backward")) |
155 self.__backwardButton.clicked.connect(self.__backward) |
154 self.__backwardButton.clicked.connect(self.__backward) |
156 |
155 |
157 self.__forwardButton = QToolButton(self) |
156 self.__forwardButton = QToolButton(self) |
158 self.__forwardButton.setIcon(UI.PixmapCache.getIcon("forward")) |
157 self.__forwardButton.setIcon(EricPixmapCache.getIcon("forward")) |
159 self.__forwardButton.setToolTip(self.tr("Move one page forward")) |
158 self.__forwardButton.setToolTip(self.tr("Move one page forward")) |
160 self.__forwardButton.clicked.connect(self.__forward) |
159 self.__forwardButton.clicked.connect(self.__forward) |
161 |
160 |
162 self.__backForButtonLayout = QHBoxLayout() |
161 self.__backForButtonLayout = QHBoxLayout() |
163 self.__backForButtonLayout.setContentsMargins(0, 0, 0, 0) |
162 self.__backForButtonLayout.setContentsMargins(0, 0, 0, 0) |
165 self.__backForButtonLayout.addWidget(self.__backwardButton) |
164 self.__backForButtonLayout.addWidget(self.__backwardButton) |
166 self.__backForButtonLayout.addWidget(self.__forwardButton) |
165 self.__backForButtonLayout.addWidget(self.__forwardButton) |
167 self.__navButtonsLayout.addLayout(self.__backForButtonLayout) |
166 self.__navButtonsLayout.addLayout(self.__backForButtonLayout) |
168 |
167 |
169 self.__reloadButton = QToolButton(self) |
168 self.__reloadButton = QToolButton(self) |
170 self.__reloadButton.setIcon(UI.PixmapCache.getIcon("reload")) |
169 self.__reloadButton.setIcon(EricPixmapCache.getIcon("reload")) |
171 self.__reloadButton.setToolTip(self.tr("Reload the current page")) |
170 self.__reloadButton.setToolTip(self.tr("Reload the current page")) |
172 self.__reloadButton.clicked.connect(self.__reload) |
171 self.__reloadButton.clicked.connect(self.__reload) |
173 self.__navButtonsLayout.addWidget(self.__reloadButton) |
172 self.__navButtonsLayout.addWidget(self.__reloadButton) |
174 |
173 |
175 self.__buttonLine1 = QFrame(self) |
174 self.__buttonLine1 = QFrame(self) |
176 self.__buttonLine1.setFrameShape(QFrame.Shape.VLine) |
175 self.__buttonLine1.setFrameShape(QFrame.Shape.VLine) |
177 self.__buttonLine1.setFrameShadow(QFrame.Shadow.Sunken) |
176 self.__buttonLine1.setFrameShadow(QFrame.Shadow.Sunken) |
178 self.__navButtonsLayout.addWidget(self.__buttonLine1) |
177 self.__navButtonsLayout.addWidget(self.__buttonLine1) |
179 |
178 |
180 self.__zoomInButton = QToolButton(self) |
179 self.__zoomInButton = QToolButton(self) |
181 self.__zoomInButton.setIcon(UI.PixmapCache.getIcon("zoomIn")) |
180 self.__zoomInButton.setIcon(EricPixmapCache.getIcon("zoomIn")) |
182 self.__zoomInButton.setToolTip(self.tr("Zoom in on the current page")) |
181 self.__zoomInButton.setToolTip(self.tr("Zoom in on the current page")) |
183 self.__zoomInButton.clicked.connect(self.__zoomIn) |
182 self.__zoomInButton.clicked.connect(self.__zoomIn) |
184 self.__navButtonsLayout.addWidget(self.__zoomInButton) |
183 self.__navButtonsLayout.addWidget(self.__zoomInButton) |
185 |
184 |
186 self.__zoomOutButton = QToolButton(self) |
185 self.__zoomOutButton = QToolButton(self) |
187 self.__zoomOutButton.setIcon(UI.PixmapCache.getIcon("zoomOut")) |
186 self.__zoomOutButton.setIcon(EricPixmapCache.getIcon("zoomOut")) |
188 self.__zoomOutButton.setToolTip(self.tr("Zoom out on the current page")) |
187 self.__zoomOutButton.setToolTip(self.tr("Zoom out on the current page")) |
189 self.__zoomOutButton.clicked.connect(self.__zoomOut) |
188 self.__zoomOutButton.clicked.connect(self.__zoomOut) |
190 self.__navButtonsLayout.addWidget(self.__zoomOutButton) |
189 self.__navButtonsLayout.addWidget(self.__zoomOutButton) |
191 |
190 |
192 self.__zoomResetButton = QToolButton(self) |
191 self.__zoomResetButton = QToolButton(self) |
193 self.__zoomResetButton.setIcon(UI.PixmapCache.getIcon("zoomReset")) |
192 self.__zoomResetButton.setIcon(EricPixmapCache.getIcon("zoomReset")) |
194 self.__zoomResetButton.setToolTip( |
193 self.__zoomResetButton.setToolTip( |
195 self.tr("Reset the zoom level of the current page") |
194 self.tr("Reset the zoom level of the current page") |
196 ) |
195 ) |
197 self.__zoomResetButton.clicked.connect(self.__zoomReset) |
196 self.__zoomResetButton.clicked.connect(self.__zoomReset) |
198 self.__navButtonsLayout.addWidget(self.__zoomResetButton) |
197 self.__navButtonsLayout.addWidget(self.__zoomResetButton) |
201 self.__buttonLine2.setFrameShape(QFrame.Shape.VLine) |
200 self.__buttonLine2.setFrameShape(QFrame.Shape.VLine) |
202 self.__buttonLine2.setFrameShadow(QFrame.Shadow.Sunken) |
201 self.__buttonLine2.setFrameShadow(QFrame.Shadow.Sunken) |
203 self.__navButtonsLayout.addWidget(self.__buttonLine2) |
202 self.__navButtonsLayout.addWidget(self.__buttonLine2) |
204 |
203 |
205 self.__addPageButton = QToolButton(self) |
204 self.__addPageButton = QToolButton(self) |
206 self.__addPageButton.setIcon(UI.PixmapCache.getIcon("plus")) |
205 self.__addPageButton.setIcon(EricPixmapCache.getIcon("plus")) |
207 self.__addPageButton.setToolTip(self.tr("Add a new empty page")) |
206 self.__addPageButton.setToolTip(self.tr("Add a new empty page")) |
208 self.__addPageButton.clicked.connect(self.__addNewPage) |
207 self.__addPageButton.clicked.connect(self.__addNewPage) |
209 self.__navButtonsLayout.addWidget(self.__addPageButton) |
208 self.__navButtonsLayout.addWidget(self.__addPageButton) |
210 |
209 |
211 self.__closePageButton = QToolButton(self) |
210 self.__closePageButton = QToolButton(self) |
212 self.__closePageButton.setIcon(UI.PixmapCache.getIcon("minus")) |
211 self.__closePageButton.setIcon(EricPixmapCache.getIcon("minus")) |
213 self.__closePageButton.setToolTip(self.tr("Close the current page")) |
212 self.__closePageButton.setToolTip(self.tr("Close the current page")) |
214 self.__closePageButton.clicked.connect(self.closeCurrentPage) |
213 self.__closePageButton.clicked.connect(self.closeCurrentPage) |
215 self.__navButtonsLayout.addWidget(self.__closePageButton) |
214 self.__navButtonsLayout.addWidget(self.__closePageButton) |
216 |
215 |
217 self.__buttonLine3 = QFrame(self) |
216 self.__buttonLine3 = QFrame(self) |
218 self.__buttonLine3.setFrameShape(QFrame.Shape.VLine) |
217 self.__buttonLine3.setFrameShape(QFrame.Shape.VLine) |
219 self.__buttonLine3.setFrameShadow(QFrame.Shadow.Sunken) |
218 self.__buttonLine3.setFrameShadow(QFrame.Shadow.Sunken) |
220 self.__navButtonsLayout.addWidget(self.__buttonLine3) |
219 self.__navButtonsLayout.addWidget(self.__buttonLine3) |
221 |
220 |
222 self.__searchButton = QToolButton(self) |
221 self.__searchButton = QToolButton(self) |
223 self.__searchButton.setIcon(UI.PixmapCache.getIcon("find")) |
222 self.__searchButton.setIcon(EricPixmapCache.getIcon("find")) |
224 self.__searchButton.setToolTip(self.tr("Show or hide the search pane")) |
223 self.__searchButton.setToolTip(self.tr("Show or hide the search pane")) |
225 self.__searchButton.setCheckable(True) |
224 self.__searchButton.setCheckable(True) |
226 self.__searchButton.setChecked(False) |
225 self.__searchButton.setChecked(False) |
227 self.__searchButton.clicked.connect(self.showHideSearch) |
226 self.__searchButton.clicked.connect(self.showHideSearch) |
228 self.__navButtonsLayout.addWidget(self.__searchButton) |
227 self.__navButtonsLayout.addWidget(self.__searchButton) |
354 @type str |
353 @type str |
355 @return reference to the created button |
354 @return reference to the created button |
356 @rtype QToolButton |
355 @rtype QToolButton |
357 """ |
356 """ |
358 button = QToolButton(self) |
357 button = QToolButton(self) |
359 button.setIcon(UI.PixmapCache.getIcon(iconName)) |
358 button.setIcon(EricPixmapCache.getIcon(iconName)) |
360 button.setToolTip(toolTip) |
359 button.setToolTip(toolTip) |
361 button.setCheckable(True) |
360 button.setCheckable(True) |
362 self.__buttonGroup.addButton(button) |
361 self.__buttonGroup.addButton(button) |
363 self.__buttonLayout.addWidget(button) |
362 self.__buttonLayout.addWidget(button) |
364 |
363 |
712 def __lookForNewDocumentation(self): |
711 def __lookForNewDocumentation(self): |
713 """ |
712 """ |
714 Private slot to look for new documentation to be loaded into the |
713 Private slot to look for new documentation to be loaded into the |
715 help database. |
714 help database. |
716 """ |
715 """ |
717 from WebBrowser.QtHelp.HelpDocsInstaller import HelpDocsInstaller |
716 from eric7.WebBrowser.QtHelp.HelpDocsInstaller import HelpDocsInstaller |
718 |
717 |
719 self.__helpInstaller = HelpDocsInstaller(self.__helpEngine.collectionFile()) |
718 self.__helpInstaller = HelpDocsInstaller(self.__helpEngine.collectionFile()) |
720 self.__helpInstaller.errorMessage.connect(self.__showInstallationError) |
719 self.__helpInstaller.errorMessage.connect(self.__showInstallationError) |
721 self.__helpInstaller.docsInstalled.connect(self.__docsInstalled) |
720 self.__helpInstaller.docsInstalled.connect(self.__docsInstalled) |
722 |
721 |
1109 ) |
1108 ) |
1110 self.__webProfile.setHttpCacheMaximumSize(0) |
1109 self.__webProfile.setHttpCacheMaximumSize(0) |
1111 |
1110 |
1112 self.__initQWebEngineSettings() |
1111 self.__initQWebEngineSettings() |
1113 |
1112 |
1114 from WebBrowser.Network.QtHelpSchemeHandler import QtHelpSchemeHandler |
1113 from eric7.WebBrowser.Network.QtHelpSchemeHandler import QtHelpSchemeHandler |
1115 |
1114 |
1116 self.__qtHelpSchemeHandler = QtHelpSchemeHandler(self.__helpEngine) |
1115 self.__qtHelpSchemeHandler = QtHelpSchemeHandler(self.__helpEngine) |
1117 self.__webProfile.installUrlSchemeHandler( |
1116 self.__webProfile.installUrlSchemeHandler( |
1118 QByteArray(b"qthelp"), self.__qtHelpSchemeHandler |
1117 QByteArray(b"qthelp"), self.__qtHelpSchemeHandler |
1119 ) |
1118 ) |