Helpviewer/HelpBrowserWV.py

changeset 3776
ccb6eacb50e5
parent 3747
2bc31e509810
child 3778
0c5bc18da740
equal deleted inserted replaced
3774:285e5aa860a0 3776:ccb6eacb50e5
13 str = unicode 13 str = unicode
14 except NameError: 14 except NameError:
15 pass 15 pass
16 16
17 from PyQt5.QtCore import pyqtSlot, pyqtSignal, QObject, QT_TRANSLATE_NOOP, \ 17 from PyQt5.QtCore import pyqtSlot, pyqtSignal, QObject, QT_TRANSLATE_NOOP, \
18 QUrl, QUrlQuery, QBuffer, QIODevice, QFileInfo, Qt, QTimer, QEvent, \ 18 QUrl, QBuffer, QIODevice, QFileInfo, Qt, QTimer, QEvent, \
19 QRect, QFile, QPoint, QByteArray, qVersion 19 QRect, QFile, QPoint, QByteArray, qVersion
20 from PyQt5.QtGui import QDesktopServices, QClipboard, QMouseEvent, QColor, \ 20 from PyQt5.QtGui import QDesktopServices, QClipboard, QMouseEvent, QColor, \
21 QPalette 21 QPalette
22 from PyQt5.QtWidgets import qApp, QStyle, QMenu, QApplication, QInputDialog, \ 22 from PyQt5.QtWidgets import qApp, QStyle, QMenu, QApplication, QInputDialog, \
23 QLineEdit, QLabel, QToolTip, QFrame, QDialog 23 QLineEdit, QLabel, QToolTip, QFrame, QDialog
1529 searchUrl = QUrl(self.page().mainFrame().baseUrl().resolved( 1529 searchUrl = QUrl(self.page().mainFrame().baseUrl().resolved(
1530 QUrl(formElement.attribute("action")))) 1530 QUrl(formElement.attribute("action"))))
1531 if searchUrl.scheme() != "http": 1531 if searchUrl.scheme() != "http":
1532 return 1532 return
1533 1533
1534 searchUrlQuery = QUrlQuery() 1534 if qVersion() >= "5.0.0":
1535 from PyQt5.QtCore import QUrlQuery
1536 searchUrlQuery = QUrlQuery()
1535 searchEngines = {} 1537 searchEngines = {}
1536 inputFields = formElement.findAll("input") 1538 inputFields = formElement.findAll("input")
1537 for inputField in inputFields.toList(): 1539 for inputField in inputFields.toList():
1538 type_ = inputField.attribute("type", "text") 1540 type_ = inputField.attribute("type", "text")
1539 name = inputField.attribute("name") 1541 name = inputField.attribute("name")
1542 if type_ == "submit": 1544 if type_ == "submit":
1543 searchEngines[value] = name 1545 searchEngines[value] = name
1544 elif type_ == "text": 1546 elif type_ == "text":
1545 if inputField == element: 1547 if inputField == element:
1546 value = "{searchTerms}" 1548 value = "{searchTerms}"
1547 searchUrlQuery.addQueryItem(name, value) 1549 if qVersion() >= "5.0.0":
1550 searchUrlQuery.addQueryItem(name, value)
1551 else:
1552 searchUrl.addQueryItem(name, value)
1548 elif type_ == "checkbox" or type_ == "radio": 1553 elif type_ == "checkbox" or type_ == "radio":
1549 if inputField.evaluateJavaScript("this.checked"): 1554 if inputField.evaluateJavaScript("this.checked"):
1555 if qVersion() >= "5.0.0":
1556 searchUrlQuery.addQueryItem(name, value)
1557 else:
1558 searchUrl.addQueryItem(name, value)
1559 elif type_ == "hidden":
1560 if qVersion() >= "5.0.0":
1550 searchUrlQuery.addQueryItem(name, value) 1561 searchUrlQuery.addQueryItem(name, value)
1551 elif type_ == "hidden": 1562 else:
1552 searchUrlQuery.addQueryItem(name, value) 1563 searchUrl.addQueryItem(name, value)
1553 1564
1554 selectFields = formElement.findAll("select") 1565 selectFields = formElement.findAll("select")
1555 for selectField in selectFields.toList(): 1566 for selectField in selectFields.toList():
1556 name = selectField.attribute("name") 1567 name = selectField.attribute("name")
1557 selectedIndex = selectField.evaluateJavaScript( 1568 selectedIndex = selectField.evaluateJavaScript(
1559 if selectedIndex == -1: 1570 if selectedIndex == -1:
1560 continue 1571 continue
1561 1572
1562 options = selectField.findAll("option") 1573 options = selectField.findAll("option")
1563 value = options.at(selectedIndex).toPlainText() 1574 value = options.at(selectedIndex).toPlainText()
1564 searchUrlQuery.addQueryItem(name, value) 1575 if qVersion() >= "5.0.0":
1576 searchUrlQuery.addQueryItem(name, value)
1577 else:
1578 searchUrl.addQueryItem(name, value)
1565 1579
1566 ok = True 1580 ok = True
1567 if len(searchEngines) > 1: 1581 if len(searchEngines) > 1:
1568 searchEngine, ok = QInputDialog.getItem( 1582 searchEngine, ok = QInputDialog.getItem(
1569 self, 1583 self,
1573 1587
1574 if not ok: 1588 if not ok:
1575 return 1589 return
1576 1590
1577 if searchEngines[searchEngine] != "": 1591 if searchEngines[searchEngine] != "":
1578 searchUrlQuery.addQueryItem( 1592 if qVersion() >= "5.0.0":
1579 searchEngines[searchEngine], searchEngine) 1593 searchUrlQuery.addQueryItem(
1580 1594 searchEngines[searchEngine], searchEngine)
1595 else:
1596 searchUrl.addQueryItem(
1597 searchEngines[searchEngine], searchEngine)
1581 engineName = "" 1598 engineName = ""
1582 labels = formElement.findAll('label[for="{0}"]'.format(elementName)) 1599 labels = formElement.findAll('label[for="{0}"]'.format(elementName))
1583 if labels.count() > 0: 1600 if labels.count() > 0:
1584 engineName = labels.at(0).toPlainText() 1601 engineName = labels.at(0).toPlainText()
1585 1602
1590 QLineEdit.Normal, 1607 QLineEdit.Normal,
1591 engineName) 1608 engineName)
1592 if not ok: 1609 if not ok:
1593 return 1610 return
1594 1611
1595 searchUrl.setQuery(searchUrlQuery) 1612 if qVersion() >= "5.0.0":
1613 searchUrl.setQuery(searchUrlQuery)
1596 1614
1597 from .OpenSearch.OpenSearchEngine import OpenSearchEngine 1615 from .OpenSearch.OpenSearchEngine import OpenSearchEngine
1598 engine = OpenSearchEngine() 1616 engine = OpenSearchEngine()
1599 engine.setName(engineName) 1617 engine.setName(engineName)
1600 engine.setDescription(engineName) 1618 engine.setDescription(engineName)

eric ide

mercurial