Clean up ChunkedUpdateDrawingAreaProxy
[WebKit-https.git] / WebKitTools / QtTestBrowser / locationedit.cpp
1 /*
2  * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
3  *
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  * 1. Redistributions of source code must retain the above copyright
10  *    notice, this list of conditions and the following disclaimer.
11  * 2. Redistributions in binary form must reproduce the above copyright
12  *    notice, this list of conditions and the following disclaimer in the
13  *    documentation and/or other materials provided with the distribution.
14  *
15  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
16  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
19  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
20  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
21  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
22  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
23  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  */
27
28 #include "locationedit.h"
29
30 LocationEdit::LocationEdit(QWidget* parent)
31     : QLineEdit(parent)
32     , m_progress(0)
33 {
34     m_clearTimer.setSingleShot(true);
35     connect(&m_clearTimer, SIGNAL(timeout()), this, SLOT(reset()));
36 }
37
38 void LocationEdit::setProgress(int progress)
39 {
40     m_clearTimer.stop();
41     m_progress = progress;
42     update();
43 }
44
45 void LocationEdit::reset()
46 {
47     setProgress(0);
48 }
49
50 void LocationEdit::paintEvent(QPaintEvent* ev)
51 {
52     QColor backgroundColor = QApplication::palette().color(QPalette::Base);
53     QColor progressColor = QColor(120, 180, 240);
54     QPalette p = palette();
55
56     if (!m_progress)
57         p.setBrush(QPalette::Base, backgroundColor);
58     else {
59         QLinearGradient gradient(0, 0, width(), 0);
60         gradient.setColorAt(0, progressColor);
61         gradient.setColorAt(((double) m_progress) / 100, progressColor);
62         if (m_progress != 100)
63             gradient.setColorAt((double) m_progress / 100 + 0.001, backgroundColor);
64         p.setBrush(QPalette::Base, gradient);
65     }
66     setPalette(p);
67
68     QLineEdit::paintEvent(ev);
69
70     if (m_progress == 100)
71         m_clearTimer.start(100);
72 }
73
74 void LocationEdit::focusInEvent(QFocusEvent* ev)
75 {
76     QLineEdit::focusInEvent(ev);
77 #ifdef Q_WS_MAEMO_5
78     QTimer::singleShot(0, this, SLOT(selectAll()));
79 #endif
80 }