src/hbutils/document/hbdocumentloader.cpp
author hgs
Mon, 18 Oct 2010 18:23:13 +0300
changeset 34 ed14f46c0e55
parent 7 923ff622b8b9
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/****************************************************************************
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
**
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
** Copyright (C) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
** All rights reserved.
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
** Contact: Nokia Corporation (developer.feedback@nokia.com)
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
**
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
** This file is part of the HbUtils module of the UI Extensions for Mobile.
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
**
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
** GNU Lesser General Public License Usage
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
** This file may be used under the terms of the GNU Lesser General Public
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
** License version 2.1 as published by the Free Software Foundation and
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
** appearing in the file LICENSE.LGPL included in the packaging of this file.
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
** Please review the following information to ensure the GNU Lesser General
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
** Public License version 2.1 requirements will be met:
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
**
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
** In addition, as a special exception, Nokia gives you certain additional
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
** rights.  These rights are described in the Nokia Qt LGPL Exception
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
**
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
** If you have questions regarding the use of this file, please contact
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
** Nokia at developer.feedback@nokia.com.
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
**
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
****************************************************************************/
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
#include "hbdocumentloader.h"
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
#include "hbdocumentloader_p.h"
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
#include "hbdocumentloaderactions_p.h"
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
    29
#include "hbdocumentloadersyntax_p.h"
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
#include <QString>
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
#include <QGraphicsWidget>
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
#include <QFile>
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
/*!
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
    @stable
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
    @hbutils
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
    \class HbDocumentLoader
34
hgs
parents: 7
diff changeset
    39
    \brief The HbDocumentLoader class loads UI definitions from DocML files and constructs a hierarchy of widgets in memory.
hgs
parents: 7
diff changeset
    40
    
hgs
parents: 7
diff changeset
    41
    HbDocumentLoader loads and parses UI definitions from DocML files.
hgs
parents: 7
diff changeset
    42
    A DocML file usually contains a UI definition of a view or a dialog, and defines layouts, widgets and actions.
hgs
parents: 7
diff changeset
    43
    Using HbDocumentLoader you can load an entire UI screen by calling the load() method, which returns an object list to the caller.
hgs
parents: 7
diff changeset
    44
    The object list contains the root objects defined at the top level of the DocML file (child elements of <hbdocument>). Each root object
hgs
parents: 7
diff changeset
    45
    may have child objects, so a hierarchy of objects is returned to the caller. Object ownership is passed to the caller.
hgs
parents: 7
diff changeset
    46
    
hgs
parents: 7
diff changeset
    47
    An HbDocumentLoader object keeps references to the loaded objects until the reset() method is called, but it is up to your code
hgs
parents: 7
diff changeset
    48
    to manage the lifecycle of the returned objects. For widgets this is often easy, since they have either a containing view or a
hgs
parents: 7
diff changeset
    49
    layout as a parent: Qt's object cleanup policy means that child objects are automatically deleted. 
hgs
parents: 7
diff changeset
    50
    You must be careful to manage the lifecycle of any root objects returned by load() that are not owned by another object,
hgs
parents: 7
diff changeset
    51
    such as HbAction objects that do not have a menu or toolbar role.  
hgs
parents: 7
diff changeset
    52
            
hgs
parents: 7
diff changeset
    53
    A DocML file contains only a UI definition. To connect your UI objects in code you must get pointers to them.
hgs
parents: 7
diff changeset
    54
    Use the findObject() and findWidget() methods to get pointers to your UI objects, which you can then connect using their signals and slots. 
hgs
parents: 7
diff changeset
    55
         
hgs
parents: 7
diff changeset
    56
    HbDocumentLoader uses the createObject() method to create objects. By default, this method always creates new object instances
hgs
parents: 7
diff changeset
    57
    based on the class name in the DocML. This method can create the public widgets of the Hb library and some basic objects that derive
hgs
parents: 7
diff changeset
    58
    from QObject, such as HbAction. 
hgs
parents: 7
diff changeset
    59
    In order to be able to load your own classes of objects from DocML, for example to load your own custom widgets, you can either:
hgs
parents: 7
diff changeset
    60
    - create your own custom loader by subclassing from HbDocumentLoader and overriding the createObject() method.
hgs
parents: 7
diff changeset
    61
    - create an  HbDocumentLoaderPlugin object in a separate library.
hgs
parents: 7
diff changeset
    62
      
hgs
parents: 7
diff changeset
    63
    HbDocumentLoader can load DocML in either text-based or binary format. Using a binary format reduces the time to load and parse a DocML file.
hgs
parents: 7
diff changeset
    64
    You can create binary DocML files by specifying your DocML files in your project file. To declare a DocML file for conversion to binary format, add the following to the project file:
hgs
parents: 7
diff changeset
    65
    \code
hgs
parents: 7
diff changeset
    66
    DOCML += hello_docml_world.docml
hgs
parents: 7
diff changeset
    67
    \endcode
hgs
parents: 7
diff changeset
    68
    When the build process runs, files with the suffix docml.bin are created. You create entries in the resource file to load the binary DocML.
hgs
parents: 7
diff changeset
    69
    The following shows a binary DocML file declared in the resource file. The binary file is given an alias ending in .docml which is used to reference it in code.
hgs
parents: 7
diff changeset
    70
    \code
hgs
parents: 7
diff changeset
    71
    <RCC>
hgs
parents: 7
diff changeset
    72
    <qresource prefix="/docml">
hgs
parents: 7
diff changeset
    73
        <file alias="hello_docml_world.docml">hello_docml_world.docml.bin</file>
hgs
parents: 7
diff changeset
    74
    </qresource>
hgs
parents: 7
diff changeset
    75
    </RCC>
hgs
parents: 7
diff changeset
    76
    \endcode
hgs
parents: 7
diff changeset
    77
    
hgs
parents: 7
diff changeset
    78
    \section _usecases_hbdocumentloader Using the HbDocumentLoader class.
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    79
    
34
hgs
parents: 7
diff changeset
    80
    \subsection _uc_001_hbdocumentloader Loading a simple DocML file containing a view definition.
hgs
parents: 7
diff changeset
    81
        
hgs
parents: 7
diff changeset
    82
    \code
hgs
parents: 7
diff changeset
    83
    int main(int argc, char *argv[])
hgs
parents: 7
diff changeset
    84
    {
hgs
parents: 7
diff changeset
    85
        HbApplication app(argc, argv);
hgs
parents: 7
diff changeset
    86
        HbMainWindow window;
hgs
parents: 7
diff changeset
    87
hgs
parents: 7
diff changeset
    88
        // Create a document loader object.
hgs
parents: 7
diff changeset
    89
        HbDocumentLoader loader;
hgs
parents: 7
diff changeset
    90
        bool ok = false;
hgs
parents: 7
diff changeset
    91
hgs
parents: 7
diff changeset
    92
        // Load the DocML file.
hgs
parents: 7
diff changeset
    93
        loader.load(":/docml/hello_docml_world.docml", &ok);
hgs
parents: 7
diff changeset
    94
hgs
parents: 7
diff changeset
    95
        if (ok) {
hgs
parents: 7
diff changeset
    96
            // Get the view and add it to the main window.
hgs
parents: 7
diff changeset
    97
            HbView* view = qobject_cast<HbView*>(loader.findWidget("view"));
hgs
parents: 7
diff changeset
    98
            window.addView(view);
hgs
parents: 7
diff changeset
    99
        } 
hgs
parents: 7
diff changeset
   100
        else {
hgs
parents: 7
diff changeset
   101
            qFatal("Unable to read :/docml/hello_docml_world.docml");
hgs
parents: 7
diff changeset
   102
        }
hgs
parents: 7
diff changeset
   103
hgs
parents: 7
diff changeset
   104
        window.show();
hgs
parents: 7
diff changeset
   105
        return app.exec();
hgs
parents: 7
diff changeset
   106
    }
hgs
parents: 7
diff changeset
   107
    \endcode
hgs
parents: 7
diff changeset
   108
    
hgs
parents: 7
diff changeset
   109
    \subsection _uc_002_hbdocumentloader Getting pointers to loaded objects and taking ownership.
hgs
parents: 7
diff changeset
   110
    Call findObject() and findWidget() to get pointers to and take ownership of loaded objects
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   111
34
hgs
parents: 7
diff changeset
   112
    \code
hgs
parents: 7
diff changeset
   113
    const QString LIST_VIEW = ":/resources/ui/listview.docml";
hgs
parents: 7
diff changeset
   114
    
hgs
parents: 7
diff changeset
   115
    HbDocumentLoader* loader;
hgs
parents: 7
diff changeset
   116
    loader = new HbDocumentLoader();
3
11d3954df52a Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   117
34
hgs
parents: 7
diff changeset
   118
    HbView* listView; 
hgs
parents: 7
diff changeset
   119
    HbListView* notesList;
hgs
parents: 7
diff changeset
   120
    HbAction* newNoteAction;
hgs
parents: 7
diff changeset
   121
    HbAction* deleteNoteAction;
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   122
    
34
hgs
parents: 7
diff changeset
   123
    // Load the DocML which defines the notes list view
hgs
parents: 7
diff changeset
   124
    bool loaded = false;
hgs
parents: 7
diff changeset
   125
    loader->reset();
hgs
parents: 7
diff changeset
   126
    loader->load(LIST_VIEW, &loaded);
hgs
parents: 7
diff changeset
   127
    Q_ASSERT_X(loaded, "Notes::load", "Unable to load view from DocML");
hgs
parents: 7
diff changeset
   128
    if ( loaded ) {
hgs
parents: 7
diff changeset
   129
hgs
parents: 7
diff changeset
   130
        QGraphicsWidget *widget = loader->findWidget(QString("view"));
hgs
parents: 7
diff changeset
   131
        if (widget) {
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   132
34
hgs
parents: 7
diff changeset
   133
            // Widgets
hgs
parents: 7
diff changeset
   134
            listView = qobject_cast<HbView*>(widget);
hgs
parents: 7
diff changeset
   135
            notesList = qobject_cast<HbListView*>(loader->findWidget("notesList"));
hgs
parents: 7
diff changeset
   136
hgs
parents: 7
diff changeset
   137
            // Actions
hgs
parents: 7
diff changeset
   138
            newNoteAction = qobject_cast<HbAction*>(loader->findObject("newNoteAction"));
hgs
parents: 7
diff changeset
   139
            deleteNoteAction = qobject_cast<HbAction*>(loader->findObject("deleteNoteAction"));
hgs
parents: 7
diff changeset
   140
          }
hgs
parents: 7
diff changeset
   141
    \endcode
hgs
parents: 7
diff changeset
   142
    
hgs
parents: 7
diff changeset
   143
    
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   144
*/
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   145
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   146
/*!
34
hgs
parents: 7
diff changeset
   147
    Default Constructor. 
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   148
    
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   149
    Use HbDocumentLoader(const HbMainWindow *window) constructor if an application 
34
hgs
parents: 7
diff changeset
   150
    has an HbMainWindow. If the main window parameter is omitted 
hgs
parents: 7
diff changeset
   151
    HbDeviceProfile::current() is used to access the device profile.
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   152
 */
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   153
HbDocumentLoader::HbDocumentLoader()
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   154
: d_ptr(new HbDocumentLoaderPrivate(0))
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   155
{
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   156
    Q_D(HbDocumentLoader);
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   157
    d->q_ptr = this;
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   158
}
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   159
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   160
/*!
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   161
    Constructor. 
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   162
    
34
hgs
parents: 7
diff changeset
   163
    HbMainWindow is needed to access the device profile of the application's main window.
hgs
parents: 7
diff changeset
   164
    HbDeviceProfile::current() is used in case where the window parameter is omitted.
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   165
    \param window main window of the loaded layout.
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   166
 */
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   167
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   168
HbDocumentLoader::HbDocumentLoader(const HbMainWindow *window)
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   169
: d_ptr(new HbDocumentLoaderPrivate(window))
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   170
{
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   171
    Q_D(HbDocumentLoader);
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   172
    d->q_ptr = this;
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   173
}
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   175
/*!
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   176
    Destructor.
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   177
*/
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   178
HbDocumentLoader::~HbDocumentLoader()
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   179
{
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   180
    delete d_ptr;
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   181
}
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   182
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   183
/*!
34
hgs
parents: 7
diff changeset
   184
    Loads and processes a DocML file. 
hgs
parents: 7
diff changeset
   185
hgs
parents: 7
diff changeset
   186
    On successful execution, returns a list of root objects. This list contains 
hgs
parents: 7
diff changeset
   187
    only the objects which do not have an owner already. For example the child of a parent 
hgs
parents: 7
diff changeset
   188
    widget is never returned, and the parent is returned only if it does not 
hgs
parents: 7
diff changeset
   189
    have its own parent or a specific role like a menu-role. The document 
hgs
parents: 7
diff changeset
   190
    loader instance does not own any of the objects: the ones which do not 
hgs
parents: 7
diff changeset
   191
    have any other owner are returned within the root object list. The caller 
hgs
parents: 7
diff changeset
   192
    is resposible of handling the lifecycle of the returned objects.
hgs
parents: 7
diff changeset
   193
hgs
parents: 7
diff changeset
   194
    Usually this returns the view or the dialog which the loaded DocML files defines. 
hgs
parents: 7
diff changeset
   195
hgs
parents: 7
diff changeset
   196
    There are also situations when this function returns an empty list. These cases 
hgs
parents: 7
diff changeset
   197
    usually include sections, which change the existing properties of loaded objects and do not 
hgs
parents: 7
diff changeset
   198
    create any new root objects. Also, any objects passed to the document loader using the setObjectTree() 
hgs
parents: 7
diff changeset
   199
    function are not returned. The success of calling load() cannot therefore be
hgs
parents: 7
diff changeset
   200
    determined directly by the number of the returned objects. 
hgs
parents: 7
diff changeset
   201
    Check the parameter \a ok to see if the document was loaded successfully.
hgs
parents: 7
diff changeset
   202
hgs
parents: 7
diff changeset
   203
    
hgs
parents: 7
diff changeset
   204
hgs
parents: 7
diff changeset
   205
    \param fileName The %file to be loaded.
hgs
parents: 7
diff changeset
   206
    \param section Space separated path to the section to load.
hgs
parents: 7
diff changeset
   207
    \param ok Indicates whether loading was successful.
hgs
parents: 7
diff changeset
   208
    \return Root objects list. On failed execution, returns an empty list and deletes the created object hierarchy, which 
hgs
parents: 7
diff changeset
   209
    may be incomplete.
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   210
*/
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   211
QObjectList HbDocumentLoader::load( const QString &fileName, const QString &section , bool *ok )
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   212
{
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   213
    QFile file( fileName );
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   214
    
7
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   215
    if( !file.open( QFile::ReadOnly ) ) {
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   216
        qWarning( "Unable to open file" );
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   217
        if( ok ) {
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   218
            *ok = false;
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   219
        }
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   220
        return QList<QObject *>();
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   221
    }
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   222
    
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   223
    return load( &file, section, ok ) ;
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   224
}
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   225
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   226
/*!
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   227
    This is an overloaded member function, provided for convenience.
34
hgs
parents: 7
diff changeset
   228
    \param device The IO device to be processed.
hgs
parents: 7
diff changeset
   229
    \param section Space separated route to the section that you want to load.
hgs
parents: 7
diff changeset
   230
    \param ok Indicates whether loading was successful.
hgs
parents: 7
diff changeset
   231
    \return Root objects list.
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   232
*/
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   233
QObjectList HbDocumentLoader::load( QIODevice *device, const QString &section, bool *ok )
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   234
{
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   235
    Q_D(HbDocumentLoader);
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   236
 
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   237
    if( ok ) {
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   238
        *ok = d->load( device, section );
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   239
    } else {
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   240
        d->load( device, section );
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   241
    }
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   242
    return d->takeAll();
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   243
}
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   244
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   245
/*!
34
hgs
parents: 7
diff changeset
   246
    This is an overloaded member function, provided for convenience. It loads the part of the DocML that is
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   247
    outside of any section.
34
hgs
parents: 7
diff changeset
   248
    \param fileName The %file to be processed.
hgs
parents: 7
diff changeset
   249
    \param ok Indicates whether loading was successful.
hgs
parents: 7
diff changeset
   250
    \return Root objects list.
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   251
*/
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   252
QObjectList HbDocumentLoader::load( const QString &fileName, bool *ok )
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   253
{
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   254
    return load( fileName, QString(), ok );
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   255
}
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   256
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   257
/*!
34
hgs
parents: 7
diff changeset
   258
    This is an overloaded member function, provided for convenience. It loads the part of the DocML that is
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   259
    outside of any section.
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   260
    \param device IO device to be processed.
34
hgs
parents: 7
diff changeset
   261
    \param ok Indicates if loading was successful.
hgs
parents: 7
diff changeset
   262
    \return Root objects list.
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   263
*/
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   264
QObjectList HbDocumentLoader::load( QIODevice *device, bool *ok ) 
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   265
{
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   266
    return load( device, QString(), ok );
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   267
}
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   268
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
   269
/*!
34
hgs
parents: 7
diff changeset
   270
    Converts a text-based DocML document to a binary document at runtime. 
3
11d3954df52a Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   271
34
hgs
parents: 7
diff changeset
   272
    You can also convert DocML files to binary format at build time by listing the files in the "DOCML"
3
11d3954df52a Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   273
    variable in the .pro file. This will create a binary docml file called <file_name>.bin that
34
hgs
parents: 7
diff changeset
   274
    can be included with the application resources (.qrc file). 
3
11d3954df52a Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   275
    
11d3954df52a Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   276
    Known issues: Currently the resource compiler gives warnings about missing binary files during
34
hgs
parents: 7
diff changeset
   277
    qmake. You can safely ignore these warnings.
3
11d3954df52a Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   278
34
hgs
parents: 7
diff changeset
   279
    \param srcDevice Source IO device to be processed.
hgs
parents: 7
diff changeset
   280
    \param dstDevice Destination IO device to which to write the binary DocML.
hgs
parents: 7
diff changeset
   281
    \return True if the conversion to binary was successful.
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
   282
*/
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
   283
bool HbDocumentLoader::createBinary( QIODevice *srcDevice, QIODevice *dstDevice )
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
   284
{
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
   285
    Q_D(HbDocumentLoader);
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
   286
    return d->createBinary( srcDevice, dstDevice );
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
   287
}
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   288
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   289
/*!
34
hgs
parents: 7
diff changeset
   290
    Retrieves widget whose object name is \a name. 
hgs
parents: 7
diff changeset
   291
    \param name The name of the widget in DocML. 
hgs
parents: 7
diff changeset
   292
    \return The found widget or 0 if not found.
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   293
*/
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   294
QGraphicsWidget *HbDocumentLoader::findWidget(const QString &name) const
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   295
{
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   296
    const Q_D(HbDocumentLoader);
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   297
    return d->findWidget(name);
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   298
}
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   299
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   300
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   301
/*!
34
hgs
parents: 7
diff changeset
   302
    Retrieves object whose object name is \a name.
hgs
parents: 7
diff changeset
   303
    \param name The name of the widget in DocML. 
hgs
parents: 7
diff changeset
   304
    \return The found object or 0 if not found.
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   305
*/
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   306
QObject *HbDocumentLoader::findObject(const QString &name) const
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   307
{
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   308
    const Q_D(HbDocumentLoader);
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   309
    return d->findObject(name);
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   310
}
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   311
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   312
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   313
/*!
34
hgs
parents: 7
diff changeset
   314
    Inserts an object tree into the document loader object. 
hgs
parents: 7
diff changeset
   315
    You can use the output of the load() method as the \a roots parameter. 
6
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 3
diff changeset
   316
34
hgs
parents: 7
diff changeset
   317
    The document loader does not take ownership of the passed objects.
6
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 3
diff changeset
   318
34
hgs
parents: 7
diff changeset
   319
    \param roots The list of root objects to add to the loader.
hgs
parents: 7
diff changeset
   320
    \return True if the objects were successfully added to the document loader, false otherwise.
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   321
*/
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   322
bool HbDocumentLoader::setObjectTree( QObjectList roots )
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   323
{
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   324
    Q_D(HbDocumentLoader);
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   325
    return d->setObjectTree( roots );    
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   326
}
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   327
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   328
/*!
34
hgs
parents: 7
diff changeset
   329
    Looks up an object which inherits class \a type and for which the 
hgs
parents: 7
diff changeset
   330
    object name is \a name. If you decide to override this method in your own document loader class,
hgs
parents: 7
diff changeset
   331
    call this base class method in case you are
hgs
parents: 7
diff changeset
   332
    not able to create an instance of the specified object type.
hgs
parents: 7
diff changeset
   333
    \param type The type of the object to create.
hgs
parents: 7
diff changeset
   334
    \param name The object name of the object to create.
hgs
parents: 7
diff changeset
   335
    \return The created object or 0 if it could not be created.
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   336
*/
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   337
QObject *HbDocumentLoader::createObject(const QString& type, const QString &name)
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   338
{
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
   339
#ifdef HB_BOOTSTRAPPED
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
   340
    Q_UNUSED(type);
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
   341
    Q_UNUSED(name);
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
   342
    return 0;
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
   343
#else
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   344
    Q_D(HbDocumentLoader);
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   345
    return d->actions->createObjectWithFactory(type, name);
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
   346
#endif
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   347
}
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   348
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   349
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   350
/*!
34
hgs
parents: 7
diff changeset
   351
    Sets loader to an initial state without references to any loaded objects.
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   352
*/
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   353
void HbDocumentLoader::reset()
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   354
{
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   355
    Q_D(HbDocumentLoader);
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   356
    d->reset();
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   357
}
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   358
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   359
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   360
/*!
34
hgs
parents: 7
diff changeset
   361
    Prints the current version of the document loader and the minimum version of supported DocML in brackets
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   362
    For example "3.2 (1.4)" means that current version is 3.2 and DocML versions from 1.4 to 3.2 are supported   
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   363
*/
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   364
QString HbDocumentLoader::version()
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   365
{
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   366
    return HbDocumentLoaderPrivate::version();
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   367
}