summaryrefslogtreecommitdiffstats
path: root/kaffeine/src/input/audiobrowser/playlistitem.h
blob: d536117a5095f25742b30eb9527d43f344eeec03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
/*
 * playlistitem.h - a self-displayable item for kaffeine's playlist
 *
 * Copyright (C) 2004-2005 Giorgos Gousios
 * Copyright (C) 2004-2005 Jürgen Kofler <kaffeine@gmx.net>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
 */

#ifndef PLAYLISTITEM_H
#define PLAYLISTITEM_H

#include <klistview.h>

#define MIME_COLUMN 0
#define TITLE_COLUMN 1
#define ARTIST_COLUMN 2
#define ALBUM_COLUMN 3
#define TRACK_COLUMN 4
#define LENGTH_COLUMN 5

class TQTime;
class TQString;
class TQStringList;
class MRL;

class PlaylistItem : public KListViewItem
{

public:
   PlaylistItem(KListView *list, KListViewItem *after, const TQString& url, const TQString& mime, const TQString& title,
                const TQString& length = TQString(), const TQString& artist = TQString(), const TQString& album = TQString(),
                const TQString& track = TQString(), const TQString& year = TQString(), const TQString& genre = TQString(),
		const TQStringList& subtitles = TQStringList(), int currentSubtitle = -1);
   PlaylistItem(KListView* list, KListViewItem* after, const MRL&);
   virtual ~PlaylistItem();

   MRL toMRL() const;

   const TQString& url() const;
   TQString mime() const;
   TQString title() const;
   TQString artist() const;
   TQString album() const;
   TQString track() const;
   TQString year() const;
   TQString genre() const;
   TQString length() const;
   const TQStringList& subtitles() const;
   int currentSubtitle() const;

   void setUrl(const TQString&);
   void setMime(const TQString&);
   void setTitle(const TQString&);
   void setArtist(const TQString&);
   void setAlbum(const TQString&);
   void setTrack(const TQString&);
   void setYear(const TQString&);
   void setGenre(const TQString&);
   void setLength(const TQString&);
   void setSubtitles(const TQStringList&);
   void addSubtitle(const TQString&);
   void setCurrentSubtitle(int);

   //reimplement to fix track order
   int compare( TQListViewItem *i, int col, bool ascending ) const;

   void setPlaying(bool playing);
   virtual void paintCell(TQPainter *p, const TQColorGroup &cg, int column, int width, int align);

private:
   static TQTime stringToTime(const TQString&);
   TQString m_url;
   TQString m_year;
   TQString m_genre;
   TQStringList m_subtitles;
   int m_currentSubtitle;
   bool isCurrent;
};

#endif /* PLAYLISTITEM_H */