00001 #ifndef IGUANA_STUDIO_IG_QT_APP_DEBUG_H 00002 # define IGUANA_STUDIO_IG_QT_APP_DEBUG_H 00003 00004 //<<<<<< INCLUDES >>>>>> 00005 00006 # include "Iguana/Studio/interface/config.h" 00007 # include <qobject.h> 00008 # include <qdialog.h> 00009 00010 //<<<<<< PUBLIC DEFINES >>>>>> 00011 //<<<<<< PUBLIC CONSTANTS >>>>>> 00012 //<<<<<< PUBLIC TYPES >>>>>> 00013 00014 class QListView; 00015 class QListViewItem; 00016 class QTimer; 00017 class IgState; 00018 00019 //<<<<<< PUBLIC VARIABLES >>>>>> 00020 //<<<<<< PUBLIC FUNCTIONS >>>>>> 00021 //<<<<<< CLASS DECLARATIONS >>>>>> 00022 00023 class IGUANA_STUDIO_API IgQtAppDebugInfo : public QDialog 00024 { 00025 Q_OBJECT 00026 public: 00027 IgQtAppDebugInfo (QWidget *parent = 0, bool autoRefresh = true); 00028 ~IgQtAppDebugInfo (void); 00029 00030 public slots: 00031 void info (void); 00032 void exportList (void); 00033 virtual void update (void) = 0; 00034 00035 protected: 00036 QListView * list (void); 00037 void hideEvent (QHideEvent*); 00038 00039 private: 00040 void start (void); 00041 00042 bool m_autoRefresh; 00043 QListView *m_data; 00044 QTimer *m_timer; 00045 00046 // undefined semantics 00047 IgQtAppDebugInfo (const IgQtAppDebugInfo &); 00048 IgQtAppDebugInfo &operator= (const IgQtAppDebugInfo &); 00049 }; 00050 00051 class IGUANA_STUDIO_API IgQtAppDebugResourceInfo : public IgQtAppDebugInfo 00052 { 00053 public: 00054 IgQtAppDebugResourceInfo (QWidget *parent); 00055 00056 protected: 00057 virtual void update (void); 00058 }; 00059 00060 class IGUANA_STUDIO_API IgQtAppDebugLibrariesInfo : public IgQtAppDebugInfo 00061 { 00062 public: 00063 IgQtAppDebugLibrariesInfo (QWidget *parent); 00064 00065 protected: 00066 virtual void update (void); 00067 }; 00068 00069 class IGUANA_STUDIO_API IgQtAppDebugPluginsInfo : public IgQtAppDebugInfo 00070 { 00071 public: 00072 IgQtAppDebugPluginsInfo (IgState *state, QWidget *parent); 00073 00074 protected: 00075 virtual void update (void); 00076 00077 private: 00078 IgState *m_state; 00079 }; 00080 00081 class IGUANA_STUDIO_API IgQtAppDumpStateInfo : public IgQtAppDebugInfo 00082 { 00083 public: 00084 IgQtAppDumpStateInfo (IgState *state, QWidget *parent); 00085 00086 protected: 00087 virtual void update (void); 00088 virtual void populate (IgState* state, QListViewItem *item); 00089 00090 private: 00091 IgState *m_state; 00092 }; 00093 00094 class IGUANA_STUDIO_API IgQtAppDebug : public QObject 00095 { 00096 Q_OBJECT 00097 public: 00098 IgQtAppDebug (IgState *state, QWidget *parent = 0); 00099 ~IgQtAppDebug (void); 00100 00101 public slots: 00102 void resources (void); 00103 void libraries (void); 00104 void plugins (void); 00105 void debugme (void); 00106 void dumpState (void); 00107 void rundebug (void); 00108 void showProfiler (void); 00109 00110 private: 00111 static bool m_profiler; 00112 00113 IgState *m_state; 00114 QWidget *m_parent; 00115 IgQtAppDebugInfo *m_info [4]; 00116 00117 // undefined semantics 00118 IgQtAppDebug (const IgQtAppDebug &); 00119 IgQtAppDebug &operator= (const IgQtAppDebug &); 00120 }; 00121 00122 //<<<<<< INLINE PUBLIC FUNCTIONS >>>>>> 00123 //<<<<<< INLINE MEMBER FUNCTIONS >>>>>> 00124 00125 #endif // IGUANA_STUDIO_IG_QT_APP_DEBUG_H 00126 00127 00128 00129 00130 00131 00132