MythTV  0.26-pre
programrecpriority.h
Go to the documentation of this file.
00001 #ifndef PROGRAMRECPROIRITY_H_
00002 #define PROGRAMRECPROIRITY_H_
00003 
00004 #include <vector>
00005 
00006 #include "recordinginfo.h"
00007 #include "mythscreentype.h"
00008 
00009 // mythfrontend
00010 #include "schedulecommon.h"
00011 
00012 class QDateTime;
00013 
00014 class MythUIButtonList;
00015 class MythUIButtonListItem;
00016 class MythUIText;
00017 class MythUIStateType;
00018 class ProgramRecPriority;
00019 
00020 class RecordingRule;
00021 
00022 class ProgramRecPriorityInfo : public RecordingInfo
00023 {
00024     friend class ProgramRecPriority;
00025 
00026   public:
00027     ProgramRecPriorityInfo();
00028     ProgramRecPriorityInfo(const ProgramRecPriorityInfo &other);
00029     ProgramRecPriorityInfo &operator=(const ProgramRecPriorityInfo&);
00030     ProgramRecPriorityInfo &operator=(const RecordingInfo&);
00031     ProgramRecPriorityInfo &operator=(const ProgramInfo&);
00032 
00033     virtual ProgramRecPriorityInfo &clone(const ProgramRecPriorityInfo &other);
00034     virtual ProgramRecPriorityInfo &clone(const ProgramInfo &other);
00035     virtual void clear(void);
00036 
00037     virtual void ToMap(QHash<QString, QString> &progMap,
00038                        bool showrerecord = false,
00039                        uint star_range = 10) const;
00040 
00041     int recTypeRecPriority;
00042     RecordingType recType;
00043     int matchCount;
00044     int recCount;
00045     QDateTime last_record;
00046     int avg_delay;
00047     int autoRecPriority;
00048     QString profile;
00049 };
00050 
00051 class ProgramRecPriority : public ScheduleCommon
00052 {
00053     Q_OBJECT
00054   public:
00055     ProgramRecPriority(MythScreenStack *parent, const QString &name);
00056    ~ProgramRecPriority();
00057 
00058     bool Create(void);
00059     bool keyPressEvent(QKeyEvent *);
00060     void customEvent(QEvent *event);
00061 
00062     enum SortType
00063     {
00064         byTitle,
00065         byRecPriority,
00066         byRecType,
00067         byCount,
00068         byRecCount,
00069         byLastRecord,
00070         byAvgDelay
00071     };
00072 
00073   protected slots:
00074     void updateInfo(MythUIButtonListItem *item);
00075     void edit(MythUIButtonListItem *item);
00076     void scheduleChanged(int recid);
00077 
00078   private:
00079     virtual void Load(void);
00080     virtual void Init(void);
00081 
00082     void FillList(void);
00083     void SortList(ProgramRecPriorityInfo *newCurrentItem = NULL);
00084     void UpdateList();
00085     void RemoveItemFromList(MythUIButtonListItem *item);
00086 
00087     void changeRecPriority(int howMuch);
00088     void saveRecPriority(void);
00089     void customEdit();
00090     void newTemplate(QString category);
00091     void remove();
00092     void deactivate();
00093     void upcoming();
00094     void details();
00095 
00096     void showMenu(void);
00097     void showSortMenu(void);
00098 
00099     QMap<int, ProgramRecPriorityInfo> m_programData;
00100     vector<ProgramRecPriorityInfo*> m_sortedProgram;
00101     QMap<int, int> m_origRecPriorityData;
00102 
00103     void countMatches(void);
00104     QMap<int, int> m_conMatch;
00105     QMap<int, int> m_nowMatch;
00106     QMap<int, int> m_recMatch;
00107     QMap<int, int> m_listMatch;
00108 
00109     MythUIButtonList *m_programList;
00110 
00111     MythUIText *m_schedInfoText;
00112     MythUIText *m_rectypePriorityText;
00113     MythUIText *m_recPriorityText;
00114     MythUIText *m_recPriorityBText;
00115     MythUIText *m_finalPriorityText;
00116     MythUIText *m_lastRecordedText;
00117     MythUIText *m_lastRecordedDateText;
00118     MythUIText *m_lastRecordedTimeText;
00119     MythUIText *m_channameText;
00120     MythUIText *m_channumText;
00121     MythUIText *m_callsignText;
00122     MythUIText *m_recProfileText;
00123 
00124     ProgramRecPriorityInfo *m_currentItem;
00125 
00126     bool m_reverseSort;
00127 
00128     SortType m_sortType;
00129 };
00130 
00131 Q_DECLARE_METATYPE(ProgramRecPriorityInfo *)
00132 
00133 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends