-QSize QVLCFramelessButton::sizeHint() const
-{
- return iconSize();
-}
-
-SearchLineEdit::SearchLineEdit( QWidget *parent ) : QLineEdit( parent )
-{
- clearButton = new QVLCFramelessButton( this );
- clearButton->setIcon( QIcon( ":/toolbar/clear" ) );
- clearButton->setIconSize( QSize( 16, 16 ) );
- clearButton->setCursor( Qt::ArrowCursor );
- clearButton->setToolTip( qfu(vlc_pgettext("Tooltip|Clear", "Clear")) );
- clearButton->hide();
-
- CONNECT( clearButton, clicked(), this, clear() );
-
- int frameWidth = style()->pixelMetric( QStyle::PM_DefaultFrameWidth, 0, this );
-
- QFontMetrics metrics( font() );
- QString styleSheet = QString( "min-height: %1px; "
- "padding-top: 1px; "
- "padding-bottom: 1px; "
- "padding-right: %2px;" )
- .arg( metrics.height() + ( 2 * frameWidth ) )
- .arg( clearButton->sizeHint().width() + 1 );
- setStyleSheet( styleSheet );
-
- setMessageVisible( true );
-
- CONNECT( this, textEdited( const QString& ),
- this, updateText( const QString& ) );
-}
-
-void SearchLineEdit::clear()
-{
- setText( QString() );
- clearButton->hide();
- setMessageVisible( true );
-}
-
-void SearchLineEdit::setMessageVisible( bool on )
-{
- message = on;
- repaint();
- return;
-}
-
-void SearchLineEdit::updateText( const QString& text )
-{
- clearButton->setVisible( !text.isEmpty() );
-}
-
-void SearchLineEdit::resizeEvent ( QResizeEvent * event )
-{
- QLineEdit::resizeEvent( event );
- int frameWidth = style()->pixelMetric(QStyle::PM_DefaultFrameWidth,0,this);
- clearButton->resize( clearButton->sizeHint().width(), height() );
- clearButton->move( width() - clearButton->width() - frameWidth, 0 );
-}
-
-void SearchLineEdit::focusInEvent( QFocusEvent *event )
-{
- if( message )
- {
- setMessageVisible( false );
- }
- QLineEdit::focusInEvent( event );
-}
-
-void SearchLineEdit::focusOutEvent( QFocusEvent *event )
-{
- if( text().isEmpty() )
- {
- setMessageVisible( true );
- }
- QLineEdit::focusOutEvent( event );
-}
-
-void SearchLineEdit::paintEvent( QPaintEvent *event )
-{
- QLineEdit::paintEvent( event );
- if( !message ) return;
- QStyleOption option;
- option.initFrom( this );
- QRect rect = style()->subElementRect( QStyle::SE_LineEditContents, &option, this )
- .adjusted( 3, 0, clearButton->width() + 1, 0 );
- QPainter painter( this );
- painter.setPen( palette().color( QPalette::Disabled, QPalette::Text ) );
- painter.drawText( rect, Qt::AlignLeft | Qt::AlignVCenter, qtr( I_PL_FILTER ) );
-}
-
-
-QVLCElidingLabel::QVLCElidingLabel( const QString &s, Qt::TextElideMode mode, QWidget * parent )
- : elideMode( mode ), QLabel( s, parent )