phonebookui/cntcommonui/core/cntdefaultviewfactory.cpp
author hgs
Fri, 15 Oct 2010 12:24:46 +0300
changeset 81 640d30f4fb64
parent 72 6abfb1094884
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
72
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:
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#include "cntabstractviewfactory.h"
hgs
parents:
diff changeset
    19
#include "cntdetaileditor.h"
hgs
parents:
diff changeset
    20
#include "cntmainwindow.h"
hgs
parents:
diff changeset
    21
#include <cntviewparams.h>
hgs
parents:
diff changeset
    22
#include <cntviewsupplier.h>
hgs
parents:
diff changeset
    23
#include <cntuiextensionfactory.h>
hgs
parents:
diff changeset
    24
#include <hbstyleloader.h>
hgs
parents:
diff changeset
    25
// views
hgs
parents:
diff changeset
    26
#include "cntnamesview.h"
hgs
parents:
diff changeset
    27
#include "cntmycardview.h"
hgs
parents:
diff changeset
    28
#include "cntfavoritesview.h"
hgs
parents:
diff changeset
    29
#include "cntimageeditorview.h"
hgs
parents:
diff changeset
    30
#include "cntcollectionview.h"
hgs
parents:
diff changeset
    31
#include "cntgroupmemberview.h"
hgs
parents:
diff changeset
    32
#include "cntfavoritesmemberview.h"
hgs
parents:
diff changeset
    33
#include "cntcontactcardview.h"
hgs
parents:
diff changeset
    34
#include "cntgroupactionsview.h"
hgs
parents:
diff changeset
    35
#include "cnthistoryview.h"
hgs
parents:
diff changeset
    36
#include "cnteditview.h"
hgs
parents:
diff changeset
    37
#include "cntimportsview.h"
hgs
parents:
diff changeset
    38
#include "cntsettingsview.h"
hgs
parents:
diff changeset
    39
#include "cntextensionmanager.h"
hgs
parents:
diff changeset
    40
81
hgs
parents: 72
diff changeset
    41
const char *styleFiles = \
hgs
parents: 72
diff changeset
    42
    ":/style/cntcollectionviewlistitem.css" \
hgs
parents: 72
diff changeset
    43
    ":/style/cntcommondetailviewitem.css" \
hgs
parents: 72
diff changeset
    44
    ":/style/cntcommondetailviewitem.widgetml" \
hgs
parents: 72
diff changeset
    45
    ":/style/cntcontactcarddetailitem.css" \
hgs
parents: 72
diff changeset
    46
    ":/style/cntcontactcarddetailitem.widgetml" \
hgs
parents: 72
diff changeset
    47
    ":/style/cntcontactcarddetailitem_color.css" \
hgs
parents: 72
diff changeset
    48
    ":/style/cntcontactcardheadingitem.css" \
hgs
parents: 72
diff changeset
    49
    ":/style/cntcontactcardheadingitem.widgetml" \
hgs
parents: 72
diff changeset
    50
    ":/style/cntcontactcardheadingitem_color.css" \
hgs
parents: 72
diff changeset
    51
    ":/style/cnteditviewheadingitem.css" \
hgs
parents: 72
diff changeset
    52
    ":/style/cnteditviewheadingitem.widgetml" \
hgs
parents: 72
diff changeset
    53
    ":/style/cnteditviewheadingitem_color.css" \
hgs
parents: 72
diff changeset
    54
    ":/style/cnteditviewlistitem.css" \
hgs
parents: 72
diff changeset
    55
    ":/style/cnteditviewlistitem.hblistviewitem.widgetml" \
hgs
parents: 72
diff changeset
    56
    ":/style/cntfetchmarkall.css" \
hgs
parents: 72
diff changeset
    57
    ":/style/cntfetchmarkall.widgetml" \
hgs
parents: 72
diff changeset
    58
    ":/style/cntfetchmarkall_color.css" \
hgs
parents: 72
diff changeset
    59
    ":/style/cntgroupmemberviewlistitem.css" \
hgs
parents: 72
diff changeset
    60
    ":/style/cnthistoryviewitemwidget.css" \
hgs
parents: 72
diff changeset
    61
    ":/style/cnthistoryviewitemwidget.widgetml" \
hgs
parents: 72
diff changeset
    62
    ":/style/cnthistoryviewitemwidget_color.css" \
hgs
parents: 72
diff changeset
    63
    ":/style/cntimagelabel.css" \
hgs
parents: 72
diff changeset
    64
    ":/style/cntimagelabel.widgetml" \
hgs
parents: 72
diff changeset
    65
    ":/style/cntlocationbutton.css" \
hgs
parents: 72
diff changeset
    66
    ":/style/cntlocationbutton.hbpushbutton.widgetml" \
hgs
parents: 72
diff changeset
    67
    ":/style/cntselectiondialogmarkwidget_color.css";
hgs
parents: 72
diff changeset
    68
72
hgs
parents:
diff changeset
    69
CntDefaultViewFactory::CntDefaultViewFactory( CntExtensionManager& aExt ):
hgs
parents:
diff changeset
    70
    mExtensionManager( aExt )
hgs
parents:
diff changeset
    71
{
81
hgs
parents: 72
diff changeset
    72
    QString files(styleFiles);
hgs
parents: 72
diff changeset
    73
    int lastPos = 0;
hgs
parents: 72
diff changeset
    74
    while (lastPos < files.length()) {
hgs
parents: 72
diff changeset
    75
        int pos = files.indexOf(":/style/", lastPos + 1);
hgs
parents: 72
diff changeset
    76
        if (pos == -1) {
hgs
parents: 72
diff changeset
    77
            pos = files.length();
hgs
parents: 72
diff changeset
    78
        }
hgs
parents: 72
diff changeset
    79
        HbStyleLoader::registerFilePath(files.mid(lastPos, pos - lastPos));
hgs
parents: 72
diff changeset
    80
        lastPos = pos;
hgs
parents: 72
diff changeset
    81
    }
72
hgs
parents:
diff changeset
    82
}
hgs
parents:
diff changeset
    83
hgs
parents:
diff changeset
    84
CntDefaultViewFactory::~CntDefaultViewFactory()
hgs
parents:
diff changeset
    85
{
hgs
parents:
diff changeset
    86
    
hgs
parents:
diff changeset
    87
}
hgs
parents:
diff changeset
    88
hgs
parents:
diff changeset
    89
CntAbstractView* CntDefaultViewFactory::createView( int aId )
hgs
parents:
diff changeset
    90
{
hgs
parents:
diff changeset
    91
    switch ( aId )
hgs
parents:
diff changeset
    92
    {
hgs
parents:
diff changeset
    93
    case namesView:
hgs
parents:
diff changeset
    94
        return new CntNamesView();
hgs
parents:
diff changeset
    95
    case contactCardView:
hgs
parents:
diff changeset
    96
        return new CntContactCardView();
hgs
parents:
diff changeset
    97
    case myCardView:
hgs
parents:
diff changeset
    98
        return new CntMyCardView();
hgs
parents:
diff changeset
    99
    case collectionView:
hgs
parents:
diff changeset
   100
        return new CntCollectionView();
hgs
parents:
diff changeset
   101
    case collectionFavoritesView:
hgs
parents:
diff changeset
   102
        return new CntFavoritesView();
hgs
parents:
diff changeset
   103
    case favoritesMemberView:
hgs
parents:
diff changeset
   104
        return new CntFavoritesMemberView();
hgs
parents:
diff changeset
   105
    case editView:
hgs
parents:
diff changeset
   106
		return new CntEditView();
hgs
parents:
diff changeset
   107
    case onlineAccountEditorView:
hgs
parents:
diff changeset
   108
        break;
hgs
parents:
diff changeset
   109
  
hgs
parents:
diff changeset
   110
    case emailEditorView:
hgs
parents:
diff changeset
   111
    case namesEditorView:
hgs
parents:
diff changeset
   112
    case urlEditorView:
hgs
parents:
diff changeset
   113
    case companyEditorView:
hgs
parents:
diff changeset
   114
    case phoneNumberEditorView:
hgs
parents:
diff changeset
   115
    case noteEditorView:
hgs
parents:
diff changeset
   116
    case familyDetailEditorView:
hgs
parents:
diff changeset
   117
    case addressEditorView:
hgs
parents:
diff changeset
   118
    case dateEditorView:
hgs
parents:
diff changeset
   119
    case groupEditorView:
hgs
parents:
diff changeset
   120
        return new CntDetailEditor(aId);
hgs
parents:
diff changeset
   121
hgs
parents:
diff changeset
   122
    case imageEditorView:
hgs
parents:
diff changeset
   123
        return new CntImageEditorView();
hgs
parents:
diff changeset
   124
    case groupMemberView:
hgs
parents:
diff changeset
   125
        return new CntGroupMemberView();
hgs
parents:
diff changeset
   126
    case groupActionsView:
hgs
parents:
diff changeset
   127
        return new CntGroupActionsView();
hgs
parents:
diff changeset
   128
    case historyView:
hgs
parents:
diff changeset
   129
        return new CntHistoryView();
hgs
parents:
diff changeset
   130
    case importsView:
hgs
parents:
diff changeset
   131
        return new CntImportsView();
hgs
parents:
diff changeset
   132
    case settingsView:
hgs
parents:
diff changeset
   133
        return new CntSettingsView();
hgs
parents:
diff changeset
   134
    default:
hgs
parents:
diff changeset
   135
       return createPluginView(aId);
hgs
parents:
diff changeset
   136
    }
hgs
parents:
diff changeset
   137
    return NULL;
hgs
parents:
diff changeset
   138
}
hgs
parents:
diff changeset
   139
hgs
parents:
diff changeset
   140
CntAbstractView* CntDefaultViewFactory::createPluginView( int aId )
hgs
parents:
diff changeset
   141
{
hgs
parents:
diff changeset
   142
    for(int i = 0;i < mExtensionManager.pluginCount();i++)
hgs
parents:
diff changeset
   143
    {
hgs
parents:
diff changeset
   144
        CntViewSupplier* viewSupplier = mExtensionManager.pluginAt(i)->viewSupplier();
hgs
parents:
diff changeset
   145
        if (viewSupplier)
hgs
parents:
diff changeset
   146
        {
hgs
parents:
diff changeset
   147
            for(int j = 0;j < viewSupplier->viewCount();j++)
hgs
parents:
diff changeset
   148
            {
hgs
parents:
diff changeset
   149
                if (viewSupplier->viewIdAt(j) == aId)
hgs
parents:
diff changeset
   150
                {
hgs
parents:
diff changeset
   151
                    return viewSupplier->viewAt(j);
hgs
parents:
diff changeset
   152
                }
hgs
parents:
diff changeset
   153
            }
hgs
parents:
diff changeset
   154
        }
hgs
parents:
diff changeset
   155
    }
hgs
parents:
diff changeset
   156
    return NULL;
hgs
parents:
diff changeset
   157
}
hgs
parents:
diff changeset
   158
hgs
parents:
diff changeset
   159
// End of File