class PLModel;
class QPushButton;
class QKeyEvent;
-class ClickLineEdit;
class PLPanel: public QWidget
{
private:
QTreeView *view;
QPushButton *repeatButton, *randomButton, *addButton, *gotoPlayingButton;
- ClickLineEdit *searchLine;
int currentRootId;
QSignalMapper *ContextUpdateMapper;
public slots:
void gotoPlayingItem();
void doPopup( QModelIndex index, QPoint point );
void search( QString search );
- void clearFilter();
void setCurrentRootId( int );
void popupAdd();
void popupSelectColumn( QPoint );
#include "qt4.hpp"
#include "dialogs_provider.hpp"
+
#include "components/playlist/playlist_model.hpp"
#include "components/playlist/panels.hpp"
#include "util/customwidgets.hpp"
#include <QSpacerItem>
#include <QMenu>
#include <QSignalMapper>
-
#include <assert.h>
#include "sorting.h"
QLabel *filter = new QLabel( qtr(I_PL_SEARCH) + " " );
buttons->addWidget( filter );
- searchLine = new ClickLineEdit( qtr(I_PL_FILTER), 0 );
- searchLine->setMinimumWidth( 80 );
- CONNECT( searchLine, textChanged(QString), this, search(QString));
- buttons->addWidget( searchLine ); filter->setBuddy( searchLine );
-
- QPushButton *clear = new QPushButton;
- clear->setMaximumWidth( 30 );
- BUTTON_SET_ACT_I( clear, "", clear, qtr( "Clear" ), clearFilter() );
- buttons->addWidget( clear );
+ SearchLineEdit *search = new SearchLineEdit( this );
+ buttons->addWidget( search );
+ filter->setBuddy( search );
+ CONNECT( search, textChanged( QString ), this, search( QString ) );
/* Finish the layout */
layout->addWidget( view );
selectColMenu.exec( QCursor::pos() );
}
-/* ClearFilter LineEdit */
-void StandardPLPanel::clearFilter()
-{
- searchLine->setText( "" );
-}
-
/* Search in the playlist */
void StandardPLPanel::search( QString searchText )
{
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
+
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include "customwidgets.hpp"
+#include "qt4.hpp" /*needed for qtr and CONNECT, but not necessary */
+
#include <QPainter>
#include <QLineEdit>
#include <QColorGroup>
#include <QRect>
#include <QKeyEvent>
#include <QWheelEvent>
+#include <QToolButton>
+#include <QHBoxLayout>
+#include <vlc_intf_strings.h>
+
#include <vlc_keys.h>
QLineEdit::focusOutEvent( ev );
}
+SearchLineEdit::SearchLineEdit( QWidget *parent ) : QFrame( parent )
+{
+ setFrameStyle( QFrame::StyledPanel | QFrame::Sunken );
+ setLineWidth( 1 );
+
+ QHBoxLayout *frameLayout = new QHBoxLayout( this );
+ frameLayout->setMargin( 0 );
+ frameLayout->setSpacing( 0 );
+
+ QPalette palette;
+ QBrush brush( QColor(255, 255, 255, 255) );
+ brush.setStyle(Qt::SolidPattern);
+ palette.setBrush(QPalette::Active, QPalette::Window, brush); //Qt::white
+
+ setPalette(palette);
+ setAutoFillBackground(true);
+
+ searchLine = new ClickLineEdit( qtr(I_PL_FILTER), 0 );
+ searchLine->setFrame( false );
+ searchLine->setMinimumWidth( 80 );
+
+ CONNECT( searchLine, textChanged( const QString ),
+ this, updateText( const QString ) );
+ frameLayout->addWidget( searchLine );
+
+ clearButton = new QToolButton;
+ clearButton->setAutoRaise( true );
+ clearButton->setMaximumWidth( 30 );
+ clearButton->setIcon( QIcon( ":/clear" ) );
+ clearButton->setToolTip( qtr( "Clear" ) );
+ clearButton->hide();
+
+ CONNECT( clearButton, clicked(), searchLine, clear() );
+ frameLayout->addWidget( clearButton );
+}
+
+void SearchLineEdit::updateText( const QString text )
+{
+ clearButton->setVisible( !text.isEmpty() );
+ emit textChanged( text );
+}
+
/***************************************************************************
* Hotkeys converters
***************************************************************************/