From 60f2e85965668cf20dae2aece168e58e14967b54 Mon Sep 17 00:00:00 2001 From: Leo Franchi Date: Fri, 20 Jul 2012 17:52:18 -0400 Subject: [PATCH] Implement non-osx side of new search field For Compile Win --- .../thirdparty/Qocoa/qsearchfield.cpp | 72 +++++++++++++++++-- .../thirdparty/Qocoa/qsearchfield.h | 3 - 2 files changed, 65 insertions(+), 10 deletions(-) diff --git a/src/libtomahawk/thirdparty/Qocoa/qsearchfield.cpp b/src/libtomahawk/thirdparty/Qocoa/qsearchfield.cpp index ce29cf11a..d87a1c447 100644 --- a/src/libtomahawk/thirdparty/Qocoa/qsearchfield.cpp +++ b/src/libtomahawk/thirdparty/Qocoa/qsearchfield.cpp @@ -29,10 +29,13 @@ THE SOFTWARE. #include "playlist/topbar/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;