/* ============================================================ * * This file is a part of the reKonq project * * Copyright (C) 2007-2008 Trolltech ASA. All rights reserved * Copyright (C) 2008 by Andrea Diamantini <adjam7 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 2, 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. * * ============================================================ */ #ifndef SEARCHLINEEDIT_H #define SEARCHLINEEDIT_H // Local Includes #include "urllineedit.h" // Qt Includes #include <QLineEdit> #include <QAbstractButton> QT_BEGIN_NAMESPACE class QMenu; QT_END_NAMESPACE class SearchButton; /* Clear button on the right hand side of the search widget. Hidden by default "A circle with an X in it" */ class ClearButton : public QAbstractButton { Q_OBJECT public: ClearButton(QWidget *parent = 0); void paintEvent(QPaintEvent *event); public slots: void textChanged(const QString &text); }; class SearchLineEdit : public ExLineEdit { Q_OBJECT Q_PROPERTY(QString inactiveText READ inactiveText WRITE setInactiveText) signals: void textChanged(const QString &text); public: SearchLineEdit(QWidget *parent = 0); QString inactiveText() const; void setInactiveText(const QString &text); QMenu *menu() const; void setMenu(QMenu *menu); protected: void resizeEvent(QResizeEvent *event); void paintEvent(QPaintEvent *event); private: void updateGeometries(); SearchButton *m_searchButton; QString m_inactiveText; }; #endif // SEARCHLINEEDIT_H