covermanager.h
来自「Amarok是一款在LINUX或其他类UNIX操作系统中运行的音频播放器软件。 」· C头文件 代码 · 共 167 行
H
167 行
// (c) Pierpaolo Di Panfilo 2004// See COPYING file for licensing information#ifndef COVERMANAGER_H#define COVERMANAGER_H#include <qptrlist.h>#include <qsplitter.h>#include <kiconview.h>#include <qdialog.h>#include <qpixmap.h>class QListViewItem;class CoverViewItem;class ClickLineEdit;class KPushButton;class KPopupMenu;class QToolButton;class QLabel;class KListView;class CoverView;class QHBox;class KProgress;class QHBoxLayout;class PixmapViewer;class CoverManager : public QSplitter{ Q_OBJECT static CoverManager *s_instance; public: CoverManager(); ~CoverManager(); static CoverManager *instance() { return s_instance; } static void showOnce( const QString &artist = QString::null ); static void viewCover( const QString& artist, const QString& album, QWidget *parent=0 ); void setStatusText( QString text ); /** * Return the top level domain for the current locale **/ static QString amazonTld(); public slots: void updateStatusBar(); void changeLocale( int id ); private slots: void slotArtistSelected( QListViewItem* ); void coverItemExecuted( QIconViewItem *item ); void showCoverMenu( QIconViewItem *item, const QPoint& ); void slotSetFilter(); void slotSetFilterTimeout(); void changeView( int id ); void fetchMissingCovers(); void fetchCoversLoop(); void coverFetched( const QString&, const QString& ); void coverRemoved( const QString&, const QString& ); void coverFetcherError(); void stopFetching(); void init(); private: enum View { AllAlbums=0, AlbumsWithCover, AlbumsWithoutCover }; void loadCover( const QString &, const QString & ); void setCustomSelectedCovers(); void fetchSelectedCovers(); void deleteSelectedCovers(); QPtrList<CoverViewItem> selectedItems(); KListView *m_artistView; CoverView *m_coverView; ClickLineEdit *m_searchEdit; KPushButton *m_fetchButton; KPopupMenu *m_amazonLocaleMenu; KPopupMenu *m_viewMenu; QToolButton *m_amazonLocaleButton; QToolButton *m_viewButton; int m_currentLocale; int m_currentView; //status bar widgets QLabel *m_statusLabel; QHBox *m_progressBox; KProgress *m_progress; QString m_oldStatusText; QTimer *m_timer; //search filter timer QPtrList<QIconViewItem> m_coverItems; //used for filtering QString m_filter; // Used by fetchCoversLoop() for temporary storage QStringList m_fetchCovers; uint m_fetchCounter; //used to display information about cover fetching in the status bar int m_fetchingCovers; int m_coversFetched; int m_coverErrors;};class CoverView : public KIconView{ Q_OBJECT public: CoverView( QWidget *parent = 0, const char *name = 0, WFlags f = 0 ); protected: QDragObject *dragObject(); private slots: void setStatusText( QIconViewItem *item );};class CoverViewItem : public KIconViewItem{ public: CoverViewItem( QIconView *parent, QIconViewItem *after, const QString &artist, const QString &album ); void loadCover(); bool hasCover() const; bool canRemoveCover() const { return !m_embedded && hasCover(); } QString artist() const { return m_artist; } QString album() const { return m_album; } QPixmap coverPixmap() const { return m_coverPixmap; } protected: void paintItem(QPainter* painter, const QColorGroup& colorGroup); void paintFocus(QPainter *, const QColorGroup &) { } void dropped( QDropEvent *, const QValueList<QIconDragItem> & ); void dragEntered(); void dragLeft(); void calcRect( const QString& text_=QString::null ); private: QString m_artist; QString m_album; QString m_coverImagePath; QPixmap m_coverPixmap; bool m_embedded;};class CoverViewDialog : public QDialog { Q_OBJECT public: CoverViewDialog(const QString& artist, const QString& album, QWidget *parent); private: QHBoxLayout *m_layout; QPixmap m_pixmap; PixmapViewer *m_pixmapViewer; QLabel *m_label;};#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?