kexi
kexidataprovider.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef KEXIFORMDATAPROVIDER_H
00021 #define KEXIFORMDATAPROVIDER_H
00022
00023 #include "kexiformdataiteminterface.h"
00024 #include <qptrdict.h>
00025
00026 class KexiTableItem;
00027 namespace KexiDB {
00028 class QuerySchema;
00029 }
00030
00032
00042 class KEXIFORMUTILS_EXPORT KexiFormDataProvider : public KexiDataItemChangesListener
00043 {
00044 public:
00045 KexiFormDataProvider();
00046 virtual ~KexiFormDataProvider();
00047
00052 void setMainDataSourceWidget(QWidget* mainWidget);
00053
00054 QStringList usedDataSources() const { return m_usedDataSources; }
00055
00056
00057
00059 void fillDataItems(KexiTableItem& row);
00060
00063 virtual void valueChanged(KexiDataItemInterface* item);
00064
00069 virtual bool cursorAtNewRow();
00070
00075 void invalidateDataSources( const QValueList<uint>& invalidSources,
00076 KexiDB::QuerySchema* query = 0 );
00077
00081 void fillDuplicatedDataItems(KexiFormDataItemInterface* item, const QVariant& value);
00082
00083 protected:
00084 QWidget *m_mainWidget;
00085 QPtrDict<char> *m_duplicatedItems;
00086 typedef QMap<KexiFormDataItemInterface*,uint> KexiFormDataItemInterfaceToIntMap;
00087 QPtrList<KexiFormDataItemInterface> m_dataItems;
00088 QStringList m_usedDataSources;
00089 KexiFormDataItemInterfaceToIntMap m_fieldNumbersForDataItems;
00090 bool m_disableFillDuplicatedDataItems;
00091 };
00092
00093 #endif
|