summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTapani Mikola <tapani.mikola@nokia.com>2009-08-13 19:20:13 (GMT)
committerWarwick Allison <warwick.allison@nokia.com>2009-08-14 00:12:56 (GMT)
commitc0ea7090a6db60c315dae3534fcaf05d1b2591e1 (patch)
treed30306ab4b944a0cb23af183e0482332d699a13f
parentafee70b2bd6b4eeaa85c24f148e51dcd985b6876 (diff)
downloadQt-c0ea7090a6db60c315dae3534fcaf05d1b2591e1.zip
Qt-c0ea7090a6db60c315dae3534fcaf05d1b2591e1.tar.gz
Qt-c0ea7090a6db60c315dae3534fcaf05d1b2591e1.tar.bz2
Fix to QFxWebView to show cursor in focused text input. Correction textedit and lineedit so that they emit focuschanged signals. Clean ups to webbrowser.qml.
-rw-r--r--demos/declarative/webbrowser/fieldtext/FieldText.qml28
-rw-r--r--demos/declarative/webbrowser/webbrowser.qml1
-rw-r--r--src/declarative/fx/qfxlineedit.cpp1
-rw-r--r--src/declarative/fx/qfxtextedit.cpp1
-rw-r--r--src/declarative/fx/qfxwebview.cpp17
-rw-r--r--src/declarative/fx/qfxwebview.h1
6 files changed, 26 insertions, 23 deletions
diff --git a/demos/declarative/webbrowser/fieldtext/FieldText.qml b/demos/declarative/webbrowser/fieldtext/FieldText.qml
index d822d65..3a9abdf 100644
--- a/demos/declarative/webbrowser/fieldtext/FieldText.qml
+++ b/demos/declarative/webbrowser/fieldtext/FieldText.qml
@@ -17,7 +17,6 @@ Item {
if (!mouseGrabbed) {
fieldText.startEdit();
fieldText.state='editing';
- textEdit.selectAll();
mouseGrabbed=true;
}
}
@@ -61,7 +60,7 @@ Item {
opacity: 0
}
- TextEdit {
+ LineEdit {
id: textEdit
text: fieldText.text
focus: false
@@ -73,7 +72,9 @@ Item {
color: "black"
font.bold: true
readOnly: true
- wrap: false
+ Keys.onEnterPressed: confirm()
+ Keys.onReturnPressed: confirm()
+ Keys.onEscapePressed: reset()
}
Text {
@@ -95,20 +96,6 @@ Item {
}
}
- KeyProxy {
- id: proxy
- focus: false
- anchors.fill: parent
- targets: [keyActions,textEdit]
- }
-
- Item {
- id: keyActions
- Keys.onEnterPressed: confirm()
- Keys.onReturnPressed: confirm()
- Keys.onEscapePressed: reset()
- }
-
MouseRegion {
anchors.fill: cancelIcon
onClicked: { reset() }
@@ -140,6 +127,9 @@ Item {
target: textEdit
color: "black"
readOnly: false
+ focus: true
+ selectionStart: 0
+ selectionEnd: -1
}
SetProperties {
target: editRegion
@@ -153,10 +143,6 @@ Item {
target: textEdit.anchors
rightMargin: 34
}
- SetProperties {
- target: proxy
- focus: true
- }
}
]
diff --git a/demos/declarative/webbrowser/webbrowser.qml b/demos/declarative/webbrowser/webbrowser.qml
index efa8532..73fedae 100644
--- a/demos/declarative/webbrowser/webbrowser.qml
+++ b/demos/declarative/webbrowser/webbrowser.qml
@@ -80,7 +80,6 @@ Item {
id: HeaderText
text: MyWebView.title!='' || MyWebView.progress == 1.0 ? MyWebView.title : 'Loading...'
- //text: MyWebView.url
elide: "ElideRight"
color: "white"
diff --git a/src/declarative/fx/qfxlineedit.cpp b/src/declarative/fx/qfxlineedit.cpp
index e1d9f14..ccb0637 100644
--- a/src/declarative/fx/qfxlineedit.cpp
+++ b/src/declarative/fx/qfxlineedit.cpp
@@ -467,6 +467,7 @@ void QFxLineEdit::focusChanged(bool hasFocus)
Q_D(QFxLineEdit);
d->focused = hasFocus;
setCursorVisible(hasFocus);
+ emit QFxItem::focusChanged();
}
void QFxLineEdit::keyPressEvent(QKeyEvent* ev)
diff --git a/src/declarative/fx/qfxtextedit.cpp b/src/declarative/fx/qfxtextedit.cpp
index 3013ac2..379e12f 100644
--- a/src/declarative/fx/qfxtextedit.cpp
+++ b/src/declarative/fx/qfxtextedit.cpp
@@ -885,6 +885,7 @@ void QFxTextEdit::keyReleaseEvent(QKeyEvent *event)
void QFxTextEdit::focusChanged(bool hasFocus)
{
setCursorVisible(hasFocus);
+ emit QFxItem::focusChanged();
}
/*!
diff --git a/src/declarative/fx/qfxwebview.cpp b/src/declarative/fx/qfxwebview.cpp
index 797e6cb..6645a0f 100644
--- a/src/declarative/fx/qfxwebview.cpp
+++ b/src/declarative/fx/qfxwebview.cpp
@@ -440,6 +440,20 @@ QVariant QFxWebView::evaluateJavaScript(const QString &scriptSource)
return this->page()->mainFrame()->evaluateJavaScript(scriptSource);
}
+void QFxWebView::focusChanged(bool flag)
+{
+ QFocusEvent *e;
+ if (flag) {
+ e = new QFocusEvent (QEvent::FocusIn);
+ }
+ else {
+ e = new QFocusEvent (QEvent::FocusOut);
+ }
+ page()->event(e);
+ delete e;
+ emit QFxItem::focusChanged();
+}
+
void QFxWebView::expandToWebPage()
{
Q_D(QFxWebView);
@@ -702,6 +716,7 @@ void QFxWebView::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
Q_D(QFxWebView);
if (d->interactive) {
+ setFocus (true);
QMouseEvent *me = sceneMouseEventToMouseEvent(event);
if (d->lastPress) delete d->lastPress;
d->lastPress = me;
@@ -709,7 +724,7 @@ void QFxWebView::mousePressEvent(QGraphicsSceneMouseEvent *event)
event->setAccepted(
/*
It is not correct to send the press event upwards, if it is not accepted by WebKit
- e.g. push button does not work, if done so as QGraohucsScene will not send the release event at all to WebKit
+ e.g. push button does not work, if done so as QGraphicsScene will not send the release event at all to WebKit
Might be a bug in WebKit, though
*/
#if 1 //QT_VERSION <= 0x040500 // XXX see bug 230835
diff --git a/src/declarative/fx/qfxwebview.h b/src/declarative/fx/qfxwebview.h
index 9003377..498cf2e 100644
--- a/src/declarative/fx/qfxwebview.h
+++ b/src/declarative/fx/qfxwebview.h
@@ -211,6 +211,7 @@ protected:
void timerEvent(QTimerEvent *event);
virtual void geometryChanged(const QRectF &newGeometry,
const QRectF &oldGeometry);
+ virtual void focusChanged(bool);
private:
void init();