X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fclearablelineedit.cpp;h=4a495e84e6dff21e2e06f2f67ba091b81125107f;hp=ae99be6f444868c5767b1a28518c82be690c891a;hb=c64a887d0f05222590299fb2bb8d56fa9fadb16d;hpb=858c7dbcbfa84deda9a71b4f4d25b1555bae3cc1 diff --git a/src/uisupport/clearablelineedit.cpp b/src/uisupport/clearablelineedit.cpp index ae99be6f..4a495e84 100644 --- a/src/uisupport/clearablelineedit.cpp +++ b/src/uisupport/clearablelineedit.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005/06 by the Quassel Project * + * Copyright (C) 2005-2012 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ #include "clearablelineedit.h" @@ -23,32 +23,40 @@ #include #include +#include "iconloader.h" + ClearableLineEdit::ClearableLineEdit(QWidget *parent) - : QLineEdit(parent) + : QLineEdit(parent) { - clearButton = new QToolButton(this); - clearButton->setIcon(QIcon(":/22x22/actions/oxygen/22x22/actions/edit-clear-locationbar-rtl.png")); - clearButton->setCursor(Qt::ArrowCursor); - clearButton->setStyleSheet("QToolButton { border: none; padding: 0px; }"); - clearButton->hide(); - - connect(clearButton, SIGNAL(clicked()), this, SLOT(clear())); - connect(this, SIGNAL(textChanged(const QString&)), this, SLOT(updateClearButton(const QString&))); - - int frameWidth = style()->pixelMetric(QStyle::PM_DefaultFrameWidth); - setStyleSheet(QString("QLineEdit { padding-right: %1px; } ").arg(clearButton->sizeHint().width() + frameWidth + 1)); - QSize msz = minimumSizeHint(); - setMinimumSize(qMax(msz.width(), clearButton->sizeHint().height() + frameWidth * 2 + 2), - qMax(msz.height(), clearButton->sizeHint().height() + frameWidth * 2 + 2)); + clearButton = new QToolButton(this); + clearButton->setIcon(SmallIcon("edit-clear-locationbar-rtl")); +#ifndef Q_WS_QWS + clearButton->setCursor(Qt::ArrowCursor); +#endif + clearButton->setStyleSheet("QToolButton { border: none; padding: 0px; }"); + clearButton->hide(); + + connect(clearButton, SIGNAL(clicked()), this, SLOT(clear())); + connect(this, SIGNAL(textChanged(const QString &)), this, SLOT(updateClearButton(const QString &))); + + int frameWidth = style()->pixelMetric(QStyle::PM_DefaultFrameWidth); + setStyleSheet(QString("QLineEdit { padding-right: %1px; } ").arg(clearButton->sizeHint().width() + frameWidth + 1)); + QSize msz = minimumSizeHint(); + setMinimumSize(qMax(msz.width(), clearButton->sizeHint().height() + frameWidth * 2 + 2), + qMax(msz.height(), clearButton->sizeHint().height() + frameWidth * 2 + 2)); } -void ClearableLineEdit::resizeEvent(QResizeEvent *) { - QSize size = clearButton->sizeHint(); - int frameWidth = style()->pixelMetric(QStyle::PM_DefaultFrameWidth); - clearButton->move(rect().right() - frameWidth - size.width(), - (rect().bottom() + 1 - size.height())/2); + +void ClearableLineEdit::resizeEvent(QResizeEvent *) +{ + QSize size = clearButton->sizeHint(); + int frameWidth = style()->pixelMetric(QStyle::PM_DefaultFrameWidth); + clearButton->move(rect().right() - frameWidth - size.width(), + (rect().bottom() + 1 - size.height())/2); } -void ClearableLineEdit::updateClearButton(const QString& text) { - clearButton->setVisible(!text.isEmpty()); + +void ClearableLineEdit::updateClearButton(const QString &text) +{ + clearButton->setVisible(!text.isEmpty()); }