summaryrefslogtreecommitdiff
path: root/noncore/multimedia/opieplayer2/playlistselection.cpp
authorharlekin <harlekin>2002-07-01 23:39:54 (UTC)
committer harlekin <harlekin>2002-07-01 23:39:54 (UTC)
commit7ae4965a4052808172e843356cdfb2d0a673bccf (patch) (unidiff)
treecb9567ea7740ea1b3e63de03f836581a0e5ad589 /noncore/multimedia/opieplayer2/playlistselection.cpp
parent329ea43b68180058bcd8e9d2af4d09d9c03c55a3 (diff)
downloadopie-7ae4965a4052808172e843356cdfb2d0a673bccf.zip
opie-7ae4965a4052808172e843356cdfb2d0a673bccf.tar.gz
opie-7ae4965a4052808172e843356cdfb2d0a673bccf.tar.bz2
gui
Diffstat (limited to 'noncore/multimedia/opieplayer2/playlistselection.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/playlistselection.cpp215
1 files changed, 215 insertions, 0 deletions
diff --git a/noncore/multimedia/opieplayer2/playlistselection.cpp b/noncore/multimedia/opieplayer2/playlistselection.cpp
new file mode 100644
index 0000000..85228a9
--- a/dev/null
+++ b/noncore/multimedia/opieplayer2/playlistselection.cpp
@@ -0,0 +1,215 @@
1/**********************************************************************
2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved.
3**
4** This file is part of the Qtopia Environment.
5**
6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file.
10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15**
16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you.
18**
19**********************************************************************/
20#include <qpe/applnk.h>
21#include <qpe/resource.h>
22#include <qpe/config.h>
23
24#include <qpainter.h>
25#include <qimage.h>
26#include <qheader.h>
27#include <qlistview.h>
28#include <qlist.h>
29#include <qpixmap.h>
30
31#include "playlistselection.h"
32
33#include <stdlib.h>
34
35class PlayListSelectionItem : public QListViewItem {
36public:
37 PlayListSelectionItem( QListView *parent, const DocLnk *f ) : QListViewItem( parent ), fl( f ) {
38 setText( 0, f->name() );
39 setPixmap( 0, f->pixmap() );
40 }
41
42 ~PlayListSelectionItem() {
43 };
44
45 const DocLnk *file() const { return fl; }
46
47private:
48 const DocLnk *fl;
49};
50
51
52PlayListSelection::PlayListSelection( QWidget *parent, const char *name )
53 : QListView( parent, name )
54{
55// qDebug("starting playlistselector");
56// #ifdef USE_PLAYLIST_BACKGROUND
57// setStaticBackground( TRUE );
58// setBackgroundPixmap( Resource::loadPixmap( "opieplayer/background" ) );
59
60// setBackgroundPixmap( Resource::loadPixmap( "launcher/opielogo" ) );
61// #endif
62// addColumn("Title",236);
63// setAllColumnsShowFocus( TRUE );
64 addColumn( tr( "Playlist Selection" ) );
65 header()->hide();
66 setSorting( -1, FALSE );
67}
68
69
70PlayListSelection::~PlayListSelection() {
71}
72
73
74// #ifdef USE_PLAYLIST_BACKGROUND
75void PlayListSelection::drawBackground( QPainter *p, const QRect &r ) {
76// qDebug("drawBackground");
77 p->fillRect( r, QBrush( white ) );
78// QImage logo = Resource::loadImage( "launcher/opielogo" );
79// if ( !logo.isNull() )
80// p->drawImage( (width() - logo.width()) / 2, (height() - logo.height()) / 2, logo );
81}
82// #endif
83
84
85void PlayListSelection::contentsMouseMoveEvent( QMouseEvent *event ) {
86 if ( event->state() == QMouseEvent::LeftButton ) {
87 QListViewItem *currentItem = selectedItem();
88 QListViewItem *itemUnder = itemAt( QPoint( event->pos().x(), event->pos().y() - contentsY() ) );
89 if ( currentItem && currentItem->itemAbove() == itemUnder )
90 moveSelectedUp();
91 else if ( currentItem && currentItem->itemBelow() == itemUnder )
92 moveSelectedDown();
93 }
94}
95
96
97const DocLnk *PlayListSelection::current() {
98 PlayListSelectionItem *item = (PlayListSelectionItem *)selectedItem();
99 if ( item )
100 return item->file();
101 return NULL;
102}
103
104
105void PlayListSelection::addToSelection( const DocLnk &lnk ) {
106 PlayListSelectionItem *item = new PlayListSelectionItem( this, new DocLnk( lnk ) );
107 QListViewItem *current = selectedItem();
108 if ( current )
109 item->moveItem( current );
110 setSelected( item, TRUE );
111 ensureItemVisible( selectedItem() );
112}
113
114
115void PlayListSelection::removeSelected() {
116 QListViewItem *item = selectedItem();
117 if ( item )
118 delete item;
119 setSelected( currentItem(), TRUE );
120 ensureItemVisible( selectedItem() );
121}
122
123
124void PlayListSelection::moveSelectedUp() {
125 QListViewItem *item = selectedItem();
126 if ( item && item->itemAbove() )
127 item->itemAbove()->moveItem( item );
128 ensureItemVisible( selectedItem() );
129}
130
131
132void PlayListSelection::moveSelectedDown() {
133 QListViewItem *item = selectedItem();
134 if ( item && item->itemBelow() )
135 item->moveItem( item->itemBelow() );
136 ensureItemVisible( selectedItem() );
137}
138
139
140bool PlayListSelection::prev() {
141 QListViewItem *item = selectedItem();
142 if ( item && item->itemAbove() )
143 setSelected( item->itemAbove(), TRUE );
144 else
145 return FALSE;
146 ensureItemVisible( selectedItem() );
147 return TRUE;
148}
149
150bool PlayListSelection::next() {
151 QListViewItem *item = selectedItem();
152 if ( item && item->itemBelow() )
153 setSelected( item->itemBelow(), TRUE );
154 else
155 return FALSE;
156 ensureItemVisible( selectedItem() );
157 return TRUE;
158}
159
160
161bool PlayListSelection::first() {
162 QListViewItem *item = firstChild();
163 if ( item )
164 setSelected( item, TRUE );
165 else
166 return FALSE;
167 ensureItemVisible( selectedItem() );
168 return TRUE;
169}
170
171
172bool PlayListSelection::last() {
173 QListViewItem *prevItem = NULL;
174 QListViewItem *item = firstChild();
175 while ( ( item = item->nextSibling() ) )
176 prevItem = item;
177 if ( prevItem )
178 setSelected( prevItem, TRUE );
179 else
180 return FALSE;
181 ensureItemVisible( selectedItem() );
182 return TRUE;
183}
184
185void PlayListSelection::unSelect()
186{
187 QListViewItem *item = selectedItem();
188 setSelected( currentItem(), FALSE);
189}
190
191void PlayListSelection::writeCurrent( Config& cfg ) {
192 cfg.setGroup("PlayList");
193 QListViewItem *item = selectedItem();
194 if ( item )
195 cfg.writeEntry("current", item->text(0) );
196 qDebug(item->text(0));
197
198}
199
200void PlayListSelection::setSelectedItem(const QString &strk ) {
201
202 unSelect();
203 QListViewItemIterator it( this );
204 for ( ; it.current(); ++it ) {
205// qDebug( it.current()->text(0));
206 if( strk == it.current()->text(0)) {
207// qDebug( "We have a match "+strk);
208 setSelected( it.current(), TRUE);
209 ensureItemVisible( it.current() );
210 return;
211 }
212 }
213// setSelected( item, TRUE );
214// ensureItemVisible( selectedItem() );
215}