homescreenapp/stateplugins/hsapplibrarystateplugin/src/hssearchviewbuilder.cpp
author hgs
Fri, 06 Aug 2010 13:36:36 +0300
changeset 71 1db7cc813a4e
permissions -rw-r--r--
201031
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
71
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
 * All rights reserved.
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
 *
hgs
parents:
diff changeset
     9
 * Initial Contributors:
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
 *
hgs
parents:
diff changeset
    12
 * Contributors:
hgs
parents:
diff changeset
    13
 *
hgs
parents:
diff changeset
    14
 * Description: Search View Builder
hgs
parents:
diff changeset
    15
 *
hgs
parents:
diff changeset
    16
 */
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#include <HbSearchPanel>
hgs
parents:
diff changeset
    19
#include <HbView>
hgs
parents:
diff changeset
    20
#include <HbListView>
hgs
parents:
diff changeset
    21
#include <HbGroupBox>
hgs
parents:
diff changeset
    22
#include "hssearchviewbuilder.h"
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
const char *searchDocmlFile           = ":/xml/searchview.docml";
hgs
parents:
diff changeset
    25
const char *searchViewLabeledList     = "searchViewLabeledList";
hgs
parents:
diff changeset
    26
const char *searchViewList            = "searchViewList";
hgs
parents:
diff changeset
    27
const char *searchViewLabeledEmpty    = "searchViewLabeledEmpty";
hgs
parents:
diff changeset
    28
const char *searchViewEmpty           = "searchViewEmpty";
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
/*!
hgs
parents:
diff changeset
    32
    \class HsSearchViewBuilder
hgs
parents:
diff changeset
    33
    \ingroup group_hsmenustateplugin
hgs
parents:
diff changeset
    34
hgs
parents:
diff changeset
    35
    \brief Search View Builder
hgs
parents:
diff changeset
    36
hgs
parents:
diff changeset
    37
    Reads UI object from Application Library Search docml
hgs
parents:
diff changeset
    38
hgs
parents:
diff changeset
    39
    \sa HsMenuView
hgs
parents:
diff changeset
    40
*/
hgs
parents:
diff changeset
    41
hgs
parents:
diff changeset
    42
/*!
hgs
parents:
diff changeset
    43
 Constructor. Loads UI objects from docml.
hgs
parents:
diff changeset
    44
 */
hgs
parents:
diff changeset
    45
HsSearchViewBuilder::HsSearchViewBuilder() : mLoader(new HbDocumentLoader()),
hgs
parents:
diff changeset
    46
    mLabledContext(false)
hgs
parents:
diff changeset
    47
{
hgs
parents:
diff changeset
    48
    bool loadStatusOk(false);
hgs
parents:
diff changeset
    49
    mLoadedObjects =
hgs
parents:
diff changeset
    50
            mLoader->load(searchDocmlFile, &loadStatusOk).toSet();
hgs
parents:
diff changeset
    51
    Q_ASSERT(loadStatusOk);
hgs
parents:
diff changeset
    52
}
hgs
parents:
diff changeset
    53
hgs
parents:
diff changeset
    54
/*!
hgs
parents:
diff changeset
    55
 Destructor. Deletes seto of loaded objects.
hgs
parents:
diff changeset
    56
 */
hgs
parents:
diff changeset
    57
HsSearchViewBuilder::~HsSearchViewBuilder()
hgs
parents:
diff changeset
    58
{
hgs
parents:
diff changeset
    59
    qDeleteAll(mLoadedObjects);
hgs
parents:
diff changeset
    60
}
hgs
parents:
diff changeset
    61
hgs
parents:
diff changeset
    62
/*!
hgs
parents:
diff changeset
    63
 \return Pointer to the view.
hgs
parents:
diff changeset
    64
 Memory ownership is not changed.
hgs
parents:
diff changeset
    65
 */
hgs
parents:
diff changeset
    66
HbView *HsSearchViewBuilder::searchView()
hgs
parents:
diff changeset
    67
{
hgs
parents:
diff changeset
    68
    return qobject_cast<HbView *>(mLoader->findWidget("view"));
hgs
parents:
diff changeset
    69
}
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
/*!
hgs
parents:
diff changeset
    72
 \return Pointer to list view.
hgs
parents:
diff changeset
    73
 The pointer is valid until the HsSearchViewBuilder instance is destroyed.
hgs
parents:
diff changeset
    74
 Memory ownership is not changed.
hgs
parents:
diff changeset
    75
 */
hgs
parents:
diff changeset
    76
HbListView *HsSearchViewBuilder::searchListView()
hgs
parents:
diff changeset
    77
{
hgs
parents:
diff changeset
    78
    return qobject_cast<HbListView *>(mLoader->findWidget("listView"));
hgs
parents:
diff changeset
    79
}
hgs
parents:
diff changeset
    80
hgs
parents:
diff changeset
    81
/*!
hgs
parents:
diff changeset
    82
 \return Pointer to search panel.
hgs
parents:
diff changeset
    83
 The pointer is valid until the HsSearchViewBuilder instance is destroyed.
hgs
parents:
diff changeset
    84
 Memory ownership is not changed.
hgs
parents:
diff changeset
    85
 */
hgs
parents:
diff changeset
    86
HbSearchPanel *HsSearchViewBuilder::searchPanel()
hgs
parents:
diff changeset
    87
{
hgs
parents:
diff changeset
    88
    return qobject_cast<HbSearchPanel *>(mLoader->findWidget("searchPanel"));
hgs
parents:
diff changeset
    89
}
hgs
parents:
diff changeset
    90
hgs
parents:
diff changeset
    91
/*!
hgs
parents:
diff changeset
    92
 \return Pointer to the view label.
hgs
parents:
diff changeset
    93
 The pointer is valid until the HsSearchViewBuilder instance is destroyed.
hgs
parents:
diff changeset
    94
 Memory ownership is not changed.
hgs
parents:
diff changeset
    95
 */
hgs
parents:
diff changeset
    96
HbGroupBox *HsSearchViewBuilder::searchViewLabel()
hgs
parents:
diff changeset
    97
{
hgs
parents:
diff changeset
    98
    return qobject_cast<HbGroupBox *>(mLoader->findWidget("label"));
hgs
parents:
diff changeset
    99
}
hgs
parents:
diff changeset
   100
hgs
parents:
diff changeset
   101
/*!
hgs
parents:
diff changeset
   102
 Switches HsSearchViewBuilder to labeled view layout.
hgs
parents:
diff changeset
   103
 */
hgs
parents:
diff changeset
   104
void HsSearchViewBuilder::setSearchLabledContext()
hgs
parents:
diff changeset
   105
{
hgs
parents:
diff changeset
   106
    mLabledContext = true;
hgs
parents:
diff changeset
   107
}
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
/*!
hgs
parents:
diff changeset
   110
 \return true if section was succesfull loaded.
hgs
parents:
diff changeset
   111
 Loads proper empty docml section.
hgs
parents:
diff changeset
   112
 */
hgs
parents:
diff changeset
   113
bool HsSearchViewBuilder::loadViewEmptySection()
hgs
parents:
diff changeset
   114
{
hgs
parents:
diff changeset
   115
    bool loadStatusOk(false);
hgs
parents:
diff changeset
   116
    if(mLabledContext) {
hgs
parents:
diff changeset
   117
        mLoadedObjects |= mLoader->load(
hgs
parents:
diff changeset
   118
                searchDocmlFile,
hgs
parents:
diff changeset
   119
                searchViewLabeledEmpty,
hgs
parents:
diff changeset
   120
                &loadStatusOk).toSet();
hgs
parents:
diff changeset
   121
    } else {
hgs
parents:
diff changeset
   122
        mLoadedObjects |= mLoader->load(
hgs
parents:
diff changeset
   123
                searchDocmlFile,
hgs
parents:
diff changeset
   124
                searchViewEmpty,
hgs
parents:
diff changeset
   125
                &loadStatusOk).toSet();
hgs
parents:
diff changeset
   126
    }
hgs
parents:
diff changeset
   127
    Q_ASSERT(loadStatusOk);
hgs
parents:
diff changeset
   128
    return loadStatusOk;
hgs
parents:
diff changeset
   129
}
hgs
parents:
diff changeset
   130
hgs
parents:
diff changeset
   131
/*!
hgs
parents:
diff changeset
   132
 \return true if section was succesfull loaded.
hgs
parents:
diff changeset
   133
 Loads proper list docml section.
hgs
parents:
diff changeset
   134
 */
hgs
parents:
diff changeset
   135
bool HsSearchViewBuilder::loadViewListSection()
hgs
parents:
diff changeset
   136
{
hgs
parents:
diff changeset
   137
    bool loadStatusOk(false);
hgs
parents:
diff changeset
   138
    if(mLabledContext) {
hgs
parents:
diff changeset
   139
        mLoadedObjects |= mLoader->load(
hgs
parents:
diff changeset
   140
                searchDocmlFile,
hgs
parents:
diff changeset
   141
                searchViewLabeledList,
hgs
parents:
diff changeset
   142
                &loadStatusOk).toSet();
hgs
parents:
diff changeset
   143
    } else {
hgs
parents:
diff changeset
   144
        mLoadedObjects |= mLoader->load(
hgs
parents:
diff changeset
   145
                searchDocmlFile,
hgs
parents:
diff changeset
   146
                searchViewList,
hgs
parents:
diff changeset
   147
                &loadStatusOk).toSet();
hgs
parents:
diff changeset
   148
    }
hgs
parents:
diff changeset
   149
    Q_ASSERT(loadStatusOk);
hgs
parents:
diff changeset
   150
    return loadStatusOk;
hgs
parents:
diff changeset
   151
}