278 |
278 |
279 # Generate the redirection helpers |
279 # Generate the redirection helpers |
280 self.stdout = Redirector(False) |
280 self.stdout = Redirector(False) |
281 self.stderr = Redirector(True) |
281 self.stderr = Redirector(True) |
282 |
282 |
283 # set a few dialog members for dialogs created on demand |
283 # set a few dialog members for non-modal dialogs created on demand |
284 self.programsDialog = None |
284 self.programsDialog = None |
285 self.shortcutsDialog = None |
285 self.shortcutsDialog = None |
286 self.unittestDialog = None |
286 self.unittestDialog = None |
287 self.findFileNameDialog = None |
287 self.findFileNameDialog = None |
288 self.diffDlg = None |
288 self.diffDlg = None |
289 self.compareDlg = None |
289 self.compareDlg = None |
290 self.findFilesDialog = None |
290 self.findFilesDialog = None |
291 self.replaceFilesDialog = None |
291 self.replaceFilesDialog = None |
292 self.__notification = None |
292 self.__notification = None |
293 self.__readingSession = False |
293 self.__readingSession = False |
|
294 self.__versionsDialog = None |
294 |
295 |
295 # now setup the connections |
296 # now setup the connections |
296 splash.showMessage(self.tr("Setting up connections...")) |
297 splash.showMessage(self.tr("Setting up connections...")) |
297 self.browser.sourceFile[str].connect( |
298 self.browser.sourceFile[str].connect( |
298 self.viewmanager.openSourceFile) |
299 self.viewmanager.openSourceFile) |
537 from Helpviewer.HelpWindow import HelpWindow |
538 from Helpviewer.HelpWindow import HelpWindow |
538 self.dummyHelpViewer = \ |
539 self.dummyHelpViewer = \ |
539 HelpWindow(None, '.', None, 'help viewer', True, True) |
540 HelpWindow(None, '.', None, 'help viewer', True, True) |
540 else: |
541 else: |
541 self.dummyHelpViewer = None |
542 self.dummyHelpViewer = None |
|
543 |
|
544 # redirect handling of http and https URLs to ourselves |
|
545 if WEBENGINE_AVAILABLE or WEBKIT_AVAILABLE: |
|
546 QDesktopServices.setUrlHandler("http", self.handleUrl) |
|
547 QDesktopServices.setUrlHandler("https", self.handleUrl) |
542 |
548 |
543 # register all relevant objects |
549 # register all relevant objects |
544 splash.showMessage(self.tr("Registering Objects...")) |
550 splash.showMessage(self.tr("Registering Objects...")) |
545 e5App().registerObject("UserInterface", self) |
551 e5App().registerObject("UserInterface", self) |
546 e5App().registerObject("DebugUI", self.debuggerUI) |
552 e5App().registerObject("DebugUI", self.debuggerUI) |
5420 elif hvType == 3: |
5426 elif hvType == 3: |
5421 self.__webBrowser(home) |
5427 self.__webBrowser(home) |
5422 else: |
5428 else: |
5423 self.__customViewer(home) |
5429 self.__customViewer(home) |
5424 |
5430 |
|
5431 @pyqtSlot(QUrl) |
|
5432 def handleUrl(self, url): |
|
5433 """ |
|
5434 Public slot to handle opening a URL. |
|
5435 |
|
5436 @param url URL to be shown |
|
5437 @type QUrl |
|
5438 """ |
|
5439 self.launchHelpViewer(url) |
|
5440 |
5425 def launchHelpViewer(self, home, searchWord=None, useSingle=False): |
5441 def launchHelpViewer(self, home, searchWord=None, useSingle=False): |
5426 """ |
5442 """ |
5427 Public slot to start the help viewer. |
5443 Public slot to start the help viewer/web browser. |
5428 |
5444 |
5429 @param home filename of file to be shown (string) |
5445 @param home filename of file to be shown or URL to be opened |
5430 @keyparam searchWord word to search for (string) |
5446 @type str or QUrl |
|
5447 @keyparam searchWord word to search for |
|
5448 @type str |
5431 @keyparam useSingle flag indicating to use a single browser window |
5449 @keyparam useSingle flag indicating to use a single browser window |
5432 (boolean) |
5450 @type bool |
5433 """ |
5451 """ |
|
5452 if isinstance(home, QUrl): |
|
5453 home = home.toString(QUrl.None_) |
|
5454 |
5434 if len(home) > 0: |
5455 if len(home) > 0: |
5435 homeUrl = QUrl(home) |
5456 homeUrl = QUrl(home) |
5436 if not homeUrl.scheme(): |
5457 if not homeUrl.scheme(): |
5437 home = QUrl.fromLocalFile(home).toString() |
5458 home = QUrl.fromLocalFile(home).toString() |
5438 |
5459 |
6690 'sourceforge' in versions[line + 1] and |
6711 'sourceforge' in versions[line + 1] and |
6691 "SourceForge" or versions[line + 1]) |
6712 "SourceForge" or versions[line + 1]) |
6692 line += 2 |
6713 line += 2 |
6693 versionText += self.tr("""</table>""") |
6714 versionText += self.tr("""</table>""") |
6694 |
6715 |
6695 E5MessageBox.about(self, Program, versionText) |
6716 self.__versionsDialog = E5MessageBox.E5MessageBox( |
|
6717 E5MessageBox.NoIcon, |
|
6718 Program, |
|
6719 versionText, |
|
6720 modal=False, |
|
6721 buttons=E5MessageBox.Ok, |
|
6722 parent=self |
|
6723 ) |
|
6724 self.__versionsDialog.setIconPixmap( |
|
6725 UI.PixmapCache.getPixmap("eric.png").scaled(64, 64)) |
|
6726 self.__versionsDialog.show() |
6696 |
6727 |
6697 def __sslErrors(self, reply, errors): |
6728 def __sslErrors(self, reply, errors): |
6698 """ |
6729 """ |
6699 Private slot to handle SSL errors. |
6730 Private slot to handle SSL errors. |
6700 |
6731 |