00001 #ifndef NETSEARCH_H 00002 #define NETSEARCH_H 00003 00004 // libmythui 00005 #include <mythuibutton.h> 00006 #include <mythuibuttonlist.h> 00007 #include <mythuitextedit.h> 00008 #include <mythuiprogressbar.h> 00009 #include <mythprogressdialog.h> 00010 #include <mythuistatetype.h> 00011 #include <mythscreentype.h> 00012 #include <mythdialogbox.h> 00013 #include <netgrabbermanager.h> 00014 #include <mythrssmanager.h> 00015 #include <mythdownloadmanager.h> 00016 #include <metadata/metadataimagedownload.h> 00017 00018 class MythUIBusyDialog; 00019 00020 class NetSearch : public MythScreenType 00021 { 00022 Q_OBJECT 00023 00024 public: 00025 00026 enum DialogType { DLG_DEFAULT = 0, DLG_SEARCH = 0x1, DLG_RSS = 0x2, 00027 dtLast }; 00028 00029 NetSearch(MythScreenStack *parent, const char *name = 0); 00030 ~NetSearch(); 00031 00032 bool Create(void); 00033 bool keyPressEvent(QKeyEvent *); 00034 00035 void populateResultList(ResultItem::resultList list); 00036 00037 public slots: 00038 00039 protected: 00040 void createBusyDialog(QString title); 00041 00042 private: 00043 virtual void Load(); 00044 virtual void Init(); 00045 00046 void initProgressDialog(); 00047 void cleanCacheDir(void); 00048 00049 MythUIButtonList *m_searchResultList; 00050 MythUIButtonList *m_siteList; 00051 MythUITextEdit *m_search; 00052 00053 MythUIText *m_pageText; 00054 MythUIText *m_noSites; 00055 00056 MythUIImage *m_thumbImage; 00057 MythUIStateType *m_downloadable; 00058 MythUIProgressBar *m_progress; 00059 MythUIBusyDialog *m_busyPopup; 00060 MythConfirmationDialog *m_okPopup; 00061 00062 MythDialogBox *m_menuPopup; 00063 MythScreenStack *m_popupStack; 00064 MythUIProgressDialog *m_progressDialog; 00065 00066 QNetworkAccessManager *m_netSearch; 00067 QNetworkReply *m_reply; 00068 MythDownloadManager *m_download; 00069 MetadataImageDownload *m_imageDownload; 00070 QFile *m_file; 00071 00072 QString m_currentSearch; 00073 int m_currentGrabber; 00074 QString m_currentCmd; 00075 QString m_downloadFile; 00076 uint m_pagenum; 00077 uint m_maxpage; 00078 bool m_playing; 00079 uint m_redirects; 00080 QString m_mythXML; 00081 00082 GrabberScript::scriptList m_grabberList; 00083 RSSSite::rssList m_rssList; 00084 QMap<MythUIButtonListItem*,ResultItem> m_rssitems; 00085 DialogType m_dialogType; 00086 00087 NetSearch::DialogType m_type; 00088 00089 private slots: 00090 void streamWebVideo(void); 00091 void showWebVideo(void); 00092 void doDownloadAndPlay(void); 00093 void doPlayVideo(QString filename); 00094 void showMenu(void); 00095 void getMoreResults(); 00096 void getLastResults(); 00097 void runSearchEditor(); 00098 void doListRefresh(); 00099 00100 void doSearch(void); 00101 void searchFinished(void); 00102 void searchTimeout(Search *item); 00103 void loadData(void); 00104 void fillGrabberButtonList(void); 00105 void slotItemChanged(void); 00106 void slotDoProgress(qint64 bytesReceived, 00107 qint64 bytesTotal); 00108 void slotDownloadFinished(void); 00109 void slotDeleteVideo(void); 00110 void doDeleteVideo(bool remove); 00111 void DownloadVideo(QString url, QString dest); 00112 00113 void customEvent(QEvent *levent); 00114 }; 00115 00116 #endif 00117
1.6.3