PageRenderTime 82ms CodeModel.GetById 40ms app.highlight 4ms RepoModel.GetById 36ms app.codeStats 0ms

/src/libtomahawk/jobview/JobStatusView.h

http://github.com/tomahawk-player/tomahawk
C Header | 73 lines | 41 code | 14 blank | 18 comment | 0 complexity | aaa5e3ffd3f150d2a2ba0d5cfbcdcf23 MD5 | raw file
 1/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
 2 *
 3 *   Copyright 2010-2011, Christian Muehlhaeuser <muesli@tomahawk-player.org>
 4 *   Copyright 2011, Leo Franchi <lfranchi@kde.org>
 5 *
 6 *   Tomahawk is free software: you can redistribute it and/or modify
 7 *   it under the terms of the GNU General Public License as published by
 8 *   the Free Software Foundation, either version 3 of the License, or
 9 *   (at your option) any later version.
10 *
11 *   Tomahawk is distributed in the hope that it will be useful,
12 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
13 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 *   GNU General Public License for more details.
15 *
16 *   You should have received a copy of the GNU General Public License
17 *   along with Tomahawk. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20#ifndef JOBSTATUSVIEW_H
21#define JOBSTATUSVIEW_H
22
23#include "Typedefs.h"
24#include "widgets/AnimatedSplitter.h"
25#include "DllMacro.h"
26
27class QAbstractItemModel;
28class QListView;
29class JobStatusSortModel;
30class JobStatusItem;
31class StreamConnection;
32class QStyledItemDelegate;
33
34class DLLEXPORT JobStatusView : public AnimatedWidget
35{
36Q_OBJECT
37
38public:
39    static JobStatusView* instance() {
40        return s_instance;
41    }
42
43    static void addJob( JobStatusItem* item );
44    static void addJob( const QPointer<JobStatusItem>& item );
45
46    explicit JobStatusView( AnimatedSplitter* parent );
47    virtual ~JobStatusView()
48    {
49    }
50
51    QSize sizeHint() const;
52
53    void setModel( JobStatusSortModel* model );
54
55    JobStatusSortModel* model() { return m_model; }
56
57private slots:
58    void checkCount();
59    void customDelegateJobInserted( int row, JobStatusItem* item );
60    void customDelegateJobRemoved( int row );
61    void refreshDelegates();
62    void onItemActivated( const QModelIndex& index );
63
64private:
65    QListView* m_view;
66    JobStatusSortModel* m_model;
67    AnimatedSplitter* m_parent;
68    mutable int m_cachedHeight;
69
70    static JobStatusView* s_instance;
71};
72
73#endif // JOBSTATUSVIEW_H