UI/UserInterface.py

changeset 6287
9a193ff6d24a
parent 6267
350655a6c85f
child 6291
94e0e688dcad
equal deleted inserted replaced
6286:2c8a751d6137 6287:9a193ff6d24a
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

eric ide

mercurial