summaryrefslogtreecommitdiff
path: root/browser/browserview.h
diff options
context:
space:
mode:
authorJonatan Pålsson <jonatan.palsson@pelagicore.com>2014-03-04 10:41:29 +0100
committerJonatan Pålsson <jonatan.palsson@pelagicore.com>2014-03-04 13:32:37 +0100
commit5976bef77527cdb9fcf9f4830061266936ab092b (patch)
treea6707cefdbbc2093d53a13e2399bd20a0ad929e0 /browser/browserview.h
parente04a688f1beedf9ea0627f8b98dfd4528c925c97 (diff)
downloadbrowser-poc-5976bef77527cdb9fcf9f4830061266936ab092b.tar.gz
Improve detection of text input elements
Diffstat (limited to 'browser/browserview.h')
-rw-r--r--browser/browserview.h18
1 files changed, 13 insertions, 5 deletions
diff --git a/browser/browserview.h b/browser/browserview.h
index 17e0fde..edd3659 100644
--- a/browser/browserview.h
+++ b/browser/browserview.h
@@ -37,16 +37,23 @@ public:
class InputHandler : public QObject {
Q_OBJECT
+public:
+ InputHandler () : m_textElements (new QStringList()) {
+ *m_textElements << "date" << "datetime" << "datetime-local" << "email"
+ << "month" << "number" << "password" << "range" << "tel" << "text"
+ << "time" << "url" << "week";
+ }
public slots:
void setScrollPosition (const int &x, const int &y) {
emit onScroll ((uint)x,(uint)y);
}
void setCurrentFocus (const QWebElement &elem) {
- // Check whether this element was already selected
- if (elem == m_elem)
- return;
-
- if (elem.tagName().compare("INPUT", Qt::CaseInsensitive) == 0){
+ QString attrType = elem.attribute("type", "text");
+ if ((elem.tagName().compare("INPUT", Qt::CaseInsensitive) == 0 &&
+ m_textElements->contains(attrType))
+ ||
+ elem.tagName().compare("TEXTAREA", Qt::CaseInsensitive) == 0)
+ {
emit onInputText (elem.attribute("name"), elem.attribute("value"),
elem.attribute("type", "0").toInt(),
elem.attribute("maxlength", "0").toInt(),
@@ -85,6 +92,7 @@ signals:
private:
QWebElement m_elem;
+ QStringList *m_textElements;
};
class BrowserView : public QGraphicsView