X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fuisupport%2Fclearablelineedit.cpp;h=88766fb7fb6d07aebd75246b28c8d93a89b33b9d;hb=db00831bca59a012242d1ad5fac52a20c6cd2956;hp=ae99be6f444868c5767b1a28518c82be690c891a;hpb=858c7dbcbfa84deda9a71b4f4d25b1555bae3cc1;p=quassel.git diff --git a/src/uisupport/clearablelineedit.cpp b/src/uisupport/clearablelineedit.cpp index ae99be6f..88766fb7 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-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -15,40 +15,43 @@ * 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" -#include #include +#include -ClearableLineEdit::ClearableLineEdit(QWidget *parent) - : QLineEdit(parent) +#include "icon.h" + +ClearableLineEdit::ClearableLineEdit(QWidget* 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(icon::get("edit-clear-locationbar-rtl")); + clearButton->setCursor(Qt::ArrowCursor); + clearButton->setStyleSheet("QToolButton { border: none; padding: 0px; }"); + clearButton->hide(); + + connect(clearButton, &QAbstractButton::clicked, this, &QLineEdit::clear); + connect(this, &QLineEdit::textChanged, this, &ClearableLineEdit::updateClearButton); + + 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()); }