videocollection/tsrc/stubs/src/videocollectionwrapper.cpp
author hgs
Fri, 16 Apr 2010 18:13:14 +0300
changeset 36 8aed59de29f9
parent 34 bbb98528c666
child 58 d2b028fd1f7d
permissions -rw-r--r--
201015
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
34
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 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:   VideoCollectionWrapper class implementation
hgs
parents:
diff changeset
    15
* 
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#include "videocollectionwrapper.h"
hgs
parents:
diff changeset
    19
#include "videocollectionwrapperdata.h"
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
bool VideoCollectionWrapperData::mGetModelFails = false;
hgs
parents:
diff changeset
    22
VideoListDataModel *VideoCollectionWrapperData::mSourceModel = 0;
hgs
parents:
diff changeset
    23
VideoSortFilterProxyModel *VideoCollectionWrapperData::mAllVideosModel = 0;
hgs
parents:
diff changeset
    24
VideoSortFilterProxyModel *VideoCollectionWrapperData::mCollectionsModel = 0;
hgs
parents:
diff changeset
    25
VideoSortFilterProxyModel *VideoCollectionWrapperData::mCollectionContentModel = 0;
hgs
parents:
diff changeset
    26
VideoSortFilterProxyModel *VideoCollectionWrapperData::mGenericModel = 0;
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
VideoCollectionWrapper &VideoCollectionWrapper::instance()
hgs
parents:
diff changeset
    29
{
hgs
parents:
diff changeset
    30
    static VideoCollectionWrapper _staticWrapper;
hgs
parents:
diff changeset
    31
    return _staticWrapper;
hgs
parents:
diff changeset
    32
}
hgs
parents:
diff changeset
    33
hgs
parents:
diff changeset
    34
VideoCollectionWrapper::VideoCollectionWrapper() 
hgs
parents:
diff changeset
    35
{
hgs
parents:
diff changeset
    36
    // nop
hgs
parents:
diff changeset
    37
}
hgs
parents:
diff changeset
    38
hgs
parents:
diff changeset
    39
VideoCollectionWrapper::~VideoCollectionWrapper()
hgs
parents:
diff changeset
    40
{
hgs
parents:
diff changeset
    41
    VideoCollectionWrapperData::reset();
hgs
parents:
diff changeset
    42
}
hgs
parents:
diff changeset
    43
36
hgs
parents: 34
diff changeset
    44
VideoSortFilterProxyModel* VideoCollectionWrapper::getModel(VideoCollectionCommon::TModelType type)
34
hgs
parents:
diff changeset
    45
{
hgs
parents:
diff changeset
    46
    VideoSortFilterProxyModel *model = 0;
hgs
parents:
diff changeset
    47
    if (!VideoCollectionWrapperData::mGetModelFails)
hgs
parents:
diff changeset
    48
    {
hgs
parents:
diff changeset
    49
        VideoListDataModel *sourceModel = VideoCollectionWrapperData::mSourceModel;
hgs
parents:
diff changeset
    50
        if (!sourceModel)
hgs
parents:
diff changeset
    51
        {
hgs
parents:
diff changeset
    52
            sourceModel = new VideoListDataModel;
hgs
parents:
diff changeset
    53
            if (sourceModel)
hgs
parents:
diff changeset
    54
            {
hgs
parents:
diff changeset
    55
                sourceModel->initialize();
hgs
parents:
diff changeset
    56
                VideoCollectionWrapperData::mSourceModel = sourceModel;
hgs
parents:
diff changeset
    57
            }
hgs
parents:
diff changeset
    58
        }
hgs
parents:
diff changeset
    59
        
hgs
parents:
diff changeset
    60
        switch (type)
hgs
parents:
diff changeset
    61
        {
36
hgs
parents: 34
diff changeset
    62
            case VideoCollectionCommon::EModelTypeAllVideos:
34
hgs
parents:
diff changeset
    63
            {
hgs
parents:
diff changeset
    64
                model = VideoCollectionWrapperData::mAllVideosModel;
hgs
parents:
diff changeset
    65
                if (!model)
hgs
parents:
diff changeset
    66
                {
hgs
parents:
diff changeset
    67
                    model = new VideoSortFilterProxyModel(type);
hgs
parents:
diff changeset
    68
                    if (model)
hgs
parents:
diff changeset
    69
                    {
hgs
parents:
diff changeset
    70
                        model->initialize(sourceModel);
hgs
parents:
diff changeset
    71
                        VideoCollectionWrapperData::mAllVideosModel = model;
hgs
parents:
diff changeset
    72
                    }
hgs
parents:
diff changeset
    73
                }
hgs
parents:
diff changeset
    74
                break;
hgs
parents:
diff changeset
    75
            }
36
hgs
parents: 34
diff changeset
    76
            case VideoCollectionCommon::EModelTypeCollections:
34
hgs
parents:
diff changeset
    77
            {
hgs
parents:
diff changeset
    78
                model = VideoCollectionWrapperData::mCollectionsModel;
hgs
parents:
diff changeset
    79
                if (!model)
hgs
parents:
diff changeset
    80
                {
hgs
parents:
diff changeset
    81
                    model = new VideoSortFilterProxyModel(type);
hgs
parents:
diff changeset
    82
                    if (model)
hgs
parents:
diff changeset
    83
                    {
hgs
parents:
diff changeset
    84
                        model->initialize(sourceModel);
hgs
parents:
diff changeset
    85
                        VideoCollectionWrapperData::mCollectionsModel = model;
hgs
parents:
diff changeset
    86
                    }
hgs
parents:
diff changeset
    87
                }
hgs
parents:
diff changeset
    88
                break;
hgs
parents:
diff changeset
    89
            }
36
hgs
parents: 34
diff changeset
    90
            case VideoCollectionCommon::EModelTypeCollectionContent:
34
hgs
parents:
diff changeset
    91
            {
hgs
parents:
diff changeset
    92
                model = VideoCollectionWrapperData::mCollectionContentModel;
hgs
parents:
diff changeset
    93
                if (!model)
hgs
parents:
diff changeset
    94
                {
hgs
parents:
diff changeset
    95
                    model = new VideoSortFilterProxyModel(type);
hgs
parents:
diff changeset
    96
                    if (model)
hgs
parents:
diff changeset
    97
                    {
hgs
parents:
diff changeset
    98
                        model->initialize(sourceModel);
hgs
parents:
diff changeset
    99
                        VideoCollectionWrapperData::mCollectionContentModel = model;
hgs
parents:
diff changeset
   100
                    }
hgs
parents:
diff changeset
   101
                }
hgs
parents:
diff changeset
   102
                break;
hgs
parents:
diff changeset
   103
            }
36
hgs
parents: 34
diff changeset
   104
            case VideoCollectionCommon::EModelTypeGeneric:
34
hgs
parents:
diff changeset
   105
            {
hgs
parents:
diff changeset
   106
                model = VideoCollectionWrapperData::mGenericModel;
hgs
parents:
diff changeset
   107
                if (!model)
hgs
parents:
diff changeset
   108
                {
hgs
parents:
diff changeset
   109
                    model = new VideoSortFilterProxyModel(type);
hgs
parents:
diff changeset
   110
                    if (model)
hgs
parents:
diff changeset
   111
                    {
hgs
parents:
diff changeset
   112
                        model->initialize(sourceModel);
hgs
parents:
diff changeset
   113
                        VideoCollectionWrapperData::mGenericModel = model;
hgs
parents:
diff changeset
   114
                    }
hgs
parents:
diff changeset
   115
                }
hgs
parents:
diff changeset
   116
                break;
hgs
parents:
diff changeset
   117
            }
hgs
parents:
diff changeset
   118
            default:
hgs
parents:
diff changeset
   119
            {
hgs
parents:
diff changeset
   120
                // invalid model type
hgs
parents:
diff changeset
   121
                break;
hgs
parents:
diff changeset
   122
            }
hgs
parents:
diff changeset
   123
        }
hgs
parents:
diff changeset
   124
    }
hgs
parents:
diff changeset
   125
    
hgs
parents:
diff changeset
   126
    return model;
hgs
parents:
diff changeset
   127
}
hgs
parents:
diff changeset
   128
hgs
parents:
diff changeset
   129
void VideoCollectionWrapper::sendAsyncStatus(int statusCode,
hgs
parents:
diff changeset
   130
    QVariant &additional)
hgs
parents:
diff changeset
   131
{
hgs
parents:
diff changeset
   132
    Q_UNUSED(statusCode);
hgs
parents:
diff changeset
   133
    Q_UNUSED(additional);
hgs
parents:
diff changeset
   134
    // not stubbed
hgs
parents:
diff changeset
   135
}
hgs
parents:
diff changeset
   136
hgs
parents:
diff changeset
   137
// end of file