/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. #ifndef JOBSTATUSVIEW_H
  20. #define JOBSTATUSVIEW_H
  21. #include "Typedefs.h"
  22. #include "widgets/AnimatedSplitter.h"
  23. #include "DllMacro.h"
  24. class QAbstractItemModel;
  25. class QListView;
  26. class JobStatusSortModel;
  27. class JobStatusItem;
  28. class StreamConnection;
  29. class QStyledItemDelegate;
  30. class DLLEXPORT JobStatusView : public AnimatedWidget
  31. {
  32. Q_OBJECT
  33. public:
  34. static JobStatusView* instance() {
  35. return s_instance;
  36. }
  37. static void addJob( JobStatusItem* item );
  38. static void addJob( const QPointer<JobStatusItem>& item );
  39. explicit JobStatusView( AnimatedSplitter* parent );
  40. virtual ~JobStatusView()
  41. {
  42. }
  43. QSize sizeHint() const;
  44. void setModel( JobStatusSortModel* model );
  45. JobStatusSortModel* model() { return m_model; }
  46. private slots:
  47. void checkCount();
  48. void customDelegateJobInserted( int row, JobStatusItem* item );
  49. void customDelegateJobRemoved( int row );
  50. void refreshDelegates();
  51. void onItemActivated( const QModelIndex& index );
  52. private:
  53. QListView* m_view;
  54. JobStatusSortModel* m_model;
  55. AnimatedSplitter* m_parent;
  56. mutable int m_cachedHeight;
  57. static JobStatusView* s_instance;
  58. };
  59. #endif // JOBSTATUSVIEW_H