1 /****************************************************************************
2 **
3 ** Definition of QSqlForm class
4 **
5 ** Created : 2000-11-03
6 **
7 ** Copyright (C) 2005-2007 Trolltech ASA.  All rights reserved.
8 **
9 ** This file is part of the sql module of the Qt GUI Toolkit.
10 **
11 ** This file may be distributed under the terms of the Q Public License
12 ** as defined by Trolltech ASA of Norway and appearing in the file
13 ** LICENSE.QPL included in the packaging of this file.
14 **
15 ** This file may be distributed and/or modified under the terms of the
16 ** GNU General Public License version 2 as published by the Free Software
17 ** Foundation and appearing in the file LICENSE.GPL included in the
18 ** packaging of this file.
19 **
20 ** Licensees holding valid Qt Enterprise Edition licenses may use this
21 ** file in accordance with the Qt Commercial License Agreement provided
22 ** with the Software.
23 **
24 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
25 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
26 **
27 ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
28 **   information about Qt Commercial License Agreements.
29 ** See http://www.trolltech.com/qpl/ for QPL licensing information.
30 ** See http://www.trolltech.com/gpl/ for GPL licensing information.
31 **
32 ** Contact info@trolltech.com if any conditions of this licensing are
33 ** not clear to you.
34 **
35 **********************************************************************/
36 
37 #ifndef QSQLFORM_H
38 #define QSQLFORM_H
39 
40 #ifndef QT_H
41 #include "qobject.h"
42 #include "qmap.h"
43 #endif // QT_H
44 
45 #if !defined( QT_MODULE_SQL ) || defined( QT_LICENSE_PROFESSIONAL )
46 #define QM_EXPORT_SQL
47 #else
48 #define QM_EXPORT_SQL Q_EXPORT
49 #endif
50 
51 #ifndef QT_NO_SQL_FORM
52 
53 class QSqlField;
54 class QSqlRecord;
55 class QSqlEditorFactory;
56 class QSqlPropertyMap;
57 class QWidget;
58 class QSqlFormPrivate;
59 
60 class QM_EXPORT_SQL QSqlForm : public QObject
61 {
62     Q_OBJECT
63 public:
64     QSqlForm( QObject * parent = 0, const char * name = 0 );
65     ~QSqlForm();
66 
67     virtual void insert( QWidget * widget, const QString& field );
68     virtual void remove( const QString& field );
69     uint         count() const;
70 
71     QWidget *   widget( uint i ) const;
72     QSqlField * widgetToField( QWidget * widget ) const;
73     QWidget *   fieldToWidget( QSqlField * field ) const;
74 
75     void        installPropertyMap( QSqlPropertyMap * map );
76 
77     virtual void setRecord( QSqlRecord* buf );
78 
79 public slots:
80     virtual void readField( QWidget * widget );
81     virtual void writeField( QWidget * widget );
82     virtual void readFields();
83     virtual void writeFields();
84 
85     virtual void clear();
86     virtual void clearValues( bool nullify = FALSE );
87 
88 protected:
89     virtual void insert( QWidget * widget, QSqlField * field );
90     virtual void remove( QWidget * widget );
91     void clearMap();
92 
93 private:
94     virtual void sync();
95     QSqlFormPrivate* d;
96 
97 #if defined(Q_DISABLE_COPY) // Disabled copy constructor and operator=
98     QSqlForm( const QSqlForm & );
99     QSqlForm &operator=( const QSqlForm & );
100 #endif
101 };
102 
103 #endif // QT_NO_SQL
104 #endif // QSQLFORM_H
105