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) |
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 """ |