Helpviewer/HelpBrowserWV.py

changeset 7
c679fb30c8f3
parent 0
de9c2efb9d02
child 12
1d8dd9706f46
equal deleted inserted replaced
6:52e8c820d0dd 7:c679fb30c8f3
153 """ 153 """
154 Public method to add data to a network request. 154 Public method to add data to a network request.
155 155
156 @param request reference to the network request object (QNetworkRequest) 156 @param request reference to the network request object (QNetworkRequest)
157 """ 157 """
158 request.setAttribute(QNetworkRequest.User + 100, QVariant(self)) 158 request.setAttribute(QNetworkRequest.User + 100, self)
159 request.setAttribute(QNetworkRequest.User + 101, 159 request.setAttribute(QNetworkRequest.User + 101, self.__lastRequestType)
160 QVariant(self.__lastRequestType))
161 160
162 def pageAttributeId(self): 161 def pageAttributeId(self):
163 """ 162 """
164 Public method to get the attribute id of the page attribute. 163 Public method to get the attribute id of the page attribute.
165 164
275 @param relation relation to extract (string) 274 @param relation relation to extract (string)
276 @return list of linked resources (list of LinkedResource) 275 @return list of linked resources (list of LinkedResource)
277 """ 276 """
278 resources = [] 277 resources = []
279 278
280 lst = self.page().mainFrame().evaluateJavaScript(fetchLinks_js).toList() 279 lst = self.page().mainFrame().evaluateJavaScript(fetchLinks_js)
281 for variant in lst: 280 for m in lst:
282 m = variant.toMap() 281 rel = m["rel"]
283 rel = m["rel"].toString() 282 type_ = m["type"]
284 type_ = m["type"].toString() 283 href = m["href"]
285 href = m["href"].toString() 284 title = m["title"]
286 title = m["title"].toString()
287 285
288 if href == "" or type_ == "": 286 if href == "" or type_ == "":
289 continue 287 continue
290 if relation and rel != relation: 288 if relation and rel != relation:
291 continue 289 continue
360 self.trUtf8("""<p>Could not start an application""" 358 self.trUtf8("""<p>Could not start an application"""
361 """ for URL <b>{0}</b>.</p>""").format(name.toString())) 359 """ for URL <b>{0}</b>.</p>""").format(name.toString()))
362 return 360 return
363 elif name.scheme() == "javascript": 361 elif name.scheme() == "javascript":
364 scriptSource = name.toString()[11:] 362 scriptSource = name.toString()[11:]
365 res = self.page().mainFrame().evaluateJavaScript(scriptSource).toString() 363 res = self.page().mainFrame().evaluateJavaScript(scriptSource)
366 if res: 364 if res:
367 self.setHtml(res) 365 self.setHtml(res)
368 return 366 return
369 else: 367 else:
370 if name.toString().endswith(".pdf") or \ 368 if name.toString().endswith(".pdf") or \
552 550
553 hit = self.page().mainFrame().hitTestContent(evt.pos()) 551 hit = self.page().mainFrame().hitTestContent(evt.pos())
554 if not hit.linkUrl().isEmpty(): 552 if not hit.linkUrl().isEmpty():
555 act = menu.addAction(self.trUtf8("Open Link in New Tab\tCtrl+LMB"), 553 act = menu.addAction(self.trUtf8("Open Link in New Tab\tCtrl+LMB"),
556 self.__openLinkInNewTab) 554 self.__openLinkInNewTab)
557 act.setData(QVariant(hit.linkUrl())) 555 act.setData(hit.linkUrl())
558 menu.addSeparator() 556 menu.addSeparator()
559 menu.addAction(self.trUtf8("Save Lin&k"), self.__downloadLink) 557 menu.addAction(self.trUtf8("Save Lin&k"), self.__downloadLink)
560 act = menu.addAction(self.trUtf8("Bookmark this Link"), self.__bookmarkLink) 558 act = menu.addAction(self.trUtf8("Bookmark this Link"), self.__bookmarkLink)
561 act.setData(QVariant(hit.linkUrl())) 559 act.setData(hit.linkUrl())
562 menu.addSeparator() 560 menu.addSeparator()
563 menu.addAction(self.trUtf8("Copy Link to Clipboard"), self.__copyLink) 561 menu.addAction(self.trUtf8("Copy Link to Clipboard"), self.__copyLink)
564 562
565 if not hit.imageUrl().isEmpty(): 563 if not hit.imageUrl().isEmpty():
566 if not menu.isEmpty(): 564 if not menu.isEmpty():
567 menu.addSeparator() 565 menu.addSeparator()
568 act = menu.addAction(self.trUtf8("Open Image in New Tab"), 566 act = menu.addAction(self.trUtf8("Open Image in New Tab"),
569 self.__openLinkInNewTab) 567 self.__openLinkInNewTab)
570 act.setData(QVariant(hit.imageUrl())) 568 act.setData(hit.imageUrl())
571 menu.addSeparator() 569 menu.addSeparator()
572 menu.addAction(self.trUtf8("Save Image"), self.__downloadImage) 570 menu.addAction(self.trUtf8("Save Image"), self.__downloadImage)
573 menu.addAction(self.trUtf8("Copy Image to Clipboard"), self.__copyImage) 571 menu.addAction(self.trUtf8("Copy Image to Clipboard"), self.__copyImage)
574 act = menu.addAction(self.trUtf8("Copy Image Location to Clipboard"), 572 act = menu.addAction(self.trUtf8("Copy Image Location to Clipboard"),
575 self.__copyImageLocation) 573 self.__copyImageLocation)
576 act.setData(QVariant(hit.imageUrl().toString())) 574 act.setData(hit.imageUrl().toString())
577 menu.addSeparator() 575 menu.addSeparator()
578 act = menu.addAction(self.trUtf8("Block Image"), self.__blockImage) 576 act = menu.addAction(self.trUtf8("Block Image"), self.__blockImage)
579 act.setData(QVariant(hit.imageUrl().toString())) 577 act.setData(hit.imageUrl().toString())
580 578
581 if not menu.isEmpty(): 579 if not menu.isEmpty():
582 menu.addSeparator() 580 menu.addSeparator()
583 menu.addAction(self.mw.newTabAct) 581 menu.addAction(self.mw.newTabAct)
584 menu.addAction(self.mw.newAct) 582 menu.addAction(self.mw.newAct)
604 engineNames = HelpWebSearchWidget.openSearchManager().allEnginesNames() 602 engineNames = HelpWebSearchWidget.openSearchManager().allEnginesNames()
605 for engineName in engineNames: 603 for engineName in engineNames:
606 engine = HelpWebSearchWidget.openSearchManager().engine(engineName) 604 engine = HelpWebSearchWidget.openSearchManager().engine(engineName)
607 act = OpenSearchEngineAction(engine, self.__searchMenu) 605 act = OpenSearchEngineAction(engine, self.__searchMenu)
608 self.__searchMenu.addAction(act) 606 self.__searchMenu.addAction(act)
609 act.setData(QVariant(engineName)) 607 act.setData(engineName)
610 self.connect(self.__searchMenu, SIGNAL("triggered(QAction *)"), 608 self.connect(self.__searchMenu, SIGNAL("triggered(QAction *)"),
611 self.__searchRequested) 609 self.__searchRequested)
612 610
613 menu.addSeparator() 611 menu.addSeparator()
614 menu.addAction(self.trUtf8("Web Inspector..."), self.__webInspector) 612 menu.addAction(self.trUtf8("Web Inspector..."), self.__webInspector)
618 def __openLinkInNewTab(self): 616 def __openLinkInNewTab(self):
619 """ 617 """
620 Private method called by the context menu to open a link in a new window. 618 Private method called by the context menu to open a link in a new window.
621 """ 619 """
622 act = self.sender() 620 act = self.sender()
623 url = act.data().toUrl() 621 url = act.data()
624 if url.isEmpty(): 622 if url.isEmpty():
625 return 623 return
626 624
627 oldCtrlPressed = self.ctrlPressed 625 oldCtrlPressed = self.ctrlPressed
628 self.ctrlPressed = True 626 self.ctrlPressed = True
632 def __bookmarkLink(self): 630 def __bookmarkLink(self):
633 """ 631 """
634 Private slot to bookmark a link via the context menu. 632 Private slot to bookmark a link via the context menu.
635 """ 633 """
636 act = self.sender() 634 act = self.sender()
637 url = act.data().toUrl() 635 url = act.data()
638 if url.isEmpty(): 636 if url.isEmpty():
639 return 637 return
640 638
641 dlg = AddBookmarkDialog() 639 dlg = AddBookmarkDialog()
642 dlg.setUrl(unicode(url.toEncoded())) 640 dlg.setUrl(unicode(url.toEncoded()))
669 def __copyImageLocation(self): 667 def __copyImageLocation(self):
670 """ 668 """
671 Private slot to copy an image location to the clipboard. 669 Private slot to copy an image location to the clipboard.
672 """ 670 """
673 act = self.sender() 671 act = self.sender()
674 url = act.data().toString() 672 url = act.data()
675 QApplication.clipboard().setText(url) 673 QApplication.clipboard().setText(url)
676 674
677 def __blockImage(self): 675 def __blockImage(self):
678 """ 676 """
679 Private slot to add a block rule for an image URL. 677 Private slot to add a block rule for an image URL.
680 """ 678 """
681 act = self.sender() 679 act = self.sender()
682 url = act.data().toString() 680 url = act.data()
683 dlg = Helpviewer.HelpWindow.HelpWindow.adblockManager().showDialog() 681 dlg = Helpviewer.HelpWindow.HelpWindow.adblockManager().showDialog()
684 dlg.addCustomRule(url) 682 dlg.addCustomRule(url)
685 683
686 def __searchRequested(self, act): 684 def __searchRequested(self, act):
687 """ 685 """
692 searchText = self.selectedText() 690 searchText = self.selectedText()
693 691
694 if not searchText: 692 if not searchText:
695 return 693 return
696 694
697 engineName = act.data().toString() 695 engineName = act.data()
698 if engineName: 696 if engineName:
699 engine = HelpWebSearchWidget.openSearchManager().engine(engineName) 697 engine = HelpWebSearchWidget.openSearchManager().engine(engineName)
700 self.emit(SIGNAL("search(const QUrl &)"), engine.searchUrl(searchText)) 698 self.emit(SIGNAL("search(const QUrl &)"), engine.searchUrl(searchText))
701 699
702 def __webInspector(self): 700 def __webInspector(self):
850 848
851 if reply.error() == QNetworkReply.NoError: 849 if reply.error() == QNetworkReply.NoError:
852 if reply.url().isEmpty(): 850 if reply.url().isEmpty():
853 return 851 return
854 header = reply.header(QNetworkRequest.ContentLengthHeader) 852 header = reply.header(QNetworkRequest.ContentLengthHeader)
855 size, ok = header.toInt() 853 size = header
856 if ok and size == 0: 854 if ok and size == 0:
857 return 855 return
858 856
859 if requestFilename is None: 857 if requestFilename is None:
860 requestFilename = Preferences.getUI("RequestDownloadFilename") 858 requestFilename = Preferences.getUI("RequestDownloadFilename")

eric ide

mercurial