source: trunk/src/qt3support/sql/q3dataview.cpp@ 561

Last change on this file since 561 was 561, checked in by Dmitry A. Kuminov, 15 years ago

trunk: Merged in qt 4.6.1 sources.

File size: 5.3 KB
Line 
1/****************************************************************************
2**
3** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
4** All rights reserved.
5** Contact: Nokia Corporation ([email protected])
6**
7** This file is part of the Qt3Support module of the Qt Toolkit.
8**
9** $QT_BEGIN_LICENSE:LGPL$
10** Commercial Usage
11** Licensees holding valid Qt Commercial licenses may use this file in
12** accordance with the Qt Commercial License Agreement provided with the
13** Software or, alternatively, in accordance with the terms contained in
14** a written agreement between you and Nokia.
15**
16** GNU Lesser General Public License Usage
17** Alternatively, this file may be used under the terms of the GNU Lesser
18** General Public License version 2.1 as published by the Free Software
19** Foundation and appearing in the file LICENSE.LGPL included in the
20** packaging of this file. Please review the following information to
21** ensure the GNU Lesser General Public License version 2.1 requirements
22** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23**
24** In addition, as a special exception, Nokia gives you certain additional
25** rights. These rights are described in the Nokia Qt LGPL Exception
26** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27**
28** GNU General Public License Usage
29** Alternatively, this file may be used under the terms of the GNU
30** General Public License version 3.0 as published by the Free Software
31** Foundation and appearing in the file LICENSE.GPL included in the
32** packaging of this file. Please review the following information to
33** ensure the GNU General Public License version 3.0 requirements will be
34** met: http://www.gnu.org/copyleft/gpl.html.
35**
36** If you have questions regarding the use of this file, please contact
37** Nokia at [email protected].
38** $QT_END_LICENSE$
39**
40****************************************************************************/
41
42#include "q3dataview.h"
43
44#ifndef QT_NO_SQL_VIEW_WIDGETS
45
46#include "private/q3sqlmanager_p.h"
47
48QT_BEGIN_NAMESPACE
49
50class Q3DataViewPrivate
51{
52public:
53 Q3DataViewPrivate() {}
54 Q3SqlFormManager frm;
55};
56
57
58/*!
59 \class Q3DataView
60 \brief The Q3DataView class provides read-only SQL forms.
61
62 \compat
63
64 This class provides a form which displays SQL field data from a
65 record buffer. Because Q3DataView does not support editing it uses
66 less resources than a Q3DataBrowser. This class is well suited for
67 displaying read-only data from a SQL database.
68
69 If you want a to present your data in an editable form use
70 Q3DataBrowser; if you want a table-based presentation of your data
71 use Q3DataTable.
72
73 The form is associated with the data view with setForm() and the
74 record is associated with setRecord(). You can also pass a
75 QSqlRecord to the refresh() function which will set the record to
76 the given record and read the record's fields into the form.
77*/
78
79/*!
80 Constructs a data view which is a child of \a parent, called \a
81 name, and with widget flags \a fl.
82*/
83
84Q3DataView::Q3DataView(QWidget *parent, const char *name, Qt::WindowFlags fl)
85 : QWidget(parent, name, fl)
86{
87 d = new Q3DataViewPrivate();
88}
89
90/*!
91 Destroys the object and frees any allocated resources.
92*/
93
94Q3DataView::~Q3DataView()
95{
96 delete d;
97}
98
99/*!
100 Clears the default form's values. If there is no default form,
101 nothing happens. All the values are set to their 'zero state',
102 e.g. 0 for numeric fields, "" for string fields.
103*/
104
105void Q3DataView::clearValues()
106{
107 d->frm.clearValues();
108}
109
110/*!
111 Sets the form used by the data view to \a form. If a record has
112 already been assigned to the data view, the form will display that
113 record's data.
114
115 \sa form()
116*/
117
118void Q3DataView::setForm(Q3SqlForm* form)
119{
120 d->frm.setForm(form);
121}
122
123
124/*!
125 Returns the default form used by the data view, or 0 if there is
126 none.
127
128 \sa setForm()
129*/
130
131Q3SqlForm* Q3DataView::form()
132{
133 return d->frm.form();
134}
135
136
137/*!
138 Sets the record used by the data view to \a record. If a form has
139 already been assigned to the data view, the form will display the
140 data from \a record in that form.
141
142 \sa record()
143*/
144
145void Q3DataView::setRecord(QSqlRecord* record)
146{
147 d->frm.setRecord(record);
148}
149
150
151/*!
152 Returns the default record used by the data view, or 0 if there is
153 none.
154
155 \sa setRecord()
156*/
157
158QSqlRecord* Q3DataView::record()
159{
160 return d->frm.record();
161}
162
163
164/*!
165 Causes the default form to read its fields from the record buffer.
166 If there is no default form, or no record, nothing happens.
167
168 \sa setForm()
169*/
170
171void Q3DataView::readFields()
172{
173 d->frm.readFields();
174}
175
176/*!
177 Causes the default form to write its fields to the record buffer.
178 If there is no default form, or no record, nothing happens.
179
180 \sa setForm()
181*/
182
183void Q3DataView::writeFields()
184{
185 d->frm.writeFields();
186}
187
188/*!
189 Causes the default form to display the contents of \a buf. If
190 there is no default form, nothing happens.The \a buf also becomes
191 the default record for all subsequent calls to readFields() and
192 writefields(). This slot is equivalant to calling:
193
194 \snippet doc/src/snippets/code/src_qt3support_sql_q3dataview.cpp 0
195
196 \sa setRecord() readFields()
197*/
198
199void Q3DataView::refresh(QSqlRecord* buf)
200{
201 if (buf && buf != record())
202 setRecord(buf);
203 readFields();
204}
205
206QT_END_NAMESPACE
207
208#endif // QT_NO_SQL_VIEW_WIDGETS
Note: See TracBrowser for help on using the repository browser.