2 // (c) Pierpaolo Di Panfilo 2004
3 // See COPYING file for licensing information
12 #include <Q3ValueList>
14 #include <k3iconview.h>
32 class CoverManager
: public QSplitter
36 static CoverManager
*s_instance
;
42 static CoverManager
*instance() { return s_instance
; }
44 static void showOnce( const QString
&artist
= QString() );
45 static void viewCover( const QString
& artist
, const QString
& album
, QWidget
*parent
=0 );
47 void setStatusText( QString text
);
50 * Return the top level domain for the current locale
52 static QString
amazonTld();
54 void updateStatusBar();
55 void changeLocale( int id
);
58 void slotArtistSelected( Q3ListViewItem
* );
59 void coverItemExecuted( Q3IconViewItem
*item
);
60 void showCoverMenu( Q3IconViewItem
*item
, const QPoint
& );
62 void slotSetFilterTimeout();
63 void changeView( int id
);
64 void fetchMissingCovers();
65 void fetchCoversLoop();
66 void coverFetched( const QString
&, const QString
& );
67 void coverRemoved( const QString
&, const QString
& );
68 void coverFetcherError();
74 void setCustomSelectedCovers();
75 void fetchSelectedCovers();
76 void deleteSelectedCovers();
77 void viewSelectedCover();
78 void playSelectedAlbums();
80 enum View
{ AllAlbums
=0, AlbumsWithCover
, AlbumsWithoutCover
};
82 void loadCover( const QString
&, const QString
& );
83 Q3PtrList
<CoverViewItem
> selectedItems();
85 K3ListView
*m_artistView
;
86 CoverView
*m_coverView
;
87 KLineEdit
*m_searchEdit
;
88 KPushButton
*m_fetchButton
;
89 KMenu
*m_amazonLocaleMenu
;
91 QToolButton
*m_amazonLocaleButton
;
92 QToolButton
*m_viewButton
;
97 QLabel
*m_statusLabel
;
99 QProgressBar
*m_progress
;
100 QString m_oldStatusText
;
102 QTimer
*m_timer
; //search filter timer
103 Q3PtrList
<Q3IconViewItem
> m_coverItems
; //used for filtering
107 // Used by fetchCoversLoop() for temporary storage
108 QStringList m_fetchCovers
;
111 //used to display information about cover fetching in the status bar
112 int m_fetchingCovers
;
117 class CoverView
: public K3IconView
122 explicit CoverView( QWidget
*parent
= 0, const char *name
= 0, Qt::WFlags f
= 0 );
125 Q3DragObject
*dragObject();
128 void setStatusText( Q3IconViewItem
*item
);
131 class CoverViewItem
: public K3IconViewItem
134 CoverViewItem( Q3IconView
*parent
, Q3IconViewItem
*after
, const QString
&artist
, const QString
&album
);
137 bool hasCover() const;
138 bool canRemoveCover() const { return !m_embedded
&& hasCover(); }
139 QString
artist() const { return m_artist
; }
140 QString
album() const { return m_album
; }
141 QPixmap
coverPixmap() const { return m_coverPixmap
; }
144 void paintItem(QPainter
* painter
, const QColorGroup
& colorGroup
);
145 void paintFocus(QPainter
*, const QColorGroup
&) { }
146 void dropped( QDropEvent
*, const Q3ValueList
<Q3IconDragItem
> & );
149 void calcRect( const QString
& text_
= QString() );
154 QString m_coverImagePath
;
155 QPixmap m_coverPixmap
;
160 class CoverViewDialog
: public QDialog
{
164 CoverViewDialog(const QString
& artist
, const QString
& album
, QWidget
*parent
);
167 QHBoxLayout
*m_layout
;
169 PixmapViewer
*m_pixmapViewer
;