1 /*****************************************************************************
2 * panels.hpp : Panels for the playlist
3 ****************************************************************************
4 * Copyright (C) 2000-2005 the VideoLAN team
7 * Authors: Clément Stenac <zorglub@videolan.org>
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
22 *****************************************************************************/
32 #include "components/playlist/playlist.hpp"
34 #include <QModelIndex>
39 #include <vlc_playlist.h>
51 class StandardPLPanel
: public QWidget
56 StandardPLPanel( PlaylistWidget
*, intf_thread_t
*,
57 playlist_t
*,playlist_item_t
* );
58 virtual ~StandardPLPanel();
60 friend class PlaylistWidget
;
62 virtual void keyPressEvent( QKeyEvent
*e
);
63 virtual void wheelEvent( QWheelEvent
*e
);
67 intf_thread_t
*p_intf
;
71 QToolButton
*addButton
;
73 LocationBar
*locationBar
;
77 QAbstractItemView
*currentView
;
79 QAction
*iconViewAction
, *treeViewAction
;
81 QSignalMapper
*selectColumnsSigMapper
;
82 QSignalMapper
*viewSelectionMapper
;
84 int last_activated_id
;
92 void createTreeView();
93 void createIconView();
96 virtual void setRoot( playlist_item_t
* );
98 void deleteSelection();
99 void handleExpansion( const QModelIndex
& );
100 void handleRootChange();
101 void gotoPlayingItem();
102 void search( const QString
& searchText
);
104 void popupSelectColumn( QPoint
);
105 void popupPlView( const QPoint
& );
106 void toggleColumnShown( int );
107 void showView( int );
109 void activate( const QModelIndex
& );
110 void browseInto( input_item_t
* );
113 class LocationBar
: public QWidget
117 LocationBar( PLModel
* );
118 void setIndex( const QModelIndex
& );
120 void invoked( const QModelIndex
& );
124 void invoke( int i_item_id
);
127 QSignalMapper
*mapper
;
129 QList
<QWidget
*> buttons
;
132 class LocationButton
: public QPushButton
135 LocationButton( const QString
&, bool bold
, bool arrow
);
137 void paintEvent ( QPaintEvent
* event
);
138 QSize
sizeHint() const;
139 QFontMetrics
*metrics
;