src/qt3support/sql/q3dataview.cpp
changeset 0 1918ee327afb
child 4 3b1da2848fc7
equal deleted inserted replaced
-1:000000000000 0:1918ee327afb
       
     1 /****************************************************************************
       
     2 **
       
     3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     4 ** All rights reserved.
       
     5 ** Contact: Nokia Corporation (qt-info@nokia.com)
       
     6 **
       
     7 ** This file is part of the Qt3Support module of the Qt Toolkit.
       
     8 **
       
     9 ** $QT_BEGIN_LICENSE:LGPL$
       
    10 ** No Commercial Usage
       
    11 ** This file contains pre-release code and may not be distributed.
       
    12 ** You may use this file in accordance with the terms and conditions
       
    13 ** contained in the Technology Preview License Agreement accompanying
       
    14 ** this package.
       
    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 ** If you have questions regarding the use of this file, please contact
       
    29 ** Nokia at qt-info@nokia.com.
       
    30 **
       
    31 **
       
    32 **
       
    33 **
       
    34 **
       
    35 **
       
    36 **
       
    37 **
       
    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 
       
    48 QT_BEGIN_NAMESPACE
       
    49 
       
    50 class Q3DataViewPrivate
       
    51 {
       
    52 public:
       
    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 
       
    84 Q3DataView::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 
       
    94 Q3DataView::~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 
       
   105 void 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 
       
   118 void 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 
       
   131 Q3SqlForm* 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 
       
   145 void 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 
       
   158 QSqlRecord* 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 
       
   171 void 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 
       
   183 void 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 
       
   199 void Q3DataView::refresh(QSqlRecord* buf)
       
   200 {
       
   201     if (buf && buf != record())
       
   202         setRecord(buf);
       
   203     readFields();
       
   204 }
       
   205 
       
   206 QT_END_NAMESPACE
       
   207 
       
   208 #endif // QT_NO_SQL_VIEW_WIDGETS