playlistitem.h
来自「Amarok是一款在LINUX或其他类UNIX操作系统中运行的音频播放器软件。 」· C头文件 代码 · 共 181 行
H
181 行
//Maintainer: Max Howell <max.howell@methylblue.com>//Copyright: GPL v2//NOTE please show restraint when adding data members to this class!// some users have playlists with 20,000 items or more in, one 32 bit int adds up rapidly!// -- on second thought, 80KB isn't all that much. be careful with QStrings, though.#ifndef PLAYLISTITEM_H#define PLAYLISTITEM_H#include "metabundle.h" //baseclass#include "amarok_export.h"#include <klistview.h> //baseclass#include <kurl.h> //stack allocated#include <qcolor.h> //stack allocated#include <qfont.h> //stack allocated#include <qmap.h>#include <qpixmap.h>#include <qvaluevector.h>class QColorGroup;class QDomNode;class QImage;class QListViewItem;class QPainter;class MetaBundle;class Playlist;class PlaylistAlbum;class LIBAMAROK_EXPORT PlaylistItem : public MetaBundle, public KListViewItem{ typedef MetaBundle super; public: /// Indicates that the current-track pixmap has changed. Animation must be redrawn. static void setPixmapChanged() { s_pixmapChanged = true; } /// For the glow colouration stuff static double glowIntensity; static QColor glowText; static QColor glowBase; public: PlaylistItem( QListView*, QListViewItem* ); //used by PlaylistLoader PlaylistItem( const MetaBundle&, QListViewItem*, bool enabled = true ); ~PlaylistItem(); /// pass 'raw' data here, for example "92" for Length, and not "1:32" virtual void setText( int column, const QString& ); /** * @return The text of the column @p column, formatted for display purposes. * (For example, if the Length is 92, "1:32".) */ virtual QString text( int column ) const; void filter( const QString &expression ); //makes visible depending on whether it matches bool isCurrent() const; bool isQueued() const; int queuePosition() const; bool isEnabled() const { return m_enabled; } bool isDynamicEnabled() const { return m_dynamicEnabled; } bool isFilestatusEnabled() const { return m_filestatusEnabled; } void setEnabled(); void setDynamicEnabled( bool enabled ); void setFilestatusEnabled( bool enabled ); void setAllCriteriaEnabled( bool enabled ); void setSelected( bool selected ); void setVisible( bool visible ); void setEditing( int column ); bool isEditing( int column ) const; bool anyEditing() const; void setIsBeingRenamed( bool renaming ) { m_isBeingRenamed = renaming; } bool isBeingRenamed() const { return m_isBeingRenamed; } void setDeleteAfterEditing( bool dae ) { m_deleteAfterEdit = dae; } bool deleteAfterEditing() const { return m_deleteAfterEdit; } void setIsNew( bool is ) { m_isNew = is; } /// convenience functions Playlist *listView() const { return reinterpret_cast<Playlist*>( KListViewItem::listView() ); } PlaylistItem *nextSibling() const { return static_cast<PlaylistItem*>( KListViewItem::nextSibling() ); } static int ratingAtPoint( int x ); static int ratingColumnWidth(); /// like QWidget::update() void update() const; //updates only the area of a specific column, avoids flickering of the current item marker void updateColumn( int column ) const; virtual void setup(); // from QListViewItem virtual bool operator== ( const PlaylistItem & item ) const; virtual bool operator< ( const PlaylistItem & item ) const; PlaylistItem *nextInAlbum() const; PlaylistItem *prevInAlbum() const; protected: virtual void aboutToChange( const QValueList<int> &columns ); virtual void reactToChanges( const QValueList<int> &columns ); private: friend class Playlist; struct paintCacheItem { int width; int height; QString text; QFont font; QColor color; bool selected; QMap<QString, QPixmap> map; }; virtual void paintCell( QPainter*, const QColorGroup&, int, int, int ); void drawRating( QPainter *p ); void drawRating( QPainter *p, int stars, int greystars, bool half ); void drawMood( QPainter *p, int width, int height ); virtual void moodbarJobEvent( int newState ); // Used for sorting virtual int compare( QListViewItem*, int, bool ) const; /** * Paints a focus indicator on the rectangle (current item). We disable it * over the currentTrack, cause it would look like crap and flicker. */ void paintFocus( QPainter*, const QColorGroup&, const QRect& ); static void imageTransparency( QImage& image, float factor ); AtomicString artist_album() const; // returns a placeholder 'artist' for compilations void refAlbum(); void derefAlbum(); void decrementTotals(); void incrementTotals(); void incrementCounts(); void decrementCounts(); void incrementLengths(); void decrementLengths(); int totalIncrementAmount() const; PlaylistAlbum *m_album; bool m_enabled; bool m_dynamicEnabled; bool m_filestatusEnabled; bool m_deleteAfterEdit; bool m_isBeingRenamed; bool m_isNew; //New items will be assigned a different color static bool s_pixmapChanged; static const QString &editingText();};class PLItemList: public QPtrList<PlaylistItem>{ public: PLItemList() : QPtrList<PlaylistItem>() { } PLItemList( const QPtrList<PlaylistItem> &list ) : QPtrList<PlaylistItem>( list ) { } PLItemList( PlaylistItem *item ) : QPtrList<PlaylistItem>() { append( item ); } inline PLItemList &operator<<( PlaylistItem *item ) { append( item ); return *this; }};#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?