00001 #ifndef QLABTABLEVIEWER_H 00002 #define QLABTABLEVIEWER_H 00003 00004 #include <qvariant.h> 00005 #include <qwidget.h> 00006 #include <qwidgetplugin.h> 00007 #include <qsqlcursor.h> 00008 00009 class QVBoxLayout; 00010 class QHBoxLayout; 00011 class QGridLayout; 00012 class QSqlDatabase; 00013 class QFrame; 00014 class QLabel; 00015 class QLineEdit; 00016 class QPushButton; 00017 class QDataTable; 00018 class QSqlCursor ; 00019 class QSqlRecord; 00020 00021 class QT_WIDGET_PLUGIN_EXPORT QlabTableViewer : public QWidget 00022 { 00023 Q_OBJECT 00024 00025 typedef QMap<QString, QString> MapEntry ; 00026 00027 Q_PROPERTY( QString dataCollection READ dataCollection WRITE setDataCollection 00028 DESIGNABLE true SCRIPTABLE true STORED true ) 00029 Q_PROPERTY( QString filter READ filter WRITE setFilter 00030 DESIGNABLE true SCRIPTABLE true STORED true ) 00031 Q_PROPERTY( QString sort READ sort WRITE setSort 00032 DESIGNABLE true SCRIPTABLE true STORED true ) 00033 Q_PROPERTY( QStringList searchAttributes READ searchAttributes WRITE setSearchAttributes 00034 DESIGNABLE true SCRIPTABLE true STORED true ) 00035 Q_PROPERTY( MapEntry viewColumns READ viewColumns WRITE setViewColumns 00036 DESIGNABLE true SCRIPTABLE true STORED true ) 00037 Q_PROPERTY( Qt::DateFormat dateFormat READ dateFormat WRITE setDateFormat 00038 DESIGNABLE true SCRIPTABLE true STORED true ) 00039 00040 00041 public: 00042 QlabTableViewer( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); 00043 ~QlabTableViewer(); 00044 00045 public slots: 00046 virtual void polish(); 00047 00048 virtual QString filter() const; 00049 virtual void setFilter( const QString & flt ); 00050 virtual QString sort() const; 00051 virtual void setSort( const QString & newSort ); 00052 virtual QString dataCollection() const; 00053 virtual void setDataCollection( const QString & collec ); 00054 virtual QStringList searchAttributes() const ; 00055 virtual void setSearchAttributes( const QStringList & srch ) ; 00056 virtual MapEntry viewColumns() const ; 00057 virtual void setViewColumns( const MapEntry & cols ) ; 00058 00059 00060 signals : 00061 void refererChanged( QDataTable * curs ) ; 00062 00063 protected: 00064 QFrame* viewFrame; 00065 QLabel* searchLabel; 00066 QLineEdit* searcher; 00067 QPushButton* searchResetButton; 00068 QDataTable* tableView; 00069 00070 QGridLayout* QlabTableViewerLayout; 00071 QVBoxLayout* viewFrameLayout; 00072 QHBoxLayout* searchlayout; 00073 MapEntry dataSlots ; 00074 00075 protected slots: 00076 virtual void languageChange(); 00077 00078 private: 00079 QSqlCursor * refx ; 00080 QString defaultFilter ; 00081 virtual void init(); 00082 00083 private slots: 00084 virtual void resetSearch(); 00085 virtual void findIt( const QString & txt ); 00086 void selectionChanged( QSqlRecord * buffer ); 00087 00088 }; 00089 00090 #endif // QLABTABLEVIEWER_H