summaryrefslogtreecommitdiff
path: root/src/lineedit.cpp
blob: fd43346d44a5e4019d8cf9f819ceea8ddf2189fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/* ============================================================
*
* This file is a part of the rekonq project
*
* Copyright (C) 2009 by Paweł Prażak <pawelprazak at gmail dot com>
*
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software Foundation;
* either version 3, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* ============================================================ */

// Self Includes
#include "lineedit.h"
#include "lineedit.moc"

// KDE Includes
#include <KDebug>

// Qt Includes
#include <QtGui/QContextMenuEvent>
#include <QtGui/QFocusEvent>
#include <QtGui/QKeyEvent>


LineEdit::LineEdit(QWidget* parent)
        : KLineEdit(parent)
{
    setMinimumWidth(200);
    setFocusPolicy(Qt::WheelFocus);
    setHandleSignals(true);
}


LineEdit::~LineEdit()
{
}


void LineEdit::keyPressEvent(QKeyEvent *event)
{
    if (event->key() == Qt::Key_Escape)
    {
        clearFocus();
        event->accept();
    }

    KLineEdit::keyPressEvent(event);
}


void LineEdit::contextMenuEvent(QContextMenuEvent *event)
{
    KLineEdit::contextMenuEvent(event);
}


void LineEdit::focusInEvent(QFocusEvent *event)
{
    selectAll();

    KLineEdit::focusInEvent(event);
}


void LineEdit::focusOutEvent(QFocusEvent *event)
{
    KLineEdit::focusOutEvent(event);

    // reset cursor state and deselect
    setCursorPosition(0);
    deselect();
}


void LineEdit::mouseDoubleClickEvent(QMouseEvent *)
{
    selectAll();
}