diff --git a/src/libtomahawk/thirdparty/Qocoa/qsearchfield.cpp b/src/libtomahawk/thirdparty/Qocoa/qsearchfield.cpp index ee267ad81..09e865e6a 100644 --- a/src/libtomahawk/thirdparty/Qocoa/qsearchfield.cpp +++ b/src/libtomahawk/thirdparty/Qocoa/qsearchfield.cpp @@ -29,10 +29,13 @@ THE SOFTWARE. #include "widgets/searchlineedit/SearchLineEdit.h" #include "utils/TomahawkUtilsGui.h" -class DLLEXPORT QSearchFieldPrivate +class DLLEXPORT QSearchFieldPrivate : public QObject { + Q_OBJECT public: - QSearchFieldPrivate(SearchLineEdit *lineEdit) : lineEdit(lineEdit) {} + QSearchFieldPrivate(SearchLineEdit *lineEdit) : QObject( lineEdit ), lineEdit(lineEdit) {} + virtual ~QSearchFieldPrivate() {} + SearchLineEdit *lineEdit; }; @@ -44,7 +47,7 @@ QSearchField::QSearchField(QWidget *parent) : QWidget(parent) connect(lineEdit, SIGNAL(returnPressed()), this, SIGNAL(returnPressed())); - pimpl = new QSearchFieldPrivate(lineEdit); + pimpl = QPointer< QSearchFieldPrivate>( new QSearchFieldPrivate( lineEdit ) ); QVBoxLayout *layout = new QVBoxLayout(this); layout->addWidget(lineEdit); @@ -65,20 +68,75 @@ QSearchField::QSearchField(QWidget *parent) : QWidget(parent) void QSearchField::setText(const QString &text) { - pimpl->lineEdit->setText(text); + Q_ASSERT( !pimpl.isNull() ); + if ( pimpl.isNull() ) + return; + + pimpl.data()->lineEdit->setText(text); } void QSearchField::setPlaceholderText(const QString& text) { - pimpl->lineEdit->setInactiveText( text ); + Q_ASSERT( !pimpl.isNull() ); + if ( pimpl.isNull() ) + return; + + pimpl.data()->lineEdit->setInactiveText( text ); } void QSearchField::clear() { - pimpl->lineEdit->clear(); + Q_ASSERT( !pimpl.isNull() ); + if ( pimpl.isNull() ) + return; + + pimpl.data()->lineEdit->clear(); } QString QSearchField::text() const { - return pimpl->lineEdit->text(); + Q_ASSERT( !pimpl.isNull() ); + if ( pimpl.isNull() ) + return QString(); + + return pimpl.data()->lineEdit->text(); } + +QString QSearchField::placeholderText() const +{ + Q_ASSERT( !pimpl.isNull() ); + if ( pimpl.isNull() ) + return QString(); + + return pimpl.data()->lineEdit->placeholderText(); +} + +void QSearchField::selectAll() +{ + Q_ASSERT( !pimpl.isNull() ); + if ( pimpl.isNull() ) + return; + + pimpl.data()->lineEdit->selectAll(); +} + +void QSearchField::setFocus() +{ + Q_ASSERT( !pimpl.isNull() ); + if ( pimpl.isNull() ) + return; + + pimpl.data()->lineEdit->setFocus(); +} + +void QSearchField::setFocus(Qt::FocusReason reason) +{ + Q_ASSERT( !pimpl.isNull() ); + if ( pimpl.isNull() ) + return; + + pimpl.data()->lineEdit->setFocus(reason); +} + + +#include "qsearchfield.moc" diff --git a/src/libtomahawk/thirdparty/Qocoa/qsearchfield.h b/src/libtomahawk/thirdparty/Qocoa/qsearchfield.h index 0b429972f..96d03805f 100644 --- a/src/libtomahawk/thirdparty/Qocoa/qsearchfield.h +++ b/src/libtomahawk/thirdparty/Qocoa/qsearchfield.h @@ -32,9 +32,6 @@ signals: void editingFinished(); void returnPressed(); -protected: - void resizeEvent(QResizeEvent*); - private: friend class QSearchFieldPrivate; QPointer pimpl;