00001 #ifndef FILESELECTOR_H_ 00002 #define FILESELECTOR_H_ 00003 00004 #include <iostream> 00005 00006 // qt 00007 #include <qstring.h> 00008 #include <qstringlist.h> 00009 00010 // myth 00011 #include <mythtv/mythdialogs.h> 00012 #include <mythtv/uilistbtntype.h> 00013 00014 typedef struct 00015 { 00016 bool directory; 00017 bool selected; 00018 QString filename; 00019 long long size; 00020 } FileData; 00021 00022 typedef enum 00023 { 00024 FSTYPE_FILELIST = 0, 00025 FSTYPE_FILE = 1, 00026 FSTYPE_DIRECTORY = 2 00027 } FSTYPE; 00028 00029 class FileSelector : public MythThemedDialog 00030 { 00031 00032 Q_OBJECT 00033 00034 public: 00035 00036 FileSelector(FSTYPE type, const QString &startDir, 00037 const QString &filemask, MythMainWindow *parent, 00038 const QString &window_name, const QString &theme_filename, 00039 const char *name = 0); 00040 ~FileSelector(); 00041 00042 QString getSelected(void); 00043 00044 private slots: 00045 void keyPressEvent(QKeyEvent *e); 00046 void OKPressed(); 00047 void cancelPressed(); 00048 void backPressed(); 00049 void homePressed(); 00050 void locationEditLostFocus(); 00051 00052 private: 00053 void updateFileList(); 00054 void updateSelectedList(); 00055 void updateWidgets(void); 00056 void wireUpTheme(void); 00057 void updateScrollArrows(void); 00058 00059 FSTYPE m_selectorType; 00060 QString m_filemask; 00061 QString m_curDirectory; 00062 QPtrList<FileData> m_fileData; 00063 QStringList m_selectedList; 00064 00065 // 00066 // GUI stuff 00067 // 00068 UIListBtnType *m_fileList; 00069 UIRemoteEditType *m_locationEdit; 00070 UITextButtonType *m_okButton; 00071 UITextButtonType *m_cancelButton; 00072 UITextButtonType *m_backButton; 00073 UITextButtonType *m_homeButton; 00074 00075 QPixmap *m_directoryPixmap; 00076 }; 00077 00078 #endif
1.5.5