src/declarative/qml/qdeclarativeparserstatus.cpp
branchGCC_SURGE
changeset 31 5daf16870df6
parent 30 5dc02b23752f
equal deleted inserted replaced
27:93b982ccede2 31:5daf16870df6
       
     1 /****************************************************************************
       
     2 **
       
     3 ** Copyright (C) 2010 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 QtDeclarative 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 "qdeclarativeparserstatus.h"
       
    43 
       
    44 QT_BEGIN_NAMESPACE
       
    45 
       
    46 /*!
       
    47     \class QDeclarativeParserStatus
       
    48     \since 4.7
       
    49     \brief The QDeclarativeParserStatus class provides updates on the QML parser state.
       
    50 
       
    51     QDeclarativeParserStatus provides a mechanism for classes instantiated by
       
    52     a QDeclarativeEngine to receive notification at key points in their creation.
       
    53 
       
    54     This class is often used for optimization purposes, as it allows you to defer an
       
    55     expensive operation until after all the properties have been set on an
       
    56     object. For example, QML's \l {Text} element uses the parser status
       
    57     to defer text layout until all of its properties have been set (we
       
    58     don't want to layout when the \c text is assigned, and then relayout
       
    59     when the \c font is assigned, and relayout again when the \c width is assigned,
       
    60     and so on).
       
    61 
       
    62     To use QDeclarativeParserStatus, you must inherit both a QObject-derived class
       
    63     and QDeclarativeParserStatus, and use the Q_INTERFACES() macro.
       
    64 
       
    65     \code
       
    66     class MyObject : public QObject, public QDeclarativeParserStatus
       
    67     {
       
    68         Q_OBJECT
       
    69         Q_INTERFACES(QDeclarativeParserStatus)
       
    70 
       
    71     public:
       
    72         MyObject(QObject *parent = 0);
       
    73         ...
       
    74         void classBegin();
       
    75         void componentComplete();
       
    76     }
       
    77     \endcode
       
    78 */
       
    79 
       
    80 /*! \internal */
       
    81 QDeclarativeParserStatus::QDeclarativeParserStatus()
       
    82 : d(0)
       
    83 {
       
    84 }
       
    85 
       
    86 /*! \internal */
       
    87 QDeclarativeParserStatus::~QDeclarativeParserStatus()
       
    88 {
       
    89     if(d)
       
    90         (*d) = 0;
       
    91 }
       
    92 
       
    93 /*!
       
    94     \fn void QDeclarativeParserStatus::classBegin()
       
    95 
       
    96     Invoked after class creation, but before any properties have been set.
       
    97 */
       
    98 
       
    99 /*!
       
   100     \fn void QDeclarativeParserStatus::componentComplete()
       
   101 
       
   102     Invoked after the root component that caused this instantiation has 
       
   103     completed construction.  At this point all static values and binding values
       
   104     have been assigned to the class.
       
   105 */
       
   106 
       
   107 QT_END_NAMESPACE