statistics.h

来自「Amarok是一款在LINUX或其他类UNIX操作系统中运行的音频播放器软件。 」· C头文件 代码 · 共 171 行

H
171
字号
/*************************************************************************** * copyright            : (C) 2005-2006 Seb Ruiz <me@sebruiz.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.                                   * *                                                                         * ***************************************************************************/#ifndef AMAROK_STATISTICS_H#define AMAROK_STATISTICS_H#include "playlistwindow.h"#include <kdialogbase.h>    //baseclass#include <klistview.h>      //baseclass#include <qtimer.h>class ClickLineEdit;class QColor;class QTimer;class StatisticsList;class StatisticsItem;class StatisticsDetailedItem;class Statistics : public KDialogBase{        Q_OBJECT    public:        Statistics( QWidget *parent = 0, const char *name = 0 );        ~Statistics();        static Statistics *instance() { return s_instance; }    private slots:        void    slotSetFilter();        void    slotSetFilterTimeout();    private:        StatisticsList *m_listView;        ClickLineEdit  *m_lineEdit;        QTimer         *m_timer;        static Statistics *s_instance;};class StatisticsList : public KListView{        Q_OBJECT    public:        StatisticsList( QWidget *parent, const char *name=0 );        ~StatisticsList() {};        QString filter()                           { return m_filter; }        void    setFilter( const QString &filter ) { m_filter = filter; }        void    renderView();        void    refreshView();    private slots:        void    clearHover();        void    itemClicked( QListViewItem *item );        void    showContextMenu( QListViewItem *item, const QPoint &p, int );        void    startHover( QListViewItem *item );    private:        void    startDrag();        void    viewportPaintEvent( QPaintEvent* );        void    expandInformation( StatisticsItem *item, bool refresh=false );        static QString subText( const QString &score, const QString &rating );        StatisticsItem *m_trackItem;        StatisticsItem *m_mostplayedItem;        StatisticsItem *m_artistItem;        StatisticsItem *m_albumItem;        StatisticsItem *m_genreItem;        StatisticsItem *m_newestItem;        QListViewItem  *m_currentItem;        QString         m_filter;        bool            m_expanded;};/// The listview items which are the headers for the categoriesclass StatisticsItem : public QObject, public KListViewItem{        Q_OBJECT    public:        StatisticsItem( QString text, StatisticsList *parent, KListViewItem *after=0, const char *name=0 );        ~StatisticsItem() {};        void    paintCell( QPainter *p, const QColorGroup &cg, int column, int width, int align );        void    paintFocus( QPainter*, const QColorGroup& , const QRect& ) {};  //reimp        void    setIcon( const QString &icon );        void    enterHover();        void    leaveHover();        void       setExpanded( const bool b ) { m_isExpanded = b; }        const bool isExpanded() { return m_isExpanded; }        void    setSubtext( QString t ) { m_subText = t; }        int     rtti() const { return RTTI; }        static  const int RTTI = 1000;    //header item    protected:        static const int ANIM_INTERVAL = 18;        static const int ANIM_MAX = 20;    private slots:        void slotAnimTimer();    private:        QColor  blendColors( const QColor& color1, const QColor& color2, int percent );        QTimer *m_animTimer;        bool    m_animEnter;        int     m_animCount;        bool    m_isActive;        bool    m_isExpanded;        QString m_subText;};/// Listview items for the children of expanded items (the actual results)class StatisticsDetailedItem : public KListViewItem{    public:        StatisticsDetailedItem( const QString &text, const QString &subtext, StatisticsItem *parent,                                StatisticsDetailedItem *after=0, const char *name=0 );        ~StatisticsDetailedItem() {};        enum    ItemType { NONE, TRACK, ARTIST, ALBUM, GENRE, HISTORY };        void    setup();        void    paintCell( QPainter *p, const QColorGroup &cg, int column, int width, int align );        void    setItemType( const ItemType t ) { m_type = t; }        const   ItemType itemType() { return m_type; }        void    setUrl( QString &url ) { m_url = url; }        const   QString url() { return m_url; }        void    setSubtext( QString t ) { m_subText = t; }        QString getSQL(); //get the sql query for all the urls the item represents        KURL::List getURLs();        void    paintFocus( QPainter*, const QColorGroup& , const QRect& ) {};  //reimp        int     rtti() const { return RTTI; }        static  const int RTTI = 1001;    //detailed item    private:        ItemType m_type;        QString  m_url;        QString  m_subText;};#endif /* AMAROK_STATISTICS_H */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?