00001 #ifndef PROGRAMRECPROIRITY_H_
00002 #define PROGRAMRECPROIRITY_H_
00003
00004 #include <qdatetime.h>
00005 #include <qdom.h>
00006 #include "mythwidgets.h"
00007 #include "mythdialogs.h"
00008 #include "uitypes.h"
00009 #include "xmlparse.h"
00010 #include "programinfo.h"
00011 #include "scheduledrecording.h"
00012
00013
00014 class ProgramRecPriorityInfo : public ProgramInfo
00015 {
00016 public:
00017 ProgramRecPriorityInfo();
00018 ProgramRecPriorityInfo(const ProgramRecPriorityInfo &other);
00019 ProgramRecPriorityInfo& operator=(const ProgramInfo&);
00020
00021
00022 int recTypeRecPriority;
00023 RecordingType recType;
00024 int matchCount;
00025 int recCount;
00026 QDateTime last_record;
00027 int avg_delay;
00028 };
00029
00030 class ProgramRecPriority : public MythDialog
00031 {
00032 Q_OBJECT
00033 public:
00034 enum SortType
00035 {
00036 byTitle,
00037 byRecPriority,
00038 byRecType,
00039 byCount,
00040 byRecCount,
00041 byLastRecord,
00042 byAvgDelay
00043 };
00044
00045 ProgramRecPriority(MythMainWindow *parent, const char *name = 0);
00046 ~ProgramRecPriority();
00047
00048 protected slots:
00049 void cursorDown(bool page = false);
00050 void cursorUp(bool page = false);
00051 void pageDown() { cursorDown(true); }
00052 void pageUp() { cursorUp(true); }
00053 void changeRecPriority(int howMuch);
00054 void saveRecPriority(void);
00055 void edit();
00056 void customEdit();
00057 void remove();
00058 void deactivate();
00059 void upcoming();
00060 void details();
00061
00062 protected:
00063 void paintEvent(QPaintEvent *);
00064 void keyPressEvent(QKeyEvent *e);
00065
00066 private:
00067 void FillList(void);
00068 void SortList(void);
00069 void RemoveCurItemFromList(void);
00070 QMap<QString, ProgramRecPriorityInfo> programData;
00071 QMap<int, int> origRecPriorityData;
00072
00073 void countMatches(void);
00074 QMap<int, int> conMatch;
00075 QMap<int, int> nowMatch;
00076 QMap<int, int> recMatch;
00077 QMap<int, int> listMatch;
00078
00079 void updateBackground(void);
00080 void updateList(QPainter *);
00081 void updateInfo(QPainter *);
00082
00083 void LoadWindow(QDomElement &);
00084 void parseContainer(QDomElement &);
00085 XMLParse *theme;
00086 QDomElement xmldata;
00087
00088 ProgramRecPriorityInfo *curitem;
00089
00090 QPixmap myBackground;
00091 QPixmap *bgTransBackup;
00092
00093 bool pageDowner;
00094 bool reverseSort;
00095
00096 int inList;
00097 int inData;
00098 int listCount;
00099 int dataCount;
00100
00101 QRect listRect;
00102 QRect infoRect;
00103 QRect fullRect;
00104
00105 int listsize;
00106
00107 SortType sortType;
00108 };
00109
00110 #endif