00001 #ifndef PROGLIST_H_
00002 #define PROGLIST_H_
00003
00004 #include <qdatetime.h>
00005 #include "libmyth/uitypes.h"
00006 #include "libmyth/xmlparse.h"
00007 #include "libmyth/mythwidgets.h"
00008 #include "libmyth/mythdialogs.h"
00009 #include "libmythtv/programinfo.h"
00010
00011 enum ProgListType {
00012 plUnknown = 0,
00013 plTitle = 1,
00014 plTitleSearch,
00015 plKeywordSearch,
00016 plPeopleSearch,
00017 plPowerSearch,
00018 plSQLSearch,
00019 plNewListings,
00020 plMovies,
00021 plCategory,
00022 plChannel,
00023 plTime,
00024 plRecordid,
00025 plStoredSearch
00026 };
00027
00028
00029 class MPUBLIC ProgLister : public MythDialog
00030 {
00031 Q_OBJECT
00032
00033 public:
00034 ProgLister(ProgListType pltype, const QString &view, const QString &from,
00035 MythMainWindow *parent, const char *name = 0);
00036 ~ProgLister();
00037
00038 protected slots:
00039 void cursorDown(bool page = false);
00040 void cursorUp(bool page = false);
00041 void prevView(void);
00042 void nextView(void);
00043 void setViewFromList(int);
00044 void chooseEditChanged(void);
00045 void chooseListBoxChanged(void);
00046 void setViewFromEdit(void);
00047 void addSearchRecord(void);
00048 void deleteKeyword(void);
00049 void setViewFromTime(void);
00050 void select(void);
00051 void edit(void);
00052 void customEdit(void);
00053 void remove(void);
00054 void upcoming(void);
00055 void details(void);
00056 void chooseView(void);
00057 void powerEdit(void);
00058 void setViewFromPowerEdit(void);
00059
00060
00061 protected:
00062 void paintEvent(QPaintEvent *);
00063 void keyPressEvent(QKeyEvent *e);
00064 void customEvent(QCustomEvent *e);
00065 void quickRecord(void);
00066
00067 private:
00068 ProgListType type;
00069 QString addTables;
00070 QDateTime startTime;
00071 QDateTime searchTime;
00072 QString dayFormat;
00073 QString hourFormat;
00074 QString timeFormat;
00075 QString fullDateFormat;
00076 QString channelOrdering;
00077 QString channelFormat;
00078
00079 RecSearchType searchtype;
00080
00081 int curView;
00082 QStringList viewList;
00083 QStringList viewTextList;
00084
00085 int curItem;
00086 ProgramList itemList;
00087 ProgramList schedList;
00088
00089 QStringList typeList;
00090 QStringList genreList;
00091 QStringList stationList;
00092
00093 XMLParse *theme;
00094 QDomElement xmldata;
00095
00096 QRect viewRect;
00097 QRect listRect;
00098 QRect infoRect;
00099 QRect fullRect;
00100 int listsize;
00101
00102 bool allowEvents;
00103 bool allowUpdates;
00104 bool updateAll;
00105 bool refillAll;
00106 bool titleSort;
00107 bool reverseSort;
00108 bool useGenres;
00109
00110 void updateBackground(void);
00111 void updateView(QPainter *);
00112 void updateList(QPainter *);
00113 void updateInfo(QPainter *);
00114 void fillViewList(const QString &view);
00115 void fillItemList(void);
00116 void LoadWindow(QDomElement &);
00117
00118 void updateKeywordInDB(const QString &text);
00119
00120 void createPopup(void);
00121 void deletePopup(void);
00122
00123 MythPopupBox *choosePopup;
00124 MythListBox *chooseListBox;
00125 MythRemoteLineEdit *chooseLineEdit;
00126 MythPushButton *chooseEditButton;
00127 MythPushButton *chooseOkButton;
00128 MythPushButton *chooseDeleteButton;
00129 MythPushButton *chooseRecordButton;
00130 MythComboBox *chooseDay;
00131 MythComboBox *chooseHour;
00132
00133 MythPopupBox *powerPopup;
00134 MythRemoteLineEdit *powerTitleEdit;
00135 MythRemoteLineEdit *powerSubtitleEdit;
00136 MythRemoteLineEdit *powerDescEdit;
00137 MythComboBox *powerCatType;
00138 MythComboBox *powerGenre;
00139 MythComboBox *powerStation;
00140 MythPushButton *powerOkButton;
00141
00142 bool powerStringToSQL(const QString &qphrase, QString &output,
00143 MSqlBindings &bindings);
00144 };
00145
00146 #endif